diff options
author | Kinglong Mee <kinglongmee@gmail.com> | 2018-10-18 19:42:48 +0800 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2018-11-02 06:25:34 +0000 |
commit | 36e2ec3c88eba7a1bcd8aa6f64e4672349ff1d0c (patch) | |
tree | f71605e5630d4f8cd3c89c8909cff13f30b677e7 /xlators | |
parent | c2a543ec947ac56f882a9c0a890f49c63dedeaff (diff) |
md-cache: removexattr must be send to glusterfsd
Change-Id: I53a583ec14bce65e8914bc496123dee3abe61f6c
Updates: bz#1634220
Signed-off-by: Kinglong Mee <mijinlong@open-fs.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/performance/md-cache/src/md-cache.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/xlators/performance/md-cache/src/md-cache.c b/xlators/performance/md-cache/src/md-cache.c index bbe47fc545b..700666957c1 100644 --- a/xlators/performance/md-cache/src/md-cache.c +++ b/xlators/performance/md-cache/src/md-cache.c @@ -2518,13 +2518,17 @@ mdc_removexattr(call_frame_t *frame, xlator_t *this, loc_t *loc, if (ret != 0) goto uncached; + GF_ATOMIC_INC(conf->mdc_counter.xattr_hit); + if (!xattr || !dict_get(xattr, (char *)name)) { ret = -1; op_errno = ENODATA; - } - GF_ATOMIC_INC(conf->mdc_counter.xattr_hit); - MDC_STACK_UNWIND(removexattr, frame, ret, op_errno, xdata); + MDC_STACK_UNWIND(removexattr, frame, ret, op_errno, xdata); + } else { + STACK_WIND(frame, mdc_removexattr_cbk, FIRST_CHILD(this), + FIRST_CHILD(this)->fops->removexattr, loc, name, xdata); + } if (xattr) dict_unref(xattr); @@ -2605,13 +2609,17 @@ mdc_fremovexattr(call_frame_t *frame, xlator_t *this, fd_t *fd, if (ret != 0) goto uncached; + GF_ATOMIC_INC(conf->mdc_counter.xattr_hit); + if (!xattr || !dict_get(xattr, (char *)name)) { ret = -1; op_errno = ENODATA; - } - GF_ATOMIC_INC(conf->mdc_counter.xattr_hit); - MDC_STACK_UNWIND(fremovexattr, frame, ret, op_errno, xdata); + MDC_STACK_UNWIND(fremovexattr, frame, ret, op_errno, xdata); + } else { + STACK_WIND(frame, mdc_fremovexattr_cbk, FIRST_CHILD(this), + FIRST_CHILD(this)->fops->fremovexattr, fd, name, xdata); + } if (xattr) dict_unref(xattr); |