Patch-ID# 125760-04 Keywords: VxFS 5.0MP1 VERITAS File System Rolling Patch 03 Synopsis: VRTSvxfs 5.0MP1RP3: Rolling Patch for File System 5.0MP1 Date: Jan/16/2008 Solaris Release: 8 SunOS Release: 5.8 Unbundled Product: VERITAS VxFS Unbundled Release: 5.0MP1 Topic: VxFS 5.0MP1 RP3 Multiple Fixes Patch Relevant Architectures: sparc BugId's fixed with this patch: 6305689 6547100 Changes incorporated in this version: 6547100 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: 123200-02 Obsoleted by: Files included with this patch: $ROOT_2.8/etc/fs/vxfs/mount $ROOT_2.8/etc/fs/vxfs/qioadmin $ROOT_2.8/etc/init.d/vxfsldlic $ROOT_2.8/etc/rc2.d/S01vxfsldlic $ROOT_2.8/etc/vx/cdslimitstab $ROOT_2.8/kernel/drv/sparcv9/vxportal $ROOT_2.8/kernel/drv/vxportal $ROOT_2.8/kernel/drv/vxportal.conf $ROOT_2.8/kernel/fs/sparcv9/vxfs $ROOT_2.8/kernel/fs/vxfs $ROOT_2.8/opt/VRTSvxfs/include/dmapi.h $ROOT_2.8/opt/VRTSvxfs/include/sys/fs/dmapi.h $ROOT_2.8/opt/VRTSvxfs/include/sys/fs/dmapi_size.h $ROOT_2.8/opt/VRTSvxfs/include/sys/fs/dmattr_drv.h $ROOT_2.8/opt/VRTSvxfs/include/sys/fs/vxio.h $ROOT_2.8/opt/VRTSvxfs/lib/libxdsm.a $ROOT_2.8/opt/VRTSvxfs/lib/sparcv9/vxckptpriv.so $ROOT_2.8/opt/VRTSvxfs/lib/sparcv9/vxfspriv.so $ROOT_2.8/opt/VRTSvxfs/lib/sparcv9/vxfsutil.so $ROOT_2.8/opt/VRTSvxfs/lib/vxckptpriv.so $ROOT_2.8/opt/VRTSvxfs/lib/vxfspriv.so $ROOT_2.8/opt/VRTSvxfs/lib/vxfsutil.so $ROOT_2.8/opt/VRTSvxfs/sbin/cp $ROOT_2.8/opt/VRTSvxfs/sbin/cpio $ROOT_2.8/opt/VRTSvxfs/sbin/fcladm $ROOT_2.8/opt/VRTSvxfs/sbin/fiostat $ROOT_2.8/opt/VRTSvxfs/sbin/fsadm $ROOT_2.8/opt/VRTSvxfs/sbin/fsapadm $ROOT_2.8/opt/VRTSvxfs/sbin/fscat $ROOT_2.8/opt/VRTSvxfs/sbin/fscdsadm $ROOT_2.8/opt/VRTSvxfs/sbin/fscdsconv $ROOT_2.8/opt/VRTSvxfs/sbin/fscdstask $ROOT_2.8/opt/VRTSvxfs/sbin/fsckpt_restore $ROOT_2.8/opt/VRTSvxfs/sbin/fsckptadm $ROOT_2.8/opt/VRTSvxfs/sbin/fsclustadm $ROOT_2.8/opt/VRTSvxfs/sbin/fsenvadm $ROOT_2.8/opt/VRTSvxfs/sbin/fsmap $ROOT_2.8/opt/VRTSvxfs/sbin/fsvoladm $ROOT_2.8/opt/VRTSvxfs/sbin/getext $ROOT_2.8/opt/VRTSvxfs/sbin/ls $ROOT_2.8/opt/VRTSvxfs/sbin/mv $ROOT_2.8/opt/VRTSvxfs/sbin/qiomkfile $ROOT_2.8/opt/VRTSvxfs/sbin/qiostat $ROOT_2.8/opt/VRTSvxfs/sbin/setext $ROOT_2.8/opt/VRTSvxfs/sbin/vxdump $ROOT_2.8/opt/VRTSvxfs/sbin/vxedquota $ROOT_2.8/opt/VRTSvxfs/sbin/vxenablef $ROOT_2.8/opt/VRTSvxfs/sbin/vxfsckd $ROOT_2.8/opt/VRTSvxfs/sbin/vxfsconvert $ROOT_2.8/opt/VRTSvxfs/sbin/vxfsstat $ROOT_2.8/opt/VRTSvxfs/sbin/vxgetmsg $ROOT_2.8/opt/VRTSvxfs/sbin/vxlsino $ROOT_2.8/opt/VRTSvxfs/sbin/vxquot $ROOT_2.8/opt/VRTSvxfs/sbin/vxquota $ROOT_2.8/opt/VRTSvxfs/sbin/vxquotaoff $ROOT_2.8/opt/VRTSvxfs/sbin/vxquotaon $ROOT_2.8/opt/VRTSvxfs/sbin/vxrepquota $ROOT_2.8/opt/VRTSvxfs/sbin/vxrestore $ROOT_2.8/opt/VRTSvxfs/sbin/vxupgrade $ROOT_2.8/opt/VRTSvxms/lib/map/libvxfs.so $ROOT_2.8/opt/VRTSvxms/lib/map/libvxfssnap.so $ROOT_2.8/opt/VRTSvxms/lib/map/sparcv9/libvxfs.so $ROOT_2.8/opt/VRTSvxms/lib/map/sparcv9/libvxfssnap.so $ROOT_2.8/usr/kernel/drv/fdd $ROOT_2.8/usr/kernel/drv/fdd.conf $ROOT_2.8/usr/kernel/drv/sparcv9/fdd $ROOT_2.8/usr/lib/fs/vxfs/df $ROOT_2.8/usr/lib/fs/vxfs/ff $ROOT_2.8/usr/lib/fs/vxfs/fsck $ROOT_2.8/usr/lib/fs/vxfs/fsckall $ROOT_2.8/usr/lib/fs/vxfs/fsdb $ROOT_2.8/usr/lib/fs/vxfs/fstyp $ROOT_2.8/usr/lib/fs/vxfs/fsvmap $ROOT_2.8/usr/lib/fs/vxfs/mkfs $ROOT_2.8/usr/lib/fs/vxfs/ncheck $ROOT_2.8/usr/lib/fs/vxfs/sparcv7/fsck $ROOT_2.8/usr/lib/fs/vxfs/sparcv7/fsck_logv10 $ROOT_2.8/usr/lib/fs/vxfs/sparcv7/fsck_logv11 $ROOT_2.8/usr/lib/fs/vxfs/sparcv7/fsck_logv9 $ROOT_2.8/usr/lib/fs/vxfs/sparcv9/fsck $ROOT_2.8/usr/lib/fs/vxfs/sparcv9/fsck_logv10 $ROOT_2.8/usr/lib/fs/vxfs/sparcv9/fsck_logv11 $ROOT_2.8/usr/lib/fs/vxfs/umount $ROOT_2.8/usr/lib/fs/vxfs/vxtunefs Problem Description: -------------------- (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. Delete i_swmapcnt. Functions that needed the counting in i_swmapcnt now do this in i_swmap. (from 125760-03) (1099216) vx_write_alloc2_local() needs a retry limit as it can infinitely loop due to a fragmented fs. (1102026) Fixed an issue in which if run_replay() returned before calling process_frees(), then replay_done() sometimes tried to free memory that had not been allocated. This corresponded to the dv_estatlist field of the vx_device structure, which was allocated in process_frees() and freed in replay_done(). 6547100 (1104995) vnevent_remove() should be called before file deletion (1114175) Backed out a code change that would cause a file system hang when trying to grow a database via odm. (1116094) type mismatch in vx_do_getpage() arg "plsz" u_int should be vx_off_t. (1122869) layout6 to layout7 upgrade leaves some fields uninitialised, fsck failes as a result. (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. (1157945) Fix a issue in which vxfs used too much CPU looking for odd sized extents. (from 125760-02) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1018519) Corrected call to vol_dereserve() with device name as argument. (1029534) Reverted VX_GET_NINODE back to 57 by switching it with VX_GET_VMMBUFCOUNT. (1032402) Remove VX_DELAY for performance gains. (1040623) Introduced reclaim inactive attribute inodes during vxupgrade of disk layout version 5 to 6. (1060317) Updated vx_read1() to invalidate whole file that is accessed via fdd, before and after doing I/O request. (1061342) Update vx_logbuf_clean(). Move VX_DELAY(1) to later position after releasing fs_logclean_slk lock. (1069070) Introduce a new field (valid) in dotdot_list to capture if there is any valid parent (exist in both parent's db and it's attr area.) With this fix, fsck will able to detect any invalid attr entry. (1069187) ACLs inherited from default ACLs allow greater permission than requested in some cases 6305689 (1090572, 1111711) fsync() times increase as file size grows on VxFS even with few dirty pages VMODSORT. (1090575) Make sure the correct fs passed to vx_device_lookup if the I/O failed to the snapped file system. (1090578) Need a better method of detecting it the current thread is a nfsd thread. (1093626) Back out changes made to vx_extfree() by incident 544066 as they cause a hang with very large extents. (1096460) Check wehether the thread already locked ownership before trying to get ownership. (1096468) Check for validity of fs pointer before accessing fields in fs structure. This is needed because fs structure may not exist at this point, because of a clean unmount. (1113356) Fixed an issue that if run_replay() returned before the calling process_frees(), then replay_done() might have tried to free memory that had not been allocated. (from 125760-01) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1003259) Revised fix of 595487 and initialized tracks and fetapes variables to 0. (1005252) performance enhancements for replay: add tail pointers for the lists we build in add_lwrdones() and add_truncs() so they're O(N) instead of O(N^2). process the freed-extent info between the two passes of replay to convert it from unsorted lists to a sorted array that we can binary-search it in check_frees(). this processing pass is also fundamentally O(N^2) just like the previous check_frees(), but it's more or less linear time in practice, so the O(N log N) of the binary search will dominate. (1005783) Removed triggering of inactive processing on ENOSPC from vx_rdwr(). Patch Installation Instructions: -------------------------------- VRTSvxfs 5.0MP1 patch must be installed first before applying this patch. For the Solaris 8 release, refer to the online manual 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/110434-07 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate manual pages. Special Install Instructions: ----------------------------- You need to use the shutdown command to reboot the system after patch installation or de-installation: shutdown -g0 -y -i6Patch-ID# 125761-04 Keywords: VxFS 5.0MP1 VERITAS File System Rolling Patch 03 Synopsis: VRTSvxfs 5.0MP1RP3: Rolling Patch for File System 5.0MP1 Date: Jan/16/2008 Solaris Release: 9 SunOS Release: 5.9 Unbundled Product: VERITAS VxFS Unbundled Release: 5.0MP1 Topic: VxFS 5.0MP1 RP3 Multiple Fixes Patch Relevant Architectures: sparc BugId's fixed with this patch: 6305689 6547100 Changes incorporated in this version: 6547100 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: 123201-02 Obsoleted by: Files included with this patch: $ROOT_2.9/etc/fs/vxfs/mount $ROOT_2.9/etc/fs/vxfs/qioadmin $ROOT_2.9/etc/init.d/vxfsldlic $ROOT_2.9/etc/rc2.d/S01vxfsldlic $ROOT_2.9/etc/vx/cdslimitstab $ROOT_2.9/kernel/drv/sparcv9/vxportal $ROOT_2.9/kernel/drv/vxportal $ROOT_2.9/kernel/drv/vxportal.conf $ROOT_2.9/kernel/fs/sparcv9/vxfs $ROOT_2.9/kernel/fs/vxfs $ROOT_2.9/opt/VRTSvxfs/include/dmapi.h $ROOT_2.9/opt/VRTSvxfs/include/sys/fs/dmapi.h $ROOT_2.9/opt/VRTSvxfs/include/sys/fs/dmapi_size.h $ROOT_2.9/opt/VRTSvxfs/include/sys/fs/dmattr_drv.h $ROOT_2.9/opt/VRTSvxfs/include/sys/fs/vxio.h $ROOT_2.9/opt/VRTSvxfs/lib/libxdsm.a $ROOT_2.9/opt/VRTSvxfs/lib/sparcv9/vxckptpriv.so $ROOT_2.9/opt/VRTSvxfs/lib/sparcv9/vxfspriv.so $ROOT_2.9/opt/VRTSvxfs/lib/sparcv9/vxfsutil.so $ROOT_2.9/opt/VRTSvxfs/lib/vxckptpriv.so $ROOT_2.9/opt/VRTSvxfs/lib/vxfspriv.so $ROOT_2.9/opt/VRTSvxfs/lib/vxfsutil.so $ROOT_2.9/opt/VRTSvxfs/sbin/cp $ROOT_2.9/opt/VRTSvxfs/sbin/cpio $ROOT_2.9/opt/VRTSvxfs/sbin/fcladm $ROOT_2.9/opt/VRTSvxfs/sbin/fiostat $ROOT_2.9/opt/VRTSvxfs/sbin/fsadm $ROOT_2.9/opt/VRTSvxfs/sbin/fsapadm $ROOT_2.9/opt/VRTSvxfs/sbin/fscat $ROOT_2.9/opt/VRTSvxfs/sbin/fscdsadm $ROOT_2.9/opt/VRTSvxfs/sbin/fscdsconv $ROOT_2.9/opt/VRTSvxfs/sbin/fscdstask $ROOT_2.9/opt/VRTSvxfs/sbin/fsckpt_restore $ROOT_2.9/opt/VRTSvxfs/sbin/fsckptadm $ROOT_2.9/opt/VRTSvxfs/sbin/fsclustadm $ROOT_2.9/opt/VRTSvxfs/sbin/fsenvadm $ROOT_2.9/opt/VRTSvxfs/sbin/fsmap $ROOT_2.9/opt/VRTSvxfs/sbin/fsvoladm $ROOT_2.9/opt/VRTSvxfs/sbin/getext $ROOT_2.9/opt/VRTSvxfs/sbin/ls $ROOT_2.9/opt/VRTSvxfs/sbin/mv $ROOT_2.9/opt/VRTSvxfs/sbin/qiomkfile $ROOT_2.9/opt/VRTSvxfs/sbin/qiostat $ROOT_2.9/opt/VRTSvxfs/sbin/setext $ROOT_2.9/opt/VRTSvxfs/sbin/vxdump $ROOT_2.9/opt/VRTSvxfs/sbin/vxedquota $ROOT_2.9/opt/VRTSvxfs/sbin/vxenablef $ROOT_2.9/opt/VRTSvxfs/sbin/vxfsckd $ROOT_2.9/opt/VRTSvxfs/sbin/vxfsconvert $ROOT_2.9/opt/VRTSvxfs/sbin/vxfsstat $ROOT_2.9/opt/VRTSvxfs/sbin/vxgetmsg $ROOT_2.9/opt/VRTSvxfs/sbin/vxlsino $ROOT_2.9/opt/VRTSvxfs/sbin/vxquot $ROOT_2.9/opt/VRTSvxfs/sbin/vxquota $ROOT_2.9/opt/VRTSvxfs/sbin/vxquotaoff $ROOT_2.9/opt/VRTSvxfs/sbin/vxquotaon $ROOT_2.9/opt/VRTSvxfs/sbin/vxrepquota $ROOT_2.9/opt/VRTSvxfs/sbin/vxrestore $ROOT_2.9/opt/VRTSvxfs/sbin/vxupgrade $ROOT_2.9/opt/VRTSvxms/lib/map/libvxfs.so $ROOT_2.9/opt/VRTSvxms/lib/map/libvxfssnap.so $ROOT_2.9/opt/VRTSvxms/lib/map/sparcv9/libvxfs.so $ROOT_2.9/opt/VRTSvxms/lib/map/sparcv9/libvxfssnap.so $ROOT_2.9/usr/kernel/drv/fdd $ROOT_2.9/usr/kernel/drv/fdd.conf $ROOT_2.9/usr/kernel/drv/sparcv9/fdd $ROOT_2.9/usr/lib/fs/vxfs/df $ROOT_2.9/usr/lib/fs/vxfs/ff $ROOT_2.9/usr/lib/fs/vxfs/fsck $ROOT_2.9/usr/lib/fs/vxfs/fsckall $ROOT_2.9/usr/lib/fs/vxfs/fsdb $ROOT_2.9/usr/lib/fs/vxfs/fstyp $ROOT_2.9/usr/lib/fs/vxfs/fsvmap $ROOT_2.9/usr/lib/fs/vxfs/mkfs $ROOT_2.9/usr/lib/fs/vxfs/ncheck $ROOT_2.9/usr/lib/fs/vxfs/sparcv7/fsck $ROOT_2.9/usr/lib/fs/vxfs/sparcv7/fsck_logv10 $ROOT_2.9/usr/lib/fs/vxfs/sparcv7/fsck_logv11 $ROOT_2.9/usr/lib/fs/vxfs/sparcv7/fsck_logv9 $ROOT_2.9/usr/lib/fs/vxfs/sparcv9/fsck $ROOT_2.9/usr/lib/fs/vxfs/sparcv9/fsck_logv10 $ROOT_2.9/usr/lib/fs/vxfs/sparcv9/fsck_logv11 $ROOT_2.9/usr/lib/fs/vxfs/umount $ROOT_2.9/usr/lib/fs/vxfs/vxtunefs Problem Description: -------------------- (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. Delete i_swmapcnt. Functions that needed the counting in i_swmapcnt now do this in i_swmap. (from 125761-03) (1099216) vx_write_alloc2_local() needs a retry limit as it can infinitely loop due to a fragmented fs. (1102026) Fixed an issue in which if run_replay() returned before calling process_frees(), then replay_done() sometimes tried to free memory that had not been allocated. This corresponded to the dv_estatlist field of the vx_device structure, which was allocated in process_frees() and freed in replay_done(). 6547100 (1104995) vnevent_remove() should be called before file deletion (1114175) Backed out a code change that would cause a file system hang when trying to grow a database via odm. (1116094) type mismatch in vx_do_getpage() arg "plsz" u_int should be vx_off_t. (1122869) layout6 to layout7 upgrade leaves some fields uninitialised, fsck failes as a result. (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. (1157945) Fix a issue in which vxfs used too much CPU looking for odd sized extents. (from 125761-02) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1018519) Corrected call to vol_dereserve() with device name as argument. (1029534) Reverted VX_GET_NINODE back to 57 by switching it with VX_GET_VMMBUFCOUNT. (1032402) Remove VX_DELAY for performance gains. (1040623) Introduced reclaim inactive attribute inodes during vxupgrade of disk layout version 5 to 6. (1060317) Updated vx_read1() to invalidate whole file that is accessed via fdd, before and after doing I/O request. (1061342) Update vx_logbuf_clean(). Move VX_DELAY(1) to later position after releasing fs_logclean_slk lock. (1069070) Introduce a new field (valid) in dotdot_list to capture if there is any valid parent (exist in both parent's db and it's attr area.) With this fix, fsck will able to detect any invalid attr entry. (1069187) ACLs inherited from default ACLs allow greater permission than requested in some cases 6305689 (1090572, 1111711) fsync() times increase as file size grows on VxFS even with few dirty pages VMODSORT. (1090575) Make sure the correct fs passed to vx_device_lookup if the I/O failed to the snapped file system. (1090578) Need a better method of detecting it the current thread is a nfsd thread. (1093626) Back out changes made to vx_extfree() by incident 544066 as they cause a hang with very large extents. (1096460) Check wehether the thread already locked ownership before trying to get ownership. (1096468) Check for validity of fs pointer before accessing fields in fs structure. This is needed because fs structure may not exist at this point, because of a clean unmount. (1113356) Fixed an issue that if run_replay() returned before the calling process_frees(), then replay_done() might have tried to free memory that had not been allocated. (from 125761-01) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1003259) Revised fix of 595487 and initialized tracks and fetapes variables to 0. (1005252) performance enhancements for replay: add tail pointers for the lists we build in add_lwrdones() and add_truncs() so they're O(N) instead of O(N^2). process the freed-extent info between the two passes of replay to convert it from unsorted lists to a sorted array that we can binary-search it in check_frees(). this processing pass is also fundamentally O(N^2) just like the previous check_frees(), but it's more or less linear time in practice, so the O(N log N) of the binary search will dominate. (1005783) Removed triggering of inactive processing on ENOSPC from vx_rdwr(). Patch Installation Instructions: -------------------------------- VRTSvxfs 5.0MP1 patch must be installed first before applying this patch. For the Solaris 9 release, refer to the online manual 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/110434-07 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate manual pages. Special Install Instructions: ----------------------------- Sun introduced a page ordering vnode optimization in Solaris 9 and 10. The optimization includes a new vnode flag, VMODSORT, which when turned on indicates that the Virtual Memory (VM) should maintain the v_pages list in an order depending on if a page is modified or unmodified. Veritas File System (VxFS) can now take advantage of that flag, which can result in significant performance improvements on operations that depend on flushing, such as fsync. This optimization requires the fixes for Sun BugID's 6393251 and 6538758 which are included in the Solaris kernel patch listed below. Enabling VxFS VMODSORT functionality without the correct OS kernel patches can result in data corruption. Required operating system patches: (Solaris 9 SPARC) 122300-11 (or greater) dependent patches: 112233-12 117171-17 118558-39 To enable VxFS VMODSORT functionality, the following linemust be added to the /etc/system file after the vxfs forceload: set vxfs:vx_vmodsort=1 * enable vxfs vmodsort To disable VxFS VMODSORT functionality, the following line must be added to the /etc/system file after the vxfs forceload: set vxfs:vx_vmodsort=0 * disable vxfs vmodsort You need to use the shutdown command to reboot the system after patch installation or de-installation: shutdown -g0 -y -i6Patch-ID# 125762-04 Keywords: VxFS 5.0MP1 VERITAS File System Rolling Patch 03 Synopsis: VRTSvxfs 5.0MP1RP3: Rolling Patch for File System 5.0MP1 Date: Jan/16/2008 Solaris Release: 10 SunOS Release: 5.10 Unbundled Product: VERITAS VxFS Unbundled Release: 5.0MP1 Topic: VxFS 5.0MP1 RP3 Multiple Fixes Patch Relevant Architectures: sparc BugId's fixed with this patch: 6305689 6547100 Changes incorporated in this version: 6547100 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: 123202-02 Obsoleted by: Files included with this patch: $ROOT_2.10/etc/fs/vxfs/mount $ROOT_2.10/etc/fs/vxfs/qioadmin $ROOT_2.10/etc/vx/cdslimitstab $ROOT_2.10/kernel/drv/sparcv9/vxportal $ROOT_2.10/kernel/drv/vxportal.conf $ROOT_2.10/kernel/fs/sparcv9/vxfs $ROOT_2.10/lib/svc/method/vxfsldlic $ROOT_2.10/opt/VRTSvxfs/include/dmapi.h $ROOT_2.10/opt/VRTSvxfs/include/sys/fs/dmapi.h $ROOT_2.10/opt/VRTSvxfs/include/sys/fs/dmapi_size.h $ROOT_2.10/opt/VRTSvxfs/include/sys/fs/dmattr_drv.h $ROOT_2.10/opt/VRTSvxfs/include/sys/fs/vxio.h $ROOT_2.10/opt/VRTSvxfs/lib/libxdsm.a $ROOT_2.10/opt/VRTSvxfs/lib/sparcv9/vxckptpriv.so $ROOT_2.10/opt/VRTSvxfs/lib/sparcv9/vxfspriv.so $ROOT_2.10/opt/VRTSvxfs/lib/sparcv9/vxfsutil.so $ROOT_2.10/opt/VRTSvxfs/lib/vxckptpriv.so $ROOT_2.10/opt/VRTSvxfs/lib/vxfspriv.so $ROOT_2.10/opt/VRTSvxfs/lib/vxfsutil.so $ROOT_2.10/opt/VRTSvxfs/sbin/cp $ROOT_2.10/opt/VRTSvxfs/sbin/cpio $ROOT_2.10/opt/VRTSvxfs/sbin/fcladm $ROOT_2.10/opt/VRTSvxfs/sbin/fiostat $ROOT_2.10/opt/VRTSvxfs/sbin/fsadm $ROOT_2.10/opt/VRTSvxfs/sbin/fsapadm $ROOT_2.10/opt/VRTSvxfs/sbin/fscat $ROOT_2.10/opt/VRTSvxfs/sbin/fscdsadm $ROOT_2.10/opt/VRTSvxfs/sbin/fscdsconv $ROOT_2.10/opt/VRTSvxfs/sbin/fscdstask $ROOT_2.10/opt/VRTSvxfs/sbin/fsckpt_restore $ROOT_2.10/opt/VRTSvxfs/sbin/fsckptadm $ROOT_2.10/opt/VRTSvxfs/sbin/fsclustadm $ROOT_2.10/opt/VRTSvxfs/sbin/fsenvadm $ROOT_2.10/opt/VRTSvxfs/sbin/fsmap $ROOT_2.10/opt/VRTSvxfs/sbin/fsvoladm $ROOT_2.10/opt/VRTSvxfs/sbin/getext $ROOT_2.10/opt/VRTSvxfs/sbin/ls $ROOT_2.10/opt/VRTSvxfs/sbin/mv $ROOT_2.10/opt/VRTSvxfs/sbin/qiomkfile $ROOT_2.10/opt/VRTSvxfs/sbin/qiostat $ROOT_2.10/opt/VRTSvxfs/sbin/setext $ROOT_2.10/opt/VRTSvxfs/sbin/vxdump $ROOT_2.10/opt/VRTSvxfs/sbin/vxedquota $ROOT_2.10/opt/VRTSvxfs/sbin/vxenablef $ROOT_2.10/opt/VRTSvxfs/sbin/vxfsckd $ROOT_2.10/opt/VRTSvxfs/sbin/vxfsconvert $ROOT_2.10/opt/VRTSvxfs/sbin/vxfsstat $ROOT_2.10/opt/VRTSvxfs/sbin/vxgetmsg $ROOT_2.10/opt/VRTSvxfs/sbin/vxlsino $ROOT_2.10/opt/VRTSvxfs/sbin/vxquot $ROOT_2.10/opt/VRTSvxfs/sbin/vxquota $ROOT_2.10/opt/VRTSvxfs/sbin/vxquotaoff $ROOT_2.10/opt/VRTSvxfs/sbin/vxquotaon $ROOT_2.10/opt/VRTSvxfs/sbin/vxrepquota $ROOT_2.10/opt/VRTSvxfs/sbin/vxrestore $ROOT_2.10/opt/VRTSvxfs/sbin/vxupgrade $ROOT_2.10/opt/VRTSvxms/lib/map/libvxfs.so $ROOT_2.10/opt/VRTSvxms/lib/map/libvxfssnap.so $ROOT_2.10/opt/VRTSvxms/lib/map/sparcv9/libvxfs.so $ROOT_2.10/opt/VRTSvxms/lib/map/sparcv9/libvxfssnap.so $ROOT_2.10/usr/kernel/drv/fdd.conf $ROOT_2.10/usr/kernel/drv/sparcv9/fdd $ROOT_2.10/usr/lib/fs/vxfs/df $ROOT_2.10/usr/lib/fs/vxfs/ff $ROOT_2.10/usr/lib/fs/vxfs/fsck $ROOT_2.10/usr/lib/fs/vxfs/fsckall $ROOT_2.10/usr/lib/fs/vxfs/fsdb $ROOT_2.10/usr/lib/fs/vxfs/fstyp $ROOT_2.10/usr/lib/fs/vxfs/fsvmap $ROOT_2.10/usr/lib/fs/vxfs/mkfs $ROOT_2.10/usr/lib/fs/vxfs/ncheck $ROOT_2.10/usr/lib/fs/vxfs/sparcv7/fsck $ROOT_2.10/usr/lib/fs/vxfs/sparcv7/fsck_logv10 $ROOT_2.10/usr/lib/fs/vxfs/sparcv7/fsck_logv11 $ROOT_2.10/usr/lib/fs/vxfs/sparcv7/fsck_logv9 $ROOT_2.10/usr/lib/fs/vxfs/sparcv9/fsck $ROOT_2.10/usr/lib/fs/vxfs/sparcv9/fsck_logv10 $ROOT_2.10/usr/lib/fs/vxfs/sparcv9/fsck_logv11 $ROOT_2.10/usr/lib/fs/vxfs/umount $ROOT_2.10/usr/lib/fs/vxfs/vxtunefs $ROOT_2.10/var/svc/manifest/system/vxfs/vxfsldlic.xml Problem Description: -------------------- (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. Delete i_swmapcnt. Functions that needed the counting in i_swmapcnt now do this in i_swmap. (from 125762-03) (1099216) vx_write_alloc2_local() needs a retry limit as it can infinitely loop due to a fragmented fs. (1102026) Fixed an issue in which if run_replay() returned before calling process_frees(), then replay_done() sometimes tried to free memory that had not been allocated. This corresponded to the dv_estatlist field of the vx_device structure, which was allocated in process_frees() and freed in replay_done(). 6547100 (1104995) vnevent_remove() should be called before file deletion (1114175) Backed out a code change that would cause a file system hang when trying to grow a database via odm. (1116094) type mismatch in vx_do_getpage() arg "plsz" u_int should be vx_off_t. (1122869) layout6 to layout7 upgrade leaves some fields uninitialised, fsck failes as a result. (1139616) If a file is currently mapped with at least one shared writable mapping, performing pglock revoke from EX to SHR needs only B_INVAL. Also i_swmap is set in vx_map() if MAP_SHARED and PROT_WRITE are set. (1157945) Fix a issue in which vxfs used too much CPU looking for odd sized extents. (from 125762-02) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1018519) Corrected call to vol_dereserve() with device name as argument. (1029534) Reverted VX_GET_NINODE back to 57 by switching it with VX_GET_VMMBUFCOUNT. (1032402) Remove VX_DELAY for performance gains. (1040623) Introduced reclaim inactive attribute inodes during vxupgrade of disk layout version 5 to 6. (1060317) Updated vx_read1() to invalidate whole file that is accessed via fdd, before and after doing I/O request. (1061342) Update vx_logbuf_clean(). Move VX_DELAY(1) to later position after releasing fs_logclean_slk lock. (1069070) Introduce a new field (valid) in dotdot_list to capture if there is any valid parent (exist in both parent's db and it's attr area.) With this fix, fsck will able to detect any invalid attr entry. (1069187) ACLs inherited from default ACLs allow greater permission than requested in some cases 6305689 (1090572, 1111711) fsync() times increase as file size grows on VxFS even with few dirty pages VMODSORT. (1090575) Make sure the correct fs passed to vx_device_lookup if the I/O failed to the snapped file system. (1090578) Need a better method of detecting it the current thread is a nfsd thread. (1093626) Back out changes made to vx_extfree() by incident 544066 as they cause a hang with very large extents. (1096460) Check wehether the thread already locked ownership before trying to get ownership. (1096468) Check for validity of fs pointer before accessing fields in fs structure. This is needed because fs structure may not exist at this point, because of a clean unmount. (1113356) Fixed an issue that if run_replay() returned before the calling process_frees(), then replay_done() might have tried to free memory that had not been allocated. (from 125762-01) (1003062) Introduced VX_CFS_IRWLOCKEOF and VX_CFS_SIZEVALID flags. Updated vx_get_inodedata() to skip taking IGLOCK update for regular file of nomtime mount when VX_CFS_SIZEVALID flag is set. (1003259) Revised fix of 595487 and initialized tracks and fetapes variables to 0. (1005252) performance enhancements for replay: add tail pointers for the lists we build in add_lwrdones() and add_truncs() so they're O(N) instead of O(N^2). process the freed-extent info between the two passes of replay to convert it from unsorted lists to a sorted array that we can binary-search it in check_frees(). this processing pass is also fundamentally O(N^2) just like the previous check_frees(), but it's more or less linear time in practice, so the O(N log N) of the binary search will dominate. (1005783) Removed triggering of inactive processing on ENOSPC from vx_rdwr(). Patch Installation Instructions: -------------------------------- VRTSvxfs 5.0MP1 patch must be installed first before applying this patch. For the Solaris 10 release, refer to the online manual 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/110434-07 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate manual pages. Special Install Instructions: ----------------------------- Sun introduced a page ordering vnode optimization in Solaris 9 and 10. The optimization includes a new vnode flag, VMODSORT, which when turned on indicates that the Virtual Memory (VM) should maintain the v_pages list in an order depending on if a page is modified or unmodified. Veritas File System (VxFS) can now take advantage of that flag, which can result in significant performance improvements on operations that depend on flushing, such as fsync. This optimization requires the fixes for Sun BugID's 6393251 and 6538758 which are included in the Solaris kernel patch listed below. Enabling VxFS VMODSORT functionality without the correct OS kernel patches can result in data corruption. Required operating system patches: (Solaris 10 SPARC) 127111-01 (or greater) dependent patches: 120011-14 (or greater) To enable VxFS VMODSORT functionality, the following line must be added to the /etc/system file after the vxfs forceload: set vxfs:vx_vmodsort=1 * enable vxfs vmodsort To disable VxFS VMODSORT functionality, the following line must be added to the /etc/system file after the vxfs forceload: set vxfs:vx_vmodsort=0 * disable vxfs vmodsort You need to use the shutdown command to reboot the system after patch installation or de-installation: shutdown -g0 -y -i6