d1681e
From 669cc980d642af5bac1d41e3671822321b6bc986 Mon Sep 17 00:00:00 2001
d1681e
From: Mohit Agrawal <moagrawa@redhat.com>
d1681e
Date: Tue, 29 May 2018 14:57:44 +0530
d1681e
Subject: [PATCH 295/305] dht: Excessive 'dict is null' logs in
d1681e
 dht_revalidate_cbk
d1681e
d1681e
Problem: In case of error(ESTALE/ENOENT) dht_revalidate_cbk
d1681e
         throws "dict is null" error because xattr is not available
d1681e
d1681e
Solution: To avoid the logs update condition in dht_revalidate_cbk
d1681e
          and dht_lookup_dir_cbk
d1681e
d1681e
> BUG: 1583565
d1681e
> Change-Id: Ife6b3eeb6d91bf24403ed3100e237bb5d15b4357
d1681e
> fixes: bz#1583565
d1681e
> (Cherry pick from commit 052fce3f31d856fce10e07eda5f5c49ad3390d3a)
d1681e
> (Upstream review link https://review.gluster.org/#/c/20096/)
d1681e
d1681e
BUG: 1581553
d1681e
Change-Id: Ib86e7a14f30b7357ebdffd42fe91ee295e152e64
d1681e
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
d1681e
Reviewed-on: https://code.engineering.redhat.com/gerrit/140185
d1681e
Tested-by: RHGS Build Bot <nigelb@redhat.com>
d1681e
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
d1681e
---
d1681e
 xlators/cluster/dht/src/dht-common.c | 6 ++++--
d1681e
 1 file changed, 4 insertions(+), 2 deletions(-)
d1681e
d1681e
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
d1681e
index feeaa3f..5f246b1 100644
d1681e
--- a/xlators/cluster/dht/src/dht-common.c
d1681e
+++ b/xlators/cluster/dht/src/dht-common.c
d1681e
@@ -1499,7 +1499,8 @@ unlock:
d1681e
                 DHT_STRIP_PHASE1_FLAGS (&local->stbuf);
d1681e
                 dht_set_fixed_dir_stat (&local->postparent);
d1681e
                 /* Delete mds xattr at the time of STACK UNWIND */
d1681e
-                GF_REMOVE_INTERNAL_XATTR (conf->mds_xattr_key, local->xattr);
d1681e
+                if (local->xattr)
d1681e
+                        GF_REMOVE_INTERNAL_XATTR (conf->mds_xattr_key, local->xattr);
d1681e
                 DHT_STACK_UNWIND (lookup, frame, local->op_ret, local->op_errno,
d1681e
                                   local->inode, &local->stbuf, local->xattr,
d1681e
                                   &local->postparent);
d1681e
@@ -1902,7 +1903,8 @@ cont:
d1681e
                         local->op_errno = ESTALE;
d1681e
                 }
d1681e
                 /* Delete mds xattr at the time of STACK UNWIND */
d1681e
-                GF_REMOVE_INTERNAL_XATTR (conf->mds_xattr_key, local->xattr);
d1681e
+                if (local->xattr)
d1681e
+                        GF_REMOVE_INTERNAL_XATTR (conf->mds_xattr_key, local->xattr);
d1681e
 
d1681e
                 DHT_STACK_UNWIND (lookup, frame, local->op_ret, local->op_errno,
d1681e
                                   local->inode, &local->stbuf, local->xattr,
d1681e
-- 
d1681e
1.8.3.1
d1681e