linux-unionfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miklos Szeredi <miklos@szeredi.hu>
To: Alois Wohlschlager <alois1@gmx-topmail.de>
Cc: linux-unionfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ovl: warn if trusted xattr creation fails
Date: Mon, 21 Feb 2022 12:11:47 +0100	[thread overview]
Message-ID: <YhNzc/++SHzdMXyt@miu.piliscsaba.redhat.com> (raw)
In-Reply-To: <2783448.iqOl4yHqVZ@genesis>

On Thu, Feb 03, 2022 at 12:02:46PM +0100, Alois Wohlschlager wrote:
> When mounting overlayfs in an unprivileged user namespace, trusted xattr
> creation will fail. This will lead to failures in some file operations,
> e.g. in the following situation:
> 
>   mkdir lower upper work merged
>   mkdir lower/directory
>   mount -toverlay -olowerdir=lower,upperdir=upper,workdir=work none merged
>   rmdir merged/directory
>   mkdir merged/directory
> 
> The last mkdir will fail:
> 
>   mkdir: cannot create directory 'merged/directory': Input/output error
> 
> The cause for these failures is currently extremely non-obvious and hard
> to debug. Hence, warn the user and suggest using the userxattr mount
> option, if it is not already supplied and xattr creation fails during
> the self-check.

Thanks for the patch.

How about the following (untested) variant?

Thanks,
Miklos


diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index 7bb0a47cb615..955aeefc3b29 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -1413,11 +1413,12 @@ static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
 	 */
 	err = ovl_do_setxattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE, "0", 1);
 	if (err) {
+		pr_warn("failed to set xattr on upper\n");
 		ofs->noxattr = true;
 		if (ofs->config.index || ofs->config.metacopy) {
 			ofs->config.index = false;
 			ofs->config.metacopy = false;
-			pr_warn("upper fs does not support xattr, falling back to index=off,metacopy=off.\n");
+			pr_warn("...falling back to index=off,metacopy=off.\n");
 		}
 		/*
 		 * xattr support is required for persistent st_ino.
@@ -1425,8 +1426,10 @@ static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
 		 */
 		if (ofs->config.xino == OVL_XINO_AUTO) {
 			ofs->config.xino = OVL_XINO_OFF;
-			pr_warn("upper fs does not support xattr, falling back to xino=off.\n");
+			pr_warn("...falling back to xino=off.\n");
 		}
+		if (err == -EPERM && !ofs->config.userxattr)
+			pr_info("try mounting with 'userxattr' option\n");
 		err = 0;
 	} else {
 		ovl_do_removexattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE);

  reply	other threads:[~2022-02-21 11:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-03 11:02 [PATCH] ovl: warn if trusted xattr creation fails Alois Wohlschlager
2022-02-21 11:11 ` Miklos Szeredi [this message]
2022-02-26 18:15   ` Alois Wohlschlager

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YhNzc/++SHzdMXyt@miu.piliscsaba.redhat.com \
    --to=miklos@szeredi.hu \
    --cc=alois1@gmx-topmail.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).