1. 06 9月, 2010 5 次提交
  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 8 次提交
    • 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
    • A
      block: push down BKL into .locked_ioctl · 8a6cfeb6
      Arnd Bergmann 提交于
      As a preparation for the removal of the big kernel
      lock in the block layer, this removes the BKL
      from the common ioctl handling code, moving it
      into every single driver still using it.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      8a6cfeb6
    • F
      scsi: fix discard page leak · 610a6349
      FUJITA Tomonori 提交于
      We leak a page allocated for discard on some error conditions
      (e.g. scsi_prep_state_check returns BLKPREP_DEFER in
      scsi_setup_blk_pc_cmnd).
      
      We unprep on requests that weren't prepped in the error path of
      scsi_init_io. It makes the error path to clean up scsi commands messy.
      
      Let's strictly apply the rule that we can't unprep on a request that
      wasn't prepped.
      
      Calling just scsi_put_command() in the error path of scsi_init_io() is
      enough. We don't set REQ_DONTPREP yet.
      
      scsi_setup_discard_cmnd can safely free a page on the error case with
      the above rule.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      610a6349
    • F
      scsi: need to reset unprep_rq_fn in sd_remove · 82b6d57f
      FUJITA Tomonori 提交于
      This is for block's for-2.6.36.
      
      We need to reset q->unprep_rq_fn in sd_remove. Otherwise we hit kernel
      oops if we access to a scsi disk device via sg after removing scsi
      disk module.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      82b6d57f
    • F
      block: remove q->prepare_flush_fn completely · 00fff265
      FUJITA Tomonori 提交于
      This removes q->prepare_flush_fn completely (changes the
      blk_queue_ordered API).
      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>
      00fff265