Source-Changes archive

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

CVS commit: [netbsd-7] src



Module Name:    src
Committed By:   riz
Date:           Wed Nov  4 17:32:00 UTC 2015

Modified Files:
        src/sbin/umount [netbsd-7]: umount.c
        src/sys/nfs [netbsd-7]: nfs_bio.c nfs_clntsocket.c nfs_iod.c
            nfs_socket.c nfs_var.h nfs_vfsops.c nfsmount.h

Log Message:
Pull up following revision(s) (requested by manu in ticket #882):
        sbin/umount/umount.c: revision 1.48
        sys/nfs/nfsmount.h: revision 1.53
        sys/nfs/nfs_var.h: revision 1.94
        sys/nfs/nfs_iod.c: revision 1.7
        sys/nfs/nfs_socket.c: revision 1.197
        sys/nfs/nfs_bio.c: revision 1.191
        sys/nfs/nfs_vfsops.c: revision 1.230
        sys/nfs/nfs_clntsocket.c: revision 1.3
Remove useless and harmful sync(2) call in umount(8)
Remove sync(2) call before unmount(2) in umount(8). This sync(2) is useless
since unmount(2) will perform a VFS_SYNC anyway.
But moreover, this sync(2) may be harmful, as there are some situation where
it cannot return (unreachable NFS server, for instance), causing umount -f
to be uneffective.
Fix soft NFS force unmount
For many reasons, forcibly unmounting a soft NFS mount could hang forever.
Here are the fixes:
- Introduce decents timeouts in operation that awaited NFS server reply.
- On timeout, fails operations on soft mounts with EIO.
- Introduce NFSMNT_DISMNTFORCE to let the filesystem know that a
  force unmount is ongoing. This causes timeouts to be reduced and
  prevents the NFS client to attempt reconnecting to the NFS server.
Also fix a race condition where some asynchronous I/O could reference
destroyed mount structures. We fix this by awaiting asynchronous I/O
to drain before proceeding.
Reviewed by Chuck Silvers.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.47.6.1 src/sbin/umount/umount.c
cvs rdiff -u -r1.189 -r1.189.4.1 src/sys/nfs/nfs_bio.c
cvs rdiff -u -r1.1 -r1.1.40.1 src/sys/nfs/nfs_clntsocket.c
cvs rdiff -u -r1.6 -r1.6.4.1 src/sys/nfs/nfs_iod.c
cvs rdiff -u -r1.192 -r1.192.2.1 src/sys/nfs/nfs_socket.c
cvs rdiff -u -r1.92 -r1.92.2.1 src/sys/nfs/nfs_var.h
cvs rdiff -u -r1.229 -r1.229.2.1 src/sys/nfs/nfs_vfsops.c
cvs rdiff -u -r1.52 -r1.52.2.1 src/sys/nfs/nfsmount.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index