1. 20 12月, 2006 1 次提交
    • J
      [PATCH] cfq-iosched: don't allow sync merges across queues · da775265
      Jens Axboe 提交于
      Currently we allow any merge, even if the io originates from different
      processes. This can cause really bad starvation and unfairness, if those
      ios happen to be synchronous (reads or direct writes).
      
      So add a allow_merge hook to the io scheduler ops, so an io scheduler can
      help decide whether a bio/process combination may be merged with an
      existing request.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      da775265
  2. 19 12月, 2006 5 次提交
  3. 18 12月, 2006 16 次提交
  4. 17 12月, 2006 5 次提交
    • L
      Fix up mm/mincore.c error value cases · 4fb23e43
      Linus Torvalds 提交于
      Hugh Dickins correctly points out that mincore() is actually _supposed_
      to fail on an unmapped hole in the user address space, rather than
      return valid ("empty") information about the hole.  This just simplifies
      the problem further (I had been misled by our previous confusing and
      complicated way of doing mincore()).
      
      Also, in the unlikely situation that we can't allocate a temporary
      kernel buffer, we should actually return EAGAIN, not ENOMEM, to keep the
      "unmapped hole" and "allocation failure" error cases separate.
      
      Finally, add a comment about our stupid historical lack of support for
      anonymous mappings.  I'll fix that if somebody reminds me after 2.6.20
      is out.
      Acked-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4fb23e43
    • L
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband · c7ef259b
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
        IB/mthca: Use DEFINE_MUTEX() instead of mutex_init()
        IB/mthca: Add HCA profile module parameters
        IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G
        IB: Fix ib_dma_alloc_coherent() wrapper
      c7ef259b
    • L
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev · 99f5e971
      Linus Torvalds 提交于
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [PATCH] pata_via: Cable detect error
        [PATCH] Fix help text for CONFIG_ATA_PIIX
        [PATCH] initializer entry defined twice in pata_rz1000
        [PATCH] ata: fix platform_device_register_simple() error check
        [PATCH] ahci: do not mangle saved HOST_CAP while resetting controller
        [PATCH] libata: don't initialize sg in ata_exec_internal() if DMA_NONE (take #2)
        [libata] sata_svw: Disable ATAPI DMA on current boards (errata workaround)
        [libata] use kmap_atomic(KM_IRQ0) in SCSI simulator
        [PATCH] ata_piix: use piix_host_stop() in ich_pata_ops
        [PATCH] ata_piix: IDE mode SATA patch for Intel ICH9
      99f5e971
    • L
      Make workqueue bit operations work on "atomic_long_t" · a08727ba
      Linus Torvalds 提交于
      On architectures where the atomicity of the bit operations is handled by
      external means (ie a separate spinlock to protect concurrent accesses),
      just doing a direct assignment on the workqueue data field (as done by
      commit 4594bf15) can cause the
      assignment to be lost due to lack of serialization with the bitops on
      the same word.
      
      So we need to serialize the assignment with the locks on those
      architectures (notably older ARM chips, PA-RISC and sparc32).
      
      So rather than using an "unsigned long", let's use "atomic_long_t",
      which already has a safe assignment operation (atomic_long_set()) on
      such architectures.
      
      This requires that the atomic operations use the same atomicity locks as
      the bit operations do, but that is largely the case anyway.  Sparc32
      will probably need fixing.
      
      Architectures (including modern ARM with LL/SC) that implement sane
      atomic operations for SMP won't see any of this matter.
      
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: David Miller <davem@davemloft.com>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Linux Arch Maintainers <linux-arch@vger.kernel.org>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a08727ba
    • L
      Fix incorrect user space access locking in mincore() · 2f77d107
      Linus Torvalds 提交于
      Doug Chapman noticed that mincore() will doa "copy_to_user()" of the
      result while holding the mmap semaphore for reading, which is a big
      no-no.  While a recursive read-lock on a semaphore in the case of a page
      fault happens to work, we don't actually allow them due to deadlock
      schenarios with writers due to fairness issues.
      
      Doug and Marcel sent in a patch to fix it, but I decided to just rewrite
      the mess instead - not just fixing the locking problem, but making the
      code smaller and (imho) much easier to understand.
      
      Cc: Doug Chapman <dchapman@redhat.com>
      Cc: Marcel Holtmann <holtmann@redhat.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2f77d107
  5. 16 12月, 2006 13 次提交