propagating file change attr for setacl
This commit is contained in:
parent
cdf31d3ee0
commit
13c3723191
3 changed files with 13 additions and 0 deletions
|
|
@ -785,13 +785,21 @@ static int handle_setacl(nfs41_upcall *upcall)
|
|||
nfs_error_string(status));
|
||||
status = nfs_to_windows_error(status, ERROR_NOT_SUPPORTED);
|
||||
}
|
||||
args->ctime = info.change;
|
||||
if (args->query & DACL_SECURITY_INFORMATION)
|
||||
free(nfs4_acl.aces);
|
||||
out:
|
||||
return status;
|
||||
}
|
||||
|
||||
static int marshall_setacl(unsigned char *buffer, uint32_t *length, nfs41_upcall *upcall)
|
||||
{
|
||||
setacl_upcall_args *args = &upcall->args.setacl;
|
||||
return safe_write(&buffer, length, &args->ctime, sizeof(args->ctime));
|
||||
}
|
||||
|
||||
const nfs41_upcall_op nfs41_op_setacl = {
|
||||
parse_setacl,
|
||||
handle_setacl,
|
||||
marshall_setacl
|
||||
};
|
||||
|
|
@ -170,6 +170,7 @@ typedef struct __getacl_upcall_args {
|
|||
typedef struct __setacl_upcall_args {
|
||||
SECURITY_INFORMATION query;
|
||||
PSECURITY_DESCRIPTOR sec_desc;
|
||||
ULONGLONG ctime;
|
||||
} setacl_upcall_args;
|
||||
|
||||
typedef union __upcall_args {
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@ typedef struct _updowncall_entry {
|
|||
SECURITY_INFORMATION query;
|
||||
PVOID buf;
|
||||
DWORD buf_len;
|
||||
ULONGLONG ChangeTime;
|
||||
} Acl;
|
||||
} u;
|
||||
|
||||
|
|
@ -1821,6 +1822,9 @@ NTSTATUS nfs41_downcall(
|
|||
case NFS41_EA_SET:
|
||||
unmarshal_nfs41_setattr(cur, &cur->u.SetEa.ChangeTime, &buf);
|
||||
break;
|
||||
case NFS41_ACL_SET:
|
||||
unmarshal_nfs41_setattr(cur, &cur->u.Acl.ChangeTime, &buf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
DbgP("[downcall] About to signal waiting IO thread\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue