xfs
[Top] [All Lists]

Fix xfs_ichgtime mainline breakage.

To: xfs-dev <xfs-dev@xxxxxxx>
Subject: Fix xfs_ichgtime mainline breakage.
From: David Chinner <dgc@xxxxxxx>
Date: Mon, 3 Dec 2007 18:43:45 +1100
Cc: xfs-oss <xfs@xxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
Folks,

Just noticed with the mainline merge (2.6.24-rc3) to xfs-dev that
xfs_ichgtime + xfs_ichgtime_fast are broken.

        if (!(inode->i_state & I_SYNC))
                mark_inode_dirty_sync(inode);

that check used to be against I_LOCK, which was arguably broken,
but this one will mean newly created files are not put on the dirty
list and hence not written back by pdflush.

Patch to fix this attached.

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

---
 fs/xfs/linux-2.6/xfs_iops.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_iops.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/linux-2.6/xfs_iops.c      2007-12-03 
18:39:52.000000000 +1100
+++ 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_iops.c   2007-12-03 18:40:54.408998073 
+1100
@@ -134,7 +134,7 @@ xfs_ichgtime(
         */
        SYNCHRONIZE();
        ip->i_update_core = 1;
-       if (!(inode->i_state & I_SYNC))
+       if (!(inode->i_state & I_NEW))
                mark_inode_dirty_sync(inode);
 }
 
@@ -186,7 +186,7 @@ xfs_ichgtime_fast(
         */
        SYNCHRONIZE();
        ip->i_update_core = 1;
-       if (!(inode->i_state & I_SYNC))
+       if (!(inode->i_state & I_NEW))
                mark_inode_dirty_sync(inode);
 }
 


<Prev in Thread] Current Thread [Next in Thread>