Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/nfs Once the mount structure is definitely doomed, alway...



details:   https://anonhg.NetBSD.org/src/rev/bee58e67e630
branches:  trunk
changeset: 475903:bee58e67e630
user:      sommerfeld <sommerfeld%NetBSD.org@localhost>
date:      Sun Aug 29 18:32:15 1999 +0000

description:
Once the mount structure is definitely doomed, always set the
NFSMNT_DISMNT bit in it so that any waiters can go away cleanly.
(formerly, we did this only in the NQNFS/KERB cases).

diffstat:

 sys/nfs/nfs_vfsops.c |  13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diffs (35 lines):

diff -r a16b38269cbd -r bee58e67e630 sys/nfs/nfs_vfsops.c
--- a/sys/nfs/nfs_vfsops.c      Sun Aug 29 18:30:14 1999 +0000
+++ b/sys/nfs/nfs_vfsops.c      Sun Aug 29 18:32:15 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: nfs_vfsops.c,v 1.83 1999/03/06 05:34:41 fair Exp $     */
+/*     $NetBSD: nfs_vfsops.c,v 1.84 1999/08/29 18:32:15 sommerfeld Exp $       */
 
 /*
  * Copyright (c) 1989, 1993, 1995
@@ -772,11 +772,11 @@
        }
 
        /*
-        * We are now committed to the unmount.
-        * For NQNFS, let the server daemon free the nfsmount structure.
+        * We are now committed to the unmount; mark the mount structure
+        * as doomed so that any sleepers kicked awake by nfs_disconnect
+        * will go away cleanly.
         */
-       if (nmp->nm_flag & (NFSMNT_NQNFS | NFSMNT_KERB))
-               nmp->nm_iflag |= NFSMNT_DISMNT;
+       nmp->nm_iflag |= NFSMNT_DISMNT;
 
        /*
         * There are two reference counts to get rid of here.
@@ -787,6 +787,9 @@
        nfs_disconnect(nmp);
        m_freem(nmp->nm_nam);
 
+       /*
+        * For NQNFS, let the server daemon free the nfsmount structure.
+        */
        if ((nmp->nm_flag & (NFSMNT_NQNFS | NFSMNT_KERB)) == 0)
                free((caddr_t)nmp, M_NFSMNT);
        return (0);



Home | Main Index | Thread Index | Old Index