An error occurred fetching the project authors.
  1. 06 Feb, 2012 3 commits
  2. 01 Feb, 2012 2 commits
  3. 31 Jan, 2012 3 commits
    • Stanislav Kinsbursky's avatar
      NFS: idmap PipeFS notifier introduced · eee17325
      Stanislav Kinsbursky authored
      v2:
      1) Added "nfs_idmap_init" and "nfs_idmap_quit" definitions for kernels built
      without CONFIG_NFS_V4 option set.
      
      This patch subscribes NFS clients to RPC pipefs notifications. Idmap notifier
      is registering on NFS module load. This notifier callback is responsible for
      creation/destruction of PipeFS idmap pipe dentry for NFS4 clients.
      
      Since ipdmap pipe is created in rpc client pipefs directory, we have make sure,
      that this directory has been created already. IOW RPC client notifier callback
      has been called already. To achive this, PipeFS notifier priorities has been
      introduced (RPC clients notifier priority is greater than NFS idmap one).
      But this approach gives another problem: unlink for RPC client directory will
      be called before NFS idmap pipe unlink on UMOUNT event and will fail, because
      directory is not empty.
      The solution, introduced in this patch, is to try to remove client directory
      once again after idmap pipe was unlinked. This looks like ugly hack, so
      probably it should be replaced in some more elegant way.
      
      Note that no locking required in notifier callback because PipeFS superblock
      pointer is passed as an argument from it's creation or destruction routine and
      thus we can be sure about it's validity.
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      eee17325
    • Stanislav Kinsbursky's avatar
      NFS: pass NFS client owner network namespace to RPC client creation routine · 6d59b8d5
      Stanislav Kinsbursky authored
      This patch replaces static "init_net" with nfs_client->net pointer in RPC
      client creation calls.
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      6d59b8d5
    • Stanislav Kinsbursky's avatar
      NFS: make NFS client allocated per network namespace context · e50a7a1a
      Stanislav Kinsbursky authored
      This patch adds new net variable to nfs_client structure. This variable is set
      on NFS client creation and cheched during matching NFS client search.
      Initially current->nsproxy->net_ns is used as network namespace owner for new
      NFS client to create. This network namespace pointer is set during mount
      options parsing and thus can be passed from user-spave utils in future if will
      be necessary.
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      e50a7a1a
  4. 13 Jan, 2012 2 commits
    • Mel Gorman's avatar
      mm: compaction: introduce sync-light migration for use by compaction · a6bc32b8
      Mel Gorman authored
      This patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT
      mode that avoids writing back pages to backing storage.  Async compaction
      maps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.
      For other migrate_pages users such as memory hotplug, MIGRATE_SYNC is
      used.
      
      This avoids sync compaction stalling for an excessive length of time,
      particularly when copying files to a USB stick where there might be a
      large number of dirty pages backed by a filesystem that does not support
      ->writepages.
      
      [aarcange@redhat.com: This patch is heavily based on Andrea's work]
      [akpm@linux-foundation.org: fix fs/nfs/write.c build]
      [akpm@linux-foundation.org: fix fs/btrfs/disk-io.c build]
      Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Andy Isaacson <adi@hexapodia.org>
      Cc: Nai Xia <nai.xia@gmail.com>
      Cc: Johannes Weiner <jweiner@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a6bc32b8
    • Mel Gorman's avatar
      mm: compaction: determine if dirty pages can be migrated without blocking within ->migratepage · b969c4ab
      Mel Gorman authored
      Asynchronous compaction is used when allocating transparent hugepages to
      avoid blocking for long periods of time.  Due to reports of stalling,
      there was a debate on disabling synchronous compaction but this severely
      impacted allocation success rates.  Part of the reason was that many dirty
      pages are skipped in asynchronous compaction by the following check;
      
      	if (PageDirty(page) && !sync &&
      		mapping->a_ops->migratepage != migrate_page)
      			rc = -EBUSY;
      
      This skips over all mapping aops using buffer_migrate_page() even though
      it is possible to migrate some of these pages without blocking.  This
      patch updates the ->migratepage callback with a "sync" parameter.  It is
      the responsibility of the callback to fail gracefully if migration would
      block.
      Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Minchan Kim <minchan.kim@gmail.com>
      Cc: Dave Jones <davej@redhat.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Andy Isaacson <adi@hexapodia.org>
      Cc: Nai Xia <nai.xia@gmail.com>
      Cc: Johannes Weiner <jweiner@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b969c4ab
  5. 06 Jan, 2012 1 commit
    • Trond Myklebust's avatar
      NFS: Remove pNFS bloat from the generic write path · e2fecb21
      Trond Myklebust authored
      We have no business doing any this in the standard write release path.
      Get rid of it, and put it in the pNFS layer.
      
      Also, while we're at it, get rid of the completely bogus unlock/relock
      semantics that were present in nfs_writeback_release_full(). It is
      not only unnecessary, but actually dangerous to release the write lock
      just in order to take it again in nfs_page_async_flush(). Better just
      to open code the pgio operations in a pnfs helper.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      e2fecb21
  6. 10 Nov, 2011 1 commit
  7. 19 Oct, 2011 1 commit
  8. 15 Jul, 2011 3 commits
  9. 12 Jul, 2011 2 commits
  10. 15 Jun, 2011 1 commit
  11. 29 May, 2011 1 commit
  12. 25 May, 2011 1 commit
  13. 24 Mar, 2011 2 commits
  14. 23 Mar, 2011 1 commit
  15. 16 Mar, 2011 3 commits
  16. 11 Mar, 2011 5 commits
  17. 25 Jan, 2011 1 commit
  18. 16 Jan, 2011 1 commit
  19. 06 Jan, 2011 2 commits
    • Andy Adamson's avatar
      NFS refactor nfs_find_client and reference client across callback processing · c36fca52
      Andy Adamson authored
      Fixes a bug where the nfs_client could be freed during callback processing.
      Refactor nfs_find_client to use minorversion specific means to locate the
      correct nfs_client structure.
      
      In the NFS layer, V4.0 clients are found using the callback_ident field in the
      CB_COMPOUND header.  V4.1 clients are found using the sessionID in the
      CB_SEQUENCE operation which is also compared against the sessionID associated
      with the back channel thread after a successful CREATE_SESSION.
      
      Each of these methods finds the one an only nfs_client associated
      with the incoming callback request - so nfs_find_client_next is not needed.
      
      In the RPC layer, the pg_authenticate call needs to find the nfs_client. For
      the v4.0 callback service, the callback identifier has not been decoded so a
      search by address, version, and minorversion is used.  The sessionid for the
      sessions based callback service has (usually) not been set for the
      pg_authenticate on a CB_NULL call which can be sent prior to the return
      of a CREATE_SESSION call, so the sessionid associated with the back channel
      thread is not used to find the client in pg_authenticate for CB_NULL calls.
      
      Pass the referenced nfs_client to each CB_COMPOUND operation being proceesed
      via the new cb_process_state structure. The reference is held across
      cb_compound processing.
      
      Use the new cb_process_state struct to move the NFS4ERR_RETRY_UNCACHED_REP
      processing from process_op into nfs4_callback_sequence where it belongs.
      Signed-off-by: default avatarAndy Adamson <andros@netapp.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      c36fca52
    • Andy Adamson's avatar
      NFS implement v4.0 callback_ident · f4eecd5d
      Andy Adamson authored
      Use the small id to pointer translator service to provide a unique callback
      identifier per SETCLIENTID call used to identify the v4.0 callback service
      associated with the clientid.
      Signed-off-by: default avatarAndy Adamson <andros@netapp.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      f4eecd5d
  20. 16 Dec, 2010 3 commits
  21. 22 Nov, 2010 1 commit