diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2014-08-01 18:30:32 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-09-12 02:17:42 -0700 |
commit | a82cfba2795bb15c74b4a8d28bd53ad73a7997c1 (patch) | |
tree | a453f5bd55bb15f06e164c65182e0af059a0dc2e /xlators/mount/fuse/src/fuse-helpers.c | |
parent | 533b2ea61b6b43f2cd7b600b635c4c59ca2fa0ba (diff) |
mount/fuse: Handle fd resolution failures
Backport of http://review.gluster.org/8402
Problem:
Even when the fd resolution failed, the fop is continuing on the
new graph which may not have valid inode. This lead to NULL layout
subvols in dht which lead to crash in fsync after graph migration.
Fix:
- Remove resolution error handling in FUSE_FOP as it was only added
to handle fd migration failures.
- check in fuse_resolve_done for fd resolution failures and fail the
fop right away.
- loc resolution failures are already handled in the corresponding
fops.
- Return errno from state->resolve.op_errno in resume functions.
- Send error to fuse on frame allocation failures.
- Removed unused variable state->resolved
- Removed unused macro FUSE_FOP_COOKIE
BUG: 1136827
Change-Id: I4010b7fccd7d8caf0ce4e7629e81b605102d8fb4
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/8592
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/mount/fuse/src/fuse-helpers.c')
-rw-r--r-- | xlators/mount/fuse/src/fuse-helpers.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/xlators/mount/fuse/src/fuse-helpers.c b/xlators/mount/fuse/src/fuse-helpers.c index ef9bcd4e43e..d30f2e8a282 100644 --- a/xlators/mount/fuse/src/fuse-helpers.c +++ b/xlators/mount/fuse/src/fuse-helpers.c @@ -30,8 +30,6 @@ fuse_resolve_wipe (fuse_resolve_t *resolve) GF_FREE ((void *)resolve->bname); - GF_FREE ((void *)resolve->resolved); - if (resolve->fd) fd_unref (resolve->fd); |