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
Wed, Sep 9, 9:04 PM (4 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38611588
Default Alt Text
D27938.diff (836 B)

Event Timeline