Page MenuHomeFreeBSD

D25027.id72398.diff
No OneTemporary

D25027.id72398.diff

Index: head/sys/kern/kern_sig.c
===================================================================
--- head/sys/kern/kern_sig.c
+++ head/sys/kern/kern_sig.c
@@ -3454,8 +3454,9 @@
(lasttime.tv_sec == vattr.va_mtime.tv_sec &&
lasttime.tv_nsec >= vattr.va_mtime.tv_nsec)) {
if (oldvp != NULL)
- vnode_close_locked(td, oldvp);
+ vn_close(oldvp, FWRITE, td->td_ucred, td);
oldvp = vp;
+ VOP_UNLOCK(oldvp);
lasttime = vattr.va_mtime;
} else {
vnode_close_locked(td, vp);
@@ -3466,12 +3467,18 @@
if (nextvp == NULL) {
if ((td->td_proc->p_flag & P_SUGID) != 0) {
error = EFAULT;
- vnode_close_locked(td, oldvp);
+ vn_close(oldvp, FWRITE, td->td_ucred, td);
} else {
nextvp = oldvp;
+ error = vn_lock(nextvp, LK_EXCLUSIVE);
+ if (error != 0) {
+ vn_close(nextvp, FWRITE, td->td_ucred,
+ td);
+ nextvp = NULL;
+ }
}
} else {
- vnode_close_locked(td, oldvp);
+ vn_close(oldvp, FWRITE, td->td_ucred, td);
}
}
if (error != 0) {

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 14, 6:41 PM (3 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25296346
Default Alt Text
D25027.id72398.diff (1 KB)

Event Timeline