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