md-cache: fix dict leak of cached xattr

Change-Id: I52f8e13e68528ba9679537ffdddf58ec08f9fd0c
Updates: bz#1634220
Signed-off-by: Kinglong Mee <mijinlong@open-fs.com>
This commit is contained in:
Kinglong Mee 2018-10-18 19:35:40 +08:00 committed by Amar Tumballi
parent 92c22abb44
commit 826e03db09

View File

@ -2352,6 +2352,9 @@ mdc_getxattr(call_frame_t *frame, xlator_t *this, loc_t *loc, const char *key,
GF_ATOMIC_INC(conf->mdc_counter.xattr_hit);
MDC_STACK_UNWIND(getxattr, frame, ret, op_errno, xattr, xdata);
if (xattr)
dict_unref(xattr);
return 0;
uncached:
@ -2417,6 +2420,9 @@ mdc_fgetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, const char *key,
GF_ATOMIC_INC(conf->mdc_counter.xattr_hit);
MDC_STACK_UNWIND(fgetxattr, frame, ret, op_errno, xattr, xdata);
if (xattr)
dict_unref(xattr);
return 0;
uncached:
@ -2500,6 +2506,9 @@ mdc_removexattr(call_frame_t *frame, xlator_t *this, loc_t *loc,
GF_ATOMIC_INC(conf->mdc_counter.xattr_hit);
MDC_STACK_UNWIND(removexattr, frame, ret, op_errno, xdata);
if (xattr)
dict_unref(xattr);
return 0;
uncached:
@ -2583,6 +2592,10 @@ mdc_fremovexattr(call_frame_t *frame, xlator_t *this, fd_t *fd,
GF_ATOMIC_INC(conf->mdc_counter.xattr_hit);
MDC_STACK_UNWIND(fremovexattr, frame, ret, op_errno, xdata);
if (xattr)
dict_unref(xattr);
return 0;
uncached: