diff options
author | Fabian Frederick <fabf@skynet.be> | 2017-01-06 15:53:51 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2017-01-10 05:36:35 -0500 |
commit | 02d4ca49fa222021988b2791c8efefd70d3228ac (patch) | |
tree | cdd0c7b34e5df792fdace421b37fa6980052b552 /fs/udf | |
parent | 3cc6f8444a9d9e4a167c575e4da7b6c6d626501a (diff) |
udf: merge bh free
Merge all bh free at one place.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r-- | fs/udf/inode.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 8d8eda8379ca..582d6b2f0d5f 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -745,11 +745,8 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
745 | ~(inode->i_sb->s_blocksize - 1)); | 745 | ~(inode->i_sb->s_blocksize - 1)); |
746 | udf_write_aext(inode, &cur_epos, &eloc, elen, 1); | 746 | udf_write_aext(inode, &cur_epos, &eloc, elen, 1); |
747 | } | 747 | } |
748 | brelse(prev_epos.bh); | ||
749 | brelse(cur_epos.bh); | ||
750 | brelse(next_epos.bh); | ||
751 | newblock = udf_get_lb_pblock(inode->i_sb, &eloc, offset); | 748 | newblock = udf_get_lb_pblock(inode->i_sb, &eloc, offset); |
752 | return newblock; | 749 | goto out_free; |
753 | } | 750 | } |
754 | 751 | ||
755 | /* Are we beyond EOF? */ | 752 | /* Are we beyond EOF? */ |
@@ -772,11 +769,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
772 | /* Create extents for the hole between EOF and offset */ | 769 | /* Create extents for the hole between EOF and offset */ |
773 | ret = udf_do_extend_file(inode, &prev_epos, laarr, offset); | 770 | ret = udf_do_extend_file(inode, &prev_epos, laarr, offset); |
774 | if (ret < 0) { | 771 | if (ret < 0) { |
775 | brelse(prev_epos.bh); | ||
776 | brelse(cur_epos.bh); | ||
777 | brelse(next_epos.bh); | ||
778 | *err = ret; | 772 | *err = ret; |
779 | return 0; | 773 | newblock = 0; |
774 | goto out_free; | ||
780 | } | 775 | } |
781 | c = 0; | 776 | c = 0; |
782 | offset = 0; | 777 | offset = 0; |
@@ -839,11 +834,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
839 | iinfo->i_location.partitionReferenceNum, | 834 | iinfo->i_location.partitionReferenceNum, |
840 | goal, err); | 835 | goal, err); |
841 | if (!newblocknum) { | 836 | if (!newblocknum) { |
842 | brelse(prev_epos.bh); | ||
843 | brelse(cur_epos.bh); | ||
844 | brelse(next_epos.bh); | ||
845 | *err = -ENOSPC; | 837 | *err = -ENOSPC; |
846 | return 0; | 838 | newblock = 0; |
839 | goto out_free; | ||
847 | } | 840 | } |
848 | if (isBeyondEOF) | 841 | if (isBeyondEOF) |
849 | iinfo->i_lenExtents += inode->i_sb->s_blocksize; | 842 | iinfo->i_lenExtents += inode->i_sb->s_blocksize; |
@@ -870,15 +863,11 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
870 | * the new number of extents is less than the old number */ | 863 | * the new number of extents is less than the old number */ |
871 | udf_update_extents(inode, laarr, startnum, endnum, &prev_epos); | 864 | udf_update_extents(inode, laarr, startnum, endnum, &prev_epos); |
872 | 865 | ||
873 | brelse(prev_epos.bh); | ||
874 | brelse(cur_epos.bh); | ||
875 | brelse(next_epos.bh); | ||
876 | |||
877 | newblock = udf_get_pblock(inode->i_sb, newblocknum, | 866 | newblock = udf_get_pblock(inode->i_sb, newblocknum, |
878 | iinfo->i_location.partitionReferenceNum, 0); | 867 | iinfo->i_location.partitionReferenceNum, 0); |
879 | if (!newblock) { | 868 | if (!newblock) { |
880 | *err = -EIO; | 869 | *err = -EIO; |
881 | return 0; | 870 | goto out_free; |
882 | } | 871 | } |
883 | *new = 1; | 872 | *new = 1; |
884 | iinfo->i_next_alloc_block = block; | 873 | iinfo->i_next_alloc_block = block; |
@@ -889,7 +878,10 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, | |||
889 | udf_sync_inode(inode); | 878 | udf_sync_inode(inode); |
890 | else | 879 | else |
891 | mark_inode_dirty(inode); | 880 | mark_inode_dirty(inode); |
892 | 881 | out_free: | |
882 | brelse(prev_epos.bh); | ||
883 | brelse(cur_epos.bh); | ||
884 | brelse(next_epos.bh); | ||
893 | return newblock; | 885 | return newblock; |
894 | } | 886 | } |
895 | 887 | ||