summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2016-01-23 07:33:02 +0000
committerkib <kib@FreeBSD.org>2016-01-23 07:33:02 +0000
commit00ce898270eae44f059f68b2848af2ad68dd93ec (patch)
tree3bba83a4abc782306956dc0f646b364c9f8fcb15 /sys/fs
parent51a396136ecde08b5b9e4fbf449c3b167483ee0c (diff)
downloadFreeBSD-src-00ce898270eae44f059f68b2848af2ad68dd93ec.zip
FreeBSD-src-00ce898270eae44f059f68b2848af2ad68dd93ec.tar.gz
MFC r293059:
Hide transient EBADF errors caused by the parallel revoke(2) or forced unmount of devfs mounts, by restarting the failed syscall.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/devfs/devfs_vnops.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index b28968d..a45e07d 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -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);
OpenPOWER on IntegriCloud