All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Max Kellermann <mk@cm4all.com>
Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org,
	trond.myklebust@hammerspace.com, bfields@redhat.com,
	tytso@mit.edu, viro@zeniv.linux.org.uk, agruenba@redhat.com,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v3 4/4] nfs/super: check NFS_CAP_ACLS instead of the NFS version
Date: Fri, 17 Apr 2020 00:53:48 -0700	[thread overview]
Message-ID: <20200417075348.GD598@infradead.org> (raw)
In-Reply-To: <20200407142243.2032-4-mk@cm4all.com>

On Tue, Apr 07, 2020 at 04:22:43PM +0200, Max Kellermann wrote:
> This sets SB_POSIXACL only if ACL support is really enabled, instead
> of always setting SB_POSIXACL if the NFS protocol version
> theoretically supports ACL.
> 
> The code comment says "We will [apply the umask] ourselves", but that
> happens in posix_acl_create() only if the kernel has POSIX ACL
> support.  Without it, posix_acl_create() is an empty dummy function.
> 
> So let's not pretend we will apply the umask if we can already know
> that we will never.
> 
> This fixes a problem where the umask is always ignored in the NFS
> client when compiled without CONFIG_FS_POSIX_ACL.  This is a 4 year
> old regression caused by commit 013cdf1088d723 which itself was not
> completely wrong, but failed to consider all the side effects by
> misdesigned VFS code.
> 
> Signed-off-by: Max Kellermann <mk@cm4all.com>
> Reviewed-by: J. Bruce Fields <bfields@redhat.com>
> Cc: stable@vger.kernel.org
> ---
>  fs/nfs/super.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/nfs/super.c b/fs/nfs/super.c
> index dada09b391c6..dab79193f641 100644
> --- a/fs/nfs/super.c
> +++ b/fs/nfs/super.c
> @@ -977,11 +977,14 @@ static void nfs_fill_super(struct super_block *sb, struct nfs_fs_context *ctx)
>  	if (ctx && ctx->bsize)
>  		sb->s_blocksize = nfs_block_size(ctx->bsize, &sb->s_blocksize_bits);
>  
> -	if (server->nfs_client->rpc_ops->version != 2) {
> +	if (NFS_SB(sb)->caps & NFS_CAP_ACLS) {
>  		/* The VFS shouldn't apply the umask to mode bits. We will do
>  		 * so ourselves when necessary.
>  		 */
>  		sb->s_flags |= SB_POSIXACL;
> +	}

Looks good, but I'd use the opportunity to also fix up the commen to be
a little less cryptic:

	/*
	 * If the server supports ACLs, the VFS shouldn't apply the umask to
	 * the mode bits as we'll do it ourselves when necessary.
	 */
	if (NFS_SB(sb)->caps & NFS_CAP_ACLS)
		sb->s_flags |= SB_POSIXACL;

  reply	other threads:[~2020-04-17  7:53 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-07 14:22 [PATCH v3 1/4] fs/posix_acl: apply umask if superblock disables ACL support Max Kellermann
2020-04-07 14:22 ` [PATCH v3 2/4] fs/ext4/acl: apply umask if ACL support is disabled Max Kellermann
2020-04-17  7:50   ` Christoph Hellwig
2020-04-07 14:22 ` [PATCH v3 3/4] linux/fs.h: fix umask on NFS with CONFIG_FS_POSIX_ACL=n Max Kellermann
2020-04-17  7:51   ` Christoph Hellwig
2020-04-07 14:22 ` [PATCH v3 4/4] nfs/super: check NFS_CAP_ACLS instead of the NFS version Max Kellermann
2020-04-17  7:53   ` Christoph Hellwig [this message]
2020-04-17  7:35 ` [PATCH v3 1/4] fs/posix_acl: apply umask if superblock disables ACL support Christoph Hellwig

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=20200417075348.GD598@infradead.org \
    --to=hch@infradead.org \
    --cc=agruenba@redhat.com \
    --cc=bfields@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=mk@cm4all.com \
    --cc=stable@vger.kernel.org \
    --cc=trond.myklebust@hammerspace.com \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    /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 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.