Lsof can't adequately report the wide variety of UNIX dialect
file locks in a single character. What it reports in a single
character is a compromise between the information it finds in the
kernel and the limitations of the reporting format.
Moreover, when a process holds several byte level locks on a
file, lsof only reports the status of the first lock it
encounters. If it is a byte level lock, then the lock character
will be reported in lower case - i.e., `r', `w', or `x' - rather
than the upper case equivalent reported for a full file lock.
Generally lsof can only report on locks held by local processes
on local files. When a local process sets a lock on a remotely
mounted (e.g., NFS) file, the remote server host usually records
the lock state. One exception is Solaris - at some patch levels
of 2.3, and in all versions above 2.4, the Solaris kernel records
information on remote locks in local structures.
Lsof has trouble reporting locks for some UNIX dialects. Consult
the BUGS
section of this manual page or the lsof FAQ (The FAQ
section gives its location.) for more information.