summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Pierre André <jpandre@users.sourceforge.net>2012-08-22 10:00:21 +0200
committerJean-Pierre André <jpandre@users.sourceforge.net>2012-08-22 10:00:21 +0200
commit77ba47465706465e8abee7472aeddf5a335e7d5d (patch)
tree96725b004c933dd7128d5afa900d2a6ecfe2b05e
parent7c871c14a22b446dce71fe51daebac6b22f574d1 (diff)
downloadillumos-fusefs-77ba47465706465e8abee7472aeddf5a335e7d5d.tar.gz
Processed the error returned by the file system on unlink()
-rw-r--r--kernel/fuse_vnops.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/fuse_vnops.c b/kernel/fuse_vnops.c
index 1aa5114..34abd18 100644
--- a/kernel/fuse_vnops.c
+++ b/kernel/fuse_vnops.c
@@ -2894,6 +2894,14 @@ fuse_remove(vnode_t *dvp, char *name, cred_t *credp, caller_context_t *ct,
goto cleanup;
}
+ /* Check for any error from fuse library */
+ if ((err = msgp->opdata.fouth->error) != 0) {
+ DTRACE_PROBE2(fuse_unlink_err_unlink_req,
+ char *, "FUSE_UNLINK request failed",
+ struct fuse_out_header *, msgp->opdata.fouth);
+ goto cleanup;
+ }
+
/* Check if we have seen and cached the associated vnode */
err = fuse_getvnode(FUSE_NULL_ID, &vp, VNODE_CACHED,
0, sep, dvp->v_vfsp, namelen, name, VNODE_TO_NODEID(dvp), credp);