Skip to content

Commit

Permalink
Revert "ovl: turn of SB_POSIXACL with idmapped layers temporarily"
Browse files Browse the repository at this point in the history
This reverts commit 4a47c63.

Now that we have a proper fix for POSIX ACLs with overlayfs on top of
idmapped layers revert the temporary fix.

Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
  • Loading branch information
Christian Brauner committed Jul 15, 2022
1 parent 1aa5fef commit 7c4d37c
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 28 deletions.
4 changes: 0 additions & 4 deletions Documentation/filesystems/overlayfs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -466,10 +466,6 @@ overlay filesystem and the value of st_ino for filesystem objects may not be
persistent and could change even while the overlay filesystem is mounted, as
summarized in the `Inode properties`_ table above.

4) "idmapped mounts"
When the upper or lower layers are idmapped mounts overlayfs will be mounted
without support for POSIX Access Control Lists (ACLs). This limitation will
eventually be lifted.

Changes to underlying filesystems
---------------------------------
Expand Down
25 changes: 1 addition & 24 deletions fs/overlayfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1003,9 +1003,6 @@ ovl_posix_acl_xattr_get(const struct xattr_handler *handler,
struct dentry *dentry, struct inode *inode,
const char *name, void *buffer, size_t size)
{
if (!IS_POSIXACL(inode))
return -EOPNOTSUPP;

return ovl_xattr_get(dentry, inode, handler->name, buffer, size);
}

Expand All @@ -1021,9 +1018,6 @@ ovl_posix_acl_xattr_set(const struct xattr_handler *handler,
struct posix_acl *acl = NULL;
int err;

if (!IS_POSIXACL(inode))
return -EOPNOTSUPP;

/* Check that everything is OK before copy-up */
if (value) {
acl = posix_acl_from_xattr(&init_user_ns, value, size);
Expand Down Expand Up @@ -1966,20 +1960,6 @@ static struct dentry *ovl_get_root(struct super_block *sb,
return root;
}

static bool ovl_has_idmapped_layers(struct ovl_fs *ofs)
{

unsigned int i;
const struct vfsmount *mnt;

for (i = 0; i < ofs->numlayer; i++) {
mnt = ofs->layers[i].mnt;
if (mnt && is_idmapped_mnt(mnt))
return true;
}
return false;
}

static int ovl_fill_super(struct super_block *sb, void *data, int silent)
{
struct path upperpath = { };
Expand Down Expand Up @@ -2149,10 +2129,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
sb->s_xattr = ofs->config.userxattr ? ovl_user_xattr_handlers :
ovl_trusted_xattr_handlers;
sb->s_fs_info = ofs;
if (ovl_has_idmapped_layers(ofs))
pr_warn("POSIX ACLs are not yet supported with idmapped layers, mounting without ACL support.\n");
else
sb->s_flags |= SB_POSIXACL;
sb->s_flags |= SB_POSIXACL;
sb->s_iflags |= SB_I_SKIP_SYNC;

err = -ENOMEM;
Expand Down

0 comments on commit 7c4d37c

Please sign in to comment.