Page MenuHomeFreeBSD

D39441.id120045.diff
No OneTemporary

D39441.id120045.diff

diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -1935,7 +1935,10 @@
if (vp == NULL)
vfs_ref(mp);
- return (vn_start_write_refed(mp, flags, false));
+ error = vn_start_write_refed(mp, flags, false);
+ if (error != 0 && (flags & V_NOWAIT) == 0)
+ *mpp = NULL;
+ return (error);
}
/*
@@ -1951,7 +1954,7 @@
struct mount *mp;
int error, mflags;
- KASSERT((flags & ~V_VALID_FLAGS) == 0,
+ KASSERT((flags & (~V_VALID_FLAGS | V_XSLEEP)) == 0,
("%s: invalid flags passed %d\n", __func__, flags));
retry:
@@ -1989,6 +1992,7 @@
if ((flags & V_NOWAIT) != 0) {
MNT_REL(mp);
MNT_IUNLOCK(mp);
+ *mpp = NULL;
return (EWOULDBLOCK);
}
/*
@@ -2004,6 +2008,7 @@
vfs_rel(mp);
if (error == 0)
goto retry;
+ *mpp = NULL;
return (error);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 9, 5:31 PM (4 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38601753
Default Alt Text
D39441.id120045.diff (839 B)

Event Timeline