diff options
author | Jean-Pierre André <jpandre@users.sourceforge.net> | 2012-08-22 10:00:21 +0200 |
---|---|---|
committer | Jean-Pierre André <jpandre@users.sourceforge.net> | 2012-08-22 10:00:21 +0200 |
commit | 77ba47465706465e8abee7472aeddf5a335e7d5d (patch) | |
tree | 96725b004c933dd7128d5afa900d2a6ecfe2b05e | |
parent | 7c871c14a22b446dce71fe51daebac6b22f574d1 (diff) | |
download | illumos-fusefs-77ba47465706465e8abee7472aeddf5a335e7d5d.tar.gz |
Processed the error returned by the file system on unlink()
-rw-r--r-- | kernel/fuse_vnops.c | 8 |
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); |