With VxFS as the parent directory, command 'mount -a' fails to mount some of the child file systems specified in /etc/vfstab.
Problem
When a VxFS file system is mounted as a parent directory, with multiple child mounts configured to mount on top of the parent directory an attempt to mount all file systems in vfstab with command 'mount -a', may fail.
For example :
/alawdg/mp1 is the VxFS file system parent mount point, and we want to child mounts below on /alawdg/mp1
/alawdg/mp1/mp2
/alawdg/mp1/mp3
/alawdg/mp1/mp4
/alawdg/mp1/mp5
/alawdg/mp1/mp6
So for this we have following vfstab setup:
/dev/vx/dsk/alawdg/mp1 /dev/vx/rdsk/alawdg/mp1 /alawdg/mp1 vxfs 1 yes -
/dev/vx/dsk/alawdg/mp2 /dev/vx/rdsk/alawdg/mp2 /alawdg/mp1/mp2 vxfs 1 yes -
/dev/vx/dsk/alawdg/mp3 /dev/vx/rdsk/alawdg/mp3 /alawdg/mp1/mp3 vxfs 1 yes -
/dev/vx/dsk/alawdg/mp4 /dev/vx/rdsk/alawdg/mp4 /alawdg/mp1/mp4 vxfs 1 yes -
/dev/vx/dsk/alawdg/mp5 /dev/vx/rdsk/alawdg/mp5 /alawdg/mp1/mp5 vxfs 1 yes -
/dev/vx/dsk/alawdg/mp6 /dev/vx/rdsk/alawdg/mp6 /alawdg/mp1/mp6 vxfs 1 yes -
To mount these file systems at once, command 'mount -a' is issued.
# mount -a
Error Message
UX:vxfs mount: ERROR: V-3-21264: /dev/vx/dsk/alawdg/mp2 is already mounted, /alawdg/mp1/mp2 is busy, or the allowable number of mount points has been exceeded.
Cause
Command 'mount -a' is returning 'EBUSY' error for some of the child file systems. Command 'mount -a' will perform different mount operations in parallel whenever possible. The issue occurs when parallel mount operation are issued for all child file systems whose parent directory is a VxFS file system. The vfs_lock() routine is called during mount to take lock of the parent VxFS file system and it fails with EBUSY error for some mount operations. For the mounts that obtained the lock the mount operations completed successfully. For those who received EBUSY error the mount operation failed with above error.
Solution
The fix is included in VxFS 5.1SP1RP1 through Etrack 1296491 as listed in the Supplemental Materials section of this article. Please download the fix thorugh the Veritas Operation Readiness Tools (SORT) Website.
https://sort.Veritas.com/patch/matrix
The following is a workaround if the required patch cannot be applied immediately.
1) Move original vxfs mount command at /usr/lib/fs/vxfs/mount to /usr/lib/fs/vxfs/mount.orig
# mv /usr/lib/fs/vxfs/mount /usr/lib/fs/vxfs/mount.orig
2) Create a shell wrapper of /usr/lib/fs/vxfs/mount to serialize the mount i.e create /usr/lib/fs/vxfs/mount with below contents:
#!/bin/ksh
while ! mkdir /tmp/myvxfsmount.lock 2> dev/null
do
sleep 5
done
/usr/lib/fs/vxfs/mount.orig $@
sleep 1
rmdir /tmp/myvxfsmount.lock
3) Add execute permission to this shell wrapper file
# chmod +x /usr/lib/fs/vxfs/mount
Applies To
VxFS 5.1RP2
Solaris