diff options
Diffstat (limited to 'xlators/nfs/server/src/nfs3.c')
-rw-r--r-- | xlators/nfs/server/src/nfs3.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index a81676d1775..fe265ed73f8 100644 --- a/xlators/nfs/server/src/nfs3.c +++ b/xlators/nfs/server/src/nfs3.c @@ -2096,6 +2096,7 @@ nfs3svc_write_vec (rpcsvc_request_t *req, struct iobuf *iob) write3args *args = NULL; int ret = RPCSVC_ACTOR_ERROR; struct iovec payload = {0, }; + struct nfs3_fh fh = {{0}, }; if ((!req) || (!iob)) return ret; @@ -2103,8 +2104,9 @@ nfs3svc_write_vec (rpcsvc_request_t *req, struct iobuf *iob) args = nfs_rpcsvc_request_private (req); iobuf_to_iovec (iob, &payload); iobuf_ref (iob); - ret = nfs3_write (req, (struct nfs3_fh *)args->file.data.data_val, - args->offset, args->count, args->stable, payload,iob); + memcpy (&fh, args->file.data.data_val, args->file.data.data_len); + ret = nfs3_write (req, &fh, args->offset, args->count, args->stable, + payload,iob); xdr_free_write3args_nocopy (args); GF_FREE (args); if (ret < 0) { |