summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2012-10-20 00:14:13 -0700
committerVijay Bellur <vbellur@redhat.com>2012-11-19 01:17:47 -0800
commit28994167a7fbbb35370b515eb72a9aaf49f58ac4 (patch)
tree7d743623fb7b8fb2f75b7fa4e3bedc1790ab4cca
parent6149303d55c1a240ac878bbee7928cc7eb071447 (diff)
fuse-bridge: fix posix-only configuration
Recent changes in fuse-resolver had broken the use case of having a trivial configuration with only storage/posix translator. Fix it and include a regression test to avoid breakage in the future. Change-Id: I85cbcac4b5c2d3517dd03fd3dc6d07610697981b BUG: 868478 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/4114 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rwxr-xr-xtests/basic/posixonly.t30
-rw-r--r--xlators/mount/fuse/src/fuse-resolve.c1
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/basic/posixonly.t b/tests/basic/posixonly.t
new file mode 100755
index 00000000..b9de317a
--- /dev/null
+++ b/tests/basic/posixonly.t
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+. $(dirname $0)/../include.rc
+
+cleanup;
+
+TEST mkdir -p $B0/posixonly
+cat > $B0/posixonly.vol <<EOF
+volume poisxonly
+ type storage/posix
+ option directory $B0/posixonly
+end-volume
+EOF
+
+TEST glusterfs -f $B0/posixonly.vol $M0;
+
+TEST touch $M0/filename;
+TEST stat $M0/filename;
+TEST mkdir $M0/dirname;
+TEST stat $M0/dirname;
+TEST touch $M0/dirname/filename;
+TEST stat $M0/dirname/filename;
+TEST ln $M0/dirname/filename $M0/dirname/linkname;
+TEST chown 100:100 $M0/dirname/filename;
+TEST chown 100:100 $M0/dirname;
+TEST rm -rf $M0/filename $M0/dirname;
+
+TEST umount $M0;
+
+cleanup;
diff --git a/xlators/mount/fuse/src/fuse-resolve.c b/xlators/mount/fuse/src/fuse-resolve.c
index e7e580fe..88ce32ab 100644
--- a/xlators/mount/fuse/src/fuse-resolve.c
+++ b/xlators/mount/fuse/src/fuse-resolve.c
@@ -241,6 +241,7 @@ fuse_resolve_parent_simple (fuse_state_t *state)
if (parent->table == state->itable) {
/* no graph switches since */
loc->parent = inode_ref (parent);
+ uuid_copy (loc->pargfid, parent->gfid);
loc->inode = inode_grep (state->itable, parent, loc->name);
/* nodeid for root is 1 and we blindly take the latest graph's