@ -161,11 +161,12 @@ nfsd4_get_nfs4_acl(struct svc_rqst *rqstp, struct dentry *dentry,
size + = 2 * dpacl - > a_count ;
}
* acl = nfs4_acl_new ( size ) ;
* acl = kmalloc ( nfs4_acl_bytes ( size ) , GFP_KERNEL ) ;
if ( * acl = = NULL ) {
error = - ENOMEM ;
goto out ;
}
( * acl ) - > naces = 0 ;
_posix_to_nfsv4_one ( pacl , * acl , flags & ~ NFS4_ACL_TYPE_DEFAULT ) ;
@ -872,16 +873,13 @@ ace2type(struct nfs4_ace *ace)
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 ;
acl = kmalloc ( sizeof ( * acl ) + n * sizeof ( struct nfs4_ace ) , GFP_KERNEL ) ;
if ( acl = = NULL )
return NULL ;
acl - > naces = 0 ;
return acl ;
return sizeof ( struct nfs4_acl ) + entries * sizeof ( struct nfs4_ace ) ;
}
static struct {