1. 25 6月, 2006 6 次提交
    • C
      NFS: Eliminate nfs_get_user_pages() · 06cf6f2e
      Chuck Lever 提交于
      Neil Brown observed that the kmalloc() in nfs_get_user_pages() is more
      likely to fail if the I/O is large enough to require the allocation of more
      than a single page to keep track of all the pinned pages in the user's
      buffer.
      
      Instead of tracking one large page array per dreq/iocb, track pages per
      nfs_read/write_data, just like the cached I/O path does.  An array for
      pages is already allocated for us by nfs_readdata_alloc() (and the write
      and commit equivalents).
      
      This is also required for adding support for vectored I/O to the NFS direct
      I/O path.
      
      The original reason to pin the user buffer and allocate all the NFS data
      structures before trying to schedule I/O was to ensure all needed resources
      are allocated on the client before starting to send requests.  This reduces
      the chance that resource exhaustion on the client will cause a short read
      or write.
      
      On the other hand, for an application making very large application I/O
      requests, this means that it will be nearly impossible for the application
      to make forward progress on a resource-limited client.
      
      Thus, moving the buffer pinning functionality into the I/O scheduling
      loops should be good for scalability.  The next patch will do the same for
      NFS data structure allocation.
      Signed-off-by: NChuck Lever <cel@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      06cf6f2e
    • C
      NFS: refactor nfs_direct_free_user_pages · 9c93ab7d
      Chuck Lever 提交于
      Clean-up and fix a minor bug: the logic was dirtying page cache pages on
      both read and write operations.
      Signed-off-by: NChuck Lever <cel@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      9c93ab7d
    • C
      NFS: remove user_addr, user_count, and pos from nfs_direct_req · 51a7bc6c
      Chuck Lever 提交于
      Make the user_addr, user_count, and pos parameters explicit to the
      scheduler routines, and remove the fields from nfs_direct_req.  The
      iovec API will be passing in a series of these, not just one set.
      Signed-off-by: NChuck Lever <cel@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      51a7bc6c
    • C
      NFS: "open code" the NFS direct write rescheduler · fedb595c
      Chuck Lever 提交于
      An NFSv3/v4 client must reschedule on-the-wire writes if the writes are
      UNSTABLE, and the server reboots before the client can complete a
      subsequent COMMIT request.
      
      To support direct asynchronous scatter-gather writes, the write
      rescheduler in fs/nfs/direct.c must not depend on the I/O parameters
      in the controlling nfs_direct_req structure.  iovecs can be somewhat
      arbitrarily complex, so there could be an unbounded amount of information
      to save for a rarely encountered requirement.
      
      Refactor the direct write rescheduler so it uses information from each
      nfs_write_data structure to reschedule writes, instead of caching that
      information in the controlling nfs_direct_req structure.
      Signed-off-by: NChuck Lever <cel@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      fedb595c
    • C
      NFS: Separate functions for counting outstanding NFS direct I/Os · b1c5921c
      Chuck Lever 提交于
      Factor out the logic that increments and decrements the outstanding I/O
      count.  This will be a commonly used bit of code in upcoming patches.
      Also make this an atomic_t again, since it will be very often manipulated
      outside dreq->spin lock.
      Signed-off-by: NChuck Lever <cel@netapp.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      b1c5921c
    • T
      Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ · 816724e6
      Trond Myklebust 提交于
      Conflicts:
      
      	fs/nfs/inode.c
      	fs/super.c
      
      Fix conflicts between patch 'NFS: Split fs/nfs/inode.c' and patch
      'VFS: Permit filesystem to override root dentry on mount'
      816724e6
  2. 24 6月, 2006 4 次提交
    • D
      [PATCH] fix typo in acpi video brightness changes. · d384ea69
      Dave Jones 提交于
      Prevent possible null dereference due to misplaced ;
      Signed-off-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d384ea69
    • L
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev · 6edad161
      Linus Torvalds 提交于
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (258 commits)
        [libata] conversion to new debug scheme, part 1 of $N
        [PATCH] libata: Add ata_scsi_dev_disabled
        [libata] Add host lock to struct ata_port
        [PATCH] libata: implement per-dev EH action mask eh_info->dev_action[]
        [PATCH] libata-dev: move the CDB-intr DMA blacklisting
        [PATCH] ahci: disable NCQ support on vt8251
        [libata] ahci: add JMicron PCI IDs
        [libata] sata_nv: add PCI IDs
        [libata] ahci: Add NVIDIA PCI IDs.
        [PATCH] libata: convert several bmdma-style controllers to new EH, take #3
        [PATCH] sata_via: convert to new EH, take #3
        [libata] sata_nv: s/spin_lock_irqsave/spin_lock/ in irq handler
        [PATCH] sata_nv: add hotplug support
        [PATCH] sata_nv: convert to new EH
        [PATCH] sata_nv: better irq handlers
        [PATCH] sata_nv: simplify constants
        [PATCH] sata_nv: kill struct nv_host_desc and nv_host
        [PATCH] sata_nv: kill not-working hotplug code
        [libata] Update docs to reflect current driver API
        [PATCH] libata: add host_set->next for legacy two host_sets case, take #3
        ...
      6edad161
    • T
      [IA64] fix ia64 build (fadt_descriptor) · 236ee8c3
      Tony Luck 提交于
      arch/ia64/kernel/acpi.c got forgotten when include/acpi/actbl.h
      got a cleanup.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      236ee8c3
    • T
      Auto-update from upstream · 8cf60e04
      Tony Luck 提交于
      8cf60e04
  3. 23 6月, 2006 30 次提交