summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaghavendra G <raghavendra@gluster.com>2012-03-26 18:44:14 +0530
committerAnand Avati <avati@redhat.com>2012-05-08 15:34:53 -0700
commit27fb213be6101bca859502ac87dddc4cd0a6f272 (patch)
treea65ccf207e87747f0ea6b8414dd043622fce2c5d
parentd6244e238976e45ccb8c64ab4a0fe443fe44c952 (diff)
fuse-resolve: consider cases where an entry should be resolved even
when parent belongs to active itable. When parent is root, the parent inode returned will always be active_subvol->itable->root and hence there can be cases where we should explicitly resolve the entry in active graph. Change-Id: I4e82df9a351ff6b5304891abc9932495bf7ea79d BUG: 804592 Signed-off-by: Raghavendra G <raghavendra@gluster.com> Reviewed-on: http://review.gluster.com/3007 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
-rw-r--r--xlators/mount/fuse/src/fuse-resolve.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xlators/mount/fuse/src/fuse-resolve.c b/xlators/mount/fuse/src/fuse-resolve.c
index b1eff83dcda..5df0ac4b8be 100644
--- a/xlators/mount/fuse/src/fuse-resolve.c
+++ b/xlators/mount/fuse/src/fuse-resolve.c
@@ -237,6 +237,12 @@ fuse_resolve_parent_simple (fuse_state_t *state)
/* no graph switches since */
loc->parent = inode_ref (parent);
loc->inode = inode_grep (state->itable, parent, loc->name);
+
+ if (loc->inode == NULL) {
+ /* non decisive result - entry missing */
+ return -1;
+ }
+
/* decisive result - resolution success */
return 0;
}