mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
NFSv3: Fix return value of nfs3_proc_setacls
nfs3_proc_setacls is used internally by the NFSv3 create operations to set the acl after the file has been created. If the operation fails because the server doesn't support acls, then it must return '0', not -EOPNOTSUPP. Reported-by: Russell King <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Cc: Christoph Hellwig <[email protected]> Tested-by: Takashi Iwai <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
This commit is contained in:
parent
d4c42fb493
commit
8f493b9cfc
1 changed files with 11 additions and 2 deletions
|
|
@ -113,7 +113,7 @@ getout:
|
|||
return ERR_PTR(status);
|
||||
}
|
||||
|
||||
int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
|
||||
static int __nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
|
||||
struct posix_acl *dfacl)
|
||||
{
|
||||
struct nfs_server *server = NFS_SERVER(inode);
|
||||
|
|
@ -198,6 +198,15 @@ out:
|
|||
return status;
|
||||
}
|
||||
|
||||
int nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
|
||||
struct posix_acl *dfacl)
|
||||
{
|
||||
int ret;
|
||||
ret = __nfs3_proc_setacls(inode, acl, dfacl);
|
||||
return (ret == -EOPNOTSUPP) ? 0 : ret;
|
||||
|
||||
}
|
||||
|
||||
int nfs3_set_acl(struct inode *inode, struct posix_acl *acl, int type)
|
||||
{
|
||||
struct posix_acl *alloc = NULL, *dfacl = NULL;
|
||||
|
|
@ -225,7 +234,7 @@ int nfs3_set_acl(struct inode *inode, struct posix_acl *acl, int type)
|
|||
if (IS_ERR(alloc))
|
||||
goto fail;
|
||||
}
|
||||
status = nfs3_proc_setacls(inode, acl, dfacl);
|
||||
status = __nfs3_proc_setacls(inode, acl, dfacl);
|
||||
posix_acl_release(alloc);
|
||||
return status;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue