z/OS UNIX System Services File System Interface Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Considerations for reading and writing and SetAttr

z/OS UNIX System Services File System Interface Reference
SA23-2285-00

There are special considerations for vn_rdwr and vn_setattr(FileSizeChange) for clients who perform these operations outside of an open context. From a V3 client these operations are allowed to violate NLM Share Reservations but not V4 reservations. For V4 clients there are several variations in the architecture that include operating outside of an open context and overriding Share Reservations. See v_rdwr (BPX1VRW, BPX4VRW) — Read from and write to a file for more information about these variations between the clients and the server.

Note that vn_trunc is only called for the ftrunc() function so it always operates within an open context, and the LFS checks that the open was for write. Consequently, there is no share checking required in vn_trunc.

From the PFS's point of view the following types of share checking can be requested on vn_rdwr or vn_setattr(FileSizeChange). They are passed in the ts_sysd1 field of the call:
VNSHRCHK_NONE
A read/write/setattr that is within an open context and therefore should be permitted.
VNSHRCHK_ADV
A check only against V4 reservations.
VNSHRCHK_MAND
A check against all reservations (V4 and NLM).

When a check is made it corresponds to the action being requested: read versus DenyRd, and write or file size change versus. DenyWrt. When there is a conflict the vn_rdwr or vn_setattr call is rejected with RC=EBUSY.

For a detailed description of the NFS V4 architecture refer to RFC 3530, which can be found at http://www.ietf.org/.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014