Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1553112 > unrolled thread
| Started by | Fabian Frederick <fabf@skynet.be> |
|---|---|
| First post | 2017-01-06 22:00 +0100 |
| Last post | 2017-01-10 11:40 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 03/12 linux-next] udf: merge bh free Fabian Frederick <fabf@skynet.be> - 2017-01-06 22:00 +0100
Re: [PATCH 03/12 linux-next] udf: merge bh free Jan Kara <jack@suse.cz> - 2017-01-10 11:40 +0100
| From | Fabian Frederick <fabf@skynet.be> |
|---|---|
| Date | 2017-01-06 22:00 +0100 |
| Subject | [PATCH 03/12 linux-next] udf: merge bh free |
| Message-ID | <sWJMd-7eR-15@gated-at.bofh.it> |
Merge all bh free at one place.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
fs/udf/inode.c | 28 ++++++++++------------------
1 file changed, 10 insertions(+), 18 deletions(-)
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 4a7813b..5cac1c3 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,
~(inode->i_sb->s_blocksize - 1));
udf_write_aext(inode, &cur_epos, &eloc, elen, 1);
}
- brelse(prev_epos.bh);
- brelse(cur_epos.bh);
- brelse(next_epos.bh);
newblock = udf_get_lb_pblock(inode->i_sb, &eloc, offset);
- return newblock;
+ goto out_free;
}
/* Are we beyond EOF? */
@@ -772,11 +769,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
/* Create extents for the hole between EOF and offset */
ret = udf_do_extend_file(inode, &prev_epos, laarr, offset);
if (ret < 0) {
- brelse(prev_epos.bh);
- brelse(cur_epos.bh);
- brelse(next_epos.bh);
*err = ret;
- return 0;
+ newblock = 0;
+ goto out_free;
}
c = 0;
offset = 0;
@@ -839,11 +834,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
iinfo->i_location.partitionReferenceNum,
goal, err);
if (!newblocknum) {
- brelse(prev_epos.bh);
- brelse(cur_epos.bh);
- brelse(next_epos.bh);
*err = -ENOSPC;
- return 0;
+ newblock = 0;
+ goto out_free;
}
if (isBeyondEOF)
iinfo->i_lenExtents += inode->i_sb->s_blocksize;
@@ -870,15 +863,11 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
* the new number of extents is less than the old number */
udf_update_extents(inode, laarr, startnum, endnum, &prev_epos);
- brelse(prev_epos.bh);
- brelse(cur_epos.bh);
- brelse(next_epos.bh);
-
newblock = udf_get_pblock(inode->i_sb, newblocknum,
iinfo->i_location.partitionReferenceNum, 0);
if (!newblock) {
*err = -EIO;
- return 0;
+ goto out_free;
}
*new = 1;
iinfo->i_next_alloc_block = block;
@@ -889,7 +878,10 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
udf_sync_inode(inode);
else
mark_inode_dirty(inode);
-
+out_free:
+ brelse(prev_epos.bh);
+ brelse(cur_epos.bh);
+ brelse(next_epos.bh);
return newblock;
}
--
2.7.4
[toc] | [next] | [standalone]
| From | Jan Kara <jack@suse.cz> |
|---|---|
| Date | 2017-01-10 11:40 +0100 |
| Message-ID | <sY20p-aM-7@gated-at.bofh.it> |
| In reply to | #1553112 |
On Fri 06-01-17 21:53:51, Fabian Frederick wrote:
> Merge all bh free at one place.
>
> Signed-off-by: Fabian Frederick <fabf@skynet.be>
Thanks. Applied.
Honza
> ---
> fs/udf/inode.c | 28 ++++++++++------------------
> 1 file changed, 10 insertions(+), 18 deletions(-)
>
> diff --git a/fs/udf/inode.c b/fs/udf/inode.c
> index 4a7813b..5cac1c3 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,
> ~(inode->i_sb->s_blocksize - 1));
> udf_write_aext(inode, &cur_epos, &eloc, elen, 1);
> }
> - brelse(prev_epos.bh);
> - brelse(cur_epos.bh);
> - brelse(next_epos.bh);
> newblock = udf_get_lb_pblock(inode->i_sb, &eloc, offset);
> - return newblock;
> + goto out_free;
> }
>
> /* Are we beyond EOF? */
> @@ -772,11 +769,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
> /* Create extents for the hole between EOF and offset */
> ret = udf_do_extend_file(inode, &prev_epos, laarr, offset);
> if (ret < 0) {
> - brelse(prev_epos.bh);
> - brelse(cur_epos.bh);
> - brelse(next_epos.bh);
> *err = ret;
> - return 0;
> + newblock = 0;
> + goto out_free;
> }
> c = 0;
> offset = 0;
> @@ -839,11 +834,9 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
> iinfo->i_location.partitionReferenceNum,
> goal, err);
> if (!newblocknum) {
> - brelse(prev_epos.bh);
> - brelse(cur_epos.bh);
> - brelse(next_epos.bh);
> *err = -ENOSPC;
> - return 0;
> + newblock = 0;
> + goto out_free;
> }
> if (isBeyondEOF)
> iinfo->i_lenExtents += inode->i_sb->s_blocksize;
> @@ -870,15 +863,11 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
> * the new number of extents is less than the old number */
> udf_update_extents(inode, laarr, startnum, endnum, &prev_epos);
>
> - brelse(prev_epos.bh);
> - brelse(cur_epos.bh);
> - brelse(next_epos.bh);
> -
> newblock = udf_get_pblock(inode->i_sb, newblocknum,
> iinfo->i_location.partitionReferenceNum, 0);
> if (!newblock) {
> *err = -EIO;
> - return 0;
> + goto out_free;
> }
> *new = 1;
> iinfo->i_next_alloc_block = block;
> @@ -889,7 +878,10 @@ static sector_t inode_getblk(struct inode *inode, sector_t block,
> udf_sync_inode(inode);
> else
> mark_inode_dirty(inode);
> -
> +out_free:
> + brelse(prev_epos.bh);
> + brelse(cur_epos.bh);
> + brelse(next_epos.bh);
> return newblock;
> }
>
> --
> 2.7.4
>
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web