Patch Name: PHKL_18197 Patch Description: s700 10.20 VxFS (JFS) mount,fsck cumulative patch Creation Date: 99/04/13 Post Date: 99/04/15 Repost: 99/06/09 Missing patch dependency information was added to the documentation. Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: JournalFS.VXFS-BASE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_18197: CORRUPTION PHKL_17716: PANIC PHKL_12339: HANG PHKL_12007: CORRUPTION Path Name: /hp-ux_patches/s700/10.X/PHKL_18197 Symptoms: PHKL_18197: On vxfs filesystems where a particular type of inode corruption occurs, all future mounts of that filesystem fail. In the message buf will be the message: vx_iget - [fs name] file system invalid inode number [#] This message will possibly be repeated many times. Future attempts to mount this file system will fail with either: vxfs mount: [device] is not a vxfs file system or vxfs mount: [device] is corrupted. needs checking At that point, if an fsck is performed the file system can be mounted, but further use of the file system may cause the vx_iget message to occur again, and the file system to again be unmountable. PHKL_17716: SR: 4701411298 DTS: JAGaa45918 A panic may occur in vx_spinlock() when trying to mount a corrupt VxFS file system. This patch provides a fix so that a failure is reported in this case, but a panic will not occur. PHKL_12339: Mounting a VxFS Version 2 filesystem containing a large amount of files (in excess of 800,000) can take several minutes to complete. During the time it takes to mount the filesystem the system appears to be hung. This patch provides improved kernel routines which eliminate this performance problem. PHKL_12007: 10.20 fsck on vxfs (version 3) filesystem fails with the following error: # fsck -o full -y /dev/vg01/lvol3 pass0 - checking structural files pass1 - checking inode sanity and blocks pass2 - checking directory linkage pass3 - checking reference counts pass4 - checking resource maps small extent in iau inode This occured after a normal shutdown. The filesystem is unusable and must be newfs'd. This patch provides the kernel half of a solution for an fsck defect. The commands patch PHCO_11908 must also be applied to install the full solution. Without PHCO_11908 installed, this patch will have no impact. Defect Description: PHKL_18197: The vxfs kernel was not properly handling sparse IFILT files. This was due to fsh_ninode being incorrectly set in this case, as well as the end of the IFILT list being calculated incorrectly. Resolution: vx_fsetialloc() was updated to properly update fsh_ninode in the case of a sparse IFILT file. vx_olt_ilistadd() was updated to properly find the end of the IFILT list in this case. This prevents a corrupt filesystem from getting worse, and will not fix the inital cause of the corruption. PHKL_17716: SR: 4701411298 DTS: JAGaa45918 The problem can be reproduced by using fsdb to corrupt inode 2 (the root inode) of the file system. Resolution: The problem has been corrected so that the mount will fail instead of causing a panic if the file system is corrupted in this manner since a corrupted file system should not be mounted. PHKL_12339: Mounting a version 2 VxFS filesystem containing many (>800K) files takes several minutes. PHKL_12007: this is the kernel part of the solution to that fsck problem that PHCO_11908 addresses. It involves a VxFS filesystem. SR: 1653297531 4701361758 4701411298 5003383307 Patch Files: /usr/conf/lib/libvxfs_base.a(vx_fsetsubr.o) /usr/conf/lib/libvxfs_base.a(vx_oltmount.o) what(1) Output: /usr/conf/lib/libvxfs_base.a(vx_fsetsubr.o): vx_fsetsubr.c $Date: 99/04/09 10:15:28 $ $Revision: 1.2.98.15 $ PATCH_10.20 (PHKL_18197) /usr/conf/lib/libvxfs_base.a(vx_oltmount.o): vx_oltmount.c $Date: 99/04/09 10:27:04 $ $Revision: 1.6.98.16 $ PATCH_10.20 (PHKL_18197) cksum(1) Output: 3172264055 21208 /usr/conf/lib/libvxfs_base.a(vx_fsetsubr.o) 2639060051 27964 /usr/conf/lib/libvxfs_base.a(vx_oltmount.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16750 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_12007 PHKL_12339 PHKL_17716 Equivalent Patches: PHKL_18198: s800: 10.20 Patch Package Size: 110 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_18197 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_18197.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHKL_18197.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_18197. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_18197.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_18197.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: The kernel patch PHKL_12007 provides the kernel half of a solution for an fsck defect. The commands patch PHCO_11908 must also be applied to achieve the full solution. Without PHCO_11908 installed, this patch will have no impact. This patch depends on base patch PHKL_16750. For successful installation, please ensure that PHKL_16750 is in the same depot with this patch, or PHKL_16750 is already installed.