Patch-ID# 100622-01
Keywords: ufs_inactive syncip nfs performance ufs syscall eintr umount sync race hang fsck zero length directories panic ufs_putpage HOLE ifree inode bmap iget
Synopsis: 4.1.1: 4.1.1 UFS jumbo patch
Date: 18/Jun/92

SunOS release: 4.1.1

Unbundled Product: 

Unbundled Release: 

Topic: 4.1.1 UFS jumbo patch

BugID's fixed with this patch: 1054999 1052649 1045582 1044668 1078521 1075369 1039693 1082206 1071839

Architectures for which this patch is available: sun4, sun4c, sun3, sun3x

Patches which may conflict with this patch: 100293-04
					    100313-01
					    100505-01
					    100548-01

    NOTE: Although the above mentioned conflicting patches exist on a 
    unit basis, this patch includes the bug fixes in those patches listed
    above, and as such, supersedes them.

Note: This patch is incompatible with Online DiskSuite and Backup CoPilot.
Upgrading to SunOS 4.1.2 with 100623-01 jumbo patch does not present a
conflict with Online DiskSuite and Backup CoPilot.

Obsoleted by: SYS_V Rel 4

Files included with this patch: 
	ufs_bmap.o
	ufs_inode.o
	ufs_vfsops.o
	ufs_dir.o
	ufs_subr.o
	ufs_vnodeops.o

Problem Description: 

This patch includes fixes for all known ufs-related bugs, including some that
can cause "panic: freeing free inode" and "panic: ialloc: dup alloc"

	1054999 syncip overhead in ufs_inactive cause poor nfs performance
	1052649 write system call is returning EINTR
	1045582 NeWSprint 1.0 hangs on 4/75 and 4/40
	1044668 umount/sync race can hang system
	1078521 Zero length directories can be left when a system is powered off
	1075369 ufs_setattr() always trunc ups to > 2^31 sizes
	1039693 panic: ifree: freeing free inode
	1082206 bmap references block after calling brelse
	1071839 iget shouldn't hammer i_flag when reclaiming an inode

Install Instructions: 
 
    mv  /sys/`arch -k`/OBJ/ufs_bmap.o  /sys/`arch -k`/OBJ/ufs_bmap.o_orig
    mv  /sys/`arch -k`/OBJ/ufs_inode.o  /sys/`arch -k`/OBJ/ufs_inode.o_orig
    mv  /sys/`arch -k`/OBJ/ufs_vfsops.o  /sys/`arch -k`/OBJ/ufs_vfsops.o_orig
    mv  /sys/`arch -k`/OBJ/ufs_dir.o  /sys/`arch -k`/OBJ/ufs_dir.o_orig
    mv  /sys/`arch -k`/OBJ/ufs_subr.o  /sys/`arch -k`/OBJ/ufs_subr.o_orig
    mv  /sys/`arch -k\OBJ/ufs_vnodeops.o  /sys/`arch -k`/OBJ/ufs_vnodeops.o_orig

    cp `arch -k`/ufs_bmap.o  /sys/`arch -k`/OBJ/ufs_bmap.o
    cp `arch -k`/ufs_inode.o  /sys/`arch -k`/OBJ/ufs_inode.o
    cp `arch -k`/ufs_vfsops.o  /sys/`arch -k`/OBJ/ufs_vfsops.o
    cp `arch -k`/ufs_dir.o  /sys/`arch -k`/OBJ/ufs_dir.o
    cp `arch -k`/ufs_subr.o  /sys/`arch -k`/OBJ/ufs_subr.o
    cp `arch -k`/ufs_vnodeops.o  /sys/`arch -k`/OBJ/ufs_vnodeops.o

    Then, build, install, and boot a new kernel.  Please refer to the
    System and Network Administration Manual.
