From: OGAWA Hirofumi Some mark_inode_dirty() is unneeded. Those are already detached (it's not written) or change a ->i_nlink count only (fatfs don't have). Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton --- 25-akpm/fs/msdos/namei.c | 11 +++-------- 25-akpm/fs/vfat/namei.c | 10 +++------- 2 files changed, 6 insertions(+), 15 deletions(-) diff -puN fs/msdos/namei.c~fat-remove-unneed-mark_inode_dirty fs/msdos/namei.c --- 25/fs/msdos/namei.c~fat-remove-unneed-mark_inode_dirty Sun Mar 6 17:13:28 2005 +++ 25-akpm/fs/msdos/namei.c Sun Mar 6 17:13:28 2005 @@ -354,7 +354,6 @@ static int msdos_rmdir(struct inode *dir inode->i_nlink = 0; inode->i_ctime = CURRENT_TIME_SEC; fat_detach(inode); - mark_inode_dirty(inode); out: unlock_kernel(); @@ -403,7 +402,7 @@ static int msdos_mkdir(struct inode *dir /* the directory was completed, just return a error */ goto out; } - inode->i_nlink = 2; /* no need to mark them dirty */ + inode->i_nlink = 2; inode->i_mtime = inode->i_atime = inode->i_ctime = ts; /* timestamp is already written, so mark_inode_dirty() is unneeded. */ @@ -437,7 +436,6 @@ static int msdos_unlink(struct inode *di inode->i_nlink = 0; inode->i_ctime = CURRENT_TIME_SEC; fat_detach(inode); - mark_inode_dirty(inode); out: unlock_kernel(); @@ -544,7 +542,6 @@ static int do_msdos_rename(struct inode if (new_inode) { new_inode->i_nlink--; new_inode->i_ctime = ts; - mark_inode_dirty(new_inode); } if (is_dir) { int start = MSDOS_I(new_dir)->i_logstart; @@ -552,12 +549,10 @@ static int do_msdos_rename(struct inode dotdot_de->starthi = cpu_to_le16(start >> 16); mark_buffer_dirty(dotdot_bh); - if (new_inode) { + if (new_inode) new_inode->i_nlink--; - } else { + else new_dir->i_nlink++; - mark_inode_dirty(new_dir); - } } out: brelse(dotdot_bh); diff -puN fs/vfat/namei.c~fat-remove-unneed-mark_inode_dirty fs/vfat/namei.c --- 25/fs/vfat/namei.c~fat-remove-unneed-mark_inode_dirty Sun Mar 6 17:13:28 2005 +++ 25-akpm/fs/vfat/namei.c Sun Mar 6 17:13:28 2005 @@ -803,7 +803,6 @@ static int vfat_rmdir(struct inode *dir, inode->i_nlink = 0; inode->i_mtime = inode->i_atime = CURRENT_TIME_SEC; fat_detach(inode); - mark_inode_dirty(inode); out: unlock_kernel(); @@ -828,7 +827,6 @@ static int vfat_unlink(struct inode *dir inode->i_nlink = 0; inode->i_mtime = inode->i_atime = CURRENT_TIME_SEC; fat_detach(inode); - mark_inode_dirty(inode); out: unlock_kernel(); @@ -865,7 +863,7 @@ static int vfat_mkdir(struct inode *dir, goto out; } inode->i_version++; - inode->i_nlink = 2; /* no need to mark them dirty */ + inode->i_nlink = 2; inode->i_mtime = inode->i_atime = inode->i_ctime = ts; /* timestamp is already written, so mark_inode_dirty() is unneeded. */ @@ -964,12 +962,10 @@ static int vfat_rename(struct inode *old if (new_dir->i_sb->s_flags & MS_SYNCHRONOUS) sync_dirty_buffer(dotdot_bh); - if (new_inode) { + if (new_inode) new_inode->i_nlink--; - } else { + else new_dir->i_nlink++; - mark_inode_dirty(new_dir); - } } out: brelse(dotdot_bh); _