diff options
author | Tyler Hicks <tyhicks@canonical.com> | 2012-02-07 17:55:40 -0600 |
---|---|---|
committer | Tyler Hicks <tyhicks@canonical.com> | 2012-02-16 16:06:27 -0600 |
commit | 545d680938be1e86a6c5250701ce9abaf360c495 (patch) | |
tree | c2cb3c9cfbee7c041d137296b72f311179a41f0c /fs/ecryptfs | |
parent | 4a26620df451ad46151ad21d711ed43e963c004e (diff) | |
download | lwn-545d680938be1e86a6c5250701ce9abaf360c495.tar.gz lwn-545d680938be1e86a6c5250701ce9abaf360c495.zip |
eCryptfs: Copy up lower inode attrs after setting lower xattr
After passing through a ->setxattr() call, eCryptfs needs to copy the
inode attributes from the lower inode to the eCryptfs inode, as they
may have changed in the lower filesystem's ->setxattr() path.
One example is if an extended attribute containing a POSIX Access
Control List is being set. The new ACL may cause the lower filesystem to
modify the mode of the lower inode and the eCryptfs inode would need to
be updated to reflect the new mode.
https://launchpad.net/bugs/926292
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Reported-by: Sebastien Bacher <seb128@ubuntu.com>
Cc: John Johansen <john.johansen@canonical.com>
Cc: <stable@vger.kernel.org>
Diffstat (limited to 'fs/ecryptfs')
-rw-r--r-- | fs/ecryptfs/inode.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 19892d7d2ed1..ab35b113003b 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c @@ -1085,6 +1085,8 @@ ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value, } rc = vfs_setxattr(lower_dentry, name, value, size, flags); + if (!rc) + fsstack_copy_attr_all(dentry->d_inode, lower_dentry->d_inode); out: return rc; } |