summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshish Pandey <aspandey@redhat.com>2015-09-08 12:27:50 +0530
committerPranith Kumar Karampuri <pkarampu@redhat.com>2015-10-20 01:37:54 -0700
commitcddc75e242140f8485e2377ce4e6dffe23123744 (patch)
tree05580c20e874ba4e5a1c958736db45328e7d3633
parent116430b5e44457bba515a83be26b4b2256c75c38 (diff)
features/snap : cleanup the root loc in statfs
Problem : In svc_statfs function, wipe_loc is getting called on loc passed by nfs. This loc is being used by svc_stat which throws erro if loc->inode is NULL. Solution : wipe_loc should be called on local root_loc. Change-Id: I9cc5ee3b1bd9f352f2362a6d997b7b09051c0f68 BUG: 1260848 Signed-off-by: Ashish Pandey <aspandey@redhat.com> Reviewed-on: http://review.gluster.org/12123 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
-rw-r--r--tests/bugs/snapshot/bug-1260848.t25
-rw-r--r--xlators/features/snapview-client/src/snapview-client.c2
2 files changed, 26 insertions, 1 deletions
diff --git a/tests/bugs/snapshot/bug-1260848.t b/tests/bugs/snapshot/bug-1260848.t
new file mode 100644
index 00000000000..9963b293604
--- /dev/null
+++ b/tests/bugs/snapshot/bug-1260848.t
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../nfs.rc
+. $(dirname $0)/../../volume.rc
+
+cleanup;
+
+## Start and create a volume
+TEST glusterd
+TEST pidof glusterd
+
+TEST $CLI volume create $V0 disperse 6 redundancy 2 $H0:$B0/${V0}{0..5}
+TEST $CLI volume set $V0 uss on
+TEST $CLI volume start $V0
+
+## Wait for volume to register with rpc.mountd
+EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available;
+
+## Mount NFS
+TEST mount_nfs $H0:/$V0 $N0 nolock;
+
+TEST df -h $N0
+
+cleanup;
diff --git a/xlators/features/snapview-client/src/snapview-client.c b/xlators/features/snapview-client/src/snapview-client.c
index 227916cf8bc..4a2bdfbd301 100644
--- a/xlators/features/snapview-client/src/snapview-client.c
+++ b/xlators/features/snapview-client/src/snapview-client.c
@@ -541,7 +541,7 @@ svc_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc,
STACK_WIND_TAIL (frame, subvolume, subvolume->fops->statfs,
temp_loc, xdata);
- if (temp_loc)
+ if (temp_loc == &root_loc)
loc_wipe (temp_loc);
wind = _gf_true;