diff options
-rw-r--r-- | xlators/protocol/client/src/client-rpc-fops.c | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c index 803346b6aef..0561def3aab 100644 --- a/xlators/protocol/client/src/client-rpc-fops.c +++ b/xlators/protocol/client/src/client-rpc-fops.c @@ -3409,9 +3409,6 @@ unwind: if (rsp_iobref) iobref_unref (rsp_iobref); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - return 0; } @@ -4769,9 +4766,6 @@ client3_3_fgetxattr (call_frame_t *frame, xlator_t *this, unwind: CLIENT_STACK_UNWIND (fgetxattr, frame, -1, op_errno, NULL, NULL); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - if (rsp_iobref) iobref_unref (rsp_iobref); @@ -4849,6 +4843,12 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this, if (args && args->name) { if (is_client_dump_locks_cmd ((char *)args->name)) { dict = dict_new (); + + if (!dict) { + op_errno = ENOMEM; + goto unwind; + } + ret = client_dump_locks ((char *)args->name, args->loc->inode, dict); @@ -4856,7 +4856,8 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this, gf_msg (this->name, GF_LOG_WARNING, EINVAL, PC_MSG_INVALID_ENTRY, "Client dump " "locks failed"); - op_errno = EINVAL; + op_errno = ENOMEM; + goto unwind; } GF_ASSERT (dict); @@ -4887,14 +4888,15 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this, return 0; unwind: - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - if (rsp_iobref) iobref_unref (rsp_iobref); CLIENT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict, NULL); + if (dict) { + dict_unref(dict); + } + GF_FREE (req.xdata.xdata_val); return 0; @@ -4988,9 +4990,6 @@ unwind: GF_FREE (req.dict.dict_val); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - if (rsp_iobref) iobref_unref (rsp_iobref); @@ -5084,9 +5083,6 @@ unwind: if (rsp_iobref) iobref_unref (rsp_iobref); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - GF_FREE (req.xdata.xdata_val); return 0; @@ -5601,9 +5597,6 @@ unwind: if (rsp_iobref) iobref_unref (rsp_iobref); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - CLIENT_STACK_UNWIND (readdir, frame, -1, op_errno, NULL, NULL); GF_FREE (req.xdata.xdata_val); @@ -5701,9 +5694,6 @@ unwind: if (rsp_iobref) iobref_unref (rsp_iobref); - if (rsp_iobuf) - iobuf_unref (rsp_iobuf); - GF_FREE (req.dict.dict_val); CLIENT_STACK_UNWIND (readdirp, frame, -1, op_errno, NULL, NULL); @@ -6042,7 +6032,7 @@ client3_3_compound (call_frame_t *frame, xlator_t *this, void *data) GF_ASSERT (frame); - if (!this || !data) + if (!this) goto unwind; memset (req_vector, 0, sizeof (req_vector)); |