Commit bcaab953 authored by J. Bruce Fields's avatar J. Bruce Fields

nfsd4: remove nfs4_acl_new

This is a not-that-useful kmalloc wrapper.  And I'd like one of the
callers to actually use something other than kmalloc.
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 29c353b3
...@@ -47,7 +47,7 @@ struct svc_rqst; ...@@ -47,7 +47,7 @@ struct svc_rqst;
#define NFS4_ACL_MAX ((PAGE_SIZE - sizeof(struct nfs4_acl)) \ #define NFS4_ACL_MAX ((PAGE_SIZE - sizeof(struct nfs4_acl)) \
/ sizeof(struct nfs4_ace)) / sizeof(struct nfs4_ace))
struct nfs4_acl *nfs4_acl_new(int); int nfs4_acl_bytes(int entries);
int nfs4_acl_get_whotype(char *, u32); int nfs4_acl_get_whotype(char *, u32);
__be32 nfs4_acl_write_who(struct xdr_stream *xdr, int who); __be32 nfs4_acl_write_who(struct xdr_stream *xdr, int who);
......
...@@ -161,11 +161,12 @@ nfsd4_get_nfs4_acl(struct svc_rqst *rqstp, struct dentry *dentry, ...@@ -161,11 +161,12 @@ nfsd4_get_nfs4_acl(struct svc_rqst *rqstp, struct dentry *dentry,
size += 2 * dpacl->a_count; size += 2 * dpacl->a_count;
} }
*acl = nfs4_acl_new(size); *acl = kmalloc(nfs4_acl_bytes(size), GFP_KERNEL);
if (*acl == NULL) { if (*acl == NULL) {
error = -ENOMEM; error = -ENOMEM;
goto out; goto out;
} }
(*acl)->naces = 0;
_posix_to_nfsv4_one(pacl, *acl, flags & ~NFS4_ACL_TYPE_DEFAULT); _posix_to_nfsv4_one(pacl, *acl, flags & ~NFS4_ACL_TYPE_DEFAULT);
...@@ -872,16 +873,13 @@ ace2type(struct nfs4_ace *ace) ...@@ -872,16 +873,13 @@ ace2type(struct nfs4_ace *ace)
return -1; return -1;
} }
struct nfs4_acl * /*
nfs4_acl_new(int n) * return the size of the struct nfs4_acl required to represent an acl
* with @entries entries.
*/
int nfs4_acl_bytes(int entries)
{ {
struct nfs4_acl *acl; return sizeof(struct nfs4_acl) + entries * sizeof(struct nfs4_ace);
acl = kmalloc(sizeof(*acl) + n*sizeof(struct nfs4_ace), GFP_KERNEL);
if (acl == NULL)
return NULL;
acl->naces = 0;
return acl;
} }
static struct { static struct {
......
...@@ -309,7 +309,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, ...@@ -309,7 +309,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
if (nace > NFS4_ACL_MAX) if (nace > NFS4_ACL_MAX)
return nfserr_fbig; return nfserr_fbig;
*acl = nfs4_acl_new(nace); *acl = kmalloc(nfs4_acl_bytes(nace), GFP_KERNEL);
if (*acl == NULL) if (*acl == NULL)
return nfserr_jukebox; return nfserr_jukebox;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment