Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1553112 > unrolled thread

[PATCH 03/12 linux-next] udf: merge bh free

Started byFabian Frederick <fabf@skynet.be>
First post2017-01-06 22:00 +0100
Last post2017-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.


Contents

  [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

#1553112 — [PATCH 03/12 linux-next] udf: merge bh free

FromFabian Frederick <fabf@skynet.be>
Date2017-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]


#1555126

FromJan Kara <jack@suse.cz>
Date2017-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