21 Aug, 2010

1 commit

  • 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
    Cc: Vikas Chaudhary
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

18 Aug, 2010

1 commit


15 Aug, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (28 commits)
    [SCSI] qla4xxx: fix compilation warning
    [SCSI] make error handling more robust in the face of reservations
    [SCSI] tgt: fix warning
    [SCSI] drivers/message/fusion: Adjust confusing if indentation
    [SCSI] Return NEEDS_RETRY for eh commands with status BUSY
    [SCSI] ibmvfc: Driver version 1.0.9
    [SCSI] ibmvfc: Fix terminate_rport_io
    [SCSI] ibmvfc: Fix rport add/delete race resulting in oops
    [SCSI] lpfc 8.3.16: Change LPFC driver version to 8.3.16
    [SCSI] lpfc 8.3.16: FCoE Discovery and Failover Fixes
    [SCSI] lpfc 8.3.16: SLI Additions, updates, and code cleanup
    [SCSI] pm8001: introduce missing kfree
    [SCSI] qla4xxx: Update driver version to 5.02.00-k3
    [SCSI] qla4xxx: Added AER support for ISP82xx
    [SCSI] qla4xxx: Handle outstanding mbx cmds on hung f/w scenarios
    [SCSI] qla4xxx: updated mbx_sys_info struct to sync with FW 4.6.x
    [SCSI] qla4xxx: clear AF_DPC_SCHEDULED flage when exit from do_dpc
    [SCSI] qla4xxx: Stop firmware before doing init firmware.
    [SCSI] qla4xxx: Use the correct request queue.
    [SCSI] qla4xxx: set correct value in sess->recovery_tmo
    ...

    Linus Torvalds
     

13 Aug, 2010

2 commits

  • * 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (22 commits)
    param: don't deref arg in __same_type() checks
    param: update drivers/acpi/debug.c to new scheme
    param: use module_param in drivers/message/fusion/mptbase.c
    ide: use module_param_named rather than module_param_call
    param: update drivers/char/ipmi/ipmi_watchdog.c to new scheme
    param: lock if_sdio's lbs_helper_name and lbs_fw_name against sysfs changes.
    param: lock myri10ge_fw_name against sysfs changes.
    param: simple locking for sysfs-writable charp parameters
    param: remove unnecessary writable charp
    param: add kerneldoc to moduleparam.h
    param: locking for kernel parameters
    param: make param sections const.
    param: use free hook for charp (fix leak of charp parameters)
    param: add a free hook to kernel_param_ops.
    param: silence .init.text references from param ops
    Add param ops struct for hvc_iucv driver.
    nfs: update for module_param_named API change
    AppArmor: update for module_param_named API change
    param: use ops in struct kernel_param, rather than get and set fns directly
    param: move the EXPORT_SYMBOL to after the definitions.
    ...

    Linus Torvalds
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
    mmc_spi: Fix unterminated of_match_table
    of/sparc: fix build regression from of_device changes
    of/device: Replace struct of_device with struct platform_device

    Linus Torvalds
     

11 Aug, 2010

26 commits

  • This driver is the only user of dma_is_consistent(). We plan to remove this
    API.

    The driver uses the API in the following way:

    BUG_ON(!dma_is_consistent(hostdata->dev, pScript) && L1_CACHE_BYTES < dma_get_cache_alignment());

    The above code tries to see if L1_CACHE_BYTES is greater than
    dma_get_cache_alignment() on sysmtes that can not allocate coherent memory
    (some old systems can't).

    James Bottomley exmplained that this is necesary because the driver packs the
    set of mailboxes into a single coherent area and separates the different
    usages by a L1 cache stride. So it's fatal if the dma

    He also pointed out that we can kill this checking because we don't hit this
    BUG_ON on all architectures that actually use the driver.

    (akpm: stolen from the scsi tree because
    dma-mapping-remove-dma_is_consistent-api.patch needs it)

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • Signed-off-by: Andy Shevchenko
    Cc: Adaptec OEM Raid Solutions
    Cc: "James E.J. Bottomley"
    Cc: James Smart
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • Use memdup_user when user data is immediately copied into the
    allocated region.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression from,to,size,flag;
    position p;
    identifier l1,l2;
    @@

    - to = \(kmalloc@p\|kzalloc@p\)(size,flag);
    + to = memdup_user(from,size);
    if (
    - to==NULL
    + IS_ERR(to)
    || ...) {

    }
    - if (copy_from_user(to, from, size) != 0) {
    -
    - }
    //

    Signed-off-by: Julia Lawall
    Cc: Doug Gilbert
    Cc: Boaz Harrosh
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • A couple of scsi drivers define a BIT() macro, duplicating the one in
    bitops.h.

    Cc: Jing Huang
    Cc: Robert Love
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • bnx2i should depend on NET since it selects SCSI_ISCSI_ATTRS, which
    depends on NET.

    Also move the dependencies together.

    The "depends" change fixes multiple build errors when CONFIG_NET is
    not enabled:
    ERROR: "skb_trim" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "netlink_kernel_create" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "netlink_kernel_release" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "skb_pull" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "init_net" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "__alloc_skb" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "netlink_broadcast" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "kfree_skb" [drivers/scsi/scsi_transport_iscsi.ko] undefined!
    ERROR: "skb_put" [drivers/scsi/scsi_transport_iscsi.ko] undefined!

    Signed-off-by: Randy Dunlap
    Cc: Anil Veerabhadrappa
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • pmcraid should depend on NET since it uses netlink interfaces.
    This fixes multiple build errors when CONFIG_NET is not enabled:

    ERROR: "genl_register_family" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "genl_unregister_family" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "nla_put" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "init_net" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "__alloc_skb" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "netlink_broadcast" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "kfree_skb" [drivers/scsi/pmcraid.ko] undefined!
    ERROR: "skb_put" [drivers/scsi/pmcraid.ko] undefined!

    Signed-off-by: Randy Dunlap
    Cc: Anil Ravindranath
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • It appears that the wrong fcport H2I message was tested

    Signed-off-by: Roel Kluin
    Acked-by: Jing Huang
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • It's an exported symbol of kernel/printk.c

    Rename vprintk and dprintk macros to more common VPRINTK and DPRINTK
    Add do { } while(0) around macros
    Add level to VPRINTK so KERN_CONT can be used a couple of times.

    Signed-off-by: Joe Perches
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Use DECLARE_WAIT_QUEUE_HEAD_ONSTACK to make lockdep happy

    Signed-off-by: Yong Zhang
    Cc: Jing Huang
    Cc: James E.J. Bottomley
    Cc: Roel Kluin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yong Zhang
     
  • String constants that are continued on subsequent lines with \ will cause
    spurious whitespace in the resulting output.

    Signed-off-by: Joe Perches
    Cc: James E.J. Bottomley
    Cc: Giridhar Malavali
    Cc: Anirban Chakraborty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • In sd_store_cache_type the symbol 'len' is declared twice. Remove the
    second declaration to quiet the following sparse warning.

    warning: symbol 'len' shadows an earlier one

    In sd_probe the variable 'index' is declared as a u32. This variable is
    used in a call to ida_get_new which is expecting an int *. Make the
    variable an int to quiet the following sparse warning.

    warning: incorrect type in argument 2 (different signedness)

    There are 4 symbols in the file that are not exported and produce
    the following sparse warnings.

    warning: symbol 'sd_cdb_cache' was not declared. Should it be static?
    warning: symbol 'sd_cdb_pool' was not declared. Should it be static?
    warning: symbol 'sd_read_protection_type' was not declared. Should it be static?
    warning: symbol 'sd_read_app_tag_own' was not declared. Should it be static?

    Make them static to quiet the warnings.

    Signed-off-by: H Hartley Sweeten
    Cc: James E.J. Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     
  • Dan's list included:

    drivers/scsi/scsi_lib.c +1365 scsi_kill_request(9) warning: variable derefenced in initializer 'cmd'
    drivers/scsi/scsi_lib.c +1365 scsi_kill_request(9) warning: variable derefenced before check 'cmd'

    We dereference cmd (and possible OOPS if cmd == NULL) before starting the
    request so just remove the superfluous debugging code altogether.

    [ bart: the potential NULL pointer dereference was finally fixed in
    (much later than mine) commit 03b1470 but my patch is still valid ]

    Reported-by: Dan Carpenter
    Cc: Jonathan Corbet
    Cc: Eugene Teo
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bartlomiej Zolnierkiewicz
     
  • In each case, the destination of the allocation has type struct **, so the
    elements of the array should have pointer type, not structure type.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @disable sizeof_type_expr@
    type T;
    T **x;
    @@

    x =

    //

    Signed-off-by: Julia Lawall
    Cc: Rolf Eike Beer
    Cc: Joe Perches
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • The tag_number reaches dcb->max_command + 1 after the loop, but when
    the tag_number equals dcb->max_command an error message is already
    issued. The last iteration therefore appears obsolete.

    Signed-off-by: Roel Kluin
    Cc: Oliver Neukum
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • The ifdefs are broken so the MMIO code is never compiled and so it's
    broken too. Fix them all. Untested as I don't have the hardware.

    Signed-off-by: Ondrej Zary
    Reviewed-by: Andy Walls
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ondrej Zary
     
  • Remove misleading error message that appears after pnp card has been
    detected correctly.

    Signed-off-by: Ondrej Zary
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ondrej Zary
     
  • At the point where cmnd is initialized, it is tested for NULL, so it
    doesn't have to be tested again here.

    A simplified version of the semantic match that detects this problem is as
    follows (http://coccinelle.lip6.fr/):

    //
    @match exists@
    expression x, E;
    identifier fld;
    @@

    * x->fld
    ... when != \(x = E\|&x\)
    * x == NULL
    //

    Signed-off-by: Julia Lawall
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • Besides keeping the line short, the second setting of the MR_DMA_MODE bit
    was removed.

    Signed-off-by: Roel Kluin
    Cc: James Bottomley
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • unmap ccb_phys as well when scsi_add_host() fails

    Signed-off-by: Roel Kluin
    Cc: Achim Leubner
    Cc: James E.J. Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • Check whether index is within bounds before testing the element.

    Signed-off-by: Roel Kluin
    Cc: Willem Riede
    Cc: James E.J. Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • Since the writing to sysfs can free the old one, we need to block that
    when we access the charp variables.

    Signed-off-by: Rusty Russell
    Reviewed-by: Takashi Iwai
    Tested-by: Phil Carmody
    Cc: Jeff Dike
    Cc: Dan Williams
    Cc: John W. Linville
    Cc: Jing Huang
    Cc: James E.J. Bottomley
    Cc: Greg Kroah-Hartman
    Cc: Johannes Berg
    Cc: David S. Miller
    Cc: user-mode-linux-devel@lists.sourceforge.net
    Cc: libertas-dev@lists.infradead.org
    Cc: linux-wireless@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-usb@vger.kernel.org

    Rusty Russell
     
  • Fix following warning:

    drivers/scsi/qla4xxx/ql4_nx.c: In function 'qla4_8xxx_get_flash_info':
    drivers/scsi/qla4xxx/ql4_nx.c:1952: warning: 'mid' may be used uninitialized in this function
    drivers/scsi/qla4xxx/ql4_nx.c:1952: note: 'mid' was declared here
    drivers/scsi/qla4xxx/ql4_nx.c:1952: warning: 'fid' may be used uninitialized in this function
    drivers/scsi/qla4xxx/ql4_nx.c:1952: note: 'fid' was declared here

    Signed-off-by: Vikas Chaudhary
    Reported-by: Stephen Rothwell
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • commit 5f91bb050ecc4ff1d8d3d07edbe550c8f431c5e1
    Author: Michael Reed
    Date: Mon Aug 10 11:59:28 2009 -0500

    [SCSI] reservation conflict after timeout causes device to be taken offline

    Flipped us from always returning failed to always returning success in
    the name of fixing the problem where reservation conflict returns from
    test unit ready cause the device always to be taken offline.
    Unfortuantely, it also introduced a problem whereby for commands other
    than test unit ready, the eh dispatcher thinks they succeeded when
    reservation conflict is returned, whereas in reality they failed. Fix
    this by only returning success for the test unit ready case.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • Using scsi_tgt_lib in a new target module, we were getting
    the following warning and a stack traceback on every I/O completion:

    WARNING: at block/blk-core.c:1108

    Which is claiming we may be leaking a bio.
    We don't leak bios (blk_rq_unmap_user should free them).

    Set rq->bio to NULL before calling scsi_host_put_command().
    This was as advised by Fujita Tomonori.

    Signed-off-by: Joe Eykholt
    Acked-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    Joe Eykholt
     
  • When the transport is busy and we're sending an EH command drivers
    occasionally return 'BUSY'. As this in most cases is the TUR
    command sent as part of the error recovery this is a sure way
    to make the error recovery escalate. Returning 'NEEDS_RETRY'
    here will just retry the TUR command and eventually abort the
    original command, thus making error handling far smoother.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • * 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits)
    block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n
    xen-blkfront: fix missing out label
    blkdev: fix blkdev_issue_zeroout return value
    block: update request stacking methods to support discards
    block: fix missing export of blk_types.h
    writeback: fix bad _bh spinlock nesting
    drbd: revert "delay probes", feature is being re-implemented differently
    drbd: Initialize all members of sync_conf to their defaults [Bugz 315]
    drbd: Disable delay probes for the upcomming release
    writeback: cleanup bdi_register
    writeback: add new tracepoints
    writeback: remove unnecessary init_timer call
    writeback: optimize periodic bdi thread wakeups
    writeback: prevent unnecessary bdi threads wakeups
    writeback: move bdi threads exiting logic to the forker thread
    writeback: restructure bdi forker loop a little
    writeback: move last_active to bdi
    writeback: do not remove bdi from bdi_list
    writeback: simplify bdi code a little
    writeback: do not lose wake-ups in bdi threads
    ...

    Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and
    drivers/scsi/scsi_error.c as per Jens.

    Linus Torvalds
     

08 Aug, 2010

9 commits

  • 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
    77a4229719e511a0d38d9c355317ae1469adeb54 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
    77a4229719e511a0d38d9c355317ae1469adeb54 since now we use REQ_TYPE_FS
    for flush requests.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • Jens, any reason why this isn't included in your for-2.6.36 yet?

    =
    From: FUJITA Tomonori
    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: FUJITA Tomonori
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • 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: Arnd Bergmann
    Cc: linux-scsi@vger.kernel.org
    Cc: "James E.J. Bottomley"
    Acked-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    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: Arnd Bergmann
    Acked-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    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: Arnd Bergmann
    Acked-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Arnd Bergmann
     
  • 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: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    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: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • This removes q->prepare_flush_fn completely (changes the
    blk_queue_ordered API).

    Signed-off-by: FUJITA Tomonori
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • scsi-ml builds flush requests via q->prepare_flush_fn(), however,
    builds discard requests via q->prep_rq_fn.

    Using two different mechnisms for the similar requests (building
    commands in SCSI ULD) doesn't make sense.

    Handing both via q->prep_rq_fn makes the code design simpler.

    Signed-off-by: FUJITA Tomonori
    Cc: James Bottomley
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    FUJITA Tomonori