1. 11 Sep, 2015 3 commits
    • Roland Dreier's avatar
      target: Fix max_cmd_sn increment w/o cmdsn mutex regressions · 7dd03aca
      Roland Dreier authored
      Current for-next iscsi target is broken:
      
      commit 109e2381
      Author: Roland Dreier <roland@purestorage.com>
      Date:   Thu Jul 23 14:53:32 2015 -0700
      
          target: Drop iSCSI use of mutex around max_cmd_sn increment
      
      This patch fixes incorrect pr_debug() + atomic_inc_return() usage
      within iscsit_increment_maxcmdsn() code.
      
      Also fix funny iscsit_determine_maxcmdsn() usage and update
      iscsi_target_do_tx_login_io() code.
      Reported-by: default avatarSagi Grimberg <sagig@mellanox.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      7dd03aca
    • Nicholas Bellinger's avatar
      target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess · 4416f89b
      Nicholas Bellinger authored
      This patch is a >= v4.1 regression bug-fix where control CDB
      emulation logic in commit 38b57f82 now expects a se_cmd->se_sess
      pointer to exist when determining T10-PI support is to be exposed
      for initiator host ports.
      
      To address this bug, go ahead and add locally generated se_cmd
      descriptors for copy-offload block-copy to it's own stand-alone
      se_session nexus, while the parent EXTENDED_COPY se_cmd descriptor
      remains associated with it's originating se_cmd->se_sess nexus.
      
      Note a valid se_cmd->se_sess is also required for future support
      of WRITE_INSERT and READ_STRIP software emulation when submitting
      backend I/O to se_device that exposes T10-PI suport.
      Reported-by: default avatarAlex Gorbachev <ag@iss-integration.com>
      Tested-by: default avatarAlex Gorbachev <ag@iss-integration.com>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Doug Gilbert <dgilbert@interlog.com>
      Cc: <stable@vger.kernel.org> # v4.1+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      4416f89b
    • Nicholas Bellinger's avatar
      target/qla2xxx: Honor max_data_sg_nents I/O transfer limit · 8f9b5654
      Nicholas Bellinger authored
      This patch adds an optional fabric driver provided SGL limit
      that target-core will honor as it's own internal I/O maximum
      transfer length limit, as exposed by EVPD=0xb0 block limits
      parameters.
      
      This is required for handling cases when host I/O transfer
      length exceeds the requested EVPD block limits maximum
      transfer length. The initial user of this logic is qla2xxx,
      so that we can avoid having to reject I/Os from some legacy
      FC hosts where EVPD=0xb0 parameters are not honored.
      
      When se_cmd payload length exceeds the provided limit in
      target_check_max_data_sg_nents() code, se_cmd->data_length +
      se_cmd->prot_length are reset with se_cmd->residual_count
      plus underflow bit for outgoing TFO response callbacks.
      It also checks for existing CDB level underflow + overflow
      and recalculates final residual_count as necessary.
      
      Note this patch currently assumes 1:1 mapping of PAGE_SIZE
      per struct scatterlist entry.
      Reported-by: default avatarCraig Watson <craig.watson@vanguard-rugged.com>
      Cc: Craig Watson <craig.watson@vanguard-rugged.com>
      Tested-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Arun Easi <arun.easi@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      8f9b5654
  2. 27 Aug, 2015 4 commits
  3. 03 Aug, 2015 3 commits
  4. 01 Aug, 2015 1 commit
  5. 31 Jul, 2015 9 commits
  6. 24 Jul, 2015 12 commits
  7. 06 Jul, 2015 1 commit
  8. 05 Jul, 2015 6 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 1c4c7159
      Linus Torvalds authored
      Pull ext4 bugfixes from Ted Ts'o:
       "Bug fixes (all for stable kernels) for ext4:
      
         - address corner cases for indirect blocks->extent migration
      
         - fix reserved block accounting invalidate_page when
           page_size != block_size (i.e., ppc or 1k block size file systems)
      
         - fix deadlocks when a memcg is under heavy memory pressure
      
         - fix fencepost error in lazytime optimization"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: replace open coded nofail allocation in ext4_free_blocks()
        ext4: correctly migrate a file with a hole at the beginning
        ext4: be more strict when migrating to non-extent based file
        ext4: fix reservation release on invalidatepage for delalloc fs
        ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp
        bufferhead: Add _gfp version for sb_getblk()
        ext4: fix fencepost error in lazytime optimization
      1c4c7159
    • Linus Torvalds's avatar
      Linux 4.2-rc1 · d770e558
      Linus Torvalds authored
      d770e558
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.2-2' of... · a585d2b7
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull late x86 platform driver updates from Darren Hart:
       "The following came in a bit later and I wanted them to bake in next a
        few more days before submitting, thus the second pull.
      
        A new intel_pmc_ipc driver, a symmetrical allocation and free fix in
        dell-laptop, a couple minor fixes, and some updated documentation in
        the dell-laptop comments.
      
        intel_pmc_ipc:
         - Add Intel Apollo Lake PMC IPC driver
      
        tc1100-wmi:
         - Delete an unnecessary check before the function call "kfree"
      
        dell-laptop:
         - Fix allocating & freeing SMI buffer page
         - Show info about WiGig and UWB in debugfs
         - Update information about wireless control"
      
      * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver
        tc1100-wmi: Delete an unnecessary check before the function call "kfree"
        dell-laptop: Fix allocating & freeing SMI buffer page
        dell-laptop: Show info about WiGig and UWB in debugfs
        dell-laptop: Update information about wireless control
      a585d2b7
    • Michal Hocko's avatar
      ext4: replace open coded nofail allocation in ext4_free_blocks() · 7444a072
      Michal Hocko authored
      ext4_free_blocks is looping around the allocation request and mimics
      __GFP_NOFAIL behavior without any allocation fallback strategy. Let's
      remove the open coded loop and replace it with __GFP_NOFAIL. Without the
      flag the allocator has no way to find out never-fail requirement and
      cannot help in any way.
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      7444a072
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1dc51b82
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted VFS fixes and related cleanups (IMO the most interesting in
        that part are f_path-related things and Eric's descriptor-related
        stuff).  UFS regression fixes (it got broken last cycle).  9P fixes.
        fs-cache series, DAX patches, Jan's file_remove_suid() work"
      
      [ I'd say this is much more than "fixes and related cleanups".  The
        file_table locking rule change by Eric Dumazet is a rather big and
        fundamental update even if the patch isn't huge.   - Linus ]
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits)
        9p: cope with bogus responses from server in p9_client_{read,write}
        p9_client_write(): avoid double p9_free_req()
        9p: forgetting to cancel request on interrupted zero-copy RPC
        dax: bdev_direct_access() may sleep
        block: Add support for DAX reads/writes to block devices
        dax: Use copy_from_iter_nocache
        dax: Add block size note to documentation
        fs/file.c: __fget() and dup2() atomicity rules
        fs/file.c: don't acquire files->file_lock in fd_install()
        fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation
        vfs: avoid creation of inode number 0 in get_next_ino
        namei: make set_root_rcu() return void
        make simple_positive() public
        ufs: use dir_pages instead of ufs_dir_pages()
        pagemap.h: move dir_pages() over there
        remove the pointless include of lglock.h
        fs: cleanup slight list_entry abuse
        xfs: Correctly lock inode when removing suid and file capabilities
        fs: Call security_ops->inode_killpriv on truncate
        fs: Provide function telling whether file_remove_privs() will do anything
        ...
      1dc51b82
    • Linus Torvalds's avatar
      bluetooth: fix list handling · 9b284cbd
      Linus Torvalds authored
      Commit 835a6a2f ("Bluetooth: Stop sabotaging list poisoning")
      thought that the code was sabotaging the list poisoning when NULL'ing
      out the list pointers and removed it.
      
      But what was going on was that the bluetooth code was using NULL
      pointers for the list as a way to mark it empty, and that commit just
      broke it (and replaced the test with NULL with a "list_empty()" test on
      a uninitialized list instead, breaking things even further).
      
      So fix it all up to use the regular and real list_empty() handling
      (which does not use NULL, but a pointer to itself), also making sure to
      initialize the list properly (the previous NULL case was initialized
      implicitly by the session being allocated with kzalloc())
      
      This is a combination of patches by Marcel Holtmann and Tedd Ho-Jeong
      An.
      
      [ I would normally expect to get this through the bt tree, but I'm going
        to release -rc1, so I'm just committing this directly   - Linus ]
      Reported-and-tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Original-by: default avatarTedd Ho-Jeong An <tedd.an@intel.com>
      Original-by: Marcel Holtmann <marcel@holtmann.org>:
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9b284cbd
  9. 04 Jul, 2015 1 commit
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 5c755fe1
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
       "It's been a busy development cycle for target-core in a number of
        different areas.
      
        The fabric API usage for se_node_acl allocation is now within
        target-core code, dropping the external API callers for all fabric
        drivers tree-wide.
      
        There is a new conversion to RCU hlists for se_node_acl and
        se_portal_group LUN mappings, that turns fast-past LUN lookup into a
        completely lockless code-path.  It also removes the original
        hard-coded limitation of 256 LUNs per fabric endpoint.
      
        The configfs attributes for backends can now be shared between core
        and driver code, allowing existing drivers to use common code while
        still allowing flexibility for new backend provided attributes.
      
        The highlights include:
      
         - Merge sbc_verify_dif_* into common code (sagi)
         - Remove iscsi-target support for obsolete IFMarker/OFMarker
           (Christophe Vu-Brugier)
         - Add bidi support in target/user backend (ilias + vangelis + agover)
         - Move se_node_acl allocation into target-core code (hch)
         - Add crc_t10dif_update common helper (akinobu + mkp)
         - Handle target-core odd SGL mapping for data transfer memory
           (akinobu)
         - Move transport ID handling into target-core (hch)
         - Move task tag into struct se_cmd + support 64-bit tags (bart)
         - Convert se_node_acl->device_list[] to RCU hlist (nab + hch +
           paulmck)
         - Convert se_portal_group->tpg_lun_list[] to RCU hlist (nab + hch +
           paulmck)
         - Simplify target backend driver registration (hch)
         - Consolidate + simplify target backend attribute implementations
           (hch + nab)
         - Subsume se_port + t10_alua_tg_pt_gp_member into se_lun (hch)
         - Drop lun_sep_lock for se_lun->lun_se_dev RCU usage (hch + nab)
         - Drop unnecessary core_tpg_register TFO parameter (nab)
         - Use 64-bit LUNs tree-wide (hannes)
         - Drop left-over TARGET_MAX_LUNS_PER_TRANSPORT limit (hannes)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (76 commits)
        target: Bump core version to v5.0
        target: remove target_core_configfs.h
        target: remove unused TARGET_CORE_CONFIG_ROOT define
        target: consolidate version defines
        target: implement WRITE_SAME with UNMAP bit using ->execute_unmap
        target: simplify UNMAP handling
        target: replace se_cmd->execute_rw with a protocol_data field
        target/user: Fix inconsistent kmap_atomic/kunmap_atomic
        target: Send UA when changing LUN inventory
        target: Send UA upon LUN RESET tmr completion
        target: Send UA on ALUA target port group change
        target: Convert se_lun->lun_deve_lock to normal spinlock
        target: use 'se_dev_entry' when allocating UAs
        target: Remove 'ua_nacl' pointer from se_ua structure
        target_core_alua: Correct UA handling when switching states
        xen-scsiback: Fix compile warning for 64-bit LUN
        target: Remove TARGET_MAX_LUNS_PER_TRANSPORT
        target: use 64-bit LUNs
        target: Drop duplicate + unused se_dev_check_wce
        target: Drop unnecessary core_tpg_register TFO parameter
        ...
      5c755fe1