On Jun 20, 10:09pm, m...@netbsd.org (Emmanuel Dreyfus) wrote: -- Subject: Re: VOP_PUTPAGE ignores mount_nfs -o soft,intr
| Christos Zoulas <chris...@astron.com> wrote: | | > Ok, what is it supposed to do? Does it fail? Give up? Get interrupted | > and keep looping? | | The process stuck in tstile waiting for vnode lock is a consequence of | the initial problem: ioflush stuck in cv_wait(). | | What about this: we introduce a mnt_timeo in struct mount, and use | cv_timedwait() instead of cv_wait() in genfs_do_putpages(). If timeout | expires, we get a failure: the page was not put to storage. | | mnt_timeo should have a sane default (which one) for all filesystems, | not only NFS: that way we fix process stuck in tstile because of hardare | failure (I already saw that). For NFS we use the NFS timeout. | | That way ioflush never holds a vnode lock forever, and umount -f should | work. | This is not that simple. There is at least one more place where it does while (vp->v_numoutput != 0) cv_wait().. And I am not sure what happens if you make VOP_PUTPAGES timeout. christos