diff options
Diffstat (limited to 'source4/ntvfs')
-rw-r--r-- | source4/ntvfs/posix/pvfs_acl.c | 11 | ||||
-rw-r--r-- | source4/ntvfs/posix/pvfs_acl_nfs4.c | 8 |
2 files changed, 14 insertions, 5 deletions
diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c index 2070fd105c4..730ad484ce8 100644 --- a/source4/ntvfs/posix/pvfs_acl.c +++ b/source4/ntvfs/posix/pvfs_acl.c @@ -287,6 +287,7 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, uid_t new_uid = -1; gid_t new_gid = -1; struct id_map *ids; + struct composite_context *ctx; if (pvfs->acl_ops != NULL) { status = pvfs->acl_ops->acl_load(pvfs, name, fd, req, &sd); @@ -317,8 +318,9 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, } if (!dom_sid_equal(sd->owner_sid, new_sd->owner_sid)) { ids->sid = new_sd->owner_sid; - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, - ids, 1); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || @@ -335,8 +337,9 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs, } if (!dom_sid_equal(sd->group_sid, new_sd->group_sid)) { ids->sid = new_sd->group_sid; - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, - ids, 1); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx, ids, 1, ids); + NT_STATUS_HAVE_NO_MEMORY(ctx); + status = wbc_sids_to_xids_recv(ctx, &ids); NT_STATUS_NOT_OK_RETURN(status); if (ids->xid.type == ID_TYPE_BOTH || diff --git a/source4/ntvfs/posix/pvfs_acl_nfs4.c b/source4/ntvfs/posix/pvfs_acl_nfs4.c index bf4d9c27210..bb88cbc051e 100644 --- a/source4/ntvfs/posix/pvfs_acl_nfs4.c +++ b/source4/ntvfs/posix/pvfs_acl_nfs4.c @@ -124,6 +124,7 @@ static NTSTATUS pvfs_acl_save_nfs4(struct pvfs_state *pvfs, struct pvfs_filename int i; TALLOC_CTX *tmp_ctx; struct id_map *ids; + struct composite_context *ctx; tmp_ctx = talloc_new(pvfs); NT_STATUS_HAVE_NO_MEMORY(tmp_ctx); @@ -158,7 +159,12 @@ static NTSTATUS pvfs_acl_save_nfs4(struct pvfs_state *pvfs, struct pvfs_filename ids[i].status = ID_UNKNOWN; } - status = wbc_sids_to_xids(pvfs->wbc_ctx->event_ctx, ids, acl.a_count); + ctx = wbc_sids_to_xids_send(pvfs->wbc_ctx,ids, acl.a_count, ids); + if (ctx == NULL) { + talloc_free(tmp_ctx); + return NT_STATUS_NO_MEMORY; + } + status = wbc_sids_to_xids_recv(ctx, &ids); if (!NT_STATUS_IS_OK(status)) { talloc_free(tmp_ctx); return status; |