1. 06 9月, 2010 9 次提交
  2. 21 8月, 2010 1 次提交
    • A
      drivers/scsi/qla4xxx: fix build · 626115cd
      Andrew Morton 提交于
      gcc-4.0.2:
      
        drivers/scsi/qla4xxx/ql4_os.c: In function 'qla4_8xxx_error_recovery':
        drivers/scsi/qla4xxx/ql4_glbl.h:135: sorry, unimplemented: inlining failed in call to 'qla4_8xxx_set_drv_active': function body not available
        drivers/scsi/qla4xxx/ql4_os.c:2377: sorry, unimplemented: called from here
        drivers/scsi/qla4xxx/ql4_glbl.h:135: sorry, unimplemented: inlining failed in call to 'qla4_8xxx_set_drv_active': function body not available
        drivers/scsi/qla4xxx/ql4_os.c:2393: sorry, unimplemented: called from here
      
      Cc: Ravi Anand <ravi.anand@qlogic.com>
      Cc: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      626115cd
  3. 18 8月, 2010 1 次提交
  4. 11 8月, 2010 25 次提交
  5. 08 8月, 2010 4 次提交
    • F
      scsi: use REQ_TYPE_FS for flush request · e96f6abe
      FUJITA Tomonori 提交于
      scsi-ml uses REQ_TYPE_BLOCK_PC for flush requests from file
      systems. The definition of REQ_TYPE_BLOCK_PC is that we don't retry
      requests even when we can (e.g. UNIT ATTENTION) and we send the
      response to the callers (then the callers can decide what they want).
      We need a workaround such as the commit
      77a42297 to retry BLOCK_PC flush
      requests. We will need the similar workaround for discard requests too
      since SCSI-ml handle them as BLOCK_PC internally.
      
      This uses REQ_TYPE_FS for flush requests from file systems instead of
      REQ_TYPE_BLOCK_PC.
      
      scsi-ml retries only REQ_TYPE_FS requests that have data to
      transfer when we can retry them (e.g. UNIT_ATTENTION). However, we
      also need to retry REQ_TYPE_FS requests without data because the
      callers don't.
      
      This also changes scsi_check_sense() to retry all the REQ_TYPE_FS
      requests when appropriate. Thanks to scsi_noretry_cmd(),
      REQ_TYPE_BLOCK_PC requests don't be retried as before.
      
      Note that basically, this reverts the commit
      77a42297 since now we use REQ_TYPE_FS
      for flush requests.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      e96f6abe
    • F
      scsi: convert discard to REQ_TYPE_FS from REQ_TYPE_BLOCK_PC · 6a32a8ae
      FUJITA Tomonori 提交于
      Jens, any reason why this isn't included in your for-2.6.36 yet?
      
      =
      From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Subject: [PATCH resend] scsi: convert discard to REQ_TYPE_FS from REQ_TYPE_BLOCK_PC
      
      The block layer (file systems) sends discard requests as REQ_TYPE_FS
      (the role of REQ_TYPE_FS is that setting up commands and interpreting
      the results). But SCSI-ml treats discard requests as
      REQ_TYPE_BLOCK_PC.
      
      scsi-ml can handle discard requests as REQ_TYPE_FS
      easily. scsi_setup_discard_cmnd() sets up struct request and the bio
      nicely. Only remaining issue is that discard requests can't be
      completed partially so we need to modify sd_done.
      
      This conversion also fixes the problem that discard requests aren't
      retried when possible (e.g. UNIT ATTENTION).
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      6a32a8ae
    • A
      scsi/sd: remove big kernel lock · 409f3499
      Arnd Bergmann 提交于
      Every user of the BKL in the sd driver is the
      result of the pushdown from the block layer
      into the open/close/ioctl functions.
      
      The only place that used to rely on the BKL is
      the sdkp->openers variable, which gets converted
      into an atomic_t.
      
      Nothing else seems to rely on the BKL, since the
      functions do not touch global data without holding
      another lock, and the open/close functions are
      still protected from concurrent execution using
      the bdev->bd_mutex.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: linux-scsi@vger.kernel.org
      Cc: "James E.J. Bottomley" <James.Bottomley@suse.de>
      Acked-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      409f3499
    • 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