01 Mar, 2012

2 commits

  • In the direct-attached case this routine returns the phy on which this
    device was first discovered. Which is broken if we want to support
    wide-targets, as this phy reference can become stale even though the
    port is still active.

    In the expander-attached case this routine tries to lookup the phy by
    scanning the attached sas addresses of the parent expander, and BUG_ONs
    if it can't find it. However since eh and the libsas workqueue run
    independently we can still be attempting device recovery via eh after
    libsas has recorded the device as detached. This is even easier to hit
    now that eh is blocked while device domain rediscovery takes place, and
    that libata is fed more timed out commands increasing the chances that
    it will try to recover the ata device.

    Arrange for dev->phy to always point to a last known good phy, it may be
    stale after the port is torn down, but it will catch up for wide port
    reconfigurations, and never be NULL.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Use ata_wait_after_reset() to poll for link recovery after a reset.
    This combined with sas_ha->eh_mutex prevents expander rediscovery from
    probing phys in an intermediate state. Local discovery does not have a
    mechanism to filter link status changes during this timeout, so it
    remains the responsibility of lldds to prevent premature port teardown.
    Although once all lldd's support ->lldd_ata_check_ready() that could be
    used as a gate to local port teardown.

    The signature fis is re-transmitted when the link comes back so we
    should be revalidating the ata device class, but that is left to a future
    patch.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     

20 Feb, 2012

20 commits

  • SAS does not tag SMP requests, and at least one lldd (isci) does not permit
    more than one in-flight request at a time.

    [jejb: fix sas_init_dev tab issues while we're at it]
    Signed-off-by: Jeff Skirvin
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Jeff Skirvin
     
  • Execute the link-reset triggered by sas_phy_enable via
    transport_sas_phy_reset so that it can be managed by libata.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Link resets leave ata affiliations intact, so arrange for libsas to make
    an effort to avoid dropping the device due to a slow-to-recover link.
    Towards this end carry out reset in the host workqueue so that it can
    check for ata devices and kick the reset request to libata. Hard
    resets, in contrast, bypass libata since they are meant for associating
    an ata device with another initiator in the domain (tears down
    affiliations).

    Need to add a new transport_sas_phy_reset() since the current
    sas_phy_reset() is a utility function to libsas lldds. They are not
    prepared for it to loop back into eh.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Extend the sas transport class to allow transport users to attach extra
    data to a sas_phy (->hostdata). Use this area in libsas to move resets
    to workq context in preparation for scheduling ata device resets through
    libata-eh.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Since sata devices can take several seconds to recover the link on reset
    the 0.5 seconds that libsas currently waits may not be enough. Instead
    if we are rediscovering a phy that was previously attached to a sata
    device let libata handle any resets to encourage the device to transmit
    the initial fis.

    Once sas_ata_hard_reset() and lldds learn how to honor 'deadline' libsas
    should stop encountering phys in an intermediate state, until then this
    will loop until the fis is transmitted or ->attached_sas_addr gets
    cleared, but in the more likely initial discovery case we keep existing
    behavior.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • libsas-eh if it successfully aborts an ata command will hide the timeout
    condition (AC_ERR_TIMEOUT) from libata. The command likely completes
    with the all-zero task->task_status it started with. Instead, interpret
    a TMF_RESP_FUNC_COMPLETE as the end of the sas_task but keep the scmd
    around for libata-eh to handle.

    Tested-by: Andrzej Jakowski
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Until we have told the lldd to forget a task a timed out operation can
    return from the hardware at any time. Since completion frees the task
    we need to make sure that no tasks run their normal completion handler
    once eh has decided to manage the task. Similar to
    ata_scsi_cmd_error_handler() freeze completions to let eh judge the
    outcome of the race.

    Task collector mode is problematic because it presents a situation where
    a task can be timed out and aborted before the lldd has even seen it.
    For this case we need to guarantee that a task that an lldd has been
    told to forget does not get queued after the lldd says "never seen it".
    With sas_scsi_timed_out we achieve this with the ->task_queue_flush
    mutex, rather than adding more time.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • We invoke task->task_done() to free the task in the eh case, but at this
    point we are prepared for scsi_eh_flush_done_q() to finish off the scmd.

    Introduce sas_end_task() to capture the final response status from the
    lldd and free the task.

    Also take the opportunity to kill this warning.
    drivers/scsi/libsas/sas_scsi_host.c: In function ‘sas_end_task’:
    drivers/scsi/libsas/sas_scsi_host.c:102:3: warning: case value ‘2’ not in enumerated type ‘enum exec_status’ [-Wswitch]

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Since sas_ata does not implement ->freeze(), completions for scmds and
    internal commands can still arrive concurrent with
    ata_scsi_cmd_error_handler() and sas_ata_post_internal() respectively.
    By the time either of those is called libata has committed to completing
    the qc, and the ATA_PFLAG_FROZEN flag tells sas_ata_task_done() it has
    lost the race.

    In the sas_ata_post_internal() case we take on the additional
    responsibility of freeing the sas_task to close the race with
    sas_ata_task_done() freeing the the task while sas_ata_post_internal()
    is in the process of invoking ->lldd_abort_task().

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • sas_discover_sata() notifies lldds of sata devices twice. Once to allow
    the 'identify' to be sent, and a second time to allow aic94xx (the only
    libsas driver that cares about sata_dev.identify) to setup NCQ
    parameters before the device becomes known to the midlayer. Replace
    this double notification and intervening 'identify' with an explicit
    ->lldd_ata_set_dmamode notification. With this change all ata internal
    commands are issued by libata, so we no longer need sas_issue_ata_cmd().

    The data from the identify command only needs to be cached in one
    location so ata_device.id replaces domain_device.sata_dev.identify.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • libata error handling provides for a timeout for link recovery. libsas
    must not rescan for previously known devices in this interval otherwise
    it may remove a device that is simply waiting for its link to recover.
    Let libata-eh make the determination of when the link is stable and
    prevent libsas (host workqueue) from taking action while this
    determination is pending.

    Using a mutex (ha->disco_mutex) to flush and disable revalidation while
    eh is running requires any discovery action that may block on eh be
    moved to its own context outside the lock. Probing ATA devices
    explicitly waits on ata-eh and the cache-flush-io issued during device
    removal may also pend awaiting eh completion. Essentially any rphy
    add/remove activity needs to run outside the lock.

    This adds two new cleanup states for sas_unregister_domain_devices()
    'allocated-but-not-probed', and 'flagged-for-destruction'. In the
    'allocated-but-not-probed' state dev->rphy points to a rphy that is
    known to have not been through a sas_rphy_add() event. At domain
    teardown check if this device is still pending probe and cleanup
    accordingly. Similarly if a device has already been queued for removal
    then sas_unregister_domain_devices has nothing to do.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • In preparation for adding tracking of another device state "destroy".

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • When an lldd invokes ->notify_port_event() it can trigger a chain of libsas
    events to:

    1/ form the port and find the direct attached device

    2/ if the attached device is an expander perform domain discovery

    A call to flush_workqueue() will only flush the initial port formation work.
    Currently libsas users need to call scsi_flush_work() up to the max depth of
    chain (which will grow from 2 to 3 when ata discovery is moved to its own
    discovery event). Instead of open coding multiple calls switch to use
    drain_workqueue() to flush sas work.

    drain_workqueue() does not handle new work submitted during the drain so
    libsas needs a bit of infrastructure to hold off unchained work submissions
    while a drain is in flight. A lldd ->notify() event is considered 'unchained'
    while a sas_discover_event() is 'chained'. As Tejun notes:

    "For now, I think it would be best to add private wrapper in libsas to
    support deferring unchained work items while draining."

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • In preparation for adding new states (SAS_HA_DRAINING, SAS_HA_FROZEN),
    convert ha->state into a set of flags.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • The locks only served to make sure the pending event bitmask was updated
    consistently.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • These are never freed in the nominal path. A domain_device has a
    different lifetime than a sas_rphy we need a dev->rphy independent way
    of identifying sata devices.

    Reviewed-by: Jack Wang
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Arrange for the deallocation of a struct domain_device object when it no
    longer has:
    1/ any children
    2/ references by any scsi_targets
    3/ references by a lldd

    The comment about domain_device lifetime in
    Documentation/scsi/libsas.txt is stale as it appears mainline never had
    a version of a struct domain_device that was registered as a kobject.
    We now manage domain_device reference counts on behalf of external
    agents.

    Reviewed-by: Jack Wang
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Per commit 3e4ec344 "libata: kill ATA_FLAG_DISABLED" needing to set
    ATA_DEV_NONE is a holdover from before libsas converted to the
    "new-style" ata-eh.

    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Commit 1e34c838 "[SCSI] libsas: remove spurious sata control register
    read/write" removed the routines to fake the presence of the sata
    control registers, now remove the unused data structure fields to kill
    any remaining confusion.

    Acked-by: Jack Wang
    Signed-off-by: Dan Williams
    Signed-off-by: James Bottomley

    Dan Williams
     
  • We have experienced several devices which fail in a fashion we do not
    currently handle gracefully in SCSI. After a failure these devices will
    respond to the SCSI primary command set (INQUIRY, TEST UNIT READY, etc.)
    but any command accessing the storage medium will time out.

    The following patch adds an callback that can be used by upper level
    drivers to inspect the results of an error handling command. This in
    turn has been used to implement additional checking in the SCSI disk
    driver.

    If a medium access command fails twice but TEST UNIT READY succeeds both
    times in the subsequent error handling we will offline the device. The
    maximum number of failed commands required to take a device offline can
    be tweaked in sysfs.

    Also add a new error flag to scsi_debug which allows this scenario to be
    easily reproduced.

    [jejb: fix up integer parsing to use kstrtouint]
    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     

19 Feb, 2012

11 commits

  • The virtio-scsi HBA is the basis of an alternative storage stack
    for QEMU-based virtual machines (including KVM). Compared to
    virtio-blk it is more scalable, because it supports many LUNs
    on a single PCI slot), more powerful (it more easily supports
    passthrough of host devices to the guest) and more easily
    extensible (new SCSI features implemented by QEMU should not
    require updating the driver in the guest).

    Acked-by: Rusty Russell
    Signed-off-by: Paolo Bonzini
    Signed-off-by: James Bottomley

    Paolo Bonzini
     
  • Added ping support for iscsi adapter, application can use this
    interface for diagnostic network connection.

    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • Added support to post kernel host event to application using
    netlink interface.

    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • Problem description from Xi Wang:
    A large max_r2t could lead to integer overflow in subsequent call to
    iscsi_tcp_r2tpool_alloc(), allocating a smaller buffer than expected
    and leading to out-of-bounds write.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Resubmitting as my previous post had format issues and did not go llinux-scsi.
    This patch changes the function to set_msg_byte, set_host_byte and
    set_driver_byte to correctly set the corresponding bytes appropriately.

    It will reset the original setting and correctly set it to the new value. The
    previous OR operation does not always set it back to new value. Look at patch
    2/2 for an example.

    Signed-off-by: Babu Moger
    Signed-off-by: James Bottomley

    Moger, Babu
     
  • This patch adds support for Fabric Device Management
    Interface as per FC-GS-4 spec. in libfc. Any driver
    making use of libfc can enable fdmi state machine
    for a given lport.

    If lport has enabled FDMI support the lport state
    machine will transition into FDMI after completing
    the DNS states and before entering the SCR state.
    The FDMI state transition is such that if there is an
    error, it won't stop the lport state machine from
    transitioning and the it will behave as if there was
    no FDMI support.

    The FDMI HBA attributes are registed with the Management
    server via Register HBA (RHBA) command and the port
    attributes are reigstered using the Register Port(RPA)
    command.

    Signed-off-by: Neerav Parikh
    Tested-by: Ross Brattain
    Acked-by: Robert Love
    Signed-off-by: James Bottomley

    Neerav Parikh
     
  • Currently the libfc Common Transport(CT) calls assume that
    the CT requests are Name Server specific only. This patch
    makes it more flexible to allow more FC-GS services to make
    use of these routines.

    Signed-off-by: Neerav Parikh
    Tested-by: Ross Brattain
    Acked-by: Robert Love
    Signed-off-by: James Bottomley

    Neerav Parikh
     
  • The values for the 4G and 10G speeds are not in sync with
    definitions in SM-HBA/FC-GS-x/etc.
    This patch brings them in sync to these specifications.

    The values are converted to strings when represented via
    sysfs attribute, hence that should cover for user space
    apps as they may not see any change.

    Signed-off-by: Neerav Parikh
    Tested-by: Ross Brattain
    Acked-by: Robert Love
    Signed-off-by: James Bottomley

    Neerav Parikh
     
  • This adds FC-GS Fabric Device Management Interface
    (FDMI) related attributes to fc_host_attr structure.

    This is in preparation for allowing FDMI attributes
    to be registered via libfc.

    Signed-off-by: Neerav Parikh
    Tested-by: Ross Brattain
    Acked-by: Robert Love
    Signed-off-by: James Bottomley

    Neerav Parikh
     
  • sysfs patch to view port_state:
    /sys/class/iscsi_host/host*/port_state

    sysfs patch to view port_speed:
    /sys/class/iscsi_host/host*/port_speed

    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • sysfs patch to view target alias:
    /sys/class/iscsi_session/session*/targetalias

    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     

12 Feb, 2012

1 commit

  • Says Jens:

    "Time to push off some of the pending items. I really wanted to wait
    until we had the regression nailed, but alas it's not quite there yet.
    But I'm very confident that it's "just" a missing expire on exit, so
    fix from Tejun should be fairly trivial. I'm headed out for a week on
    the slopes.

    - Killing the barrier part of mtip32xx. It doesn't really support
    barriers, and it doesn't need them (writes are fully ordered).

    - A few fixes from Dan Carpenter, preventing overflows of integer
    multiplication.

    - A fixup for loop, fixing a previous commit that didn't quite solve
    the partial read problem from Dave Young.

    - A bio integer overflow fix from Kent Overstreet.

    - Improvement/fix of the door "keep locked" part of the cdrom shared
    code from Paolo Benzini.

    - A few cfq fixes from Shaohua Li.

    - A fix for bsg sysfs warning when removing a file it did not create
    from Stanislaw Gruszka.

    - Two fixes for floppy from Vivek, preventing a crash.

    - A few block core fixes from Tejun. One killing the over-optimized
    ioc exit path, cleaning that up nicely. Two others fixing an oops
    on elevator switch, due to calling into the scheduler merge check
    code without holding the queue lock."

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: fix lockdep warning on io_context release put_io_context()
    relay: prevent integer overflow in relay_open()
    loop: zero fill bio instead of return -EIO for partial read
    bio: don't overflow in bio_get_nr_vecs()
    floppy: Fix a crash during rmmod
    floppy: Cleanup disk->queue before caling put_disk() if add_disk() was never called
    cdrom: move shared static to cdrom_device_info
    bsg: fix sysfs link remove warning
    block: don't call elevator callbacks for plug merges
    block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions
    mtip32xx: removed the irrelevant argument of mtip_hw_submit_io() and the unused member of struct driver_data
    block: strip out locking optimization in put_io_context()
    cdrom: use copy_to_user() without the underscores
    block: fix ioc locking warning
    block: fix NULL icq_cache reference
    block,cfq: change code order

    Linus Torvalds
     

11 Feb, 2012

3 commits

  • Quoth David:

    1) GRO MAC header comparisons were ethernet specific, breaking other
    link types. This required a multi-faceted fix to cure the originally
    noted case (Infiniband), because IPoIB was lying about it's actual
    hard header length. Thanks to Eric Dumazet, Roland Dreier, and
    others.

    2) Fix build failure when INET_UDP_DIAG is built in and ipv6 is modular.
    From Anisse Astier.

    3) Off by ones and other bug fixes in netprio_cgroup from Neil Horman.

    4) ipv4 TCP reset generation needs to respect any network interface
    binding from the socket, otherwise route lookups might give a
    different result than all the other segments received. From Shawn
    Lu.

    5) Fix unintended regression in ipv4 proxy ARP responses, from Thomas
    Graf.

    6) Fix SKB under-allocation bug in sh_eth, from Yoshihiro Shimoda.

    7) Revert skge PCI mapping changes that are causing crashes for some
    folks, from Stephen Hemminger.

    8) IPV4 route lookups fill in the wildcarded fields of the given flow
    lookup key passed in, which is fine most of the time as this is
    exactly what the caller's want. However there are a few cases that
    want to retain the original flow key values afterwards, so handle
    those cases properly. Fix from Julian Anastasov.

    9) IGB/IXGBE VF lookup bug fixes from Greg Rose.

    10) Properly null terminate filename passed to ethtool flash device
    method, from Ben Hutchings.

    11) S3 resume fix in via-velocity from David Lv.

    12) Fix double SKB free during xmit failure in CAIF, from Dmitry
    Tarnyagin.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (72 commits)
    net: Don't proxy arp respond if iif == rt->dst.dev if private VLAN is disabled
    ipv4: Fix wrong order of ip_rt_get_source() and update iph->daddr.
    netprio_cgroup: fix wrong memory access when NETPRIO_CGROUP=m
    netprio_cgroup: don't allocate prio table when a device is registered
    netprio_cgroup: fix an off-by-one bug
    bna: fix error handling of bnad_get_flash_partition_by_offset()
    isdn: type bug in isdn_net_header()
    net: Make qdisc_skb_cb upper size bound explicit.
    ixgbe: ethtool: stats user buffer overrun
    ixgbe: dcb: up2tc mapping lost on disable/enable CEE DCB state
    ixgbe: do not update real num queues when netdev is going away
    ixgbe: Fix broken dependency on MAX_SKB_FRAGS being related to page size
    ixgbe: Fix case of Tx Hang in PF with 32 VFs
    ixgbe: fix vf lookup
    igb: fix vf lookup
    e1000: add dropped DMA receive enable back in for WoL
    gro: more generic L2 header check
    IPoIB: Stop lying about hard_header_len and use skb->cb to stash LL addresses
    zd1211rw: firmware needs duration_id set to zero for non-pspoll frames
    net: enable TC35815 for MIPS again
    ...

    Linus Torvalds
     
  • When the netprio_cgroup module is not loaded, net_prio_subsys_id
    is -1, and so sock_update_prioidx() accesses cgroup_subsys array
    with negative index subsys[-1].

    Make the code resembles cls_cgroup code, which is bug free.

    Origionally-authored-by: Li Zefan
    Signed-off-by: Li Zefan
    Signed-off-by: Neil Horman
    CC: "David S. Miller"
    Signed-off-by: David S. Miller

    Neil Horman
     
  • fix 1 mysterious divide error
    fix 3 NULL dereference bugs in writeback tracing, on SD card removal w/o umount

    * tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
    writeback: fix dereferencing NULL bdi->dev on trace_writeback_queue
    lib: proportion: lower PROP_MAX_SHIFT to 32 on 64-bit kernel
    writeback: fix NULL bdi->dev in trace writeback_single_inode
    backing-dev: fix wakeup timer races with bdi_unregister()

    Linus Torvalds
     

10 Feb, 2012

2 commits

  • USB fixes for 3.3-rc3

    Here are a few minor USB fixes and a bunch of device id updates for the
    USB drivers.

    Signed-off-by: Greg Kroah-Hartman

    * tag 'usb-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    USB: usbserial: add new PID number (0xa951) to the ftdi driver
    usb: ch9.h: usb_endpoint_maxp() uses __le16_to_cpu()
    usb: musb: fix a build error on mips
    uwb & wusb & usb wireless controllers: fix kconfig error & build errors
    usb: Skip PCI USB quirk handling for Netlogic XLP
    powerpc/usb: fix issue of CPU halt when missing USB PHY clock
    usb: otg: mv_otg: Add dependence
    usb: host: Distinguish Kconfig text for Freescale controllers
    USB: add new zte 3g-dongle's pid to option.c
    usb: ch9.h: usb_endpoint_maxp() uses __le16_to_cpu()
    USB: qcserial: don't enable autosuspend
    USB: qcserial: add several new serial devices
    usb: otg: mv_otg: Add dependence
    usb: gadget: zero: fix bug in loopback autoresume handling

    Linus Torvalds
     
  • Just like skb->cb[], so that qdisc_skb_cb can be encapsulated inside
    of other data structures.

    This is intended to be used by IPoIB so that it can remember
    addressing information stored at hard_header_ops->create() time that
    it can fetch when the packet gets to the transmit routine.

    Signed-off-by: David S. Miller

    David S. Miller
     

09 Feb, 2012

1 commit

  • This series contains pending target bug-fixes and cleanups for v3.3-rc3
    that have been addressed the past weeks in lio-core.git.

    Some of the highlights include:

    - Fix handling for control CDBs with data greater than PAGE_SIZE (andy)
    - Use IP_FREEBIND for iscsi-target to address network portal creation
    issues with systemd (dax)
    - Allow PERSISTENT RESERVE IN for non-reservation holder (marco)
    - Fix iblock se_dev_attrib.unmap_granularity (marco)
    - Fix unsupported WRITE_SAME sense payload handling (martin)
    - Add workaround for zero-length control CDB handling (nab)
    - Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT (nab)
    - Fix target_submit_cmd() exception handling (nab)
    - Return correct ASC for unimplemented VPD pages (roland)
    - Don't zero pages used for data buffers (roland)
    - Fix return code of core_tpg_.*_lun (sebastian)

    * '3.3-rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)
    target: Fix unsupported WRITE_SAME sense payload
    iscsi: use IP_FREEBIND socket option
    iblock: fix handling of large requests
    target: handle empty string writes in sysfs
    iscsi_target: in_aton needs linux/inet.h
    target: Fix iblock se_dev_attrib.unmap_granularity
    target: Fix target_submit_cmd() exception handling
    target: Change target_submit_cmd() to return void
    target: accept REQUEST_SENSE with 18bytes
    target: Fail INQUIRY commands with EVPD==0 but PAGE CODE!=0
    target: Return correct ASC for unimplemented VPD pages
    iscsi-target: Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT
    target: Allow control CDBs with data > 1 page
    iscsi-target: Fix up a few assignments
    iscsi-target: make one-bit bitfields unsigned
    iscsi-target: Fix double list_add with iscsit_alloc_buffs reject
    iscsi-target: Fix reject release handling in iscsit_free_cmd()
    target: fix return code of core_tpg_.*_lun
    target: use save/restore lock primitive in core_dec_lacl_count()
    target: avoid multiple outputs in scsi_dump_inquiry()
    ...

    Linus Torvalds