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.

Reply via email to