1. 03 10月, 2012 1 次提交
  2. 29 9月, 2012 24 次提交
  3. 03 8月, 2012 1 次提交
    • I
      pnfs: defer release of pages in layoutget · 8554116e
      Idan Kedar 提交于
      we have encountered a bug whereby reading a lot of files (copying
      fedora's /bin) from a pNFS mount and hitting Ctrl+C in the middle caused
      a general protection fault in xdr_shrink_bufhead. this function is
      called when decoding the response from LAYOUTGET. the decoding is done
      by a worker thread, and the caller of LAYOUTGET waits for the worker
      thread to complete.
      
      hitting Ctrl+C caused the synchronous wait to end and the next thing the
      caller does is to free the pages, so when the worker thread calls
      xdr_shrink_bufhead, the pages are gone. therefore, the cleanup of these
      pages has been moved to nfs4_layoutget_release.
      Signed-off-by: NIdan Kedar <idank@tonian.com>
      Signed-off-by: NBenny Halevy <bhalevy@tonian.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8554116e
  4. 31 7月, 2012 1 次提交
  5. 17 7月, 2012 2 次提交
  6. 29 6月, 2012 2 次提交
  7. 20 6月, 2012 1 次提交
  8. 18 6月, 2012 1 次提交
    • T
      NFSv4.1: Fix umount when filelayout DS is also the MDS · 2a4c8994
      Trond Myklebust 提交于
      Currently there is a 'chicken and egg' issue when the DS is also the mounted
      MDS. The nfs_match_client() reference from nfs4_set_ds_client bumps the
      cl_count, the nfs_client is not freed at umount, and nfs4_deviceid_purge_client
      is not called to dereference the MDS usage of a deviceid which holds a
      reference to the DS nfs_client.  The result is the umount program returns,
      but the nfs_client is not freed, and the cl_session hearbeat continues.
      
      The MDS (and all other nfs mounts) lose their last nfs_client reference in
      nfs_free_server when the last nfs_server (fsid) is umounted.
      The file layout DS lose their last nfs_client reference in destroy_ds
      when the last deviceid referencing the data server is put and destroy_ds is
      called. This is triggered by a call to nfs4_deviceid_purge_client which
      removes references to a pNFS deviceid used by an MDS mount.
      
      The fix is to track how many pnfs enabled filesystems are mounted from
      this server, and then to purge the device id cache once that count reaches
      zero.
      Reported-by: NJorge Mora <Jorge.Mora@netapp.com>
      Reported-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      2a4c8994
  9. 25 5月, 2012 3 次提交
  10. 20 5月, 2012 3 次提交
  11. 02 5月, 2012 1 次提交