aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r--fs/btrfs/inode.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 806708dd7e38..3df0ffad976e 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -881,7 +881,7 @@ int btrfs_merge_bio_hook(struct page *page, unsigned long offset,
881 * At IO completion time the cums attached on the ordered extent record 881 * At IO completion time the cums attached on the ordered extent record
882 * are inserted into the btree 882 * are inserted into the btree
883 */ 883 */
884int __btrfs_submit_bio_hook(struct inode *inode, int rw, struct bio *bio, 884int __btrfs_submit_bio_start(struct inode *inode, int rw, struct bio *bio,
885 int mirror_num, unsigned long bio_flags) 885 int mirror_num, unsigned long bio_flags)
886{ 886{
887 struct btrfs_root *root = BTRFS_I(inode)->root; 887 struct btrfs_root *root = BTRFS_I(inode)->root;
@@ -889,7 +889,21 @@ int __btrfs_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
889 889
890 ret = btrfs_csum_one_bio(root, inode, bio); 890 ret = btrfs_csum_one_bio(root, inode, bio);
891 BUG_ON(ret); 891 BUG_ON(ret);
892 return 0;
893}
892 894
895/*
896 * in order to insert checksums into the metadata in large chunks,
897 * we wait until bio submission time. All the pages in the bio are
898 * checksummed and sums are attached onto the ordered extent record.
899 *
900 * At IO completion time the cums attached on the ordered extent record
901 * are inserted into the btree
902 */
903int __btrfs_submit_bio_done(struct inode *inode, int rw, struct bio *bio,
904 int mirror_num, unsigned long bio_flags)
905{
906 struct btrfs_root *root = BTRFS_I(inode)->root;
893 return btrfs_map_bio(root, rw, bio, mirror_num, 1); 907 return btrfs_map_bio(root, rw, bio, mirror_num, 1);
894} 908}
895 909
@@ -922,7 +936,8 @@ int btrfs_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
922 /* we're doing a write, do the async checksumming */ 936 /* we're doing a write, do the async checksumming */
923 return btrfs_wq_submit_bio(BTRFS_I(inode)->root->fs_info, 937 return btrfs_wq_submit_bio(BTRFS_I(inode)->root->fs_info,
924 inode, rw, bio, mirror_num, 938 inode, rw, bio, mirror_num,
925 bio_flags, __btrfs_submit_bio_hook); 939 bio_flags, __btrfs_submit_bio_start,
940 __btrfs_submit_bio_done);
926 } 941 }
927 942
928mapit: 943mapit: