PTF Cover Letter
PTF ( Program Temporary Fixes ) Cover letter
OSP-PERFM QP0LFLOP API hangs when NFS servers are unavailabl
Pre/Co-Requisite PTF / Fix List
REQ LICENSED PTF/FIX LEVEL
TYPE PROGRAM REL NUMBER MIN/MAX OPTION
---- -------- --- ------- ------- ------
PRE 5770999 710 MF49028 00/00 0000
Application of this PTF may disable or render ineffective programs that
use system memory addresses not generated by the IBM translator,
including programs that circumvent control technology designed to limit
interactive capacity to purchased levels. This PTF may be a prerequisite
for future PTFs. By applying this PTF you authorize and agree to the
This PTF is subject to the terms of the license agreement which
accompanied, or was contained in, the Program for which you are obtaining
the PTF. You are not authorized to install or use the PTF except as part
of a Program for which you have a valid Proof of Entitlement.
SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY
AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT
AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT,
REGARDING THE PTF.
The applicable license agreement may have been provided to you in printed
form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR)
APAR Error Description / Circumvention
The "Perform File System Operation (QP0LFLOP)" API was used to
perform the QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS operation.
Network File System (NFS) mounts had previously been performed
and one of the remote NFS servers was not available when
QP0LFLOP was called. The API hung while it was waiting for the
remote server to become available.
CORRECTION FOR APAR SE52242 :
The QP0LFLOP API must make requests to the remote NFS server to
determine whether the NFS mount is accessible (visible) through
the parent file system's namespace. However, many callers do not
require this information. A new special value will be provided
to indicate that the API should not attempt to determine whether
a mount is visible. See the special instructions for more
CIRCUMVENTION FOR APAR SE52242 :
If the PTF is applied as an immediate PTF, active jobs must
be ended and restarted to activate the fix in those jobs. If
the PTF is applied as a delayed PTF, no further action is
When the PTF is active, a new special value may be specified in
the "Only visible mounts" field of the FLOP0400 Input Structure
as described in "Perform File System Operation (QP0LFLOP)" API
documentation. This special value is hexadecimal FFFFFFFF.
When this special value is specified, the API will not attempt
to determine whether a file system is visible. The "Mount
visibility" field in the FLOP0400 Output Structure will contain
this same special value of hexadecimal FFFFFFFF in every
returned mounted file system entry.
THE FOLLOWING ARE SUPERSEDED SPECIAL INSTRUCTIONS. IF THE SUPERSEDED
PTF HAS ALREADY BEEN APPLIED AND ITS SPECIAL INSTRUCTION FOLLOWED,
IT IS NOT NECESSARY TO FOLLOW THAT SPECIAL INSTRUCTION AGAIN.
SPECIAL INSTRUCTIONS FOR SUPERSEDED PTF SI38397 :
This PTF provides a new file system operation for the "Perform
File System Operation (QP0LFLOP)" API. The new operation can be
used as a substitute for the "QlgLstat64()--Get File or Link
Information (large file enabled and using NLS-enabled path name)"
API, except that only pathnames in the root (/), QOpenSys, or
user-defined file systems can be specified. If the specified
path is in any other file system, the caller will receive message
ID CPFA0D4 (File system error occurred) with error number 3440
(ENOTSUP). Most other error conditions will return message ID
CPFA0D4 with different error numbers. The error number returned by
QP0LFLOP for a specific circumstance may be different than the
error number returned by the QlgLstat64() API in that same
circumstance. Refer to the API documentation in the i5/OS
Information Center for more details concerning the QP0LFLOP and
The new function attempts to retrieve link information for the
specified object without accessing the object's storage, which
would cause a non-database page fault. It accomplishes this
by retrieving the attributes from the object's parent
directory where possible. This can provide much better
respsonse time than the existing QlgLstat64() or related APIs.
This benefit is nullified if the new API is called repeatedly for
the same object or set of objects or if the objects are
immediately accessed through some other interface. For example,
an application that always calls QlgOpen64() after calling
QlgLstat64() or only works with a small set of objects would
see no benefit from switching to use the new QP0LFLOP function,
and may actually see a performance degradation. However, an
application that used QlgLstat64() to examine information for
many objects and only further accessed a small percentage of
those objects would likely benefit from using the new interface.
The authority required to use the new operation is the same as if
QlgLstat64() was used. The caller must have *X data authority to
each directory in the pathname preceding the object, but does not
require any authority to the object itself.
The required parameters for the new QP0LFLOP function are:
File system operation - Input; Binary(4), Unsigned - the caller
must pass an integer value of five (5) for the new function. In a
future release, a macro will be defined in the <qp0lflop.h>
header file for this function: QP0L_GET_LINK_INFO
Input buffer - Input; Char(*) - the caller must pass a pointer to
a properly-formed Qlg_Path_Name_T structure, exactly as would be
specified for the QlgLstat64() function.
Length of input buffer - Input; Binary(4), Unsigned - the caller
must pass an integer value that is at least as large as the size
of a Qlg_Path_Name_T structure.
Output buffer - Output; Char(*) - the caller must pass a pointer to
an output stat64 structure.
Length of output buffer - Input; Binary(4), Unsigned - the caller
must pass an integer value that is at least as large as the size
of a stat64 structure.
Error code - I/O; Char(*) - the caller must pass a pointer to
a structure in which to return error information.
THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.
PTF/FIX NO(S). APAR TITLE LINE
SI40760 OSP-INCORROUT QP0LFLOP get link information
SI39431 OSP Internal extensions
SI38397 OSP-PERFM QlgLstat64() produces too many page faults
|APAR Fixed..........................||View details for APAR SE52242|
|Superseded by:......................||View fix details for PTF SI49903|
|MRI Feature ........................||NONE|
12 July 2012