All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabian Frederick <fabf@skynet.be>
To: Jan Kara <jack@suse.com>
Cc: fabf@skynet.be, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: [PATCH 03/12 linux-next] udf: merge bh free
Date: Fri,  6 Jan 2017 21:53:51 +0100	[thread overview]
Message-ID: <1483736037-25111-4-git-send-email-fabf@skynet.be> (raw)
In-Reply-To: <1483736037-25111-1-git-send-email-fabf@skynet.be>

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

  parent reply	other threads:[~2017-01-06 20:54 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06 20:53 [PATCH 00/12 linux-next] udf: clean-up Fabian Frederick
2017-01-06 20:53 ` [PATCH 01/12 linux-next] udf: use __packed instead of __attribute__ ((packed)) Fabian Frederick
2017-01-10 10:29   ` Jan Kara
2017-01-06 20:53 ` [PATCH 02/12 linux-next] udf: use pointer for kernel_long_ad argument Fabian Frederick
2017-01-10 10:33   ` Jan Kara
2017-01-06 20:53 ` Fabian Frederick [this message]
2017-01-10 10:36   ` [PATCH 03/12 linux-next] udf: merge bh free Jan Kara
2017-01-06 20:53 ` [PATCH 04/12 linux-next] udf: remove unneeded line break Fabian Frederick
2017-01-10 10:37   ` Jan Kara
2017-01-06 20:53 ` [PATCH 05/12 linux-next] udf: remove empty condition Fabian Frederick
2017-01-10 10:37   ` Jan Kara
2017-01-06 20:53 ` [PATCH 06/12 linux-next] udf: add udf_ajust_time Fabian Frederick
2017-01-10 10:44   ` Jan Kara
2017-01-06 20:53 ` [PATCH 07/12 linux-next] udf: store allocation offset in udf_prealloc_extents() Fabian Frederick
2017-01-10 10:53   ` Jan Kara
2017-01-06 20:53 ` [PATCH 08/12 linux-next] udf: remove next_epos from udf_update_extent_cache() Fabian Frederick
2017-01-10 10:55   ` Jan Kara
2017-01-06 20:53 ` [PATCH 09/12 linux-next] udf: merge module informations in super.c Fabian Frederick
2017-01-10 10:55   ` Jan Kara
2017-01-06 20:54 ` [PATCH 10/12 linux-next] udf: atomically read inode size Fabian Frederick
2017-01-06 20:54   ` [PATCH 11/12 linux-next] udf: replace 0xFFFFFFFF by ~0 Fabian Frederick
2017-01-06 20:54   ` [PATCH 12/12 linux-next] udf: check partition reference in udf_read_inode() Fabian Frederick
2017-01-10 10:59     ` Jan Kara
2017-01-10 10:57   ` [PATCH 10/12 linux-next] udf: atomically read inode size Jan Kara
2017-01-10 11:00 ` [PATCH 00/12 linux-next] udf: clean-up Jan Kara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483736037-25111-4-git-send-email-fabf@skynet.be \
    --to=fabf@skynet.be \
    --cc=jack@suse.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.