This reverts commit
4a47c6385bb4e0786826e75bd4555aba32953653.
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>
persistent and could change even while the overlay filesystem is mounted, as
summarized in the `Inode properties`_ table above.
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
---------------------------------
Changes to underlying filesystems
---------------------------------
struct dentry *dentry, struct inode *inode,
const char *name, void *buffer, size_t size)
{
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);
}
return ovl_xattr_get(dentry, inode, handler->name, buffer, size);
}
struct posix_acl *acl = NULL;
int err;
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);
/* Check that everything is OK before copy-up */
if (value) {
acl = posix_acl_from_xattr(&init_user_ns, value, size);
-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 = { };
static int ovl_fill_super(struct super_block *sb, void *data, int silent)
{
struct path upperpath = { };
sb->s_xattr = ofs->config.userxattr ? ovl_user_xattr_handlers :
ovl_trusted_xattr_handlers;
sb->s_fs_info = ofs;
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;
sb->s_iflags |= SB_I_SKIP_SYNC;
err = -ENOMEM;