Page MenuHomeFreeBSD

D25027.id72320.diff
No OneTemporary

D25027.id72320.diff

Index: sys/kern/kern_sig.c
===================================================================
--- sys/kern/kern_sig.c
+++ 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
Sun, Mar 29, 12:40 AM (8 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30500950
Default Alt Text
D25027.id72320.diff (1012 B)

Event Timeline