specfs: Omit needless vdead_check in spec_fdiscard.
The vnode lock is held, so the vnode cannot be revoked without also changing v_op so subsequent uses under the vnode lock will go to deadfs's VOP_FDISCARD instead (which is genfs_eopnotsupp).
This commit is contained in:
parent
eecc7d184f
commit
aa0e9abd05
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: spec_vnops.c,v 1.198 2022/03/28 12:36:09 riastradh Exp $ */
|
||||
/* $NetBSD: spec_vnops.c,v 1.199 2022/03/28 12:36:18 riastradh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2008 The NetBSD Foundation, Inc.
|
||||
|
@ -58,7 +58,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.198 2022/03/28 12:36:09 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.199 2022/03/28 12:36:18 riastradh Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/proc.h>
|
||||
|
@ -945,17 +945,7 @@ spec_fdiscard(void *v)
|
|||
dev_t dev;
|
||||
|
||||
vp = ap->a_vp;
|
||||
dev = NODEV;
|
||||
|
||||
mutex_enter(vp->v_interlock);
|
||||
if (vdead_check(vp, VDEAD_NOWAIT) == 0 && vp->v_specnode != NULL) {
|
||||
dev = vp->v_rdev;
|
||||
}
|
||||
mutex_exit(vp->v_interlock);
|
||||
|
||||
if (dev == NODEV) {
|
||||
return ENXIO;
|
||||
}
|
||||
dev = vp->v_rdev;
|
||||
|
||||
switch (vp->v_type) {
|
||||
case VCHR:
|
||||
|
|
Loading…
Reference in New Issue