Patch ID	: P95070502
Summary		: Fix NFS/UFS inode lock missed wakeup
Status		: Mandatory
Date		: 07/05/95
Release		: OS 4.1C
Architectures	: Series5 Series6 S4000
Affected bugs	:
	2699

Changed files	:
         ufs_subr.c 1.7@(#) Solbourne id 7/5/95 10:34:24
         ufs_inode.c 1.3@(#) Solbourne id 7/5/95 10:34:02
         init_main.c 1.3@(#) Solbourne id 7/5/95 10:32:03
         vfs_bio.c 1.2@(#) Solbourne id 7/5/95 10:33:14
         ufs_vnodeops.c 1.5@(#) Solbourne id 7/5/95 10:34:43
         ufs_bmap.c 1.3@(#) Solbourne id 7/5/95 10:33:39
         scsi.c 1.10@(#) Solbourne id 7/5/95 10:35:23
         subr_prf.c 1.9@(#) Solbourne id 7/5/95 10:32:44
         diskopt.c 1.2@(#) Solbourne id 7/5/95 10:35:07
         nfs_server.c 1.4@(#) Solbourne id 7/5/95 10:28:44
         xd.c 1.3@(#) Solbourne id 7/5/95 10:35:41

Problem Description:
        This patch addresses problems in the 4.1C enhanced NFS/UFS
        that led to updates of various flags occurring simultaneously
        in high-level code and in interrupt handlers.  The result was
        a race condition that could lead to processes hanging in iget,
        waiting for a particular inode to become available.  The
        process that currently owns that inode will be hung in
        page_wait(), because it missed a write-completion wakeup().

        The problem was most easily demonstrated by using an NFS
        client that supports having multiple outstanding writes.  It
        can also be caused by multiple NFS clients all writing to the
        same files.  Theory dictates that the problem can occur
        without any NFS involvement, but this has not been
        demonstrated.
