tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: VOP_PUTPAGE ignores mount_nfs -o soft,intr
On 19 Jun 2015, at 10:36, Emmanuel Dreyfus <manu%netbsd.org@localhost> wrote:
> Hi
>
> I have encountered a bug with NetBSD NFS client. Despite a mount with
> -o intr,soft, we can hit situation where a process can remain hang in
> kernel because the NFS server is gone.
>
> This happens when the ioflush does its duty, with the following code path:
> sync_fsync / nfs_sync / VOP_FSYNC / nfs_fsync / nfs_flush / VOP_PUTPAGES
>
> VOP_PUTPAGES has flags = PGO_ALLPAGES|PGO_FREE. It then goes through
> genfs_putpages and genfs_do_putpages, and get stuck in:
>
> /* Wait for output to complete. */
> if (!wasclean && !async && vp->v_numoutput != 0) {
> while (vp->v_numoutput != 0)
> cv_wait(&vp->v_cv, slock);
> }
Looks like your problem is the missing nfs aware implementation of
function nfs_node.c:nfs_gop_write(). Falling back to genfs_gop_write()
ignores nfs timeouts.
--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)
Home |
Main Index |
Thread Index |
Old Index