OSDN Git Service

jfs: set i_ctime when setting ACL
authorDave Kleikamp <dave.kleikamp@oracle.com>
Thu, 13 Feb 2014 21:40:13 +0000 (15:40 -0600)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Thu, 13 Feb 2014 21:56:05 +0000 (15:56 -0600)
This fixes a regression in 3.14-rc1 where xfstests generic/307 fails.

jfs sets the ctime on the inode when writing an xattr. Previously,
jfs went ahead and stored an acl that can be completely represented
in the traditional permission bits, so the ctime was always set in
the xattr code. The new code doesn't bother storing the acl in that
case, thus the ctime isn't getting set.

Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Reported-by: Michael L. Semon <mlsemon35@gmail.com>
fs/jfs/acl.c

index e973b85..5a8ea16 100644 (file)
@@ -86,6 +86,8 @@ static int __jfs_set_acl(tid_t tid, struct inode *inode, int type,
                rc = posix_acl_equiv_mode(acl, &inode->i_mode);
                if (rc < 0)
                        return rc;
+               inode->i_ctime = CURRENT_TIME;
+               mark_inode_dirty(inode);
                if (rc == 0)
                        acl = NULL;
                break;