summaryrefslogtreecommitdiffstats
path: root/xlators/performance/md-cache/src/md-cache.c
diff options
context:
space:
mode:
authorKinglong Mee <kinglongmee@gmail.com>2018-10-18 19:42:48 +0800
committerAmar Tumballi <amarts@redhat.com>2018-11-02 06:25:34 +0000
commit36e2ec3c88eba7a1bcd8aa6f64e4672349ff1d0c (patch)
treef71605e5630d4f8cd3c89c8909cff13f30b677e7 /xlators/performance/md-cache/src/md-cache.c
parentc2a543ec947ac56f882a9c0a890f49c63dedeaff (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/src/md-cache.c')
-rw-r--r--xlators/performance/md-cache/src/md-cache.c20
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);