1. 26 9月, 2010 1 次提交
    • A
      s390/block: kill the big kernel lock · cfdb00a7
      Arnd Bergmann 提交于
      The dasd and dcssblk drivers gained the big
      kernel lock in the recent pushdown from the
      block layer, but they don't really need it,
      so remove the calls without a replacement.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: linux-s390@vger.kernel.org
      cfdb00a7
  2. 08 8月, 2010 1 次提交
    • A
      block: push down BKL into .open and .release · 6e9624b8
      Arnd Bergmann 提交于
      The open and release block_device_operations are currently
      called with the BKL held. In order to change that, we must
      first make sure that all drivers that currently rely
      on this have no regressions.
      
      This blindly pushes the BKL into all .open and .release
      operations for all block drivers to prepare for the
      next step. The drivers can subsequently replace the BKL
      with their own locks or remove it completely when it can
      be shown that it is not needed.
      
      The functions blkdev_get and blkdev_put are the only
      remaining users of the big kernel lock in the block
      layer, besides a few uses in the ioctl code, none
      of which need to serialize with blkdev_{get,put}.
      
      Most of these two functions is also under the protection
      of bdev->bd_mutex, including the actual calls to
      ->open and ->release, and the common code does not
      access any global data structures that need the BKL.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      6e9624b8
  3. 16 12月, 2009 1 次提交
  4. 22 9月, 2009 1 次提交
  5. 07 7月, 2009 1 次提交
  6. 16 6月, 2009 1 次提交
  7. 12 6月, 2009 1 次提交
  8. 23 5月, 2009 1 次提交
  9. 07 1月, 2009 1 次提交
  10. 25 12月, 2008 2 次提交
  11. 21 10月, 2008 2 次提交
    • A
      [PATCH] switch dcssblk · 46d74326
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      46d74326
    • A
      [PATCH] beginning of methods conversion · d4430d62
      Al Viro 提交于
      To keep the size of changesets sane we split the switch by drivers;
      to keep the damn thing bisectable we do the following:
      	1) rename the affected methods, add ones with correct
      prototypes, make (few) callers handle both.  That's this changeset.
      	2) for each driver convert to new methods.  *ALL* drivers
      are converted in this series.
      	3) kill the old (renamed) methods.
      
      Note that it _is_ a flagday; all in-tree drivers are converted and by the
      end of this series no trace of old methods remain.  The only reason why
      we do that this way is to keep the damn thing bisectable and allow per-driver
      debugging if anything goes wrong.
      
      New methods:
      	open(bdev, mode)
      	release(disk, mode)
      	ioctl(bdev, mode, cmd, arg)		/* Called without BKL */
      	compat_ioctl(bdev, mode, cmd, arg)
      	locked_ioctl(bdev, mode, cmd, arg)	/* Called with BKL, legacy */
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d4430d62
  12. 11 10月, 2008 3 次提交
  13. 09 10月, 2008 1 次提交
    • T
      block: don't depend on consecutive minor space · f331c029
      Tejun Heo 提交于
      * Implement disk_devt() and part_devt() and use them to directly
        access devt instead of computing it from ->major and ->first_minor.
      
        Note that all references to ->major and ->first_minor outside of
        block layer is used to determine devt of the disk (the part0) and as
        ->major and ->first_minor will continue to represent devt for the
        disk, converting these users aren't strictly necessary.  However,
        convert them for consistency.
      
      * Implement disk_max_parts() to avoid directly deferencing
        genhd->minors.
      
      * Update bdget_disk() such that it doesn't assume consecutive minor
        space.
      
      * Move devt computation from register_disk() to add_disk() and make it
        the only one (all other usages use the initially determined value).
      
      These changes clean up the code and will help disk->part dereference
      fix and extended block device numbers.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      f331c029
  14. 26 8月, 2008 1 次提交
    • H
      [S390] dcss: fix build bug. · dbe13d99
      Heiko Carstens 提交于
      Fix this compile bug:
      
        CC      drivers/s390/block/dcssblk.o
      drivers/s390/block/dcssblk.c: In function 'dcssblk_add_store':
      drivers/s390/block/dcssblk.c:387: error: implicit declaration of function 'dcssblk_get_segment_by_name'
      drivers/s390/block/dcssblk.c:389: error: label 'release_gd' used but not defined
      make[1]: *** [drivers/s390/block/dcssblk.o] Error 1
      make: *** [drivers/s390/block/] Error 2
      
      Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      dbe13d99
  15. 22 8月, 2008 1 次提交
  16. 14 7月, 2008 1 次提交
  17. 28 4月, 2008 1 次提交
    • J
      return pfn from direct_access, for XIP · 30afcb4b
      Jared Hulbert 提交于
      Alter the block device ->direct_access() API to work with the new
      get_xip_mem() API (that requires both kaddr and pfn are returned).
      
      Some architectures will not do the right thing in their virt_to_page() for use
      by XIP (to translate from the kernel virtual address returned by
      direct_access(), to a user mappable pfn in XIP's page fault handler.
      
      However, we can't switch it to just return the pfn and not the kaddr, because
      we have no good way to get a kva from a pfn, and XIP requires the kva for its
      read(2) and write(2) handlers.  So we have to return both.
      Signed-off-by: NJared Hulbert <jaredeh@gmail.com>
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Carsten Otte <cotte@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: linux-mm@kvack.org
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      30afcb4b
  18. 17 4月, 2008 1 次提交
  19. 19 2月, 2008 1 次提交
  20. 05 2月, 2008 1 次提交
    • H
      [S390] dcss: Initialize workqueue before using it. · c5411dba
      Heiko Carstens 提交于
      In case a dcss segment cannot be loaded blk_cleanup_queue
      will be called before blk_queue_make_request, leaving the
      struct work unplug_work of the request queue uninitialized
      before it is used.
      That leads also to the lockdep message below.
      To avoid that call blk_queue_make_request right after the
      request_queue has been allocated.
      This makes sure that the struct work is always initialized
      before it is used.
      
      INFO: trying to register non-static key.
      the code is fine but needs lockdep annotation.
      turning off the locking correctness validator.
      CPU: 2 Not tainted 2.6.24 #6
      Process swapper (pid: 1, task: 000000000f854038, ksp: 000000000f85f980)
      040000000f85f860 000000000f85f880 0000000000000002 0000000000000000
             000000000f85f920 000000000f85f898 000000000f85f898 000000000001622e
             0000000000000000 000000000f85f980 0000000000000000 0000000000000000
             000000000f85f880 000000000000000c 000000000f85f880 000000000f85f8f0
             0000000000342908 000000000001622e 000000000f85f880 000000000f85f8d0
      Call Trace:
      ([<000000000001619e>] show_trace+0xda/0x104)
       [<0000000000016288>] show_stack+0xc0/0xf8
       [<00000000000163d0>] dump_stack+0xb0/0xc0
       [<000000000006e4ea>] __lock_acquire+0x47e/0x1160
       [<000000000006f27c>] lock_acquire+0xb0/0xd8
       [<000000000005a522>] __cancel_work_timer+0x9e/0x240
       [<000000000005a72e>] cancel_work_sync+0x2a/0x3c
       [<0000000000165c46>] kblockd_flush_work+0x26/0x34
       [<0000000000169034>] blk_sync_queue+0x38/0x48
       [<0000000000169080>] blk_release_queue+0x3c/0xa8
       [<000000000017bce8>] kobject_cleanup+0x58/0xac
       [<000000000017bd66>] kobject_release+0x2a/0x38
       [<000000000017d28e>] kref_put+0x6e/0x94
       [<000000000017bc80>] kobject_put+0x38/0x48
       [<00000000001653be>] blk_put_queue+0x2a/0x38
       [<0000000000168fee>] blk_cleanup_queue+0x82/0x90
       [<0000000000213e7e>] dcssblk_add_store+0x34e/0x700
       [<00000000005243b8>] dcssblk_init+0x1a0/0x308
       [<000000000050a3c2>] kernel_init+0x1b2/0x3a4
       [<000000000001ac82>] kernel_thread_starter+0x6/0xc
       [<000000000001ac7c>] kernel_thread_starter+0x0/0xc
      
      INFO: lockdep is turned off.
      
      Cc: Gerald Schaefer <geraldsc@de.ibm.com>
      Cc: Carsten Otte <cotte@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c5411dba
  21. 26 1月, 2008 1 次提交
  22. 04 12月, 2007 1 次提交
  23. 05 11月, 2007 1 次提交
  24. 10 10月, 2007 1 次提交
  25. 24 7月, 2007 1 次提交
  26. 18 7月, 2007 1 次提交
  27. 06 2月, 2007 2 次提交
  28. 24 3月, 2006 1 次提交
  29. 19 3月, 2006 1 次提交
  30. 07 1月, 2006 1 次提交
  31. 26 6月, 2005 1 次提交
  32. 24 6月, 2005 1 次提交
  33. 21 6月, 2005 1 次提交
  34. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4