Changelog for GPFS update 3.2.1-20.

This is not a definitive list as other minor corrections have
been made which are not listed here.

-------------------------------------------------------------

* Use the disk availability information from the daemon for
  the mmlsdisk -m/-M options.

* Fix a sig#11 problem during sg disk table update.

* Add a method to indirect block iterator to ignore last 
  change count in order to step to the next block when the 
  current one is deleted.

* Fix a rare assert caused by RelinquishAttrByteRange thread.

* Fix some performance problems when reading large files from
  NFS clients.

* Remove redundant message about loading policy rules on file
  system manage node's mmfs.log file.

* Unlink fileset to wait for asynchronous recovery to finish
  before checking the fileset's files for activity.

* Exception using a spin_lock in fasync_helper during fcntl
  revoke.

* Avoid corrupted snapshot files in unusual case of open 
  unlinked files.

* Fix assert DE_IS_FREE(fP) in direct-common.C.

* Allow change directio flag for immutable files.

* Fix a GPFS deadlock that occurs on Linux, under high load 
  conditions, with memory pressure and memory mapped files.

* Fix code that could cause assert after node fail while 
  running fsck.

* Fix code causing an assert after manager node failed 
  during filesystem manager takeover.

* Fix problem for tsmigrated migrate to new clmgr node when
  clmgr node changed.

* Avoid deadlock on Linux with small maxFilesToCache and 
  very frequent file creates and deletes.

* Ensure the mmsdrserv process is not killed if it uses its
  own separate TCP port.

* Fix a deadlock involving read-write mmap under heavy 
  stress.

* Fix a case where higher-level indirect blocks were not
  being flushed when they were supposed to be.

* Add input validation for xattr value size.

* Change mmfileid to find "invalid" disk addresses when 
  using the :BROKEN keyword.

* Ensure all locks acquired during the lock file operation
  are released during a failed operation.  Prevents the 
  need for an explicit file lock release failing which
  will cause the code to assert.

* Correctly bypass NFS client getting "permission denied"
  when "subdir/.." is looked-up internally.

* Fix mmexectsmcmd to tolerate error return codes such as
  4, 8 and interpret as non-fatal.

* Avoid GPL compiling warning. Use void* instead of struct 
  inode* in cxi file and cast it in OS specific file.

* Fix a race condition between mmnfsdown and mmnfsup so 
  that mmnfsdown can kill all nfsmonitor processes.

* Fix for a rare deadlock during recovery on Windows.

* Avoid chance of deadlock when updating shared 
  directory under high load.

* Verify interface is up (IFF_UP) before processing it.
  Interfaces brought down using "ifconfig <if> down" 
  (unlike "ifdown <if>") are returned with SIOCGIFCONF.

* Rework handling automount on RHEL 5 or SLES 11.

* Avoid a rare failure accessing a directory long after
  concurrent updates.

* Fix array out of bound problem in eaRegistry dump 
  function.

* Fix problem in fully replicated filesystem which will
  not mount if all the disks in one FG are stopped and
  suspended.

* Fix assert caused by rare CPU cache inconsistency 
  situation on X86_64 hardware.

* Check whether mmfs.log.previous file exists before 
  renaming it.

* Fix a rare assert during multi-node create and delete 
  races.

* Defensive check to ensure that an entry with a
  zero-length name is never inserted into a directory.

* Correct permission-denied errors when nfsd rebuilds
  dentry trees on 2.6.27 (or later) kernels.

* Retry deadlocks on rlMutex when called from 
  RecLockReset to cleanup advisory locks.

* This update addresses the following APARs: IZ73005 
  IZ74241 IZ74537 IZ74541 IZ74545 IZ74546 IZ74548 
  IZ75128 IZ75249 IZ75251 IZ75257 IZ75771.
