Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Jan 2002 20:22:54 -0500 (EST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Ian Dowse <iedowse@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/nfsclient nfs.h nfs_socket.c nfs_vfsops.c
Message-ID:  <Pine.NEB.3.96L.1020101202226.14067L-100000@fledge.watson.org>
In-Reply-To: <200201020041.g020fQ973965@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Great, this is something I've hoped to see for ages.  I'll try it in the
office tomorrow :-).


Robert N M Watson             FreeBSD Core Team, TrustedBSD Project
robert@fledge.watson.org      NAI Labs, Safeport Network Services

On Tue, 1 Jan 2002, Ian Dowse wrote:

> iedowse     2002/01/01 16:41:26 PST
> 
>   Modified files:
>     sys/nfsclient        nfs.h nfs_socket.c nfs_vfsops.c 
>   Log:
>   Permit NFS filesystems to be forcibly unmounted when the server is
>   down, even if there are hung processes and the mount is non-
>   interruptible.
>   
>   This works by having nfs_unmount call a new function nfs_nmcancelreqs()
>   in the FORCECLOSE case. It scans the list of outstanding requests
>   and marks as interrupted any requests belonging to the specified
>   mount. Then it waits up to 30 seconds for all requests to terminate.
>   A few other changes are necessary to support this:
>   - Unconditionally set a socket timeout so that even hard mounts
>     are guaranteed to occasionally check the R_SOFTTERM flag on
>     requests. For hard mounts this flag can only be set by
>     nfs_nmcancelreqs().
>   - Reject requests on a mount that is currently being unmounted.
>   - Never grant the receive lock to a request that has been cancelled.
>   
>   This should also avoid an old problem where a forced NFS unmount
>   could cause a crash; it occurred when a VOP on an unlocked vnode
>   (usually VOP_GETATTR) was in progress at the time of the forced
>   unmount.
>   
>   Revision  Changes    Path
>   1.66      +1 -0      src/sys/nfsclient/nfs.h
>   1.74      +45 -7     src/sys/nfsclient/nfs_socket.c
>   1.114     +6 -0      src/sys/nfsclient/nfs_vfsops.c
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1020101202226.14067L-100000>