Page MenuHomeFreeBSD

D27938.diff
No OneTemporary

D27938.diff

diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c
--- a/sys/fs/fuse/fuse_vnops.c
+++ b/sys/fs/fuse/fuse_vnops.c
@@ -664,14 +664,6 @@
td = ap->a_fsizetd;
pid = td->td_proc->p_pid;
- err = fuse_filehandle_getrw(invp, FREAD, &infufh, incred, pid);
- if (err)
- return (err);
-
- err = fuse_filehandle_getrw(outvp, FWRITE, &outfufh, outcred, pid);
- if (err)
- return (err);
-
/* Lock both vnodes, avoiding risk of deadlock. */
do {
err = vn_lock(outvp, LK_EXCLUSIVE);
@@ -690,6 +682,14 @@
if (err != 0)
return (err);
+ err = fuse_filehandle_getrw(invp, FREAD, &infufh, incred, pid);
+ if (err)
+ goto unlock;
+
+ err = fuse_filehandle_getrw(outvp, FWRITE, &outfufh, outcred, pid);
+ if (err)
+ goto unlock;
+
if (ap->a_fsizetd) {
io.uio_offset = *ap->a_outoffp;
io.uio_resid = *ap->a_lenp;

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 15, 1:57 AM (10 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14636748
Default Alt Text
D27938.diff (836 B)

Event Timeline