X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Flibnfs.c;h=c213caddb20967361549c1b0eca28e6c1ae65822;hb=a8c840e834942b6eb79d06c0bde77aedfda1836a;hp=f87752cdd2766d378f2992ec85b203e1a9871e53;hpb=10a1a78115069098419d32a042d99a56f62fb642;p=deb_libnfs.git diff --git a/lib/libnfs.c b/lib/libnfs.c index f87752c..c213cad 100644 --- a/lib/libnfs.c +++ b/lib/libnfs.c @@ -1808,6 +1808,8 @@ static void nfs_pread_mcb(struct rpc_context *rpc, int status, void *command_dat struct nfs_cb_data *data = mdata->data; struct nfs_context *nfs = data->nfs; READ3res *res; + int cb_err; + void *cb_data; assert(rpc->magic == RPC_CONTEXT_MAGIC); @@ -1906,9 +1908,11 @@ static void nfs_pread_mcb(struct rpc_context *rpc, int status, void *command_dat if (data->max_offset > data->org_offset + data->org_count) { data->max_offset = data->org_offset + data->org_count; } - data->cb(data->max_offset - data->org_offset, nfs, data->buffer + (data->org_offset - data->offset), data->private_data); + cb_err = data->max_offset - data->org_offset; + cb_data = data->buffer + (data->org_offset - data->offset); } else { - data->cb(res->READ3res_u.resok.count, nfs, res->READ3res_u.resok.data.data_val, data->private_data); + cb_err = res->READ3res_u.resok.count; + cb_data = res->READ3res_u.resok.data.data_val; } data->nfsfh->ra.fh_offset = data->max_offset; @@ -1920,6 +1924,8 @@ static void nfs_pread_mcb(struct rpc_context *rpc, int status, void *command_dat data->nfsfh->ra.buf_ts = time(NULL); data->buffer = NULL; } + + data->cb(cb_err, nfs, cb_data, data->private_data); free_nfs_cb_data(data); } @@ -3989,12 +3995,12 @@ int nfs_chmod_async_internal(struct nfs_context *nfs, const char *path, int no_f int nfs_chmod_async(struct nfs_context *nfs, const char *path, int mode, nfs_cb cb, void *private_data) { - return nfs_chown_async_internal(nfs, path, 0, mode, cb, private_data); + return nfs_chmod_async_internal(nfs, path, 0, mode, cb, private_data); } int nfs_lchmod_async(struct nfs_context *nfs, const char *path, int mode, nfs_cb cb, void *private_data) { - return nfs_chown_async_internal(nfs, path, 1, mode, cb, private_data); + return nfs_chmod_async_internal(nfs, path, 1, mode, cb, private_data); } /*