author | Linus Torvalds <torvalds@linux-foundation.org> | |
Sat, 15 Oct 2016 00:23:33 +0000 (17:23 -0700) | ||
committer | Linus Torvalds <torvalds@linux-foundation.org> | |
Sat, 15 Oct 2016 00:23:33 +0000 (17:23 -0700) |
Pull overlayfs updates from Miklos Szeredi:
"This update contains fixes to the "use mounter's permission to access
underlying layers" area, and miscellaneous other fixes and cleanups.
No new features this time"
* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
ovl: use vfs_get_link()
vfs: add vfs_get_link() helper
ovl: use generic_readlink
ovl: explain error values when removing acl from workdir
ovl: Fix info leak in ovl_lookup_temp()
ovl: during copy up, switch to mounter's creds early
ovl: lookup: do getxattr with mounter's permission
ovl: copy_up_xattr(): use strnlen
"This update contains fixes to the "use mounter's permission to access
underlying layers" area, and miscellaneous other fixes and cleanups.
No new features this time"
* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
ovl: use vfs_get_link()
vfs: add vfs_get_link() helper
ovl: use generic_readlink
ovl: explain error values when removing acl from workdir
ovl: Fix info leak in ovl_lookup_temp()
ovl: during copy up, switch to mounter's creds early
ovl: lookup: do getxattr with mounter's permission
ovl: copy_up_xattr(): use strnlen
1 | 2 | |||
---|---|---|---|---|
fs/namei.c | patch | | diff1 | | diff2 | | blob | history |
fs/overlayfs/copy_up.c | patch | | diff1 | | diff2 | | blob | history |
fs/overlayfs/dir.c | patch | | diff1 | | diff2 | | blob | history |
fs/overlayfs/inode.c | patch | | diff1 | | diff2 | | blob | history |
fs/overlayfs/super.c | patch | | diff1 | | diff2 | | blob | history |
include/linux/fs.h | patch | | diff1 | | diff2 | | blob | history |
diff --cc fs/namei.c
Simple merge
diff --cc fs/overlayfs/copy_up.c
index 3f803b3a1f8295b9d9d3f903cc9f1198c6910f4a,e9d4013ed3c6ac1649116f620d603292339c5453..aeb60f791418d6d6cba59f2dc743e8b8c71d5297
+++ b/fs/overlayfs/copy_up.c
ssize_t list_size, size, value_size = 0;
char *buf, *name, *value = NULL;
int uninitialized_var(error);
+ size_t slen;
- if (!old->d_inode->i_op->getxattr ||
- !new->d_inode->i_op->getxattr)
+ if (!(old->d_inode->i_opflags & IOP_XATTR) ||
+ !(new->d_inode->i_opflags & IOP_XATTR))
return 0;
list_size = vfs_listxattr(old, NULL, 0);
diff --cc fs/overlayfs/dir.c
Simple merge
diff --cc fs/overlayfs/inode.c
index c18d6a4ff456bfd57015eebc0e0c083246d55fb0,bc6d261db669f21f569c434f74655670f53c8111..c58f01babf30e7ecbfe86ab0862a8c8171734866
+++ b/fs/overlayfs/inode.c
static const struct inode_operations ovl_symlink_inode_operations = {
.setattr = ovl_setattr,
.get_link = ovl_get_link,
- .readlink = ovl_readlink,
+ .readlink = generic_readlink,
.getattr = ovl_getattr,
- .setxattr = generic_setxattr,
- .getxattr = generic_getxattr,
.listxattr = ovl_listxattr,
- .removexattr = generic_removexattr,
.update_time = ovl_update_time,
};
diff --cc fs/overlayfs/super.c
Simple merge
diff --cc include/linux/fs.h
Simple merge