diff options
Diffstat (limited to 'xlators/cluster/afr/src/afr-inode-read.c')
| -rw-r--r-- | xlators/cluster/afr/src/afr-inode-read.c | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-read.c b/xlators/cluster/afr/src/afr-inode-read.c index 523a5b48880..c5521704de2 100644 --- a/xlators/cluster/afr/src/afr-inode-read.c +++ b/xlators/cluster/afr/src/afr-inode-read.c @@ -18,11 +18,8 @@ #include <glusterfs/glusterfs.h> #include "afr.h" #include <glusterfs/dict.h> -#include <glusterfs/xlator.h> -#include <glusterfs/hashfn.h> #include <glusterfs/logging.h> #include <glusterfs/list.h> -#include <glusterfs/call-stub.h> #include <glusterfs/byte-order.h> #include <glusterfs/defaults.h> #include <glusterfs/common-utils.h> @@ -305,6 +302,7 @@ afr_fstat(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) afr_local_t *local = NULL; int op_errno = 0; + AFR_ERROR_OUT_IF_FDCTX_INVALID(fd, this, op_errno, out); local = AFR_FRAME_INIT(frame, op_errno); if (!local) goto out; @@ -948,24 +946,13 @@ unlock: goto unwind; } - len = dict_serialized_length(local->dict); - if (len <= 0) { - goto unwind; - } - - lockinfo_buf = GF_CALLOC(1, len, gf_common_mt_char); - if (!lockinfo_buf) { + op_ret = dict_allocate_and_serialize( + local->dict, (char **)&lockinfo_buf, (unsigned int *)&len); + if (op_ret != 0) { local->op_ret = -1; - local->op_errno = ENOMEM; goto unwind; } - op_ret = dict_serialize(local->dict, lockinfo_buf); - if (op_ret < 0) { - local->op_ret = -1; - local->op_errno = -op_ret; - } - op_ret = dict_set_dynptr(newdict, GF_XATTR_LOCKINFO_KEY, (void *)lockinfo_buf, len); if (op_ret < 0) { @@ -1064,24 +1051,13 @@ unlock: goto unwind; } - len = dict_serialized_length(local->dict); - if (len <= 0) { - goto unwind; - } - - lockinfo_buf = GF_CALLOC(1, len, gf_common_mt_char); - if (!lockinfo_buf) { + op_ret = dict_allocate_and_serialize( + local->dict, (char **)&lockinfo_buf, (unsigned int *)&len); + if (op_ret != 0) { local->op_ret = -1; - local->op_errno = ENOMEM; goto unwind; } - op_ret = dict_serialize(local->dict, lockinfo_buf); - if (op_ret < 0) { - local->op_ret = -1; - local->op_errno = -op_ret; - } - op_ret = dict_set_dynptr(newdict, GF_XATTR_LOCKINFO_KEY, (void *)lockinfo_buf, len); if (op_ret < 0) { @@ -1723,6 +1699,7 @@ afr_fgetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, const char *name, int32_t op_errno = 0; fop_fgetxattr_cbk_t cbk = NULL; + AFR_ERROR_OUT_IF_FDCTX_INVALID(fd, this, op_errno, out); local = AFR_FRAME_INIT(frame, op_errno); if (!local) goto out; @@ -1816,6 +1793,7 @@ afr_readv(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, afr_local_t *local = NULL; int32_t op_errno = 0; + AFR_ERROR_OUT_IF_FDCTX_INVALID(fd, this, op_errno, out); local = AFR_FRAME_INIT(frame, op_errno); if (!local) goto out; @@ -1891,6 +1869,7 @@ afr_seek(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, afr_local_t *local = NULL; int32_t op_errno = 0; + AFR_ERROR_OUT_IF_FDCTX_INVALID(fd, this, op_errno, out); local = AFR_FRAME_INIT(frame, op_errno); if (!local) goto out; |
