diff options
author | Ashish Pandey <aspandey@redhat.com> | 2015-09-08 12:27:50 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-10-20 01:37:54 -0700 |
commit | cddc75e242140f8485e2377ce4e6dffe23123744 (patch) | |
tree | 05580c20e874ba4e5a1c958736db45328e7d3633 | |
parent | 116430b5e44457bba515a83be26b4b2256c75c38 (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.t | 25 | ||||
-rw-r--r-- | xlators/features/snapview-client/src/snapview-client.c | 2 |
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; |