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/performance/md-cache | |
| 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/performance/md-cache')
| -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);  | 
