diff options
author | Zhao Lei <zhaolei@cn.fujitsu.com> | 2015-01-20 02:11:34 -0500 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2015-01-21 21:06:48 -0500 |
commit | 6e9606d2a2dce098c1739fb3cd82a1c34fd73d3a (patch) | |
tree | eeeb1c991d4971cdbfda675bbbb4b37b0c6f5ebb /fs/btrfs/extent_io.c | |
parent | 8e5cfb55d3f7dc764cd7f4c966d4c2687eaf7569 (diff) |
Btrfs: add ref_count and free function for btrfs_bio
1: ref_count is simple than current RBIO_HOLD_BBIO_MAP_BIT flag
to keep btrfs_bio's memory in raid56 recovery implement.
2: free function for bbio will make code clean and flexible, plus
forced data type checking in compile.
Changelog v1->v2:
Rename following by David Sterba's suggestion:
put_btrfs_bio() -> btrfs_put_bio()
get_btrfs_bio() -> btrfs_get_bio()
bbio->ref_count -> bbio->refs
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 65bd285ef361..dab8af4450e1 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -2058,7 +2058,7 @@ int repair_io_failure(struct inode *inode, u64 start, u64 length, u64 logical, | |||
2058 | sector = bbio->stripes[mirror_num-1].physical >> 9; | 2058 | sector = bbio->stripes[mirror_num-1].physical >> 9; |
2059 | bio->bi_iter.bi_sector = sector; | 2059 | bio->bi_iter.bi_sector = sector; |
2060 | dev = bbio->stripes[mirror_num-1].dev; | 2060 | dev = bbio->stripes[mirror_num-1].dev; |
2061 | kfree(bbio); | 2061 | btrfs_put_bbio(bbio); |
2062 | if (!dev || !dev->bdev || !dev->writeable) { | 2062 | if (!dev || !dev->bdev || !dev->writeable) { |
2063 | bio_put(bio); | 2063 | bio_put(bio); |
2064 | return -EIO; | 2064 | return -EIO; |