mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Return an error code from zfs_acl_chmod_setattr
The FreeBSD implementation can fail, allow this function to fail and add the required error handling for Linux. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Matt Macy <mmacy@FreeBSD.org> Closes #9541
This commit is contained in:
committed by
Brian Behlendorf
parent
c4ae27c763
commit
156f74fc03
@@ -1570,7 +1570,7 @@ zfs_acl_chmod(zfsvfs_t *zfsvfs, uint64_t mode, zfs_acl_t *aclp)
|
||||
list_insert_tail(&aclp->z_acl, newnode);
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
zfs_acl_chmod_setattr(znode_t *zp, zfs_acl_t **aclp, uint64_t mode)
|
||||
{
|
||||
mutex_enter(&zp->z_acl_lock);
|
||||
@@ -1581,6 +1581,8 @@ zfs_acl_chmod_setattr(znode_t *zp, zfs_acl_t **aclp, uint64_t mode)
|
||||
mutex_exit(&zp->z_lock);
|
||||
mutex_exit(&zp->z_acl_lock);
|
||||
ASSERT(*aclp);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -3252,7 +3252,8 @@ top:
|
||||
uint64_t acl_obj;
|
||||
new_mode = (pmode & S_IFMT) | (vap->va_mode & ~S_IFMT);
|
||||
|
||||
zfs_acl_chmod_setattr(zp, &aclp, new_mode);
|
||||
if ((err = zfs_acl_chmod_setattr(zp, &aclp, new_mode)))
|
||||
goto out;
|
||||
|
||||
mutex_enter(&zp->z_lock);
|
||||
if (!zp->z_is_sa && ((acl_obj = zfs_external_acl(zp)) != 0)) {
|
||||
|
||||
Reference in New Issue
Block a user