All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] overlayfs: ignore empty NFSv4 ACLs in ext4 upperdir
@ 2016-12-05  0:51 Patrick Plagwitz
  2016-12-05  9:28 ` Miklos Szeredi
  0 siblings, 1 reply; 56+ messages in thread
From: Patrick Plagwitz @ 2016-12-05  0:51 UTC (permalink / raw)
  To: linux-unionfs, miklos

Mounting an overlayfs with an NFSv4 lowerdir and an ext4 upperdir causes copy_up operations, specifically the function copy_up.c:ovl_copy_xattr, to fail with EOPNOTSUPP.
For example, having the following folders:

|- nfs <- NFSv4 is mounted here
|--|- folder
|- root <- ext4 is mounted here
|- work <- also ext4
|- merged <- overlay is mounted here with
             lowerdir=nfs,upperdir=root,workdir=work

And calling
# touch merged/folder/file
will print
touch: cannot touch 'merged/folder/file': Operation not supported

This is because NFS returns the xattr system.nfs4_acl with an empty value even if no NFS ACLs are in use in the lower filesystem. Trying to set this xattr in the upperdir
fails because ext4 does not support it.

Fix this by explicitly checking for the name of the xattr and an empty value and ignoring EOPNOTSUPP if both things match.

Signed-off-by: Patrick Plagwitz <patrick_plagwitz@web.de>
---
Maybe NFS could be changed to not return empty system.nfs4_acl values, I don't know. In any case, to support upperdir ext4 + lowerdir NFSv4, returning the error code from
vfs_setxattr with this xattr name must be avoided as long as the value is empty.

diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
index 36795ee..505b86e 100644
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -123,6 +123,9 @@ int ovl_copy_xattr(struct dentry *old, struct dentry *new)
                        continue; /* Discard */
                }
                error = vfs_setxattr(new, name, value, size, 0);
+               if (error == -EOPNOTSUPP && *value == '\0' &&
+                               strcmp(name, "system.nfs4_acl") == 0)
+                       error = 0;
                if (error)
                        break;
        }

^ permalink raw reply related	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2019-09-18 19:49 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-05  0:51 [PATCH] overlayfs: ignore empty NFSv4 ACLs in ext4 upperdir Patrick Plagwitz
2016-12-05  9:28 ` Miklos Szeredi
     [not found]   ` <CAJfpeguwUtRWRGmNmimNp-FXzWqMCCQMb24iWPu0w_J0_rOnnw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-12-05 15:19     ` J. Bruce Fields
2016-12-05 15:19       ` J. Bruce Fields
2016-12-05 15:36       ` Miklos Szeredi
2016-12-05 16:25         ` J. Bruce Fields
2016-12-05 18:25           ` Patrick Plagwitz
     [not found]           ` <20161205162559.GB17517-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2016-12-05 19:37             ` Andreas Grünbacher
2016-12-05 19:37               ` Andreas Grünbacher
2016-12-05 22:58               ` Patrick Plagwitz
     [not found]                 ` <266c571f-e4e2-7c61-5ee2-8ece0c2d06e9-S0/GAf8tV78@public.gmane.org>
2016-12-05 23:19                   ` Andreas Grünbacher
2016-12-05 23:19                     ` Andreas Grünbacher
2016-12-05 23:19                     ` Andreas Grünbacher
2016-12-05 23:24                     ` Andreas Grünbacher
2016-12-05 23:24                       ` Andreas Grünbacher
2016-12-06 10:08                       ` Miklos Szeredi
2016-12-06 10:08                         ` Miklos Szeredi
     [not found]                         ` <CAJfpegvRFGOc31gVuYzanzWJ=mYSgRgtAaPhYNxZwHin3Wc0Gw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-12-06 13:18                           ` Andreas Gruenbacher
2016-12-06 13:18                             ` Andreas Gruenbacher
     [not found]                             ` <CAHc6FU4JQ28BFZE9_8A06gtkMvvKDzFmw9=ceNPYvnMXEimDMw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-12-06 18:58                               ` J. Bruce Fields
2016-12-06 18:58                                 ` J. Bruce Fields
2019-05-02  2:02                                 ` NeilBrown
2019-05-02  2:54                                   ` Amir Goldstein
2019-05-02  3:57                                     ` NeilBrown
2019-05-02 14:04                                       ` Andreas Gruenbacher
2019-05-02 14:28                                         ` Miklos Szeredi
2019-05-02 15:08                                           ` Andreas Grünbacher
2019-05-02 17:16                                             ` J. Bruce Fields
2019-05-02 17:53                                               ` Andreas Gruenbacher
2019-05-02 23:04                                           ` NeilBrown
2019-05-02 23:04                                             ` NeilBrown
2019-05-02 23:24                                         ` NeilBrown
2019-05-02 23:24                                           ` NeilBrown
2019-05-03  6:54                                           ` Andreas Grünbacher
2019-05-02 17:26                                       ` Goetz, Patrick G
2019-05-02 17:44                                         ` Andreas Gruenbacher
2019-05-02 17:51                                           ` Goetz, Patrick G
2019-05-03 15:27                                             ` J. Bruce Fields
2019-05-03 17:39                                               ` Goetz, Patrick G
2019-05-02  4:35                                   ` [PATCH] OVL: add honoracl=off mount option NeilBrown
2019-05-02  5:08                                     ` Randy Dunlap
2019-05-02 11:46                                     ` Amir Goldstein
2019-05-02 23:19                                       ` NeilBrown
2019-05-02 23:19                                         ` NeilBrown
2019-05-02 13:47                                     ` J. R. Okajima
2019-05-03 15:35                                   ` [PATCH] overlayfs: ignore empty NFSv4 ACLs in ext4 upperdir J. Bruce Fields
2019-05-03 17:26                                     ` Amir Goldstein
2019-05-03 17:31                                       ` J. Bruce Fields
2019-05-03 17:41                                         ` Amir Goldstein
2019-05-03 17:51                                           ` Vivek Goyal
2019-05-07  0:24                                     ` NeilBrown
2019-05-10 20:09                                       ` J. Bruce Fields
2019-09-18  9:07                                         ` Miklos Szeredi
2019-09-18 19:49                                           ` J. Bruce Fields
2019-05-07  8:07                                     ` Miklos Szeredi
2019-05-07 23:51                                       ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.