From: Malahal Naineni <malahal@us.ibm.com>
To: Trond Myklebust <trondmy@gmail.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfs: handle servers that support only ALLOW ACE type.
Date: Fri, 24 Jan 2014 12:56:52 -0600 [thread overview]
Message-ID: <20140124185652.GA15292@us.ibm.com> (raw)
In-Reply-To: <1390586285.2927.16.camel@leira.trondhjem.org>
[-- Attachment #1: Type: text/plain, Size: 1404 bytes --]
Trond Myklebust [trondmy@gmail.com] wrote:
> On Fri, 2014-01-24 at 11:19 -0600, Malahal Naineni wrote:
> > Currently we support ACLs if the NFS server file system supports both
> > ALLOW and DENY ACE types. This patch makes the Linux client work with
> > ACLs even if the server supports only 'ALLOW' ACE type.
> >
> > Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
> > ---
> > fs/nfs/nfs4proc.c | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
> > index 15052b8..e3b8fa6 100644
> > --- a/fs/nfs/nfs4proc.c
> > +++ b/fs/nfs/nfs4proc.c
> > @@ -4321,9 +4321,8 @@ static int nfs4_proc_renew(struct nfs_client *clp, struct rpc_cred *cred)
> >
> > static inline int nfs4_server_supports_acls(struct nfs_server *server)
> > {
> > - return (server->caps & NFS_CAP_ACLS)
> > - && (server->acl_bitmask & ACL4_SUPPORT_ALLOW_ACL)
> > - && (server->acl_bitmask & ACL4_SUPPORT_DENY_ACL);
> > + return server->caps & NFS_CAP_ACLS &&
> > + server->acl_bitmask & ACL4_SUPPORT_ALLOW_ACL;
> > }
> >
> > /* Assuming that XATTR_SIZE_MAX is a multiple of PAGE_SIZE, and that
>
> Wait... Having looked at the code a bit more carefully. Is there any
> reason to set NFS_CAP_ACLS at all if we don't see server->acl_bitmask &
> ACL4_SUPPORT_ALLOW_ACL?
I don't see any. Something like the attached patch should work!
Regards, Malahal.
[-- Attachment #2: 0001-nfs-handle-servers-that-support-only-ALLOW-ACE-type.patch --]
[-- Type: text/x-diff, Size: 1582 bytes --]
>From 7b949e7906d40704c4ae28a06f4c501161cb5a99 Mon Sep 17 00:00:00 2001
From: Malahal Naineni <malahal@us.ibm.com>
Date: Thu, 23 Jan 2014 08:54:55 -0600
Subject: [PATCH] nfs: handle servers that support only ALLOW ACE type.
Currently we support ACLs if the NFS server file system supports both
ALLOW and DENY ACE types. This patch makes the Linux client work with
ACLs even if the server supports only 'ALLOW' ACE type.
Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
---
fs/nfs/nfs4proc.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 15052b8..b007559 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2744,7 +2744,8 @@ static int _nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *f
NFS_CAP_OWNER_GROUP|NFS_CAP_ATIME|
NFS_CAP_CTIME|NFS_CAP_MTIME|
NFS_CAP_SECURITY_LABEL);
- if (res.attr_bitmask[0] & FATTR4_WORD0_ACL)
+ if (res.attr_bitmask[0] & FATTR4_WORD0_ACL &&
+ res.acl_bitmask & ACL4_SUPPORT_ALLOW_ACL)
server->caps |= NFS_CAP_ACLS;
if (res.has_links != 0)
server->caps |= NFS_CAP_HARDLINKS;
@@ -4321,9 +4322,7 @@ static int nfs4_proc_renew(struct nfs_client *clp, struct rpc_cred *cred)
static inline int nfs4_server_supports_acls(struct nfs_server *server)
{
- return (server->caps & NFS_CAP_ACLS)
- && (server->acl_bitmask & ACL4_SUPPORT_ALLOW_ACL)
- && (server->acl_bitmask & ACL4_SUPPORT_DENY_ACL);
+ return server->caps & NFS_CAP_ACLS;
}
/* Assuming that XATTR_SIZE_MAX is a multiple of PAGE_SIZE, and that
--
1.8.3.1
prev parent reply other threads:[~2014-01-24 18:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-24 3:50 [PATCH] nfs: handle servers that support either ALLOW or DENY ACE types Malahal Naineni
2014-01-24 5:31 ` Trond Myklebust
2014-01-24 14:28 ` Malahal Naineni
2014-01-24 16:11 ` Trond Myklebust
2014-01-24 17:17 ` Malahal Naineni
2014-01-24 17:19 ` [PATCH] nfs: handle servers that support only ALLOW ACE type Malahal Naineni
2014-01-24 17:58 ` Trond Myklebust
2014-01-24 18:56 ` Malahal Naineni [this message]
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=20140124185652.GA15292@us.ibm.com \
--to=malahal@us.ibm.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trondmy@gmail.com \
/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