omfs: rename() needs to mark old_inode dirty after ctime update
Al Viro [Fri, 4 Mar 2011 06:14:55 +0000 (01:14 -0500)]
we *do* mark it dirty before, but it doesn't guarantee that we
don't get preempted just before assignment to ->i_ctime, with
inode getting written out before we get CPU back...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Bob Copeland <me@bobcopeland.com>

fs/omfs/dir.c

index 393f3f6..9990fc8 100644 (file)
@@ -423,6 +423,7 @@ static int omfs_rename(struct inode *old_dir, struct dentry *old_dentry,
                goto out;
 
        old_inode->i_ctime = CURRENT_TIME_SEC;
+       mark_inode_dirty(old_inode);
 out:
        return err;
 }