good, ship it!
On Fri, 09 Oct 2009 11:29:31 +0200, Marcel Telka <Marcel.Telka at sun.com> wrote: > Hi, > > Please code review the following simple fix (two lines changed): > http://cr.opensolaris.org/~aragorn/6887666-6887889-INTR/ > > 6887666 mmap() on NFSv4 mounted filesystem can be not interruptible > 6887889 Possible not interruptible hang in nfs4_write() with directio, append > and intr > > Background > ========== > > Both CRs are about wrong usage of INTR() macro in the NFSv4 client sources. > Instead, the INTR4() macro should be used. This problem affects NFSv4 mounts > with "intr" mount flag set on (default). Under some circumstances we can lead > to situation where the userspace process is not interruptible. > > The problem is that in the NFSv4 domain the INTR() macro usage is plain wrong > because both mntinfo4_t and mntinfo_t structures differs significantly. At > least the offset of mi_flags is different. > > This ends up in situation where the nfs_rw_enter_sig() calls cv_wait() instead > of correct cv_wait_sig(). > >>From the mount_nfs(1M) man page: > > intr | nointr > > Allow (do not allow) keyboard interrupts to kill a > process that is hung while waiting for a response on > a hard-mounted file system. The default is intr, > which makes it possible for clients to interrupt > applications that can be waiting for a remote mount. > > > > Thanks for your time. > -- frankB It is always possible to agglutinate multiple separate problems into a single complex interdependent solution. In most cases this is a bad idea.