Patch Name: PHCO_19413 Patch Description: s700_800 11.04 (VVOS) mount(1M) cumulative patch Creation Date: 99/07/30 Post Date: 99/09/24 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: No Category Tags: defect_repair enhancement general_release Path Name: /hp-ux_patches/s700_800/11.X/PHCO_19413 Symptoms: PHCO_19413: Port HP-UX patch PHCO_18316 to VVOS. Note: Although the HP-UX patch below refers to nfs, nfs is not supported on 11.04. Based on HP-UX patch PHCO_18316: On a cold install (Ignite-UX), /etc/mnttab should not be updated before mounting, even if it is found to be out of sync with the kernel mount table. Based on HP-UX patch PHCO_17698: If a file system is in /etc/mnttab but is not really mounted, perhpas due to a bad or out-of-date /etc/mnttab file, the mount command fails with the message that the file system is already mounted, even though the file system is not mounted. Based on HP-UX patch PHCO_16582: Locking scheme for /etc/mnttab causes deadlocks. Based on HP-UX patch PHCO_14626: For mount -a, cachefs file systems in /etc/fstab must be mounted after nfs file systems. Defect Description: PHCO_19413: Port HP-UX patch PHCO_18316 to VVOS. Note: Although the HP-UX patch below refers to nfs, nfs is not supported on 11.04. Based on HP-UX patch PHCO_18316: During a cold install, the ignition software manipulates /etc/mnttab (temporarily) for its own purposes. This causes /etc/mnttab to be incorrect with respect to the kernel mount table. However, at this point in the cold install, this is desirable, so that Ignite-UX does NOT want the mount command to update /etc/mnttab (i.e., sync it up with the kernel table) before mounting. Resolution: In the isalreadymounted() function, when we discover that the file system is in /etc/mnttab but not in the kernel mount table, i.e. that /etc/mnttab and the kernel mount table are out of sync, we then need to check to see if this is during a cold install. If it is, then we do not want to call update_mnttab() to sync /etc/mnttab before mounting. Based on HP-UX patch PHCO_17698: The mount command relies on /etc/mnttab to determine if a file system is already mounted. Therefore, if the /etc/mnttab file is bad or out-of-date due to, for example, an unexpected reboot which does not update /etc/mnttab when it unmounts file systems, the mount command fails with the message that the file system is already mounted, even though the file system may not actually be mounted. This can have serious ramifications in certain situations, such as when a reboot happens at system init time such that a critical file system such as /stand cannot be mounted. Resolution: When the mount command finds the file system in /etc/mnttab, it then checks the kernel file system table to see if the file system is, in fact, mounted. If it IS mounted, it appropriately fails with an "already mounted" message. If it is NOT mounted, this indicates that /etc/mnttab and the kernel file system table are out of sync, so it updates /etc/mnttab and then proceeds with mounting the file system. Based on HP-UX patch PHCO_16582: When a process reads /etc/mnttab, it locks the file. This blocks any other process from reading the file. Resolution: The libc routines that access /etc/mnttab need to change so that they no longer lock on read; they must only lock on write. In cooperation with libc changes, the mount(1M) command needs some integrity checks when it reads /etc/mnttab, to help compensate for not having the read lock. This prevents mount(1M) from using an out-of-date /etc/mnttab file, or from using a corrupt or empty file and failing with, "mount: file system table may be corrupt". In addition, mount(1M) needs to change the way it updates /etc/mnttab, so that write-locking is minimized. All these changes help reduce the possibility of a deadlock situation, especially in HA environments, where multiple processes may be attempting to access and/or update /etc/mnttab at the same time. Based on HP-UX patch PHCO_14626: For mount -a, cachefs file systems in /etc/fstab must be mounted after nfs file systems. SR: 1653293282 1653290346 Patch Files: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /sbin/mount what(1) Output: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /sbin/mount: $Revision: Hewlett-Packard ISSL Level vvos_rose42 $ $Header: Hewlett-Packard ISSL Release vvos_r ose $ $Date: Thu Sep 9 20:15:20 EDT 1999 $ $Revision: 82.5.1.7 $ $Source: cmd/mount/wrapper/mount.c, hpuxcmdfs, vvos_ rose, rose0014 $ $Date: 99/09/03 14:13:02 $ $Revision: 1.13 PATCH_11.04 (PHCO_19413) $ $ PATCH/11.00:PHCO_19491 Aug 9 1999 09:49:32 $ cksum(1) Output: OS-Core.UX-CORE,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: 1950808181 372736 /sbin/mount Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHCO_18316: s700: 11.00 s800: 11.00 Patch Package Size: 390 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 PHCO_19413 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_19413.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_19413. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHCO_19413.depot WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHCO_19413.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_19413.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_19413.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None