[PATCH 2/2] ext3 and jbd cleanup: replace brelse() to put_bh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > On Wed, Aug 09, 2006 at 11:39:40PM -0700, Andrew Morton wrote:
> > > - replace all brelse() calls with put_bh().  Because brelse() is
> > >   old-fashioned, has a weird name and neelessly permits a NULL
arg.
> > > 
> > >   In fact it would be beter to convert JBD and ext3 to put_bh
before
> > >   copying it all over.


Here is the patch.

Signed-Off-By: Mingming Cao<[email protected]>
---

 linux-2.6.18-rc4-ming/fs/ext3/balloc.c     |   18 +++++-----
 linux-2.6.18-rc4-ming/fs/ext3/ialloc.c     |   14 ++++----
 linux-2.6.18-rc4-ming/fs/ext3/inode.c      |   24 +++++++-------
 linux-2.6.18-rc4-ming/fs/ext3/namei.c      |   48 ++++++++++++++---------------
 linux-2.6.18-rc4-ming/fs/ext3/resize.c     |   34 ++++++++++----------
 linux-2.6.18-rc4-ming/fs/ext3/super.c      |   20 ++++++------
 linux-2.6.18-rc4-ming/fs/ext3/xattr.c      |   18 +++++-----
 linux-2.6.18-rc4-ming/fs/jbd/checkpoint.c  |   12 +++----
 linux-2.6.18-rc4-ming/fs/jbd/commit.c      |   10 +++---
 linux-2.6.18-rc4-ming/fs/jbd/journal.c     |   14 ++++----
 linux-2.6.18-rc4-ming/fs/jbd/recovery.c    |   30 +++++++++---------
 linux-2.6.18-rc4-ming/fs/jbd/revoke.c      |    6 +--
 linux-2.6.18-rc4-ming/fs/jbd/transaction.c |   14 ++++----
 13 files changed, 131 insertions(+), 131 deletions(-)

diff -puN fs/ext3/balloc.c~ext3_replace_brelse_to_put_bh fs/ext3/balloc.c
--- linux-2.6.18-rc4/fs/ext3/balloc.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:19.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/balloc.c	2006-08-11 16:01:06.549638409 -0700
@@ -351,7 +351,7 @@ do_more:
 		overflow = bit + count - EXT3_BLOCKS_PER_GROUP(sb);
 		count -= overflow;
 	}
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	bitmap_bh = read_block_bitmap(sb, block_group);
 	if (!bitmap_bh)
 		goto error_return;
@@ -407,7 +407,7 @@ do_more:
 					BUFFER_TRACE(debug_bh,
 						"No commited data in bitmap");
 				BUFFER_TRACE2(debug_bh, bitmap_bh, "bitmap");
-				__brelse(debug_bh);
+				put_bh(debug_bh);
 			}
 		}
 		jbd_lock_bh_state(bitmap_bh);
@@ -485,7 +485,7 @@ do_more:
 	}
 	sb->s_dirt = 1;
 error_return:
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	ext3_std_error(sb, err);
 	return;
 }
@@ -1324,7 +1324,7 @@ retry:
 		if (free_blocks <= (windowsz/2))
 			continue;
 
-		brelse(bitmap_bh);
+		put_bh(bitmap_bh);
 		bitmap_bh = read_block_bitmap(sb, group_no);
 		if (!bitmap_bh)
 			goto io_error;
@@ -1389,7 +1389,7 @@ allocated:
 		if (debug_bh) {
 			BUFFER_TRACE(debug_bh, "state when allocated");
 			BUFFER_TRACE2(debug_bh, bitmap_bh, "bitmap state");
-			brelse(debug_bh);
+			put_bh(debug_bh);
 		}
 	}
 	jbd_lock_bh_state(bitmap_bh);
@@ -1442,7 +1442,7 @@ allocated:
 		goto out;
 
 	*errp = 0;
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	DQUOT_FREE_BLOCK(inode, *count-num);
 	*count = num;
 	return ret_block;
@@ -1459,7 +1459,7 @@ out:
 	 */
 	if (!performed_allocation)
 		DQUOT_FREE_BLOCK(inode, *count);
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	return 0;
 }
 
@@ -1494,7 +1494,7 @@ ext3_fsblk_t ext3_count_free_blocks(stru
 		if (!gdp)
 			continue;
 		desc_count += le16_to_cpu(gdp->bg_free_blocks_count);
-		brelse(bitmap_bh);
+		put_bh(bitmap_bh);
 		bitmap_bh = read_block_bitmap(sb, i);
 		if (bitmap_bh == NULL)
 			continue;
@@ -1504,7 +1504,7 @@ ext3_fsblk_t ext3_count_free_blocks(stru
 			i, le16_to_cpu(gdp->bg_free_blocks_count), x);
 		bitmap_count += x;
 	}
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	printk("ext3_count_free_blocks: stored = "E3FSBLK
 		", computed = "E3FSBLK", "E3FSBLK"\n",
 	       le32_to_cpu(es->s_free_blocks_count),
diff -puN fs/ext3/ialloc.c~ext3_replace_brelse_to_put_bh fs/ext3/ialloc.c
--- linux-2.6.18-rc4/fs/ext3/ialloc.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:19.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/ialloc.c	2006-08-11 16:01:06.655626188 -0700
@@ -185,7 +185,7 @@ void ext3_free_inode (handle_t *handle, 
 		fatal = err;
 	sb->s_dirt = 1;
 error_return:
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	ext3_std_error(sb, fatal);
 }
 
@@ -468,7 +468,7 @@ struct inode *ext3_new_inode(handle_t *h
 		if (!gdp)
 			goto fail;
 
-		brelse(bitmap_bh);
+		put_bh(bitmap_bh);
 		bitmap_bh = read_inode_bitmap(sb, group);
 		if (!bitmap_bh)
 			goto fail;
@@ -625,7 +625,7 @@ out:
 	iput(inode);
 	ret = ERR_PTR(err);
 really_out:
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	return ret;
 
 fail_free_drop:
@@ -636,7 +636,7 @@ fail_drop:
 	inode->i_flags |= S_NOQUOTA;
 	inode->i_nlink = 0;
 	iput(inode);
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	return ERR_PTR(err);
 }
 
@@ -692,7 +692,7 @@ struct inode *ext3_orphan_get(struct sup
 		inode = NULL;
 	}
 out:
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	return inode;
 }
 
@@ -715,7 +715,7 @@ unsigned long ext3_count_free_inodes (st
 		if (!gdp)
 			continue;
 		desc_count += le16_to_cpu(gdp->bg_free_inodes_count);
-		brelse(bitmap_bh);
+		put_bh(bitmap_bh);
 		bitmap_bh = read_inode_bitmap(sb, i);
 		if (!bitmap_bh)
 			continue;
@@ -725,7 +725,7 @@ unsigned long ext3_count_free_inodes (st
 			i, le16_to_cpu(gdp->bg_free_inodes_count), x);
 		bitmap_count += x;
 	}
-	brelse(bitmap_bh);
+	put_bh(bitmap_bh);
 	printk("ext3_count_free_inodes: stored = %u, computed = %lu, %lu\n",
 		le32_to_cpu(es->s_free_inodes_count), desc_count, bitmap_count);
 	return desc_count;
diff -puN fs/ext3/inode.c~ext3_replace_brelse_to_put_bh fs/ext3/inode.c
--- linux-2.6.18-rc4/fs/ext3/inode.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:19.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/inode.c	2006-08-11 16:01:06.748615465 -0700
@@ -378,7 +378,7 @@ static Indirect *ext3_get_branch(struct 
 	return NULL;
 
 changed:
-	brelse(bh);
+	put_bh(bh);
 	*err = -EAGAIN;
 	goto no_block;
 failure:
@@ -624,7 +624,7 @@ static int ext3_alloc_branch(handle_t *h
 		err = ext3_journal_get_create_access(handle, bh);
 		if (err) {
 			unlock_buffer(bh);
-			brelse(bh);
+			put_bh(bh);
 			goto failed;
 		}
 
@@ -863,7 +863,7 @@ int ext3_get_blocks_handle(handle_t *han
 	 */
 	if (err == -EAGAIN || !verify_chain(chain, partial)) {
 		while (partial > chain) {
-			brelse(partial->bh);
+			put_bh(partial->bh);
 			partial--;
 		}
 		partial = ext3_get_branch(inode, depth, offsets, chain, &err);
@@ -933,7 +933,7 @@ got_it:
 cleanup:
 	while (partial > chain) {
 		BUFFER_TRACE(partial->bh, "call brelse");
-		brelse(partial->bh);
+		put_bh(partial->bh);
 		partial--;
 	}
 	BUFFER_TRACE(bh_result, "returned");
@@ -1051,7 +1051,7 @@ struct buffer_head *ext3_getblk(handle_t
 		}
 		if (fatal) {
 			*errp = fatal;
-			brelse(bh);
+			put_bh(bh);
 			bh = NULL;
 		}
 		return bh;
@@ -1943,7 +1943,7 @@ static Indirect *ext3_find_shared(struct
 	/* Writer: end */
 
 	while(partial > p) {
-		brelse(partial->bh);
+		put_bh(partial->bh);
 		partial--;
 	}
 no_top:
@@ -2133,7 +2133,7 @@ static void ext3_free_branches(handle_t 
 			 * That's easy if it's exclusively part of this
 			 * transaction.  But if it's part of the committing
 			 * transaction then journal_forget() will simply
-			 * brelse() it.  That means that if the underlying
+			 * put_bh() it.  That means that if the underlying
 			 * block is reallocated in ext3_get_block(),
 			 * unmap_underlying_metadata() will find this block
 			 * and will try to get rid of it.  damn, damn.
@@ -2510,7 +2510,7 @@ static int __ext3_get_inode_loc(struct i
 			 * of one, so skip it.
 			 */
 			if (!buffer_uptodate(bitmap_bh)) {
-				brelse(bitmap_bh);
+				put_bh(bitmap_bh);
 				goto make_io;
 			}
 			for (i = start; i < start + inodes_per_buffer; i++) {
@@ -2519,7 +2519,7 @@ static int __ext3_get_inode_loc(struct i
 				if (ext3_test_bit(i, bitmap_bh->b_data))
 					break;
 			}
-			brelse(bitmap_bh);
+			put_bh(bitmap_bh);
 			if (i == start + inodes_per_buffer) {
 				/* all other inodes are free, so skip I/O */
 				memset(bh->b_data, 0, bh->b_size);
@@ -2544,7 +2544,7 @@ make_io:
 					"unable to read inode block - "
 					"inode=%lu, block="E3FSBLK,
 					inode->i_ino, block);
-			brelse(bh);
+			put_bh(bh);
 			return -EIO;
 		}
 	}
@@ -3056,7 +3056,7 @@ ext3_reserve_inode_write(handle_t *handl
 			BUFFER_TRACE(iloc->bh, "get_write_access");
 			err = ext3_journal_get_write_access(handle, iloc->bh);
 			if (err) {
-				brelse(iloc->bh);
+				put_bh(iloc->bh);
 				iloc->bh = NULL;
 			}
 		}
@@ -3156,7 +3156,7 @@ static int ext3_pin_inode(handle_t *hand
 			if (!err)
 				err = ext3_journal_dirty_metadata(handle,
 								  iloc.bh);
-			brelse(iloc.bh);
+			put_bh(iloc.bh);
 		}
 	}
 	ext3_std_error(inode->i_sb, err);
diff -puN fs/ext3/namei.c~ext3_replace_brelse_to_put_bh fs/ext3/namei.c
--- linux-2.6.18-rc4/fs/ext3/namei.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:19.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/namei.c	2006-08-11 16:01:06.838605088 -0700
@@ -349,7 +349,7 @@ dx_probe(struct dentry *dentry, struct i
 		ext3_warning(dir->i_sb, __FUNCTION__,
 			     "Unrecognised inode hash code %d",
 			     root->info.hash_version);
-		brelse(bh);
+		put_bh(bh);
 		*err = ERR_BAD_DX_DIR;
 		goto fail;
 	}
@@ -363,7 +363,7 @@ dx_probe(struct dentry *dentry, struct i
 		ext3_warning(dir->i_sb, __FUNCTION__,
 			     "Unimplemented inode hash flags: %#06x",
 			     root->info.unused_flags);
-		brelse(bh);
+		put_bh(bh);
 		*err = ERR_BAD_DX_DIR;
 		goto fail;
 	}
@@ -372,7 +372,7 @@ dx_probe(struct dentry *dentry, struct i
 		ext3_warning(dir->i_sb, __FUNCTION__,
 			     "Unimplemented inode hash depth: %#06x",
 			     root->info.indirect_levels);
-		brelse(bh);
+		put_bh(bh);
 		*err = ERR_BAD_DX_DIR;
 		goto fail;
 	}
@@ -428,7 +428,7 @@ dx_probe(struct dentry *dentry, struct i
 	}
 fail2:
 	while (frame >= frame_in) {
-		brelse(frame->bh);
+		put_bh(frame->bh);
 		frame--;
 	}
 fail:
@@ -441,8 +441,8 @@ static void dx_release (struct dx_frame 
 		return;
 
 	if (((struct dx_root *) frames[0].bh->b_data)->info.indirect_levels)
-		brelse(frames[1].bh);
-	brelse(frames[0].bh);
+		put_bh(frames[1].bh);
+	put_bh(frames[0].bh);
 }
 
 /*
@@ -560,12 +560,12 @@ static int htree_dirblock_to_tree(struct
 			continue;
 		if ((err = ext3_htree_store_dirent(dir_file,
 				   hinfo->hash, hinfo->minor_hash, de)) != 0) {
-			brelse(bh);
+			put_bh(bh);
 			return err;
 		}
 		count++;
 	}
-	brelse(bh);
+	put_bh(bh);
 	return count;
 }
 
@@ -802,7 +802,7 @@ static inline int search_dirblock(struct
  * entry - you'll have to do that yourself if you want to.
  *
  * The returned buffer_head has ->b_count elevated.  The caller is expected
- * to brelse() it when appropriate.
+ * to put_bh() it when appropriate.
  */
 static struct buffer_head * ext3_find_entry (struct dentry *dentry,
 					struct ext3_dir_entry_2 ** res_dir)
@@ -880,7 +880,7 @@ restart:
 			/* read error, skip block & hope for the best */
 			ext3_error(sb, __FUNCTION__, "reading directory #%lu "
 				   "offset %lu", dir->i_ino, block);
-			brelse(bh);
+			put_bh(bh);
 			goto next;
 		}
 		i = search_dirblock(bh, dir, dentry,
@@ -890,7 +890,7 @@ restart:
 			ret = bh;
 			goto cleanup_and_exit;
 		} else {
-			brelse(bh);
+			put_bh(bh);
 			if (i < 0)
 				goto cleanup_and_exit;
 		}
@@ -1032,7 +1032,7 @@ struct dentry *ext3_get_parent(struct de
 	if (!bh)
 		return ERR_PTR(-ENOENT);
 	ino = le32_to_cpu(de->inode);
-	brelse(bh);
+	put_bh(bh);
 
 	if (!ext3_valid_inum(child->d_inode->i_sb, ino)) {
 		ext3_error(child->d_inode->i_sb, "ext3_get_parent",
@@ -1128,7 +1128,7 @@ static struct ext3_dir_entry_2 *do_split
 
 	bh2 = ext3_append (handle, dir, &newblock, error);
 	if (!(bh2)) {
-		brelse(*bh);
+		put_bh(*bh);
 		*bh = NULL;
 		goto errout;
 	}
@@ -1137,8 +1137,8 @@ static struct ext3_dir_entry_2 *do_split
 	err = ext3_journal_get_write_access(handle, *bh);
 	if (err) {
 	journal_error:
-		brelse(*bh);
-		brelse(bh2);
+		put_bh(*bh);
+		put_bh(bh2);
 		*bh = NULL;
 		ext3_std_error(dir->i_sb, err);
 		goto errout;
@@ -1242,7 +1242,7 @@ static int add_dirent_to_buf(handle_t *h
 	err = ext3_journal_get_write_access(handle, bh);
 	if (err) {
 		ext3_std_error(dir->i_sb, err);
-		brelse(bh);
+		put_bh(bh);
 		return err;
 	}
 
@@ -1282,7 +1282,7 @@ static int add_dirent_to_buf(handle_t *h
 	err = ext3_journal_dirty_metadata(handle, bh);
 	if (err)
 		ext3_std_error(dir->i_sb, err);
-	brelse(bh);
+	put_bh(bh);
 	return 0;
 }
 
@@ -1315,14 +1315,14 @@ static int make_indexed_dir(handle_t *ha
 	retval = ext3_journal_get_write_access(handle, bh);
 	if (retval) {
 		ext3_std_error(dir->i_sb, retval);
-		brelse(bh);
+		put_bh(bh);
 		return retval;
 	}
 	root = (struct dx_root *) bh->b_data;
 
 	bh2 = ext3_append (handle, dir, &block, &retval);
 	if (!(bh2)) {
-		brelse(bh);
+		put_bh(bh);
 		return retval;
 	}
 	EXT3_I(dir)->i_flags |= EXT3_INDEX_FL;
@@ -1420,7 +1420,7 @@ static int ext3_add_entry (handle_t *han
 		    EXT3_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_DIR_INDEX))
 			return make_indexed_dir(handle, dentry, inode, bh);
 #endif
-		brelse(bh);
+		put_bh(bh);
 	}
 	bh = ext3_append(handle, dir, &block, &retval);
 	if (!bh)
@@ -1562,7 +1562,7 @@ journal_error:
 	ext3_std_error(dir->i_sb, err);
 cleanup:
 	if (bh)
-		brelse(bh);
+		put_bh(bh);
 	dx_release(frames);
 	return err;
 }
@@ -1999,7 +1999,7 @@ out:
 	return err;
 
 out_brelse:
-	brelse(iloc.bh);
+	put_bh(iloc.bh);
 	goto out_err;
 }
 
@@ -2285,7 +2285,7 @@ static int ext3_rename (struct inode * o
 		new_dir->i_version++;
 		BUFFER_TRACE(new_bh, "call ext3_journal_dirty_metadata");
 		ext3_journal_dirty_metadata(handle, new_bh);
-		brelse(new_bh);
+		put_bh(new_bh);
 		new_bh = NULL;
 	}
 
@@ -2315,7 +2315,7 @@ static int ext3_rename (struct inode * o
 		if (old_bh2) {
 			retval = ext3_delete_entry(handle, old_dir,
 						   old_de2, old_bh2);
-			brelse(old_bh2);
+			put_bh(old_bh2);
 		}
 	}
 	if (retval) {
diff -puN fs/ext3/resize.c~ext3_replace_brelse_to_put_bh fs/ext3/resize.c
--- linux-2.6.18-rc4/fs/ext3/resize.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:19.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/resize.c	2006-08-11 16:01:06.877600591 -0700
@@ -109,7 +109,7 @@ static int verify_group_input(struct sup
 			     input->inode_table, itend - 1, start, metaend - 1);
 	else
 		err = 0;
-	brelse(bh);
+	put_bh(bh);
 
 	return err;
 }
@@ -124,7 +124,7 @@ static struct buffer_head *bclean(handle
 	if (!bh)
 		return ERR_PTR(-EIO);
 	if ((err = ext3_journal_get_write_access(handle, bh))) {
-		brelse(bh);
+		put_bh(bh);
 		bh = ERR_PTR(err);
 	} else {
 		lock_buffer(bh);
@@ -211,7 +211,7 @@ static int setup_new_group_blocks(struct
 			goto exit_bh;
 		}
 		if ((err = ext3_journal_get_write_access(handle, gdb))) {
-			brelse(gdb);
+			put_bh(gdb);
 			goto exit_bh;
 		}
 		lock_buffer(bh);
@@ -220,7 +220,7 @@ static int setup_new_group_blocks(struct
 		unlock_buffer(bh);
 		ext3_journal_dirty_metadata(handle, gdb);
 		ext3_set_bit(bit, bh->b_data);
-		brelse(gdb);
+		put_bh(gdb);
 	}
 
 	/* Zero out all of the reserved backup group descriptor table blocks */
@@ -236,7 +236,7 @@ static int setup_new_group_blocks(struct
 		}
 		ext3_journal_dirty_metadata(handle, gdb);
 		ext3_set_bit(bit, bh->b_data);
-		brelse(gdb);
+		put_bh(gdb);
 	}
 	ext3_debug("mark block bitmap %#04x (+%ld)\n", input->block_bitmap,
 		   input->block_bitmap - start);
@@ -256,13 +256,13 @@ static int setup_new_group_blocks(struct
 			goto exit_bh;
 		}
 		ext3_journal_dirty_metadata(handle, it);
-		brelse(it);
+		put_bh(it);
 		ext3_set_bit(bit, bh->b_data);
 	}
 	mark_bitmap_end(input->blocks_count, EXT3_BLOCKS_PER_GROUP(sb),
 			bh->b_data);
 	ext3_journal_dirty_metadata(handle, bh);
-	brelse(bh);
+	put_bh(bh);
 
 	/* Mark unused entries in inode bitmap used */
 	ext3_debug("clear inode bitmap %#04x (+%ld)\n",
@@ -276,7 +276,7 @@ static int setup_new_group_blocks(struct
 			bh->b_data);
 	ext3_journal_dirty_metadata(handle, bh);
 exit_bh:
-	brelse(bh);
+	put_bh(bh);
 
 exit_journal:
 	unlock_super(sb);
@@ -459,7 +459,7 @@ static int add_new_gdb(handle_t *handle,
 	 */
 	data[gdb_num % EXT3_ADDR_PER_BLOCK(sb)] = 0;
 	ext3_journal_dirty_metadata(handle, dind);
-	brelse(dind);
+	put_bh(dind);
 	inode->i_blocks -= (gdbackups + 1) * sb->s_blocksize >> 9;
 	ext3_mark_iloc_dirty(handle, inode, &iloc);
 	memset((*primary)->b_data, 0, sb->s_blocksize);
@@ -481,7 +481,7 @@ static int add_new_gdb(handle_t *handle,
 
 exit_inode:
 	//ext3_journal_release_buffer(handle, iloc.bh);
-	brelse(iloc.bh);
+	put_bh(iloc.bh);
 exit_dindj:
 	//ext3_journal_release_buffer(handle, dind);
 exit_primary:
@@ -489,9 +489,9 @@ exit_primary:
 exit_sbh:
 	//ext3_journal_release_buffer(handle, *primary);
 exit_dind:
-	brelse(dind);
+	put_bh(dind);
 exit_bh:
-	brelse(*primary);
+	put_bh(*primary);
 
 	ext3_debug("leaving with error %d\n", err);
 	return err;
@@ -555,7 +555,7 @@ static int reserve_backup_gdb(handle_t *
 			goto exit_bh;
 		}
 		if ((gdbackups = verify_reserved_gdb(sb, primary[res])) < 0) {
-			brelse(primary[res]);
+			put_bh(primary[res]);
 			err = gdbackups;
 			goto exit_bh;
 		}
@@ -598,8 +598,8 @@ static int reserve_backup_gdb(handle_t *
 
 exit_bh:
 	while (--res >= 0)
-		brelse(primary[res]);
-	brelse(dind);
+		put_bh(primary[res]);
+	put_bh(dind);
 
 exit_free:
 	kfree(primary);
@@ -668,7 +668,7 @@ static void update_backups(struct super_
 		set_buffer_uptodate(bh);
 		unlock_buffer(bh);
 		ext3_journal_dirty_metadata(handle, bh);
-		brelse(bh);
+		put_bh(bh);
 	}
 	if ((err2 = ext3_journal_stop(handle)) && !err)
 		err = err2;
@@ -974,7 +974,7 @@ int ext3_group_extend(struct super_block
 			     "can't read last block, resize aborted");
 		return -ENOSPC;
 	}
-	brelse(bh);
+	put_bh(bh);
 
 	/* We will update the superblock, one block bitmap, and
 	 * one group descriptor via ext3_free_blocks().
diff -puN fs/ext3/super.c~ext3_replace_brelse_to_put_bh fs/ext3/super.c
--- linux-2.6.18-rc4/fs/ext3/super.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:20.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/super.c	2006-08-11 16:01:06.953591829 -0700
@@ -400,12 +400,12 @@ static void ext3_put_super (struct super
 	}
 
 	for (i = 0; i < sbi->s_gdb_count; i++)
-		brelse(sbi->s_group_desc[i]);
+		put_bh(sbi->s_group_desc[i]);
 	kfree(sbi->s_group_desc);
 	percpu_counter_destroy(&sbi->s_freeblocks_counter);
 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
 	percpu_counter_destroy(&sbi->s_dirs_counter);
-	brelse(sbi->s_sbh);
+	put_bh(sbi->s_sbh);
 #ifdef CONFIG_QUOTA
 	for (i = 0; i < MAXQUOTAS; i++)
 		kfree(sbi->s_qf_names[i]);
@@ -1759,7 +1759,7 @@ failed_mount3:
 	percpu_counter_destroy(&sbi->s_dirs_counter);
 failed_mount2:
 	for (i = 0; i < db_count; i++)
-		brelse(sbi->s_group_desc[i]);
+		put_bh(sbi->s_group_desc[i]);
 	kfree(sbi->s_group_desc);
 failed_mount:
 #ifdef CONFIG_QUOTA
@@ -1767,7 +1767,7 @@ failed_mount:
 		kfree(sbi->s_qf_names[i]);
 #endif
 	ext3_blkdev_remove(sbi);
-	brelse(bh);
+	put_bh(bh);
 out_fail:
 	sb->s_fs_info = NULL;
 	kfree(sbi);
@@ -1885,19 +1885,19 @@ static journal_t *ext3_get_dev_journal(s
 	      EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)) {
 		printk(KERN_ERR "EXT3-fs: external journal has "
 					"bad superblock\n");
-		brelse(bh);
+		put_bh(bh);
 		goto out_bdev;
 	}
 
 	if (memcmp(EXT3_SB(sb)->s_es->s_journal_uuid, es->s_uuid, 16)) {
 		printk(KERN_ERR "EXT3-fs: journal UUID does not match\n");
-		brelse(bh);
+		put_bh(bh);
 		goto out_bdev;
 	}
 
 	len = le32_to_cpu(es->s_blocks_count);
 	start = sb_block + 1;
-	brelse(bh);	/* we're done with the superblock */
+	put_bh(bh);	/* we're done with the superblock */
 
 	journal = journal_init_dev(bdev, sb->s_bdev,
 					start, len, blocksize);
@@ -2590,7 +2590,7 @@ static ssize_t ext3_quota_read(struct su
 			memset(data, 0, tocopy);
 		else
 			memcpy(data, bh->b_data+offset, tocopy);
-		brelse(bh);
+		put_bh(bh);
 		offset = 0;
 		toread -= tocopy;
 		data += tocopy;
@@ -2624,7 +2624,7 @@ static ssize_t ext3_quota_write(struct s
 		if (journal_quota) {
 			err = ext3_journal_get_write_access(handle, bh);
 			if (err) {
-				brelse(bh);
+				put_bh(bh);
 				goto out;
 			}
 		}
@@ -2639,7 +2639,7 @@ static ssize_t ext3_quota_write(struct s
 			err = ext3_journal_dirty_data(handle, bh);
 			mark_buffer_dirty(bh);
 		}
-		brelse(bh);
+		put_bh(bh);
 		if (err)
 			goto out;
 		offset = 0;
diff -puN fs/ext3/xattr.c~ext3_replace_brelse_to_put_bh fs/ext3/xattr.c
--- linux-2.6.18-rc4/fs/ext3/xattr.c~ext3_replace_brelse_to_put_bh	2006-08-10 23:04:20.000000000 -0700
+++ linux-2.6.18-rc4-ming/fs/ext3/xattr.c	2006-08-11 16:01:07.007585602 -0700
@@ -256,7 +256,7 @@ bad_block:	ext3_error(inode->i_sb, __FUN
 	error = size;
 
 cleanup:
-	brelse(bh);
+	put_bh(bh);
 	return error;
 }
 
@@ -299,7 +299,7 @@ ext3_xattr_ibody_get(struct inode *inode
 	error = size;
 
 cleanup:
-	brelse(iloc.bh);
+	put_bh(iloc.bh);
 	return error;
 }
 
@@ -384,7 +384,7 @@ ext3_xattr_block_list(struct inode *inod
 	error = ext3_xattr_list_entries(inode, BFIRST(bh), buffer, buffer_size);
 
 cleanup:
-	brelse(bh);
+	put_bh(bh);
 
 	return error;
 }
@@ -413,7 +413,7 @@ ext3_xattr_ibody_list(struct inode *inod
 					buffer, buffer_size);
 
 cleanup:
-	brelse(iloc.bh);
+	put_bh(iloc.bh);
 	return error;
 }
 
@@ -836,7 +836,7 @@ getblk_failed:
 cleanup:
 	if (ce)
 		mb_cache_entry_release(ce);
-	brelse(new_bh);
+	put_bh(new_bh);
 	if (!(bs->bh && s->base == bs->bh->b_data))
 		kfree(s->base);
 
@@ -1019,8 +1019,8 @@ ext3_xattr_set_handle(handle_t *handle, 
 	}
 
 cleanup:
-	brelse(is.iloc.bh);
-	brelse(bs.bh);
+	put_bh(is.iloc.bh);
+	put_bh(bs.bh);
 	up_write(&EXT3_I(inode)->xattr_sem);
 	return error;
 }
@@ -1092,7 +1092,7 @@ ext3_xattr_delete_inode(handle_t *handle
 	EXT3_I(inode)->i_file_acl = 0;
 
 cleanup:
-	brelse(bh);
+	put_bh(bh);
 }
 
 /*
@@ -1223,7 +1223,7 @@ again:
 			*pce = ce;
 			return bh;
 		}
-		brelse(bh);
+		put_bh(bh);
 		ce = mb_cache_entry_find_next(ce, 0, inode->i_sb->s_bdev, hash);
 	}
 	return NULL;
diff -puN fs/jbd/checkpoint.c~ext3_replace_brelse_to_put_bh fs/jbd/checkpoint.c
--- linux-2.6.18-rc4/fs/jbd/checkpoint.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.637008493 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/checkpoint.c	2006-08-11 16:01:07.150569115 -0700
@@ -99,7 +99,7 @@ static int __try_to_free_cp_buf(struct j
 		jbd_unlock_bh_state(bh);
 		journal_remove_journal_head(bh);
 		BUFFER_TRACE(bh, "release");
-		__brelse(bh);
+		put_bh(bh);
 	} else {
 		jbd_unlock_bh_state(bh);
 	}
@@ -189,7 +189,7 @@ restart:
 			wait_on_buffer(bh);
 			/* the journal_head may have gone by now */
 			BUFFER_TRACE(bh, "brelse");
-			__brelse(bh);
+			put_bh(bh);
 			spin_lock(&journal->j_list_lock);
 			goto restart;
 		}
@@ -200,7 +200,7 @@ restart:
 		released = __journal_remove_checkpoint(jh);
 		jbd_unlock_bh_state(bh);
 		journal_remove_journal_head(bh);
-		__brelse(bh);
+		put_bh(bh);
 	}
 }
 
@@ -216,7 +216,7 @@ __flush_batch(journal_t *journal, struct
 		struct buffer_head *bh = bhs[i];
 		clear_buffer_jwrite(bh);
 		BUFFER_TRACE(bh, "brelse");
-		__brelse(bh);
+		put_bh(bh);
 	}
 	*batch_count = 0;
 }
@@ -243,7 +243,7 @@ static int __process_buffer(journal_t *j
 		wait_on_buffer(bh);
 		/* the journal_head may have gone by now */
 		BUFFER_TRACE(bh, "brelse");
-		__brelse(bh);
+		put_bh(bh);
 		ret = 1;
 	} else if (jh->b_transaction != NULL) {
 		transaction_t *t = jh->b_transaction;
@@ -261,7 +261,7 @@ static int __process_buffer(journal_t *j
 		spin_unlock(&journal->j_list_lock);
 		jbd_unlock_bh_state(bh);
 		journal_remove_journal_head(bh);
-		__brelse(bh);
+		put_bh(bh);
 		ret = 1;
 	} else {
 		/*
diff -puN fs/jbd/commit.c~ext3_replace_brelse_to_put_bh fs/jbd/commit.c
--- linux-2.6.18-rc4/fs/jbd/commit.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.701001113 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/commit.c	2006-08-11 16:01:07.183565310 -0700
@@ -68,14 +68,14 @@ static void release_buffer_page(struct b
 		goto nope;
 
 	page_cache_get(page);
-	__brelse(bh);
+	put_bh(bh);
 	try_to_free_buffers(page);
 	unlock_page(page);
 	page_cache_release(page);
 	return;
 
 nope:
-	__brelse(bh);
+	put_bh(bh);
 }
 
 /*
@@ -642,7 +642,7 @@ wait_for_iobuf:
 		 */
 		BUFFER_TRACE(bh, "dumping temporary bh");
 		journal_put_journal_head(jh);
-		__brelse(bh);
+		put_bh(bh);
 		J_ASSERT_BH(bh, atomic_read(&bh->b_count) == 0);
 		free_buffer_head(bh);
 
@@ -663,7 +663,7 @@ wait_for_iobuf:
 		   IO to complete */
 		wake_up_bit(&bh->b_state, BH_Unshadow);
 		JBUFFER_TRACE(jh, "brelse shadowed buffer");
-		__brelse(bh);
+		put_bh(bh);
 	}
 
 	J_ASSERT (commit_transaction->t_shadow_list == NULL);
@@ -691,7 +691,7 @@ wait_for_iobuf:
 		clear_buffer_jwrite(bh);
 		journal_unfile_buffer(journal, jh);
 		journal_put_journal_head(jh);
-		__brelse(bh);		/* One for getblk */
+		put_bh(bh);		/* One for getblk */
 		/* AKPM: bforget here */
 	}
 
diff -puN fs/jbd/journal.c~ext3_replace_brelse_to_put_bh fs/jbd/journal.c
--- linux-2.6.18-rc4/fs/jbd/journal.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.763993849 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/journal.c	2006-08-11 16:01:07.241558622 -0700
@@ -805,7 +805,7 @@ journal_t * journal_init_inode (struct i
 static void journal_fail_superblock (journal_t *journal)
 {
 	struct buffer_head *bh = journal->j_sb_buffer;
-	brelse(bh);
+	put_bh(bh);
 	journal->j_sb_buffer = NULL;
 }
 
@@ -890,7 +890,7 @@ int journal_create(journal_t *journal)
 		BUFFER_TRACE(bh, "marking uptodate");
 		set_buffer_uptodate(bh);
 		unlock_buffer(bh);
-		__brelse(bh);
+		put_bh(bh);
 	}
 
 	sync_blockdev(journal->j_dev);
@@ -1146,7 +1146,7 @@ void journal_destroy(journal_t *journal)
 	journal->j_tail_sequence = ++journal->j_transaction_sequence;
 	if (journal->j_sb_buffer) {
 		journal_update_superblock(journal, 1);
-		brelse(journal->j_sb_buffer);
+		put_bh(journal->j_sb_buffer);
 	}
 
 	if (journal->j_inode)
@@ -1810,7 +1810,7 @@ static void __journal_remove_journal_hea
 			bh->b_private = NULL;
 			jh->b_bh = NULL;	/* debug, really */
 			clear_buffer_jbd(bh);
-			__brelse(bh);
+			put_bh(bh);
 			journal_free_journal_head(jh);
 		} else {
 			BUFFER_TRACE(bh, "journal_head was locked");
@@ -1827,8 +1827,8 @@ static void __journal_remove_journal_hea
  * We in fact take an additional increment on ->b_count as a convenience,
  * because the caller usually wants to do additional things with the bh
  * after calling here.
- * The caller of journal_remove_journal_head() *must* run __brelse(bh) at some
- * time.  Once the caller has run __brelse(), the buffer is eligible for
+ * The caller of journal_remove_journal_head() *must* run put_bh(bh) at some
+ * time.  Once the caller has run put_bh(), the buffer is eligible for
  * reaping by try_to_free_buffers().
  */
 void journal_remove_journal_head(struct buffer_head *bh)
@@ -1851,7 +1851,7 @@ void journal_put_journal_head(struct jou
 	--jh->b_jcount;
 	if (!jh->b_jcount && !jh->b_transaction) {
 		__journal_remove_journal_head(bh);
-		__brelse(bh);
+		put_bh(bh);
 	}
 	jbd_unlock_bh_journal_head(bh);
 }
diff -puN fs/jbd/recovery.c~ext3_replace_brelse_to_put_bh fs/jbd/recovery.c
--- linux-2.6.18-rc4/fs/jbd/recovery.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.823986931 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/recovery.c	2006-08-11 16:01:07.266555740 -0700
@@ -108,7 +108,7 @@ static int do_readahead(journal_t *journ
 				nbufs = 0;
 			}
 		} else
-			brelse(bh);
+			put_bh(bh);
 	}
 
 	if (nbufs)
@@ -165,7 +165,7 @@ static int jread(struct buffer_head **bh
 	if (!buffer_uptodate(bh)) {
 		printk (KERN_ERR "JBD: Failed to read block at offset %u\n",
 			offset);
-		brelse(bh);
+		put_bh(bh);
 		return -EIO;
 	}
 
@@ -388,7 +388,7 @@ static int do_one_pass(journal_t *journa
 		tmp = (journal_header_t *)bh->b_data;
 
 		if (tmp->h_magic != cpu_to_be32(JFS_MAGIC_NUMBER)) {
-			brelse(bh);
+			put_bh(bh);
 			break;
 		}
 
@@ -398,7 +398,7 @@ static int do_one_pass(journal_t *journa
 			  blocktype, sequence);
 
 		if (sequence != next_commit_ID) {
-			brelse(bh);
+			put_bh(bh);
 			break;
 		}
 
@@ -415,7 +415,7 @@ static int do_one_pass(journal_t *journa
 				next_log_block +=
 					count_tags(bh, journal->j_blocksize);
 				wrap(journal, next_log_block);
-				brelse(bh);
+				put_bh(bh);
 				continue;
 			}
 
@@ -454,7 +454,7 @@ static int do_one_pass(journal_t *journa
 					if (journal_test_revoke
 					    (journal, blocknr,
 					     next_commit_ID)) {
-						brelse(obh);
+						put_bh(obh);
 						++info->nr_revoke_hits;
 						goto skip_write;
 					}
@@ -469,8 +469,8 @@ static int do_one_pass(journal_t *journa
 						       "JBD: Out of memory "
 						       "during recovery.\n");
 						err = -ENOMEM;
-						brelse(bh);
-						brelse(obh);
+						put_bh(bh);
+						put_bh(obh);
 						goto failed;
 					}
 
@@ -489,8 +489,8 @@ static int do_one_pass(journal_t *journa
 					++info->nr_replays;
 					/* ll_rw_block(WRITE, 1, &nbh); */
 					unlock_buffer(nbh);
-					brelse(obh);
-					brelse(nbh);
+					put_bh(obh);
+					put_bh(nbh);
 				}
 
 			skip_write:
@@ -502,14 +502,14 @@ static int do_one_pass(journal_t *journa
 					break;
 			}
 
-			brelse(bh);
+			put_bh(bh);
 			continue;
 
 		case JFS_COMMIT_BLOCK:
 			/* Found an expected commit block: not much to
 			 * do other than move on to the next sequence
 			 * number. */
-			brelse(bh);
+			put_bh(bh);
 			next_commit_ID++;
 			continue;
 
@@ -517,13 +517,13 @@ static int do_one_pass(journal_t *journa
 			/* If we aren't in the REVOKE pass, then we can
 			 * just skip over this block. */
 			if (pass != PASS_REVOKE) {
-				brelse(bh);
+				put_bh(bh);
 				continue;
 			}
 
 			err = scan_revoke_records(journal, bh,
 						  next_commit_ID, info);
-			brelse(bh);
+			put_bh(bh);
 			if (err)
 				goto failed;
 			continue;
@@ -531,7 +531,7 @@ static int do_one_pass(journal_t *journa
 		default:
 			jbd_debug(3, "Unrecognised magic %d, end of scan.\n",
 				  blocktype);
-			brelse(bh);
+			put_bh(bh);
 			goto done;
 		}
 	}
diff -puN fs/jbd/revoke.c~ext3_replace_brelse_to_put_bh fs/jbd/revoke.c
--- linux-2.6.18-rc4/fs/jbd/revoke.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.883980012 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/revoke.c	2006-08-11 16:01:07.292552742 -0700
@@ -380,7 +380,7 @@ int journal_revoke(handle_t *handle, uns
 		if (!J_EXPECT_BH(bh, !buffer_revoked(bh),
 				 "inconsistent data on disk")) {
 			if (!bh_in)
-				brelse(bh);
+				put_bh(bh);
 			return -EIO;
 		}
 		set_buffer_revoked(bh);
@@ -390,7 +390,7 @@ int journal_revoke(handle_t *handle, uns
 			journal_forget(handle, bh_in);
 		} else {
 			BUFFER_TRACE(bh, "call brelse");
-			__brelse(bh);
+			put_bh(bh);
 		}
 	}
 
@@ -468,7 +468,7 @@ int journal_cancel_revoke(handle_t *hand
 		if (bh2) {
 			if (bh2 != bh)
 				clear_buffer_revoked(bh2);
-			__brelse(bh2);
+			put_bh(bh2);
 		}
 	}
 	return did_revoke;
diff -puN fs/jbd/transaction.c~ext3_replace_brelse_to_put_bh fs/jbd/transaction.c
--- linux-2.6.18-rc4/fs/jbd/transaction.c~ext3_replace_brelse_to_put_bh	2006-08-11 16:00:02.948972518 -0700
+++ linux-2.6.18-rc4-ming/fs/jbd/transaction.c	2006-08-11 16:01:07.356545363 -0700
@@ -1068,7 +1068,7 @@ no_journal:
 	jbd_unlock_bh_state(bh);
 	if (need_brelse) {
 		BUFFER_TRACE(bh, "brelse");
-		__brelse(bh);
+		put_bh(bh);
 	}
 	JBUFFER_TRACE(jh, "exit");
 	journal_put_journal_head(jh);
@@ -1254,7 +1254,7 @@ int journal_forget (handle_t *handle, st
 		} else {
 			__journal_unfile_buffer(jh);
 			journal_remove_journal_head(bh);
-			__brelse(bh);
+			put_bh(bh);
 			if (!buffer_jbd(bh)) {
 				spin_unlock(&journal->j_list_lock);
 				jbd_unlock_bh_state(bh);
@@ -1281,7 +1281,7 @@ int journal_forget (handle_t *handle, st
 not_jbd:
 	spin_unlock(&journal->j_list_lock);
 	jbd_unlock_bh_state(bh);
-	__brelse(bh);
+	put_bh(bh);
 drop:
 	if (drop_reserve) {
 		/* no need to reserve log space for this block -bzzz */
@@ -1577,7 +1577,7 @@ __journal_try_to_free_buffer(journal_t *
 			JBUFFER_TRACE(jh, "release data");
 			__journal_unfile_buffer(jh);
 			journal_remove_journal_head(bh);
-			__brelse(bh);
+			put_bh(bh);
 		}
 	} else if (jh->b_cp_transaction != 0 && jh->b_transaction == 0) {
 		/* written-back checkpointed metadata buffer */
@@ -1585,7 +1585,7 @@ __journal_try_to_free_buffer(journal_t *
 			JBUFFER_TRACE(jh, "remove from checkpoint list");
 			__journal_remove_checkpoint(jh);
 			journal_remove_journal_head(bh);
-			__brelse(bh);
+			put_bh(bh);
 		}
 	}
 	spin_unlock(&journal->j_list_lock);
@@ -1690,7 +1690,7 @@ static int __dispose_buffer(struct journ
 	} else {
 		JBUFFER_TRACE(jh, "on running transaction");
 		journal_remove_journal_head(bh);
-		__brelse(bh);
+		put_bh(bh);
 	}
 	return may_free;
 }
@@ -2075,5 +2075,5 @@ void journal_refile_buffer(journal_t *jo
 	journal_remove_journal_head(bh);
 
 	spin_unlock(&journal->j_list_lock);
-	__brelse(bh);
+	put_bh(bh);
 }

_


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux