From: Ryusuke Konishi Date: Tue, 10 Nov 2009 16:28:48 +0000 (+0900) Subject: nilfs2: remove buffer locking in nilfs_mark_inode_dirty X-Git-Tag: v2.6.33-rc1~322^2~44 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;ds=sidebyside;h=a49762fd119d191dcbb2f638a2dbc2ed53f4e2bb;p=safe%2Fjmp%2Flinux-2.6 nilfs2: remove buffer locking in nilfs_mark_inode_dirty This lock is eliminable because inodes on the buffer can be updated independently. Although a log writer also fills in bmap data on the on-disk inodes, this update is exclusively done by a log writer lock. Signed-off-by: Ryusuke Konishi --- diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 2a0a5a3..412b25a 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c @@ -525,7 +525,6 @@ void nilfs_update_inode(struct inode *inode, struct buffer_head *ibh) raw_inode = nilfs_ifile_map_inode(sbi->s_ifile, ino, ibh); - /* The buffer is guarded with lock_buffer() by the caller */ if (test_and_clear_bit(NILFS_I_NEW, &ii->i_state)) memset(raw_inode, 0, NILFS_MDT(sbi->s_ifile)->mi_entry_size); set_bit(NILFS_I_INODE_DIRTY, &ii->i_state); @@ -745,9 +744,7 @@ int nilfs_mark_inode_dirty(struct inode *inode) "failed to reget inode block.\n"); return err; } - lock_buffer(ibh); nilfs_update_inode(inode, ibh); - unlock_buffer(ibh); nilfs_mdt_mark_buffer_dirty(ibh); nilfs_mdt_mark_dirty(sbi->s_ifile); brelse(ibh);