Author: kib
Date: Sat Jan 23 07:33:02 2016
New Revision: 294618
URL: https://svnweb.freebsd.org/changeset/base/294618

Log:
  MFC r293059:
  Hide transient EBADF errors caused by the parallel revoke(2) or forced
  unmount of devfs mounts, by restarting the failed syscall.

Modified:
  stable/10/sys/fs/devfs/devfs_vnops.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- stable/10/sys/fs/devfs/devfs_vnops.c        Sat Jan 23 05:27:55 2016        
(r294617)
+++ stable/10/sys/fs/devfs/devfs_vnops.c        Sat Jan 23 07:33:02 2016        
(r294618)
@@ -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);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "[email protected]"

Reply via email to