| From 85124b3724c78e1aaf81b88aa15a2106a332abac Mon Sep 17 00:00:00 2001 |
| From: Tyler Hicks <tyhicks@canonical.com> |
| Date: Tue, 7 Feb 2012 17:55:40 -0600 |
| Subject: [PATCH] eCryptfs: Copy up lower inode attrs after setting lower xattr |
| |
| commit 545d680938be1e86a6c5250701ce9abaf360c495 upstream. |
| |
| 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> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| fs/ecryptfs/inode.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c |
| index 168706e90e3f..532b97bb1f15 100644 |
| --- a/fs/ecryptfs/inode.c |
| +++ b/fs/ecryptfs/inode.c |
| @@ -1057,6 +1057,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; |
| } |
| -- |
| 1.8.5.2 |
| |