MFC r293059:
Hide transient EBADF errors caused by the parallel revoke(2) or forced unmount of devfs mounts, by restarting the failed syscall.
This commit is contained in:
parent
51a396136e
commit
00ce898270
@ -239,18 +239,18 @@ devfs_populate_vp(struct vnode *vp)
|
||||
if (DEVFS_DMP_DROP(dmp)) {
|
||||
sx_xunlock(&dmp->dm_lock);
|
||||
devfs_unmount_final(dmp);
|
||||
return (EBADF);
|
||||
return (ERESTART);
|
||||
}
|
||||
if ((vp->v_iflag & VI_DOOMED) != 0) {
|
||||
sx_xunlock(&dmp->dm_lock);
|
||||
return (EBADF);
|
||||
return (ERESTART);
|
||||
}
|
||||
de = vp->v_data;
|
||||
KASSERT(de != NULL,
|
||||
("devfs_populate_vp: vp->v_data == NULL but vnode not doomed"));
|
||||
if ((de->de_flags & DE_DOOMED) != 0) {
|
||||
sx_xunlock(&dmp->dm_lock);
|
||||
return (EBADF);
|
||||
return (ERESTART);
|
||||
}
|
||||
|
||||
return (0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user