On Wed, 2007-07-04 at 10:56 +0530, Aneesh Kumar K.V wrote: > > Aneesh Kumar K.V wrote: > > > > > If we bump i_version in ext4_mark_iloc_dity then we should be removing > > the i_version update > > at other places. A simple grep of ext4 dir shows i_version being updated > > followed by ext4_mark_inode_dirty. > > > > > > How about the below patch. I also removed the i_version = 1 from > ext4_new_inode because we do the same in ext4_alloc_inode. I also added > the From: line. > Acked. Ha, I actually just finished on a incremental patch to cleanup redundant i_version update.:) But I missed the ext4_new_inode(). Thanks. I will replace this patch in the ext4 patch queue > -aneesh > > From ccdfc4a6a8edbdbf5d21d32fd2350f36399a89f8 Mon Sep 17 00:00:00 2001 > From: Jean Noel Cordenner <jean-noel.cordenner@xxxxxxxx> > Date: Wed, 4 Jul 2007 10:51:50 +0530 > Subject: [PATCH] This patch is on top of i_version_update_vfs. > The i_version field of the inode is set on inode creation and incremented when > the inode is being modified. > > Signed-off-by: Jean Noel Cordenner <jean-noel.cordenner@xxxxxxxx> > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Mingming Cao <cmm@xxxxxxxxxx> > --- > fs/ext4/inode.c | 1 + > fs/ext4/namei.c | 4 ---- > fs/ext4/super.c | 1 - > 3 files changed, 1 insertions(+), 5 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index cb9f1f4..cd3e886 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -3084,6 +3084,7 @@ int ext4_mark_iloc_dirty(handle_t *handle, > { > int err = 0; > > + inode->i_version++; > /* the do_update_inode consumes one bh->b_count */ > get_bh(iloc->bh); > > diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c > index 477b6d2..a1dc5ef 100644 > --- a/fs/ext4/namei.c > +++ b/fs/ext4/namei.c > @@ -1287,7 +1287,6 @@ static int add_dirent_to_buf(handle_t *handle, struct dentry *dentry, > */ > dir->i_mtime = dir->i_ctime = ext4_current_time(dir); > ext4_update_dx_flag(dir); > - dir->i_version++; > ext4_mark_inode_dirty(handle, dir); > BUFFER_TRACE(bh, "call ext4_journal_dirty_metadata"); > err = ext4_journal_dirty_metadata(handle, bh); > @@ -1606,7 +1605,6 @@ static int ext4_delete_entry (handle_t *handle, > le16_to_cpu(de->rec_len)); > else > de->inode = 0; > - dir->i_version++; > BUFFER_TRACE(bh, "call ext4_journal_dirty_metadata"); > ext4_journal_dirty_metadata(handle, bh); > return 0; > @@ -2039,7 +2037,6 @@ static int ext4_rmdir (struct inode * dir, struct dentry *dentry) > ext4_warning (inode->i_sb, "ext4_rmdir", > "empty directory has nlink!=2 (%d)", > inode->i_nlink); > - inode->i_version++; > clear_nlink(inode); > /* There's no need to set i_disksize: the fact that i_nlink is > * zero will ensure that the right thing happens during any > @@ -2284,7 +2281,6 @@ static int ext4_rename (struct inode * old_dir, struct dentry *old_dentry, > if (EXT4_HAS_INCOMPAT_FEATURE(new_dir->i_sb, > EXT4_FEATURE_INCOMPAT_FILETYPE)) > new_de->file_type = old_de->file_type; > - new_dir->i_version++; > BUFFER_TRACE(new_bh, "call ext4_journal_dirty_metadata"); > ext4_journal_dirty_metadata(handle, new_bh); > brelse(new_bh); > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 914c273..55b99b3 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -2846,7 +2846,6 @@ out: > i_size_write(inode, off+len-towrite); > EXT4_I(inode)->i_disksize = inode->i_size; > } > - inode->i_version++; > inode->i_mtime = inode->i_ctime = CURRENT_TIME; > ext4_mark_inode_dirty(handle, inode); > mutex_unlock(&inode->i_mutex); - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html