diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-11-10 11:28:48 -0500 |
---|---|---|
committer | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-11-19 20:05:47 -0500 |
commit | a49762fd119d191dcbb2f638a2dbc2ed53f4e2bb (patch) | |
tree | 5cd999854d4b156c7bcd901694998e60b479f6e8 /fs/nilfs2 | |
parent | e2073e78575e3690ea3cce67b11b7b1de8e85fd3 (diff) |
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 <konishi.ryusuke@lab.ntt.co.jp>
Diffstat (limited to 'fs/nilfs2')
-rw-r--r-- | fs/nilfs2/inode.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 2a0a5a3ac134..412b25a7d345 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) | |||
525 | 525 | ||
526 | raw_inode = nilfs_ifile_map_inode(sbi->s_ifile, ino, ibh); | 526 | raw_inode = nilfs_ifile_map_inode(sbi->s_ifile, ino, ibh); |
527 | 527 | ||
528 | /* The buffer is guarded with lock_buffer() by the caller */ | ||
529 | if (test_and_clear_bit(NILFS_I_NEW, &ii->i_state)) | 528 | if (test_and_clear_bit(NILFS_I_NEW, &ii->i_state)) |
530 | memset(raw_inode, 0, NILFS_MDT(sbi->s_ifile)->mi_entry_size); | 529 | memset(raw_inode, 0, NILFS_MDT(sbi->s_ifile)->mi_entry_size); |
531 | set_bit(NILFS_I_INODE_DIRTY, &ii->i_state); | 530 | set_bit(NILFS_I_INODE_DIRTY, &ii->i_state); |
@@ -745,9 +744,7 @@ int nilfs_mark_inode_dirty(struct inode *inode) | |||
745 | "failed to reget inode block.\n"); | 744 | "failed to reget inode block.\n"); |
746 | return err; | 745 | return err; |
747 | } | 746 | } |
748 | lock_buffer(ibh); | ||
749 | nilfs_update_inode(inode, ibh); | 747 | nilfs_update_inode(inode, ibh); |
750 | unlock_buffer(ibh); | ||
751 | nilfs_mdt_mark_buffer_dirty(ibh); | 748 | nilfs_mdt_mark_buffer_dirty(ibh); |
752 | nilfs_mdt_mark_dirty(sbi->s_ifile); | 749 | nilfs_mdt_mark_dirty(sbi->s_ifile); |
753 | brelse(ibh); | 750 | brelse(ibh); |