OLD | NEW |
1 /* | 1 /* |
2 * Originally based on dm-crypt.c, | 2 * Originally based on dm-crypt.c, |
3 * Copyright (C) 2003 Christophe Saout <christophe@saout.de> | 3 * Copyright (C) 2003 Christophe Saout <christophe@saout.de> |
4 * Copyright (C) 2004 Clemens Fruhwirth <clemens@endorphin.org> | 4 * Copyright (C) 2004 Clemens Fruhwirth <clemens@endorphin.org> |
5 * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. | 5 * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. |
6 * Copyright (C) 2010 The Chromium OS Authors <chromium-os-dev@chromium.org> | 6 * Copyright (C) 2010 The Chromium OS Authors <chromium-os-dev@chromium.org> |
7 * All Rights Reserved. | 7 * All Rights Reserved. |
8 * | 8 * |
9 * This file is released under the GPL. | 9 * This file is released under the GPL. |
10 * | 10 * |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 for (idx = bio->bi_idx; idx < bio->bi_vcnt; idx++) { | 671 for (idx = bio->bi_idx; idx < bio->bi_vcnt; idx++) { |
672 struct bio_vec *bv = bio_iovec_idx(bio, idx); | 672 struct bio_vec *bv = bio_iovec_idx(bio, idx); |
673 | 673 |
674 VERITY_BUG_ON(bv->bv_offset % VERITY_BLOCK_SIZE); | 674 VERITY_BUG_ON(bv->bv_offset % VERITY_BLOCK_SIZE); |
675 VERITY_BUG_ON(bv->bv_len % VERITY_BLOCK_SIZE); | 675 VERITY_BUG_ON(bv->bv_len % VERITY_BLOCK_SIZE); |
676 | 676 |
677 DMDEBUG("Updating hash for block %u", block); | 677 DMDEBUG("Updating hash for block %u", block); |
678 | 678 |
679 /* TODO(msb) handle case where multiple blocks fit in a page */ | 679 /* TODO(msb) handle case where multiple blocks fit in a page */ |
680 r = dm_bht_verify_block(&vc->bht, block, | 680 r = dm_bht_verify_block(&vc->bht, block, |
681 » » » » » page_address(bv->bv_page)); | 681 » » » » » bv->bv_page, bv->bv_offset); |
682 /* dm_bht functions aren't expected to return errno friendly | 682 /* dm_bht functions aren't expected to return errno friendly |
683 * values. They are converted here for uniformity. | 683 * values. They are converted here for uniformity. |
684 */ | 684 */ |
685 if (r > 0) { | 685 if (r > 0) { |
686 DMERR("Pending data for block %u seen at verify", | 686 DMERR("Pending data for block %u seen at verify", |
687 block); | 687 block); |
688 r = -EBUSY; | 688 r = -EBUSY; |
689 goto bad_state; | 689 goto bad_state; |
690 } | 690 } |
691 if (r < 0) { | 691 if (r < 0) { |
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1374 dm_unregister_target(&verity_target); | 1374 dm_unregister_target(&verity_target); |
1375 kmem_cache_destroy(_verity_io_pool); | 1375 kmem_cache_destroy(_verity_io_pool); |
1376 } | 1376 } |
1377 | 1377 |
1378 module_init(dm_verity_init); | 1378 module_init(dm_verity_init); |
1379 module_exit(dm_verity_exit); | 1379 module_exit(dm_verity_exit); |
1380 | 1380 |
1381 MODULE_AUTHOR("The Chromium OS Authors <chromium-os-dev@chromium.org>"); | 1381 MODULE_AUTHOR("The Chromium OS Authors <chromium-os-dev@chromium.org>"); |
1382 MODULE_DESCRIPTION(DM_NAME " target for transparent disk integrity checking"); | 1382 MODULE_DESCRIPTION(DM_NAME " target for transparent disk integrity checking"); |
1383 MODULE_LICENSE("GPL"); | 1383 MODULE_LICENSE("GPL"); |
OLD | NEW |