1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

Prepare the gpfs acl module for the api change in get_nt_acl().

This moves functionality from gpfsacl_get_nt_acl_common()
back to gpfsacl_get_nt_acl() and gpfsacl_fget_nt_acl(),
making both these functions more specific (calling the
corresponding fsp- and non-fsp functions).
gpfsacl_get_nt_acl_common(). is removed.

Michael
(This used to be commit d6043c1066)
This commit is contained in:
Michael Adam 2007-11-16 18:33:39 +01:00
parent c650857fac
commit 010056a5e6

View File

@ -226,8 +226,9 @@ static int gpfs_get_nfs4_acl(const char *fname, SMB4ACL_T **ppacl)
return 0;
}
static NTSTATUS gpfsacl_get_nt_acl_common(files_struct *fsp,
uint32 security_info, SEC_DESC **ppdesc)
static NTSTATUS gpfsacl_fget_nt_acl(vfs_handle_struct *handle,
files_struct *fsp, int fd, uint32 security_info,
SEC_DESC **ppdesc)
{
SMB4ACL_T *pacl = NULL;
int result;
@ -247,18 +248,26 @@ static NTSTATUS gpfsacl_get_nt_acl_common(files_struct *fsp,
return map_nt_error_from_unix(errno);
}
NTSTATUS gpfsacl_fget_nt_acl(vfs_handle_struct *handle,
files_struct *fsp, int fd, uint32 security_info,
SEC_DESC **ppdesc)
{
return gpfsacl_get_nt_acl_common(fsp, security_info, ppdesc);
}
NTSTATUS gpfsacl_get_nt_acl(vfs_handle_struct *handle,
static NTSTATUS gpfsacl_get_nt_acl(vfs_handle_struct *handle,
files_struct *fsp, const char *name,
uint32 security_info, SEC_DESC **ppdesc)
{
return gpfsacl_get_nt_acl_common(fsp, security_info, ppdesc);
SMB4ACL_T *pacl = NULL;
int result;
*ppdesc = NULL;
result = gpfs_get_nfs4_acl(fsp->fsp_name, &pacl);
if (result == 0)
return smb_get_nt_acl_nfs4(handle->conn, name, security_info, ppdesc, pacl);
if (result > 0) {
DEBUG(10, ("retrying with posix acl...\n"));
return posix_get_nt_acl(handle->conn, name, security_info, ppdesc);
}
/* GPFS ACL was not read, something wrong happened, error code is set in errno */
return map_nt_error_from_unix(errno);
}
static bool gpfsacl_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)