Patch-ID# 110434-09
Keywords: VxFS 3.4 VERITAS File System fsadm vxedquota rename Quick I/O DMAPI
Synopsis: VERITAS File System 3.4: VxFS 3.4 multiple fixes patch
Date: Feb/07/2003

Install Requirements: Reboot after installation                      
                      
Solaris Release: 7

SunOS Release: 5.7

Unbundled Product: Veritas VxFS

Unbundled Release: 3.4

Xref: 

Topic: VxFS 3.4 Multiple fixes patch

Relevant Architectures: sparc

BugId's fixed with this patch: 4350275 4375699 4375709 4387946 4391430 4395201 4403414 4404637 4412462 4423662 4431015 4432450 4453199 4473431 4488408 4497674 4546309 4657088 4667568 4668200 4683708 4745082 4751467 4778806

Changes incorporated in this version: 4497674 4657088 4667568 4668200 4683708 4745082 4751467 4778806

Patches accumulated and obsoleted by this patch: 

Patches which conflict with this patch: 

Patches required with this patch: 

Obsoleted by: 

Files included with this patch: 

/etc/fs/vxfs/mount
/etc/fs/vxfs/qlogattach
/etc/fs/vxfs/qlogck
/etc/fs/vxfs/qlogrec
/etc/init.d/qlog-startup
/etc/rcS.d/S88qlog-startup
/kernel/drv/sparcv9/vxportal
/kernel/drv/vxportal
/kernel/drv/vxportal.conf
/kernel/fs/sparcv9/vxfs
/kernel/fs/vxfs
/opt/VRTS/man/man1/cp_vxfs.1
/opt/VRTS/man/man1/cpio_vxfs.1
/opt/VRTS/man/man1/getext.1
/opt/VRTS/man/man1/ls_vxfs.1
/opt/VRTS/man/man1/mv_vxfs.1
/opt/VRTS/man/man1/qioadmin.1
/opt/VRTS/man/man1/qiomkfile.1
/opt/VRTS/man/man1/qiostat.1
/opt/VRTS/man/man1/setext.1
/opt/VRTS/man/man1m/df_vxfs.1m
/opt/VRTS/man/man1m/ff_vxfs.1m
/opt/VRTS/man/man1m/fsadm_vxfs.1m
/opt/VRTS/man/man1m/fscat_vxfs.1m
/opt/VRTS/man/man1m/fsck_vxfs.1m
/opt/VRTS/man/man1m/fsckptadm.1m
/opt/VRTS/man/man1m/fsclustadm.1m
/opt/VRTS/man/man1m/fsdb_vxfs.1m
/opt/VRTS/man/man1m/fstyp_vxfs.1m
/opt/VRTS/man/man1m/mkfs_vxfs.1m
/opt/VRTS/man/man1m/mount_vxfs.1m
/opt/VRTS/man/man1m/ncheck_vxfs.1m
/opt/VRTS/man/man1m/qlogadm.1m
/opt/VRTS/man/man1m/qlogattach.1m
/opt/VRTS/man/man1m/qlogck.1m
/opt/VRTS/man/man1m/qlogdb.1m
/opt/VRTS/man/man1m/qlogdetach.1m
/opt/VRTS/man/man1m/qlogdisable.1m
/opt/VRTS/man/man1m/qlogenable.1m
/opt/VRTS/man/man1m/qlogmk.1m
/opt/VRTS/man/man1m/qlogprint.1m
/opt/VRTS/man/man1m/qlogrec.1m
/opt/VRTS/man/man1m/qlogrm.1m
/opt/VRTS/man/man1m/qlogstat.1m
/opt/VRTS/man/man1m/qlogtrace.1m
/opt/VRTS/man/man1m/umount_vxfs.1m
/opt/VRTS/man/man1m/vxdump.1m
/opt/VRTS/man/man1m/vxedquota.1m
/opt/VRTS/man/man1m/vxfsconvert.1m
/opt/VRTS/man/man1m/vxfsstat.1m
/opt/VRTS/man/man1m/vxquot.1m
/opt/VRTS/man/man1m/vxquota.1m
/opt/VRTS/man/man1m/vxquotaoff.1m
/opt/VRTS/man/man1m/vxquotaon.1m
/opt/VRTS/man/man1m/vxrepquota.1m
/opt/VRTS/man/man1m/vxrestore.1m
/opt/VRTS/man/man1m/vxtunefs.1m
/opt/VRTS/man/man1m/vxupgrade.1m
/opt/VRTS/man/man3/vxfsu_get_ioffsets.3
/opt/VRTS/man/man4/fs_vxfs.4
/opt/VRTS/man/man4/inode_vxfs.4
/opt/VRTS/man/man4/qlog_config.4
/opt/VRTS/man/man4/tunefstab.4
/opt/VRTS/man/man7/qlog.7
/opt/VRTS/man/man7/vxfsio.7
/opt/VRTSvxfs/include/dmapi.h
/opt/VRTSvxfs/include/fdd.h
/opt/VRTSvxfs/include/sys/fs/dmapi.h
/opt/VRTSvxfs/include/sys/fs/dmapi_size.h
/opt/VRTSvxfs/include/sys/fs/vx_ioctl.h
/opt/VRTSvxfs/include/sys/fs/vxio.h
/opt/VRTSvxfs/include/vxfsutil.h
/opt/VRTSvxfs/lib/.libvxfsutil.so
/opt/VRTSvxfs/lib/libvxfsutil.a
/opt/VRTSvxfs/lib/libxdsm.a
/opt/VRTSvxfs/lib/sparcv9/.libvxfsutil.so
/opt/VRTSvxfs/lib/sparcv9/libvxfsutil.a
/opt/VRTSvxfs/lib/uxvxfs.txt
/opt/VRTSvxfs/sbin/cp
/opt/VRTSvxfs/sbin/cpio
/opt/VRTSvxfs/sbin/fsadm
/opt/VRTSvxfs/sbin/fscat
/opt/VRTSvxfs/sbin/fsckptadm
/opt/VRTSvxfs/sbin/fsclustadm
/opt/VRTSvxfs/sbin/getext
/opt/VRTSvxfs/sbin/ln
/opt/VRTSvxfs/sbin/ls
/opt/VRTSvxfs/sbin/mv
/opt/VRTSvxfs/sbin/qioadmin
/opt/VRTSvxfs/sbin/qiomkfile
/opt/VRTSvxfs/sbin/qiostat
/opt/VRTSvxfs/sbin/qlogadm
/opt/VRTSvxfs/sbin/qlogdb
/opt/VRTSvxfs/sbin/qlogdetach
/opt/VRTSvxfs/sbin/qlogdisable
/opt/VRTSvxfs/sbin/qlogenable
/opt/VRTSvxfs/sbin/qlogmk
/opt/VRTSvxfs/sbin/qlogprint
/opt/VRTSvxfs/sbin/qlogrm
/opt/VRTSvxfs/sbin/qlogstat
/opt/VRTSvxfs/sbin/qlogtrace
/opt/VRTSvxfs/sbin/setext
/opt/VRTSvxfs/sbin/vxdump
/opt/VRTSvxfs/sbin/vxedquota
/opt/VRTSvxfs/sbin/vxfsckd
/opt/VRTSvxfs/sbin/vxfsconvert
/opt/VRTSvxfs/sbin/vxfsstat
/opt/VRTSvxfs/sbin/vxquot
/opt/VRTSvxfs/sbin/vxquota
/opt/VRTSvxfs/sbin/vxquotaoff
/opt/VRTSvxfs/sbin/vxquotaon
/opt/VRTSvxfs/sbin/vxrepquota
/opt/VRTSvxfs/sbin/vxrestore
/opt/VRTSvxfs/sbin/vxtunefs
/opt/VRTSvxfs/sbin/vxupgrade
/usr/kernel/drv/fdd
/usr/kernel/drv/fdd.conf
/usr/kernel/drv/qlog
/usr/kernel/drv/qlog.conf
/usr/kernel/drv/sparcv9/fdd
/usr/kernel/drv/sparcv9/qlog
/usr/lib/fs/vxfs/df
/usr/lib/fs/vxfs/ff
/usr/lib/fs/vxfs/fsck
/usr/lib/fs/vxfs/fsckall
/usr/lib/fs/vxfs/fsdb
/usr/lib/fs/vxfs/fstyp
/usr/lib/fs/vxfs/mkfs
/usr/lib/fs/vxfs/ncheck
/usr/lib/fs/vxfs/umount

Problem Description:

--------------------
 
4497674  (114404) VxFS caused a system panic in the page_find()
	   function on Solaris debug kernel.
4657088  (101308) Panic in vx_freeze_all_fs.
4667568  (93459) VxFS Quick I/O functionality was not operating on
	   Solaris 9.
4668200  (96374) vx_dirrem_5 errors appear on an active file system.
4683708  (93341) VxFS was not checking existing tunable values when
	 setting tunables.
4745082  (98157) The default intent logging mode is "log" when mounting
	 a VxFS file system with the -g (global) option.
4751467  (112535) vxrestore -r fails to fully restore incremental dumps 
	 (level 9 dumps).
4778806  (113367) Problem inheriting ACLs.
(99247)	 The readdir() and getdents() calls return EINVAL.
 
(from 110434-08)
(from 110434-07)
 
4488408 (89103) Remount fails (mount -g -o remount) on 64-bit kernels.
 
(91550) Directory errors occurred because cache information was not
	being updated correctly.
(92686) VxFS DMAPI returned a value of zero instead of the number of
	bytes.
 
(from 110434-06)
 
4431015 (73161) System panic occurred while editing quotas.
4473431 (39397) High number of ioctl failures occurred when
	defragmenting a file system after upgrading.
4546309 (82077) Renaming files in large directories occasionally caused
	a directory operation error and marked a file system for a full
	fsck.
(80383) Cluster reconfiguration sometimes caused directory errors and
	marked a file system for a full fsck.
(82334) Various problems were arising on VxFS due to incorrect handling
        of large directory caches.
(83129) An extended attribute class shared between VxFS and the file
	server application could cause data corruption.
(85889) System hang occurred because of the long time required for
	processing inactive inodes on a disabled file system.
(89711) Directory error messages were generated when updating the hash
	list.
(90066) Data blocks were corrupted when writing to Quick I/O files
	while removing Storage Checkpoints. 
 
 
(from 110434-05)
(from 110434-04)
(from 110434-03)
 
4404637 (57694) VxFS ACLS were not consistent with group permissions.
4423662 (62971) VxFS buffer pages were allocated as kernel pages.
4432450 (63546) The mount command datainlog option was not the default
	on Solaris 8 systems.
4453199 (68523) Running the umount command generated spurious warning
	message: "no entries found in /etc/mnttab."
(18142) Changed VxFS error policy to not mark inodes bad on disk.
(38669) Update to the vxrestore(1M) online manual page.
(52408) The vxdump command did not work correctly on Solaris 8 because
	it was trying to access the obsoleted utmp and wtmp files.
(53075) Quick I/O files could not be resized to 1 byte less than 2 GB.
(57603) System panicked during an extent reorganization. 
(59984) System would hang due to a deadlock between bmaplock and
	buffer.
(62978) When running vxdump on Solaris 8, the remote host name
	was not displayed correctly.
(64192) Panic occurred when attempting to modunload GAB when VxFS 3.4
	was installed.
 
 
(from 110434-02)
(from 110434-01)
 
4350275 (32433) Space freed by deleting a large file took a long time
        to appear in df command output.
4375699 (55091) The mount -g option did not clear the noglobal flag in
        /etc/mnttab.
4375709 (55091) The mount -g option did not clear the noglobal flag in
        /etc/mnttab.
4387946 (55997) New Solaris paging counters were not being updated.
4391430 (58247) The "qlogrec -s" command displayed wrong error
        message.
4395201 (58063) The NFS thread size was not 16K in Solaris 8 32-bit
        operating systems.
4403414 (56313) A vxdump command problem was reintroduced into VxFS.
4412462 (58780) Running "mount -g -o remount" on a read-only VxFS file
        system failed with an EBUSY error.
(23593) Enhancement request for the vxquota command to work over NFS.
(51154) Added vxfsstat command and manual page to VxFS.
(54546) VxFS file systems could not be unmounted although there was no
        apparent problem.
(54944) VxFS commands were not built to support message catalogs.

Patch Installation Instructions:
--------------------------------
 
For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
''installpatch'' and ''backoutpatch'' scripts provided with each patch.
 
For Solaris 7-9 releases, refer to the man pages for instructions
on using ''patchadd'' and ''patchrm'' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions.  The following example
installs a patch to a standalone machine:
 
       example# patchadd /var/spool/patch/104945-02
 
The following example removes a patch from a standalone system:
 
       example# patchrm 104945-02
 
For additional examples please see the appropriate man pages.

Special Install Instructions:
---------------------------------
 
You need to use the shutdown command to reboot the system after patch
installation or de-installation:
 
     shutdown -g0 -y -i6
 
 
Additional Notes:
-----------------
 
VxFS 3.4patch04 includes all fixes from the VxFS 3.4patch01, VxFS
3.4patch02, and VxFS 3.4patch03 releases.
 
This patch can be applied to VxFS Release 3.4, VxFS 3.4patch01, VxFS
3.4patch02, and VxFS 3.4patch03. This patch cannot be applied to pre-3.4 
VxFS releases.
 
The following files included in this release are hard links to another
file:
 
    /etc/rcS.d/S88qlog-startup (hard linked to /etc/init.d/qlog-startup)
    /opt/VRTSvxfs/sbin/cp (hard linked to mv)
    /opt/VRTSvxfs/sbin/ln (hard linked to mv)
    /opt/VRTSvxfs/sbin/qlogdisable (hard linked to qlogenable)
    /opt/VRTSvxfs/sbin/vxquotaoff (hard linked to vxquotaon)
 
There were 9 major VxFS escalated incidents. They are described below.
 
1) VERITAS Incident 114404 (Sun ID 4497674)
 
	System panics occurred in the page_find() function because this
	function is called with a non-page boundary offset by VxFS.
 
2) VERITAS Incident 101308 (Sun ID 4657088)
 
	The PXFS file system uses the underlying file system type (VxFS) as
	its VFS layer to make it transparent to applications. So VxFS may
	interpret PXFS vnodes to be VxFS vnodes, mistakenly dereference the
	vnode as a VxFS vnode, and panic. In addition to checking for VFS
	type, VxFS now implements checks to determine whether a vnode is
	VxFS vnode.
 
3) VERITAS Incident 93459 (Sun ID 4667568)
 
	On Solaris 9, applications using the VERITAS Quick I/O feature
	hang indefinitely in as_free().
 
4) VERITAS Incident 96374 (Sun ID 4668200)
 
	Failed directory operations occurred on an active file system
	and vx_dirrem_5 error messages were displayed on the console.
 
5) VERITAS Incident 93341 (Sun ID 4683708)
 
	When VxFS increased the default stack size (24 kilobytes),
	it was not checking to determine if any other utility
	previously set the tunable to a higher value.
 
6) VERITAS Incident 98157 (Sun ID 4745082)
 
	Changes the default intent logging mode from "delaylog" to "log"
	when a VxFS file system is mounted using the generic -g (global)
	option of the mount command.
 
7) VERITAS Incident 112535 (Sun ID 4751467)
 
	The vxrestore -r command was failing to fully restore an
	incremental dump (level 9 off a 0) while vxrestore -x and
	vxrestore -i restore files as expected.
 
8) VERITAS Incident 113367 (Sun ID 4778806)
 
	Files created under a directory with default ACLs sometimes did
	not inherit the ACLs until a directory was created within the
	directory.
 
9) VERITAS Incident 99247
 
	The readdir() and gendents() calls returned EINVAL to
	applications if some operations changed the directory
	information in between the previous call and current call. This
	behavior was changed to conform to UFS.
 
(from 110434-08)
(from 110434-07)
1) VERITAS Incident 89103 (Sun ID 4488408)
 
	The "mount -g -o remount" command failed to remount a file
	system when run on a 64-bit kernels. Problem appears only in a
	cluster on the primary node when running in 64-bit mode.
 
2) VERITAS Incident 91550
 
        On VxFS 3.4 Patch 02, directory errors occurred when renaming a
        file. The directory cache information was not being updated
        correctly.
 
3) VERITAS Incident 92686
 
	The DMAPI dm_read_invis function was returning a 0 instead of
	the number of bytes read because a tunable was not being
	initialized correctly.
 
(from 110434-06)
 
4) VERITAS Incident 39397 (Sun ID 4473431)
 
	After upgrading to VxFS 3.4, a high number of ioctl failures
	were reported when the fsadm -d command was used to defragment
	file systems. The directory sorting code in fsadm was modified
	to improve performance.
 
5) VERITAS Incident 73161 (Sun ID 4431015)
 
	System panic occurred while editing quotas (vxedquota command).
 
6) VERITAS Incident 80383
 
	For operations involving large directories, reconfiguring a
	cluster sometimes causes directory errors and marked a file
	system for a full fsck.
 
7) VERITAS Incident 82077 (Sun ID 4546309)
 
	Renaming files in large directories occasionally caused
        a directory operation error and marked a file system for a full
        fsck.
 
8) VERITAS Incident 82334
 
	There were numerous performance enhancements to VxFS to improve 
	the handling of large directory caches.
 
9) VERITAS Incident 83129
 
	An extended attribute class shared between VxFS and the file
        server application could cause data corruption.
 
10) VERITAS Incident 85889
 
	System hang occurred because of the long time required for
        processing inactive inodes on a disabled file system.
 
11) VERITAS Incident 89711
 
	Directory errors occurred when updating the hash list.  After a
	file or directory was removed, its name was not found on the
	hash chain, thus generating directory error messages (vxfs:
	mesg 008, vxfs: mesg 009).
 
12) VERITAS Incident 90066
 
	A race condition occurred between writes to Quick I/O files and
	the removal of Storage Checkpoints (used by Block-Level
	Incremental (BLI) backups). The Quick I/O write was dropped,
	but the I/O was, incorrectly, marked as done.
 
(from 110434-05)
(from 110434-04)
(from 110434-03)
 
1) VERITAS Incident 18142
 
	The VxFS error handling policy was changed to not mark inodes
	bad on disk because there are some situations, such as
	intermittent hardware problems, where correct metadata can be
	considered corrupted.
 
2) VERITAS Incident 38669 
 
	The vxrestore(1M) online manual page was updated to better
	explain error conditions.
 
3) VERITAS Incident 52408
 
	On Solaris 8, the utmp and wtmp database files were superseded
	by the utmpx and wtmpx database files. For the vxdump command
	to work correctly, it was modified to use the getutxent(3C)
	function to access utmpx.
 
4) VERITAS Incident 53075
 
	Because the file size was not a multiple of a 512-bite sector,
	a Quick I/O file could not be resized to 1 byte less than 2 GB.
 
5) VERITAS Incident 57603
 
	System panicked during an extent reorganization because of a
	race condition between the vx_ialloc and vx_rename1 functions.
 
6) VERITAS Incident 57694 (Sun ID 4404637)
 
	When the setfacl or acl system call was used to set file
	permissions and a mask (CLASS_OBJ) value was specified, if the
	mask value was different from the group permissions, VxFS would
	set the wrong value for the group permission bits.
 
7) VERITAS Incident 59984
 
	System hang occurred due to a deadlock condition between an
	inode blockmap lock and a disk block buffer.
 
8) VERITAS Incident 62971 (Sun ID 4423662)
 
	VxFS file system buffer pages were being allocated as kernel
	pages instead of user pages.
 
9) VERITAS Incident 62978 
 
	On Solaris 8 systems, the remote host's name was not correct in
	the output displayed from the vxdump command.
 
10) VERITAS Incident 63546 (Sun ID 4432450) 
 
	Even though the mount command datainlog option was selected,
	it was not being reported correctly in the /etc/mnttab file.
 
11) VERITAS Incident 64192
 
	On systems with VxFS 3.4 installed, panics occurred when trying
	to modunload the Global Atomic Broadcast (GAB) software.
 
12) VERITAS Incident 68523 (Sun ID 4453199) 
 
	The warning message "no entries found in /etc/mnttab"
	incorrectly displayed when trying to umount VxFS file systems
	using a script that ran umount commands in the background.
 
(from 110434-02)
(from 110434-01)
 
1) VERITAS Incident 23593
 
        VxFS now implements the quota API documented in the Solaris
        quotactl(7I) manual page. Users who have written their own
        quota tools based on the Q_QUOTACTL ioctl can now use those
        tools on VxFS file systems. However, you cannot administer VxFS
        file system quotas using the Q_QUOTACTL ioctl from a client
        which mounts VxFS over NFS. This capability will not be
        available until a modification to the RPC quota daemon
        (enabling quotas on file systems other than UFS) is implemented
        on the Solaris operating system.
 
2) VERITAS Incident 32433 (Sun ID 4350275)
 
        Although space was actually available after deleting files, the
        resulting free space was not displayed in the output of the df
        command.
 
3) VERITAS Incident 51154
 
        Incorporated VxFS system statistic reporter.
 
4) VERITAS Incident 54546
 
        A VxFS file system could not be successfully unmounted after a
        failover scenario. This occurred because the file system was
        exported and the unsharing of a disabled file system was not
        handled correctly by VxFS.
 
5) VERITAS Incident 54944
 
        VxFS commands were capable of supporting a message catalog to
        retrieve localized messages, but the commands were being built
        without this support in VxFS releases. Starting with this
        release, VxFS is delivered with internationalization (I18N)
        support enabled for messages displayed by VERITAS File System
        commands. Commands such as fsck_vxfs that prompt users for
        input are not internationalized.
 
6) VERITAS Incident 55091 (Sun ID 4375699 and 4375709)
 
        The command "mount -F vxfs -g <devicename> <mount_point>" set
        both the global and noglobal options in the /etc/mnttab file.
        This problem occurred while testing SunCluster.
 
7) VERITAS Incident 55997 (Sun ID 4387946)
 
        The pages in, pages out, and pages free counters added in
        Solaris 7 were not being updated by VxFS.
 
8) VERITAS Incident 56313 (Sun ID 4403414)
 
        If vxdump was used to back up a snapshot of a VxFS file system,
        the command used the time it was run from the /etc/dumpdates
        file instead of the time the snapshot was taken, resulting in
        files never being backed up. This problem was inadvertently
        reintroduced into the VxFS 3.4 release.
 
9) VERITAS Incident 58063 (Sun ID 4395201)
 
        VxFS often requires more than the default 8K kernel stack size,
        so during the VRTSvxfs installation, entries are added to the
        /etc/system file to increase the kernel thread stack size to
        16K.
 
10) VERITAS Incident 58247 (Sun ID 4391430)
 
        The "qlogrec -s" command was returning the wrong exit status so
        that a VERITAS Volume Manger (VxVM) error message was being
        displayed in a non-VxVM environment.
 
11) VERITAS Incident 58780 (Sun ID 4412462)
 
        The "mount -g -o remount" command run on a read-only VxFS file
        system incorrectly returned a device busy error. Changes to
        VxFS and Sun Cluster PXFS code resolved the problem.

README -- Last modified date:  Friday, February 7, 2003

