]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Revert "UBUNTU: SAUCE: overlayfs: Skip permission checking for trusted.overlayfs...
authorTim Gardner <tim.gardner@canonical.com>
Wed, 23 Nov 2016 16:13:25 +0000 (09:13 -0700)
committerTim Gardner <tim.gardner@canonical.com>
Mon, 20 Feb 2017 03:57:58 +0000 (20:57 -0700)
This reverts commit acb0bcdbf914e0786352fd5c547c91b19327b225.

Causes FTBS

Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
fs/overlayfs/overlayfs.h
fs/xattr.c
include/linux/xattr.h

index f14fb7b56b094ca49845652dbb674569435c7863..8af450b0e57a2d826f289d87a1ace6db2d8e7d73 100644 (file)
@@ -89,13 +89,7 @@ static inline int ovl_do_symlink(struct inode *dir, struct dentry *dentry,
 static inline int ovl_do_setxattr(struct dentry *dentry, const char *name,
                                  const void *value, size_t size, int flags)
 {
-       struct inode *inode = dentry->d_inode;
-       int err;
-
-       inode_lock(inode);
-       err = __vfs_setxattr_noperm(dentry, name, value, size, flags);
-       inode_unlock(inode);
-
+       int err = vfs_setxattr(dentry, name, value, size, flags);
        pr_debug("setxattr(%pd2, \"%s\", \"%*s\", 0x%x) = %i\n",
                 dentry, name, (int) size, (char *) value, flags, err);
        return err;
@@ -103,13 +97,7 @@ static inline int ovl_do_setxattr(struct dentry *dentry, const char *name,
 
 static inline int ovl_do_removexattr(struct dentry *dentry, const char *name)
 {
-       struct inode *inode = dentry->d_inode;
-       int err;
-
-       inode_lock(inode);
-       err = __vfs_removexattr_noperm(dentry, name);
-       inode_unlock(inode);
-
+       int err = vfs_removexattr(dentry, name);
        pr_debug("removexattr(%pd2, \"%s\") = %i\n", dentry, name, err);
        return err;
 }
index 0a9857ffc10d9e49b0185bcc173991b7a28025b4..7e3317cf4045523a7d0b17f102d51775808a8950 100644 (file)
@@ -202,7 +202,6 @@ int __vfs_setxattr_noperm(struct dentry *dentry, const char *name,
 
        return error;
 }
-EXPORT_SYMBOL_GPL(__vfs_setxattr_noperm);
 
 
 int
@@ -365,36 +364,6 @@ vfs_listxattr(struct dentry *dentry, char *list, size_t size)
 }
 EXPORT_SYMBOL_GPL(vfs_listxattr);
 
-/**
- *  __vfs_removexattr_noperm - perform removexattr operation without
- *  performing permission checks.
- *
- *  @dentry - object to perform setxattr on
- *  @name - xattr name to set
- *
- *  returns the result of the internal setxattr or setsecurity operations.
- *
- *  This function requires the caller to lock the inode's i_mutex before it
- *  is executed. It also assumes that the caller will make the appropriate
- *  permission checks.
- */
-int __vfs_removexattr_noperm(struct dentry *dentry, const char *name)
-{
-       struct inode *inode = dentry->d_inode;
-       int error = -EOPNOTSUPP;
-
-       if (inode->i_op->removexattr) {
-               error = inode->i_op->removexattr(dentry, name);
-               if (!error) {
-                       fsnotify_xattr(dentry);
-                       evm_inode_post_removexattr(dentry, name);
-               }
-       }
-
-       return error;
-}
-EXPORT_SYMBOL_GPL(__vfs_removexattr_noperm);
-
 int
 __vfs_removexattr(struct dentry *dentry, const char *name)
 {
@@ -425,7 +394,7 @@ vfs_removexattr(struct dentry *dentry, const char *name)
        if (error)
                goto out;
 
-       error = __vfs_removexattr_noperm(dentry, name);
+       error = __vfs_removexattr(dentry, name);
 
        if (!error) {
                fsnotify_xattr(dentry);
index 6fb2dfcaf99ab1199be42312c7c9fb314f137e10..e77605a0c8da34ec14807fe912d1a5ed45ad999d 100644 (file)
@@ -53,7 +53,6 @@ int __vfs_setxattr(struct dentry *, struct inode *, const char *, const void *,
 int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
 int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int);
 int __vfs_removexattr(struct dentry *, const char *);
-int __vfs_removexattr_noperm(struct dentry *dentry, const char *name);
 int vfs_removexattr(struct dentry *, const char *);
 
 ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);