The Gory Details

BPXCOPY

SMP/E uses a utility called BPXCOPY to store HFS elements. Parameters passed to this utilty by SMP/E can specify permission bits and "links" which allow the same element to be accessed via different file names. BPXCOPY creates "hard links" which refer to an existing HFS element via its INODE which is a direct pointer into an HFS. Also, the DFSMS Binder creates "hard links" when an alias is defined for a load module (program object) in the HFS. Because SMP/E element names follow MVS member name naming conventions, these links are used when a file requires a Unix-like name in the HFS. So, the "hard links" are often the real working parts.

HFS Aliases

Unlike a "symbolic link", another technique which can be used to link to the same OMVS file via different file names, a "hard link" remains usable even if the original file is deleted. The space in the HFS will only be freed once the last "hard link" to the INODE has been removed. However, unlike a "symbolic link", a "hard link" looks exactly like any other file. It just happens to have the same INODE as another file. It usually will not be in the same directory in the HFS as the other file. A "hard link" cannot link to an OMVS file in a different HFS dataset (meaning a separately mounted HFS dataset).

See the OMVS REXX page here for a utility, SMPENAME, which can be used to find, for a specified HFS file, any files linked via hard links.

See OMVS HFS and OMVS zFS for more information about the OMVS File System.

HFS DDDEFs

An SMP/E DDDEF associated with an HFS element points to a directory in an HFS. "Hard links" are usually specified as a relative pathname, such as '../sample.txt'. So, if the element name was SAMPTXT, a file called SAMPTXT would be created in the target directory, say /usr/samples/MYSTUFF, and a second "alias" called sample.txt would be created in directory /usr/samples via a "hard link".

This means that if you try to install maintenance into an alternate directory and then copy or move it into the intended target directory, you need to be aware of any "hard links" created by SMP/E. Otherwise, you may leave the working parts behind. In addition, BPXCOPY is very uncommunicative as far as the creation of these links. For these reasons, it is easier to clone the whole HFS, rather than selectively cloning directories within the HFS, when creating a alternate target for SMP/E.

Big Iron