)]}'
{
  "log": [
    {
      "commit": "95cadace8f3959282e76ebf8b382bd0930807d2c",
      "tree": "2b8773e84f7dc600eba50665d18377f2f130b1e8",
      "parents": [
        "2853c2b6671509591be09213954d7249ca6ff224"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Dec 12 12:24:11 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Dec 19 00:18:54 2013 -0800"
      },
      "message": "target/file: Update hw_max_sectors based on current block_size\n\nThis patch allows FILEIO to update hw_max_sectors based on the current\nmax_bytes_per_io.  This is required because vfs_[writev,readv]() can accept\na maximum of 2048 iovecs per call, so the enforced hw_max_sectors really\nneeds to be calculated based on block_size.\n\nThis addresses a \u003e\u003d v3.5 bug where block_size\u003d512 was rejecting \u003e 1M\nsized I/O requests, because FD_MAX_SECTORS was hardcoded to 2048 for\nthe block_size\u003d4096 case.\n\n(v2: Use max_bytes_per_io instead of -\u003eupdate_hw_max_sectors)\n\nReported-by: Henrik Goldman \u003chg@x-formation.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e #3.5+\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a51d5229d10dd3a337b674ce8603437d2996c5c3",
      "tree": "a95dc5c926f418a1906fc454b6545ebdee163093",
      "parents": [
        "2306bfb208b9c403592a0513b08f2e6ad53056d5"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Sat Nov 23 10:35:58 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 11 10:59:45 2013 -0800"
      },
      "message": "target: Remove write-only stats fields and lock from struct se_node_acl\n\nCommit 04f3b31bff72 (\"iscsi-target: Convert iscsi_session statistics to\natomic_long_t\") removed the updating of these fields in iscsi (the only\nfabric driver that ever touched these counters), and the core has no way\nto report or otherwise use the values.  Remove the last remnants of\nthese counters.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c0dc941e2bdfad4deccf3ba2626f485b5a5f59a4",
      "tree": "d909e4e782af830619338183c9c6e76f87c99a0d",
      "parents": [
        "73f3bf51e0b296acc58f895639be743739347da1"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Nov 19 09:07:49 2013 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 20 11:26:37 2013 -0800"
      },
      "message": "target_core_alua: Store supported ALUA states\n\nThe supported ALUA states might be different for individual\ndevices, so store it in a separate field.\n\n(nab: Remove unnecessary line continuation)\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "125d0119d158180eb38580adfbc1a83d56120709",
      "tree": "cfe240124c7844c10808483a12acf5f517090677",
      "parents": [
        "fcd40d69afea8700eda8cbf381f6d160cf757ebf"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Nov 19 09:07:46 2013 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 20 11:24:40 2013 -0800"
      },
      "message": "target core: rename (ex,im)plict -\u003e (ex,im)plicit\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ee480683d975973e3ff679850871e00e011c4a96",
      "tree": "a7c5d09f34b8f606fb3f709eb15615513d5981db",
      "parents": [
        "29f4c090079f442ea2723d292e4e64f0b6ac1f27"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 13 18:34:55 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 13 18:34:55 2013 -0800"
      },
      "message": "target: Convert se_device statistics to atomic_long_t\n\nThis patch converts the handful of se_device statistics to type\natomic_long_t, instead of using se_device-\u003estats_lock when\nincrementing these values.\n\nMore importantly, go ahead and drop the spinlock usage within\ntransport_lookup_cmd_lun() fast-path code.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7f7caf6aa74a4f4ad21ebe08bf23b594fce45ca7",
      "tree": "058c55e859712486b9f6a8a20f3ea46add3a30eb",
      "parents": [
        "f01b9f73392b48c6cda7c2c66594c73137c776da"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon Nov 11 08:59:17 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 12 13:44:54 2013 -0800"
      },
      "message": "target: Pass through I/O topology for block backstores\n\nIn addition to block size (already implemented), passing through\nalignment offset, logical-to-phys block exponent, I/O granularity and\noptimal I/O length will allow initiators to properly handle layout on\nLUNs with 4K block sizes.\n\nTested with various weird values via scsi_debug module.\n\nOne thing to look at with this patch is the new block limits values --\ninstead of granularity 1 optimal 8192, Lio will now be returning whatever\nthe block device says, which may affect performance.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4863e525659abbc903aacc67fd916f12914f6c1d",
      "tree": "228f0fe16e5264922c383c5b9a6cfc17b30a5e6d",
      "parents": [
        "4a9a6c8d538eff6d627fa14409c7c25aff652541"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 08 13:10:44 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 08 13:13:38 2013 -0800"
      },
      "message": "target: Add per device xcopy_lun for copy offload I/O\n\nThis patch adds a se_device-\u003excopy_lun that is used for local\ncopy offload I/O, instead of allocating + initializing a pseudo\nse_lun for each received EXTENDED_COPY operation.\n\nAlso, move declaration of struct se_lun + struct se_port_stat_grps\nahead of struct se_device.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4a9a6c8d538eff6d627fa14409c7c25aff652541",
      "tree": "dded7528c07556c7b666e8c4351ca0eeb9097c3d",
      "parents": [
        "5277797dc4ed873d067477d84e910b39d113f649"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 06 21:05:19 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 07 14:25:02 2013 -0800"
      },
      "message": "target: Drop left-over se_lun-\u003elun_cmd_list shutdown code\n\nNow with percpu refcounting for se_lun in place, go ahead and drop\nthe legacy per se_cmd accounting for se_lun shutdown.\n\nThis includes __transport_clear_lun_from_sessions(), the associated\ntransport_lun_wait_for_tasks() logic, along with a handful of now\nunused se_cmd structure members and -\u003etransport_state bits.\n\nCc: Kent Overstreet \u003ckmo@daterainc.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5277797dc4ed873d067477d84e910b39d113f649",
      "tree": "5e2aa87dec2cbcb5bbdfadd697c92e86b0e5aa11",
      "parents": [
        "c9e8d128fe316751230ee0c53478740c64f58436"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 06 21:03:43 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 07 14:24:52 2013 -0800"
      },
      "message": "target: Add percpu refcounting for se_lun access\n\nThis patch adds percpu refcounting for se_lun access that allows the\nassociation of an se_lun + se_cmd in transport_lookup_cmd_lun() to\noccur without an extra list_head for tracking outstanding I/O during\nse_lun shutdown.\n\nThis effectively changes se_lun shutdown logic to wait for outstanding\nI/O percpu references to complete in transport_lun_remove_cmd() using\nse_lun-\u003elun_ref_comp, instead of explicitly draining the per se_lun\ncommand list and waiting for individual se_cmd descriptor processing\nto complete.\n\nCc: Kent Overstreet \u003ckmo@daterainc.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b3fde035714b83ef7ddbbd5a520a2150d990349b",
      "tree": "b8dab2778c0b419592687f8bf12df3a762d28d80",
      "parents": [
        "4c54b6cf28bcd942d53d8504c4fb45bb3637f7da"
      ],
      "author": {
        "name": "Thomas Glanzmann",
        "email": "thomas@glanzmann.de",
        "time": "Mon Oct 07 23:13:02 2013 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 23 21:30:07 2013 -0700"
      },
      "message": "target: Export symbol core_tpg_check_initiator_node_acl\n\nExport symbol core_tpg_check_initiator_node_acl and move prototype from the\nprivate drivers/target/target_core_internal.h to the public\ninclude/target/target_core_fabric.h\n\nSigned-off-by: Thomas Glanzmann \u003cthomas@glanzmann.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a314d7003ccd4f4886d1280ff4f6c00217fc9ae3",
      "tree": "9c774ff0636ad0c7bf021dabdd0d3675a4b92e83",
      "parents": [
        "fb2b2844743bc3d84ce1033167210e5fe3963455"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Oct 16 09:12:54 2013 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 16 15:41:49 2013 -0700"
      },
      "message": "tcm_loop: separate out tcm_loop_issue_tmr\n\nNo functional change.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d80e224dd52dfc448e820aefa5f86c441ab76e1a",
      "tree": "515f20fb3b8a16b3b7d491054e90d8baa1a7e2da",
      "parents": [
        "6b378382396feb02c79ad562a01955df0529df45"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Wed Oct 09 11:05:56 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 16 13:35:02 2013 -0700"
      },
      "message": "target: Remove TF_CIT_TMPL macro\n\nRemove a lingering macro that just hid a dereference.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2999ee7fda3f670effbfa746164c525f9d1be4b8",
      "tree": "c6cc060c594570b3d6102e10e731b34dae9e2c55",
      "parents": [
        "4c76251e8e8f704ed7eace603a8041458a1ed16f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Sep 05 15:50:24 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 20:23:37 2013 -0700"
      },
      "message": "target/iscsi: Bump versions to v4.1.0\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d397a445f43c7ae9b35260f236a08d5b5760de3d",
      "tree": "9bc760fc767b73a5a20cba6e4ddd0154aa7003a6",
      "parents": [
        "04b1b7954649767f2ab9bf08cf2457e21d5c7167"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Thu Aug 22 14:17:20 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:48:46 2013 -0700"
      },
      "message": "target: Add Third Party Copy (3PC) bit in INQUIRY response\n\nThis patch adds the Third Party Copy (3PC) bit to signal support\nfor EXTENDED_COPY within standard inquiry response data.\n\nAlso add emulate_3pc device attribute in configfs (enabled by default)\nto allow the exposure of this bit to be disabled, if necessary.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "cbf031f425fd0b30ff10ba83b612753189a6bbbf",
      "tree": "dcc5696e342739cf9f8b2d9791b19036025075c7",
      "parents": [
        "89c12cc925a7d0982dc53b743a42108acc76aef4"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Tue Aug 20 15:38:55 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:48:43 2013 -0700"
      },
      "message": "target: Add support for EXTENDED_COPY copy offload emulation\n\nThis patch adds support for EXTENDED_COPY emulation from SPC-3, that\nenables full copy offload target support within both a single virtual\nbackend device, and across multiple virtual backend devices.  It also\nfunctions independent of target fabric, and supports copy offload\nacross multiple target fabric ports.\n\nThis implemenation supports both EXTENDED_COPY PUSH and PULL models\nof operation, so the actual CDB may be received on either source or\ndesination logical unit.\n\nFor Target Descriptors, it currently supports the NAA IEEE Registered\nExtended designator (type 0xe4), which allows the reference of target\nports to occur independent of fabric type using EVPD 0x83 WWNs.\n\nFor Segment Descriptors, it currently supports copy from block to\nblock (0x02) mode.\n\nIt also honors any present SCSI reservations of the destination target\nport.  Note that only Supports No List Identifier (SNLID\u003d1) mode is\nsupported.\n\nAlso included is basic RECEIVE_COPY_RESULTS with service action type\nOPERATING PARAMETERS (0x03) required for SNLID\u003d1 operation.\n\nv3 changes:\n  - Fix incorrect return type in target_do_receive_copy_results()\n    (Fengguang)\n\nv2 changes:\n  - Use target_alloc_sgl() instead of transport_generic_get_mem()\n  - Convert debug output to use pr_debug()\n  - Convert target_xcopy_parse_target_descriptors() NAA IEEN WWN\n    dump to use 0x%16phN format specification\n  - Drop unnecessary xcopy_pt_cmd-\u003expt_passthrough_wsem, and\n    associated usage in xcopy_pt_write_pending() and\n    target_xcopy_issue_pt_cmd()\n  - Add check for unsupported EXTENDED_COPY(LID4) service action\n    bits in target_do_xcopy()\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "d9ea32bff2c55d4cd4654f1e98d269a758f34534",
      "tree": "64d8c15126232442cd574312b567511f2bfac74a",
      "parents": [
        "c5ff8d6bc3ebc363d77d71791080fefb07ae9017"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Thu Aug 22 11:33:37 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:48:40 2013 -0700"
      },
      "message": "target: Add global device list for EXTENDED_COPY\n\nEXTENDED_COPY needs to be able to search a global list of devices\nbased on NAA WWN device identifiers, so add a simple g_device_list\nprotected by g_device_mutex.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "c5ff8d6bc3ebc363d77d71791080fefb07ae9017",
      "tree": "127dd92908ec56b3dddf5eae1c77f636fa818bc4",
      "parents": [
        "68366026a57645f90146796c95214087da5f1f6d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Thu Aug 22 11:58:43 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:48:39 2013 -0700"
      },
      "message": "target: Make helpers non static for EXTENDED_COPY command setup\n\nBoth target_alloc_sgl() and transport_generic_map_mem_to_cmd() are\nrequired by EXTENDED_COPY logic when setting up internally dispatched\ncommand descriptors, so go ahead and make both of these non static.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "b3faa2e87ce04e48f16f3823977329b7c367b3f9",
      "tree": "796a8722df5ffa66e29936f5cfdf4624e536208a",
      "parents": [
        "cf6d1f0964fa9db57fc660caf51939d7a03359a1"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Wed Aug 21 14:54:54 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:48:35 2013 -0700"
      },
      "message": "target/tcm_qla2xxx: Add/use target_reverse_dma_direction() in target_core_fabric.h\n\nReversing the dma_data_direction for pci_map_sg() friends is useful\nfor other drivers, so move it from tcm_qla2xxx into inline code\nwithin target_core_fabric.h.\n\nAlso drop internal usage of equivlient in tcm_qla2xxx fabric code.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Giridhar Malavali \u003cgiridhar.malavali@qlogic.com\u003e\nCc: Chad Dupuis \u003cchad.dupuis@qlogic.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "68ff9b9b27525cdaaea81890456f65aed5ce0b70",
      "tree": "80219e09e0c9d42b4ae61987075d9d03624695fc",
      "parents": [
        "0123a9ec6a4fea20d5afea90c9b47fb73fb1bc34"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Mon Aug 19 15:20:28 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Sep 10 16:41:59 2013 -0700"
      },
      "message": "target: Add support for COMPARE_AND_WRITE emulation\n\nThis patch adds support for COMPARE_AND_WRITE emulation on a per block\nbasis.  This logic is used as an atomic test and set primative currently\nused by VMWare ESX VAAI for performing array side locking of individual\nVMFS extent ownership.\n\nThis includes the COMPARE_AND_WRITE CDB parsing within sbc_parse_cdb(),\nand does the majority of the work within the compare_and_write_callback()\nto perform the verify instance user data comparision, and subsequent\nwrite instance user data I/O submission upon a successfull comparision.\n\nThe synchronization is enforced by se_device-\u003ecaw_sem, that is obtained\nbefore the initial READ I/O submission in sbc_compare_and_write().  The\nmutex is then released upon MISCOMPARE in compare_and_write_callback(),\nor upon WRITE instance user-data completion in compare_and_write_post().\n\nThe implementation currently assumes a single logical block (NoLB\u003d1).\n\nv4 changes:\n - Explicitly clear cmd-\u003etransport_complete_callback for two failure\n   cases in sbc_compare_and_write() in order to avoid double unlock\n   of -\u003ecaw_sem in compare_and_write_callback() (Dan Carpenter)\n\nv3 changes:\n - Convert se_device-\u003ecaw_mutex to -\u003ecaw_sem\n\nv2 changes:\n - Set SCF_COMPARE_AND_WRITE and cmd-\u003eexecute_cmd() to\n   sbc_compare_and_write() during setup in sbc_parse_cdb()\n - Use sbc_compare_and_write() for initial READ submission with\n   DMA_FROM_DEVICE\n - Reset cmd-\u003eexecute_cmd() to sbc_execute_rw() for write instance\n   user-data in compare_and_write_callback()\n - Drop SCF_BIDI command flag usage\n - Set TRANSPORT_PROCESSING + transport_state flags before write\n   instance submission, and convert to __target_execute_cmd()\n - Prevent sbc_get_size() from being being called twice to\n   generate incorrect size in sbc_parse_cdb()\n - Enforce se_device-\u003ecaw_mutex synchronization between initial\n   READ I/O submission, and final WRITE I/O completion.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "0123a9ec6a4fea20d5afea90c9b47fb73fb1bc34",
      "tree": "6ac9f2539a9db0013757f51b18a97f3bf8ded49a",
      "parents": [
        "76dde50ebef75773ea2b68e0bf914e87e6a3711c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Tue Aug 20 14:24:09 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:35 2013 -0700"
      },
      "message": "target: Add MAXIMUM COMPARE AND WRITE LENGTH in Block Limits VPD\n\nThis patch adds the MAXIMUM COMPARE AND WRITE LENGTH bit, currently\nhardcoded to a single logical block (NoLB\u003d1) within the Block Limits\nVPD in spc_emulate_evpd_b0().\n\nAlso add emulate_caw device attribute in configfs (enabled by default)\nto allow the exposure of this bit to be disabled, if necessary.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "76dde50ebef75773ea2b68e0bf914e87e6a3711c",
      "tree": "9fd1037c5814040f97717864ce8cb9575920ac6d",
      "parents": [
        "47e459e622f07c2564e6be8412d75389d2a807b8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Wed Aug 21 16:04:10 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:34 2013 -0700"
      },
      "message": "target: Make __target_execute_cmd() available as extern\n\nRequired by COMPARE_AND_WRITE for write instance user-data\nsubmission, in order to bypass target_execute_cmd() checks.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "47e459e622f07c2564e6be8412d75389d2a807b8",
      "tree": "685709343f949e5cc858e8657dba5d2bd79d91ca",
      "parents": [
        "8cefe07b5e9c2b0212ad6809a219e4489807a746"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Tue Aug 20 10:45:16 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:33 2013 -0700"
      },
      "message": "target: Add transport_reset_sgl_orig() for COMPARE_AND_WRITE\n\nAfter COMPARE_AND_WRITE completes it\u0027s comparision, the WRITE\npayload SGLs head expect to be updated to point from the verify\ninstance of user data, to the write instance of user data.\n\nSo for this special case, add transport_reset_sgl_orig() usage\nwithin transport_free_pages() and add se_cmd-\u003et_data_[sg,nents]_orig\nmembers to save the original assignments.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "a82a9538dd30471e6428a2d55e91e986c439866b",
      "tree": "439d70dae8fd42cc19922a31d1ac2a6ecf9c32fb",
      "parents": [
        "818b571ca053e19be336de1cc75c01dd5445e969"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Mon Aug 19 23:57:30 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:28 2013 -0700"
      },
      "message": "target: Allow sbc_ops-\u003eexecute_rw() to accept SGLs + data_direction\n\nCOMPARE_AND_WRITE expects to be able to send down a DMA_FROM_DEVICE\nto obtain the necessary READ payload for comparision against the\nfirst half of the WRITE payload containing the verify user data.\n\nCurrently virtual backends expect to internally reference SGLs,\nSGL nents, and data_direction, so change IBLOCK, FILEIO and RD\nsbc_ops-\u003eexecute_rw() to accept this values as function parameters.\n\nAlso add default sbc_execute_rw() handler for the typical case for\ncmd-\u003eexecute_rw() submission using cmd-\u003et_data_sg, cmd-\u003et_data_nents,\nand cmd-\u003edata_direction).\n\nv2 Changes:\n  - Add SCF_COMPARE_AND_WRITE command flag\n  - Use sbc_execute_rw() for normal cmd-\u003eexecute_rw() submission\n    with expected se_cmd members.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "818b571ca053e19be336de1cc75c01dd5445e969",
      "tree": "20b1244ccd2aa71d46abfe015b368742ebaecab1",
      "parents": [
        "a6b0133c19af1ab268ed1f4414efa2782896a870"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Mon Aug 19 15:10:38 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:27 2013 -0700"
      },
      "message": "target: Add TCM_MISCOMPARE_VERIFY sense handling\n\nThis patch adds TCM_MISCOMPARE_VERIFY (ASC\u003d0x1d, ASCQ\u003d0x00) sense\nhandling to transport_send_check_condition_and_sense(), which is\nrequired for a COMPARE_AND_WRITE comparision failure.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "a6b0133c19af1ab268ed1f4414efa2782896a870",
      "tree": "ad55c8b08d283a8cf1fa2b3ae6d9a8b0b02b8677",
      "parents": [
        "1c68cc1626341665a8bd1d2c7dfffd7fc852a79c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Mon Aug 19 14:34:17 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:26 2013 -0700"
      },
      "message": "target: Add return for se_cmd-\u003etransport_complete_callback\n\nThis patch adds a sense_reason_t return to -\u003etransport_complete_callback(),\nand updates target_complete_ok_work() to invoke the call if necessary to\ntransport_send_check_condition_and_sense() during the failure case.\n\nAlso update xdreadwrite_callback() to use this return value.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Martin Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "d703ce2f7f4de20c03d71c22a9d5e3708798047b",
      "tree": "f06be5be02dc43ae0a7c34eacd986238005a003b",
      "parents": [
        "3aee26b4ae91048c933dc622f00b7bb01f7f0ff1"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@daterainc.com",
        "time": "Sat Aug 17 14:27:56 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:21 2013 -0700"
      },
      "message": "iscsi/iser-target: Convert to command priv_size usage\n\nThis command converts iscsi/isert-target to use allocations based on\niscsit_transport-\u003epriv_size within iscsit_allocate_cmd(), instead of\nusing an embedded isert_cmd-\u003eiscsi_cmd.\n\nThis includes removing iscsit_transport-\u003ealloc_cmd() usage, along\nwith updating isert-target code to use iscsit_priv_cmd().\n\nAlso, remove left-over iscsit_transport-\u003erelease_cmd() usage for\ndirect calls to iscsit_release_cmd(), and drop the now unused\nlio_cmd_cache and isert_cmd_cache.\n\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Kent Overstreet \u003ckmo@daterainc.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@daterainc.com\u003e\n"
    },
    {
      "commit": "c0add7fd05ff99c3a516c78eb6b1e6460a3efdae",
      "tree": "2aa45b7fe481134865e179caf631501bad811959",
      "parents": [
        "798ab48eecdf659df9ae0064ca5c62626c651827"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 07 17:38:58 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 09 14:29:16 2013 -0700"
      },
      "message": "target: Add transport_init_session_tags using per-cpu ida\n\nThis patch adds lib/idr.c based transport_init_session_tags() logic\nthat allows fabric drivers to setup a per-cpu se_sess-\u003esess_tag_pool\nand associated se_sess-\u003esess_cmd_map for basic tagged pre-allocation\nof fabric descriptor sized memory.\n\nv5 changes:\n  - Convert to percpu_ida.h include\n\nv4 changes:\n  - Add transport_alloc_session_tags() for fabrics that need early\n    transport_init_session()\n\nv3 changes:\n  - Update to percpu-ida usage\n\nCc: Kent Overstreet \u003ckmo@daterainc.com\u003e\nCc: Asias He \u003casias@redhat.com\u003e\nCc: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nReviewed-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b79fafac70fc9bbe640b8193ed772eb850efdfe6",
      "tree": "b99c39999610a4371563ec179d3b2e10a04c2df0",
      "parents": [
        "11fee8a751670cf6d60b1912e2e9cb1c7e392842"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed Jul 03 11:22:17 2013 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jul 07 18:36:53 2013 -0700"
      },
      "message": "target: make queue_tm_rsp() return void\n\nThe return value wasn\u0027t checked by any of the callers.  Assuming this is\ncorrect behaviour, we can simplify some code by not bothering to\ngenerate it.\n\nnab: Add srpt_queue_data_in() + srpt_queue_tm_rsp() nops around\n     srpt_queue_response() void return\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "11fee8a751670cf6d60b1912e2e9cb1c7e392842",
      "tree": "d2c85866d95593de6fc099afa1b99ad654b1d3fe",
      "parents": [
        "ad7babd23726b442b0b5fd92d8bd0611af5e5d6a"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed Jul 03 11:22:16 2013 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jul 07 18:36:52 2013 -0700"
      },
      "message": "target: remove unused codes from enum tcm_tmrsp_table\n\nThree have been checked for but were never set.  Remove the dead code.\nAlso renumbers the remaining ones to a) get rid of the holes after the\nremoval and b) avoid a collision between TMR_FUNCTION_COMPLETE\u003d\u003d0 and\nthe uninitialized case.  If we failed to set a code, we should rather\nfall into the default case then return success.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b2cb96494d83b894a43ba8b9023eead8ff50684b",
      "tree": "b16b85fe4b65448fb8d03c004d8a7d83c988c412",
      "parents": [
        "186a9647019587b3784694894c4d136fd00cfd7b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 03 03:05:37 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jul 07 18:35:56 2013 -0700"
      },
      "message": "iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED\n\nThis patch addresses a bug where RDMA_CM_EVENT_DISCONNECTED may occur\nbefore the connection shutdown has been completed by rx/tx threads,\nthat causes isert_free_conn() to wait indefinately on -\u003econn_wait.\n\nThis patch allows isert_disconnect_work code to invoke rdma_disconnect\nwhen isert_disconnect_work() process context is started by client\nsession reset before isert_free_conn() code has been reached.\n\nIt also adds isert_conn-\u003econn_mutex protection for -\u003estate within\nisert_disconnect_work(), isert_cq_comp_err() and isert_free_conn()\ncode, along with isert_check_state() for wait_event usage.\n\n(v2: Add explicit iscsit_cause_connection_reinstatement call\n     during isert_disconnect_work() to force conn reset)\n\nCc: stable@vger.kernel.org  # 3.10+\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "561bf15892375597ee59d473a704a3e634c4f311",
      "tree": "9c731875ce9cb03540692e8e6332a7ba47273c97",
      "parents": [
        "ba159914086f06532079fc15141f46ffe7e04a41"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 03 03:58:58 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Jul 06 21:59:54 2013 -0700"
      },
      "message": "iscsi-target: Fix iscsit_sequence_cmd reject handling for iser\n\nThis patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()\nin order to avoid external iscsit_reject_cmd() reject usage for all\nPDU types.\n\nIt also updates PDU specific handlers for traditional iscsi-target\ncode to not reset the session after posting a ISCSI_OP_REJECT during\nsetup.\n\n(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call\n     target_put_sess_cmd() after iscsit_sequence_cmd() failure)\n\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: stable@vger.kernel.org  # 3.10+\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ba159914086f06532079fc15141f46ffe7e04a41",
      "tree": "9618efce9323083a5812cf831997e0cf560a6b0a",
      "parents": [
        "3df8f68aaf7ebe3d136a22262b41b350b0a1858b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 03 03:48:24 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Jul 06 21:59:53 2013 -0700"
      },
      "message": "iscsi-target: Fix iscsit_add_reject* usage for iser\n\nThis patch changes iscsit_add_reject() + iscsit_add_reject_from_cmd()\nusage to not sleep on iscsi_cmd-\u003ereject_comp to address a free-after-use\nusage bug in v3.10 with iser-target code.\n\nIt saves -\u003ereject_reason for use within iscsit_build_reject() so the\ncorrect value for both transport cases.  It also drops the legacy\nfail_conn parameter usage throughput iscsi-target code and adds\ntwo iscsit_add_reject_cmd() and iscsit_reject_cmd helper functions,\nalong with various small cleanups.\n\n(v2: Re-enable target_put_sess_cmd() to be called from\n     iscsit_add_reject_from_cmd() for rejects invoked after\n     target_get_sess_cmd() has been called)\n\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: stable@vger.kernel.org  # 3.10+\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e4b512e7133f5243f080db8238c5be8434cbcdfd",
      "tree": "479e334fb00ad9dfcdbadf22536ccde455e95036",
      "parents": [
        "6665889c843c774cd35309cf995ba0d302fa6dba"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jun 19 18:37:00 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 03 19:44:31 2013 -0700"
      },
      "message": "target: Add se_portal_group-\u003etpg_auth_group\n\nThis patch adds an optional /auth/ configfs group to TPG context that\ncan be used by fabrics like iscsi-target for TPG demo-mode\nauthentication.\n\nCc: Dax Kelson \u003cdkelson@gurulabs.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "889c8a68b8483a8b3482ac440af3ad7368c58555",
      "tree": "c2a7443fe1f4445ae41adacb9b0c482333dc7e30",
      "parents": [
        "64534aa79496a3bc4f750a695fe9e978ab46e91d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 14 18:49:55 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jun 26 00:33:32 2013 -0700"
      },
      "message": "iscsi-target: Refactor ISCSI_OP_TEXT_RSP TX handling\n\nThis patch refactoring existing iscsit_send_text_rsp() in order\nto handle iscsi_text_rsp payloads in a transport specific manner.\n\nThis includes the addition of iscsit_build_text_rsp() to build\nthe response payload and initialize ISCSI_OP_TEXT_RSP.\n\nv2: Make iscsit_build_text_rsp() determine extra padding bytes, and\n    drop legacy padding calculation for traditional iSCSI text\n    responses within iscsit_send_text_rsp()\n\nReported-by: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "64534aa79496a3bc4f750a695fe9e978ab46e91d",
      "tree": "6e3bf0ab5bb001c541e76bd425742802c8c8c8b1",
      "parents": [
        "778de368964c5b7e8100cde9f549992d521e9c89"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 14 16:46:16 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jun 24 22:36:29 2013 -0700"
      },
      "message": "iscsi-target: Refactor ISCSI_OP_TEXT RX handling\n\nThis patch refactors ISCSI_OP_TEXT handling within iscsi-target in\norder to handle iscsi_text payloads in a transport specific manner.\n\nThis includes splitting current iscsit_handle_text_cmd() into\niscsit_setup_text_cmd() and iscsit_process_text_cmd() calls, and\nmakes iscsit_handle_text_cmd be only used internally by traditional\niscsi socket calls.\n\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "778de368964c5b7e8100cde9f549992d521e9c89",
      "tree": "5925e16a0fa2e29925f3ee44a0f00fc11d2afb4d",
      "parents": [
        "08234e3adc7a299c9213bcfa0b5e97c359129670"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 14 16:07:47 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jun 24 22:35:51 2013 -0700"
      },
      "message": "iscsi/isert-target: Refactor ISCSI_OP_NOOP RX handling\n\nThis patch refactors ISCSI_OP_NOOP handling within iscsi-target in\norder to handle iscsi_nopout payloads in a transport specific manner.\n\nThis includes splitting existing iscsit_handle_nop_out() into\niscsit_setup_nop_out() and iscsit_process_nop_out() calls, and\nmakes iscsit_handle_nop_out() be only used internally by traditional\niscsi socket calls.\n\nNext update iser-target code to use new callers and add FIXME for\nthe handling iscsi_nopout payloads.  Also fix reject response handling\nin iscsit_setup_nop_out() to use proper iscsit_add_reject_from_cmd().\n\nv2: Fix uninitialized iscsit_handle_nop_out() payload_length usage (Fengguang)\nv3: Remove left-over dead code in iscsit_setup_nop_out() (DanC)\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ca24976ac815aeb17bf1707a96231409c57afac2",
      "tree": "4aec4ce6d9957cff43d0032899535b8145fbdfde",
      "parents": [
        "b9da5826df3936671ea67bc33f6fc8c2020526b8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jun 06 02:06:14 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jun 20 14:10:45 2013 -0700"
      },
      "message": "target: Drop legacy se_cmd-\u003echeck_release bit\n\nNow with iscsi-target using modern se_cmd-\u003ecmd_kref accounting in\nv3.10 code, it\u0027s safe to go ahead and drop the legacy release\ncodepath + se_cmd-\u003echeck_release bit in transport_release_cmd()\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Moussa Ba \u003cmoussaba@micron.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c1c35d52251b0941a72b0cdb862e85f0eba6b1bb",
      "tree": "941167898cf8425a95dafb4c6e6f35e248150aa9",
      "parents": [
        "0b66818ac6de67a6125ae203272fb76e79b3a20f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jun 06 02:00:06 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jun 20 14:10:41 2013 -0700"
      },
      "message": "target: Remove legacy t_fe_count + avoid t_state_lock access in transport_put_cmd\n\nThis patch removes legacy se_cmd-\u003et_fe_count usage in order to avoid\nse_cmd-\u003et_state_lock access within transport_put_cmd() during normal\nfast path se_cmd descriptor release.\n\nAlso drop the left-over parameter usage within core_tmr_handle_tas_abort()\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Moussa Ba \u003cmoussaba@micron.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "459f213ba162bd13e113d6f92a8fa6c780fd67ed",
      "tree": "113fa4c5426487154a231c0f47a24cfca01f5ae3",
      "parents": [
        "63e03349f5fb32e4e8494cb184c37d2db0bdd223"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu May 16 10:41:02 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 14 00:04:58 2013 -0700"
      },
      "message": "target: Allocate aptpl_buf inside update_and_write_aptpl()\n\nInstead of taking the buffer and length, update_and_write_aptpl() will\nallocate the buffer as needed, and then free it. Instead, the function\ntakes an \u0027aptpl\u0027 boolean parameter.\n\nThis enables us to remove memory alloc/frees from struct\nt10_pr_registration and other spots.\n\nThere is a slight loss of functionality because each callsite doesn\u0027t get\nits own pr_debug any more, but this info can be cleaned via ftrace if\nnecessary and I think the shorter code is worth it.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4e529be27d0ec4b9c6e4fd1b2908fa21b28539b1",
      "tree": "249bd30f568a42c3dcaaa681043daad25b3b359f",
      "parents": [
        "3c8a6228d078553e32bffc59ed180d01ab1d998a"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu May 16 10:40:59 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 14 00:04:46 2013 -0700"
      },
      "message": "target: Remove t10_reservation.pr_aptpl_buf_len\n\nIt\u0027s only ever set to PR_APTPL_BUF_LEN, so we don\u0027t need a variable.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d5ddad4168348337d98d6b8f156a3892de444411",
      "tree": "8d9151a21c95709ccc0b58cd60a61beba8248459",
      "parents": [
        "cea4dcfdad926a27a18e188720efe0f2c9403456"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri May 31 00:46:11 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri May 31 01:21:23 2013 -0700"
      },
      "message": "target: Propigate up -\u003ecmd_kref put return via transport_generic_free_cmd\n\nGo ahead and propigate up the -\u003ecmd_kref put return value from\ntarget_put_sess_cmd() -\u003e transport_release_cmd() -\u003e transport_put_cmd()\n-\u003e transport_generic_free_cmd().\n\nThis is useful for certain fabrics when determining the active I/O\nshutdown case with SCF_ACK_KREF where a final target_put_sess_cmd()\nis still required by the caller.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9b31a328e344e62e7cc98ae574edcb7b674719bb",
      "tree": "07baf7e2854dcd8f08066e7285ee68a89a4b9ff8",
      "parents": [
        "be646c2d2ba8e2e56596d72633705f8286698c25"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 15 00:52:44 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 29 21:30:33 2013 -0700"
      },
      "message": "target: Re-instate sess_wait_list for target_wait_for_sess_cmds\n\nSwitch back to pre commit 1c7b13fe652 list splicing logic for active I/O\nshutdown with tcm_qla2xxx + ib_srpt fabrics.\n\nThe original commit was done under the incorrect assumption that it\u0027s safe to\nwalk se_sess-\u003esess_cmd_list unprotected in target_wait_for_sess_cmds() after\nsess-\u003esess_tearing_down \u003d 1 has been set by target_sess_cmd_list_set_waiting()\nduring session shutdown.\n\nSo instead of adding sess-\u003esess_cmd_lock protection around sess-\u003esess_cmd_list\nduring target_wait_for_sess_cmds(), switch back to sess-\u003esess_wait_list to\nallow wait_for_completion() + TFO-\u003erelease_cmd() to occur without having to\nwalk -\u003esess_cmd_list after the list_splice.\n\nAlso add a check to exit if target_sess_cmd_list_set_waiting() has already\nbeen called, and add a WARN_ON to check for any fabric bug where new se_cmds\nare added to sess-\u003esess_cmd_list after sess-\u003esess_tearing_down \u003d 1 has already\nbeen set.\n\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "be646c2d2ba8e2e56596d72633705f8286698c25",
      "tree": "d5a25c357343750556fc40d71f2c70b4db980792",
      "parents": [
        "c7788792a5e7b0d5d7f96d0766b4cb6112d47d75"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed May 15 00:44:07 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon May 20 21:44:10 2013 -0700"
      },
      "message": "target: Remove unused wait_for_tasks bit in target_wait_for_sess_cmds\n\nDrop unused transport_wait_for_tasks() check in target_wait_for_sess_cmds\nshutdown code, and convert tcm_qla2xxx + ib_srpt fabric drivers.\n\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a1321ddd27e65c6ada5b9a12cae4ee2612d76893",
      "tree": "1fb74368dadf1e5081a33669b358cdf781e53bac",
      "parents": [
        "d2bdbee0d91a5d3ba2e439ce889e20bfe6fd4f1b"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Mon May 13 16:30:05 2013 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 15 01:46:53 2013 -0700"
      },
      "message": "target: removed unused transport_state flag\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2acd09f3232825a0e95134703ec59bc327ef9967",
      "tree": "07f088664c87305c97079812ac052978cb7045ce",
      "parents": [
        "b8d26b3be8b33682cf163274ed07479a70554633"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Apr 25 15:04:02 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri May 03 16:42:18 2013 -0700"
      },
      "message": "target: Remove unused struct members in se_dev_entry\n\nSome were incremented, but never used anywhere from what I could tell.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3f99306337ba1871afc8568e8b36004ce3cee039",
      "tree": "897b8e70ebcd2b3973e1657feefd7ba42bab88b3",
      "parents": [
        "20361e69ba0b52880f9a692bb80aceb989bf0e77"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Mar 06 21:53:26 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Apr 25 01:05:26 2013 -0700"
      },
      "message": "iscsi-target: Add iscsit_transport API template\n\nAdd basic struct iscsit_transport API template to allow iscsi-target for\nrunning with external transport modules using existing iscsi_target_core.h\ncode.\n\nFor all external modules, this calls try_module_get() and module_put()\nto obtain + release an external iscsit_transport module reference count.\n\nAlso include the iscsi-target symbols necessary in iscsi_transport.h to\nallow external transport modules to function.\n\nv3 changes:\n- Add iscsit_build_reject export for ISTATE_SEND_REJECT usage\n\nv2 changes:\n\n- Drop unnecessary export of iscsit_get_transport + iscsit_put_transport (roland)\n- Add -\u003eiscsit_queue_data_in() to remove extra context switch on RDMA_WRITE\n- Add -\u003eiscsit_queue_status() to remove extra context switch on IB_SEND status\n- Add -\u003eiscsit_get_dataout() to remove extra context switch on RDMA_READ\n- Drop -\u003eiscsit_free_cmd()\n- Drop -\u003eiscsit_unmap_cmd()\n- Rename iscsit_create_transport() -\u003e iscsit_register_transport() (andy)\n- Rename iscsit_destroy_transport() -\u003e iscsit_unregister_transport() (andy)\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "20361e69ba0b52880f9a692bb80aceb989bf0e77",
      "tree": "e26093496e5f3b43825411532ed72f4dee6e9cb8",
      "parents": [
        "ad6732820c56664be7d022002907ba62b981bd85"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 21 22:54:28 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Apr 25 01:05:26 2013 -0700"
      },
      "message": "target: Add export of target_get_sess_cmd symbol\n\nExport target_get_sess_cmd() symbol so that it can be used by\niscsi-target.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "86d7182985d25900929adce14fffd729cc8c6fb8",
      "tree": "8e5e755c5badf3a09b5b0c4e6c2f76c72c080dcf",
      "parents": [
        "dbc21c5abbeb4419da5a54157c4b7a0ec0dee185"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Mon Feb 25 14:03:46 2013 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Apr 25 01:05:24 2013 -0700"
      },
      "message": "target: Add sbc_execute_unmap() helper\n\niblock_execute_unmap() and fd_execute_unmap share a lot of code.\nAdd sbc_execute_unmap() helper to remove duplicated code for\niblock_execute_unmap() and fd_execute_unmap().\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "972b29c8f86093f44e1d781588bd5c5faae3d8e3",
      "tree": "b5da94cd21ebd5486cefbde45cfadb9cfc475442",
      "parents": [
        "7b745c84a9f4ad62db4b67053fbceb5d706451af"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 22 09:52:57 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 23 12:46:14 2013 -0800"
      },
      "message": "target: Rename spc_get_write_same_sectors -\u003e sbc_get_write_same_sectors\n\nTrivial, but WRITE SAME is an SBC command so it seems strange for a\nrelated function (defined in target_core_sbc.c) to be in the spc_\nnamespace.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bb992e72f9b751fceb04afeb7736b6a3e50effcf",
      "tree": "432d59d06184a8909b4e43e0ae9fdb0dd4bdf1ed",
      "parents": [
        "33633676df0d16d0685f2fbc571143801bc16e3b"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 08 15:18:39 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 12:16:05 2013 -0800"
      },
      "message": "target: Fix error checking for UNMAP commands\n\nSBC-3 (revision 35) says:\n\n    The PARAMETER LIST LENGTH field specifies the length in bytes of the\n    UNMAP parameter list that is available to be transferred from the\n    Data-Out Buffer. If the parameter list length is greater than zero\n    and less than 0008h (i.e., eight), then the device server shall\n    terminate the command with CHECK CONDITION status with the sense key\n    set to ILLEGAL REQUEST and the additional sense code set to\n    PARAMETER LIST LENGTH ERROR. A PARAMETER LIST LENGTH set to zero\n    specifies that no data shall be sent.\n\nso our sense code for too-short descriptors was wrong, and we were\nincorrectly failing commands that didn\u0027t transfer any descriptors.\n\nWhile we\u0027re at it, also handle the UNMAP check:\n\n    If the ANCHOR bit is set to one, and the ANC_SUP bit in the Logical\n    Block Provisioning VPD page (see 6.6.4) is set to zero, then the\n    device server shall terminate the command with CHECK CONDITION\n    status with the sense key set to ILLEGAL REQUEST and the additional\n    sense code set to INVALID FIELD IN CDB.\n\n(chris boot: Fix wrong cut+paste comment in transport_send_check_condition_and_sense)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "adfa9570a56c3dbfc2a28baab77ff6f0b8f480d3",
      "tree": "3d0fcb992e2cf56c8a88cac6861c276f4ad7b088",
      "parents": [
        "0e48e7a5a345a727d5fd7a06bd6a9e6a67eae2bd"
      ],
      "author": {
        "name": "Tregaron Bayly",
        "email": "tregaron@baylys.org",
        "time": "Thu Jan 31 15:30:24 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:58 2013 -0800"
      },
      "message": "target: Add device attribute to expose config_item_name for INQUIRY model\n\nThis patch changes LIO to use the configfs backend device name as the\nmodel if you echo \u00271\u0027 to an individual device\u0027s emulate_model_alias attribute.\nThis is a valid operation only on devices with an export count of 0.\n\nSigned-off-by: Tregaron Bayly \u003ctbayly@bluehost.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d0c8b259f8970d39354c1966853363345d401330",
      "tree": "e6739094ba5db9ca88038f0e047e83e82bf21088",
      "parents": [
        "1be2956d30b2b6200ebb26ffb758ed3c8071303c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 22:10:06 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:51 2013 -0800"
      },
      "message": "target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status\n\nThis patch allows IBLOCK to check block hints in request_queue-\u003eflush_flags\nwhen reporting current backend device WriteCacheEnabled status to a remote\nSCSI initiator port.\n\nThis is done via a se_subsystem_api-\u003eget_write_cache() call instead of a\nbackend se_device creation time flag, as we expect REQ_FLUSH bits to possibly\nchange from an underlying blk_queue_flush() by the SCSI disk driver, or\ninternal raw struct block_device driver usage.\n\nAlso go ahead and update iblock_execute_rw() bio I/O path code to use\nREQ_FLUSH + REQ_FUA hints when determining WRITE_FUA usage, and make SPC\nemulation code use a spc_check_dev_wce() helper to handle both types of\ncases for virtual backend subsystem drivers.\n\n(asias: Drop unnecessary comparsion operators)\n\nReported-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nCc: majianpeng \u003cmajianpeng@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "703d641d87034629f8b0da94334034ed5d805b36",
      "tree": "6697505c60330ca106b936797b01d1b793163424",
      "parents": [
        "8f67835f1e389978bb0809d5e528961986aa2a69"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Jan 18 16:05:12 2013 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:31 2013 -0800"
      },
      "message": "target: change sprintf to snprintf in transport_dump_vpd_ident\n\n\"buf\" is 128 characters and \"vpd-\u003edevice_identifier\" is 256.  It makes\nthe static checkers complain.\n\nAlso bump VPD_TMP_BUF_SIZE to match INQUIRY_VPD_DEVICE_IDENTIFIER_LEN.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d09816ae8fc05322b4e37a589537b4ecdca28a0d",
      "tree": "93111f00e2b1f3e310d3410fc508c616755b94d3",
      "parents": [
        "6f15667e21e40ef14005699610723a13cfb26155"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:48:01 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:22 2013 -0800"
      },
      "message": "target: Remove never-used TMR_FABRIC_TMR enum value\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0dfa1c5da3e4b6849d40f4c3fc43212b6359a09d",
      "tree": "a3417bdc2868a2c8bfa3f8670949038e8cebd512",
      "parents": [
        "836dc9e3fbbab0c30aa6e664417225f5c1fb1c39"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:35 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:22 2013 -0800"
      },
      "message": "target: Export SPC inquiry emulation\n\nSome target drivers might need to access the inquiry data\ndirectly, without sending out the actual command.\nSo export these functions.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ba829137bfd167623363548aa385be769c6b2664",
      "tree": "27d8f1896ec608476bd7b94edfdcd5d82a72e46e",
      "parents": [
        "18a9df42d53fabfa43b78be1104838cc8b9762e1"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:33 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 20:06:08 2013 -0800"
      },
      "message": "target: Introduce TCM_NO_SENSE\n\nIntroduce TCM_NO_SENSE, mapping to sense code\n\u0027Not ready, no additional sense information\u0027.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "79e62fc3827bd437c304c1810f36896fc1e717b1",
      "tree": "fe58b9e0bb253699f22b32412f1e0d4a42865206",
      "parents": [
        "9f4ad44b264f8bb61ffdd607148215566568430d"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Dec 11 16:30:53 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Dec 13 14:18:09 2012 -0800"
      },
      "message": "target/iscsi_target: Add NodeACL tags for initiator group support\n\nThanks for reviews, looking a lot better.\n\n---- 8\u003c ----\n\nInitiator access config could be easier. The way other storage vendors\nhave addressed this is to support initiator groups: the admin adds\ninitiator WWNs to the group, and then LUN permissions can be granted for\nthe entire group at once.\n\nInstead of changing ktarget\u0027s configfs interface, this patch keeps\nthe configfs interface per-initiator-wwn and just adds a \u0027tag\u0027 field\nfor each. This should be enough for user tools like targetcli to group\ninitiator ACLs and sync their configurations.\n\nacl_tag is not used internally, but needs to be kept in configfs so that\nall user tools can avoid dependencies on each other.\n\nCode tested to work, although userspace pieces still to be implemented.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0ff8754981261a80f4b77db2536dfea92c2d4539",
      "tree": "47f1e6c46a77542fabc39ec3003183a5847045cf",
      "parents": [
        "3e4f574857eebce60bb56d7524f3f9eaa2a126d0"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 04 23:43:57 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 05 00:11:36 2012 -0800"
      },
      "message": "target: Add link_magic for fabric allow_link destination target_items\n\nThis patch adds [dev,lun]_link_magic value assignment + checks within generic\ntarget_fabric_port_link() and target_fabric_mappedlun_link() code to ensure\ndestination config_item *target_item sent from configfs_symlink() -\u003e\nconfig_item_operations-\u003eallow_link() is the underlying se_device-\u003edev_group\nand se_lun-\u003elun_group that we expect to symlink.\n\nReported-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ffe0067544f93c0e71c793d7f17240486d091a3c",
      "tree": "d5008fdf846ed6f6575e65abe4c7bf7a267da2f1",
      "parents": [
        "13f6a91479b06133eb99f1f43be02608eb867313"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 19:07:52 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:25 2012 -0800"
      },
      "message": "target: Make spc_get_write_same_sectors return sector_t\n\nWe already expect TFO-\u003eget_blocks() to return sector_t for zero value case\nwhen doing WRITE_SAME to the end of the backend device, so go ahead and return\nsector_t from spc_get_write_same_sectors() to handle this case properly.\n\nAlso, update the single iblock_execute_write_same() caller of this code.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "773cbaf7460aa58c67d4dca83c3f8bca10323bbe",
      "tree": "91e6015ade8d62c34c64861f1f3810b3c15a6a25",
      "parents": [
        "cd063bef414c51d79b9c6ea7a8ef8f9d319529bc"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 11:02:49 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 12:27:21 2012 -0800"
      },
      "message": "target: Add/check max_write_same_len device attribute + update block limits VPD\n\nThis patch adds a new max_write_same_len device attribute for use with\nWRITE_SAME w/ UNMAP\u003d0 backend emulation.  This can be useful for\nlowering the default backend value (IBLOCK uses 0xFFFF).\n\nAlso, update block limits VPD emulation code in spc_emulate_evpd_b0() to\nreport MAXIMUM WRITE SAME LENGTH, and enforce max_write_same_len during\nsbc_parse() -\u003e sbc_setup_write_same() CDB sanity checking for all emulated\nWRITE_SAME w/ UNMAP\u003d0 cases.\n\n(Robert: Move max_write_same_len check in sbc_setup_write_same() to\n         check both WRITE_SAME w/ UNMAP\u003d1 and w/ UNMAP\u003d0 cases)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Robert Elliott \u003cElliott@hp.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cd063bef414c51d79b9c6ea7a8ef8f9d319529bc",
      "tree": "7c003f3c6e865cc0eaf4df43683a37802ce4cb5d",
      "parents": [
        "1920ed61fbbbb38919edfb2427b0b1fd4e4ad8d9"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:01:10 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 12:04:52 2012 -0800"
      },
      "message": "target/sbc: Seperate WRITE_SAME based on UNMAP flag in sbc_ops\n\nThis patch adds a new sbc_ops-\u003eexecute_write_same_unmap() caller for use\nwith WRITE_SAME w/ UNMAP\u003d1, and performs the -\u003eexecute_cmd() setup based\nthis bit within sbc_setup_write_same() code.\n\nAlso, makes the changes in sbc_parse_cdb() to handle a sense_reason_t\nreturn from sbc_setup_write_same() on error.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "de103c93aff0bed0ae984274e5dc8b95899badab",
      "tree": "7db9bba755fa95772052e8d31285a38ba48f1a84",
      "parents": [
        "fecae40abb1ae9218bdbaa8b8e30bfb5ae43f522"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 06 12:24:09 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: pass sense_reason as a return value\n\nPass the sense reason as an explicit return value from the I/O submission\npath instead of storing it in struct se_cmd and using negative return\nvalues.  This cleans up a lot of the code pathes, and with the sparse\nannotations for the new sense_reason_t type allows for much better\nerror checking.\n\n(nab: Convert spc_emulate_modesense + spc_emulate_modeselect to use\n      sense_reason_t with Roland\u0027s MODE SELECT changes)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "48c2567d1a10b5a2cab72b37775b886b08f88726",
      "tree": "0d30560ee9db1e06cca6ed0111036a713850bae6",
      "parents": [
        "c87fbd5656f263f0fc1c37d20f402797c068232e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:17 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: remove -\u003eget_device_rev\n\nNow that the reservations and ALUA code have been cleaned up there is no need\nfor the get_device_rev method, as we only need the standards revision in the\ninquiry data, where we can hardcode it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c87fbd5656f263f0fc1c37d20f402797c068232e",
      "tree": "af83a409d4ba234cf0f67419e48d5588423d05ad",
      "parents": [
        "d977f4377fbc396b888e12fdb3b13118b09ca7db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:16 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: simplify alua support\n\nWe always support ALUA for virtual backends, and never for physical ones.  Simplify\nthe code to just deal with these two cases and remove the superflous abstractions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d977f4377fbc396b888e12fdb3b13118b09ca7db",
      "tree": "f3de282b1df951ec599908e24590dbcbac5b9047",
      "parents": [
        "019c4ca621488739b1bfb7597a14ac7f0cbcc908"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:15 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: simplify reservations code\n\nWe do not support host-level reservations for the pscsi backend, and all\nvirtual backends are newere than SCSI-2, so just make the combined\nSPC-3 + SCSI-2 support the only supported variant and kill the switches\nfor the different implementations, given that this code handles the no-op\nversion just fine.\n\n(hch: Update DRF_SPC2_RESERVATIONS lock usage)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "019c4ca621488739b1bfb7597a14ac7f0cbcc908",
      "tree": "2717b223b7a5d1fbd8765805879b87446ea98862",
      "parents": [
        "e6c4219b54ac9d0bd348ea59e606303f9aef1784"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:14 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: kill dev-\u003edev_task_attr_type\n\nWe can just key off ordered tag emulation of the transport_type field.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6f23ac8a39418d6c6711f4fd73cc4519067d7f08",
      "tree": "d6975dda37b047b6f9c3f5cf74cc4206a32a9e3a",
      "parents": [
        "8de530a523fd3cc46b5d8d96f3016298c5c808ac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:53 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target: provide generic sbc device type/revision helpers\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8de530a523fd3cc46b5d8d96f3016298c5c808ac",
      "tree": "1a1fee222c4e5c834023d871363aea9ee49cc41b",
      "parents": [
        "d1b1f8053401aaf1dfe636afa6d361301e3ae8b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:52 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target/pscsi: call spc_emulate_report_luns directly\n\nNo need to indirect through spc_parse_cdb if we only ever call it for\nREPORT LUNS emulation.\n\n(nab: Add missing EXPORT_SYMBOL for spc_emulate_report_luns)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9e999a6c51fe74a41a76038c64ce038ff9243bfb",
      "tree": "eb0f9cde2fe80fb491a9376bd92983ad7f921f43",
      "parents": [
        "0fd97ccf45be26fb01b3a412f1f6c6b5044b2f16"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:50 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target: rename spc_ops\n\nThese really are sbc_ops, so name them correctly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0fd97ccf45be26fb01b3a412f1f6c6b5044b2f16",
      "tree": "c642e3da11e534a311a1e998ef740a3d44b9187b",
      "parents": [
        "3d70f8c617a436c7146ecb81df2265b4626dfe89"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 08 00:03:19 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:43 2012 -0800"
      },
      "message": "target: kill struct se_subsystem_dev\n\nSimplify the code a lot by killing the superflous struct se_subsystem_dev.\nInstead se_device is allocated early on by the backend driver, which allocates\nit as part of its own per-device structure, borrowing the scheme that is for\nexample used for inode allocation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a026757ff56365b4aa3875c14f1bd5733e0e8bb2",
      "tree": "c9cd1990da5bc8cc11808a78067e96923091e006",
      "parents": [
        "38b11bae6ba02da352340aff12ee25755977b222"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 01 17:23:22 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 02 14:16:08 2012 -0700"
      },
      "message": "target: Add target_submit_cmd_map_sgls for SGL fabric memory passthrough\n\nThis patch adds a new target_submit_cmd_map_sgls() to pass pre-allocated\nSGL memory using transport_generic_map_mem_to_cmd() logic into the generic\ntarget submit I/O codepath.\n\nIt also adds a target_submit_cmd() wrapper around target_submit_cmd_map_sgls()\nfor existing fabric code that already assumes internal target-core SGL memory\nallocation.\n\n(v2: Rename to target_submit_cmd_map_sgls + drop TARGET_SCF_MAP_MEM flag\n     in favor of non zero sgl_count check)\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "fd30e9310253235e88a4eaa38fa92439b56c220e",
      "tree": "eaa3c34f2c0baf84a407c92ff9d1f05b273e74fb",
      "parents": [
        "93d441a888c4aefd9f37b30911f8fefa27bdfda3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Aug 26 13:35:58 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 17 17:13:34 2012 -0700"
      },
      "message": "target: Drop se_subsystem_api-\u003e[write_cache,fua_write]_emulated flags\n\nThis patch drops se_subsystem_api-\u003e[write_cache,fua_write]_emulated flags\nset by viritual FILEIO/IBLOCK/RD_MCP backend drivers in favor of explict\nTRANSPORT_PLUGIN_PHBA_PDEV checks to know when to fail if userspace is\nattempting to set virtual emulation bits for an pSCSI (passthrough)\nbackend device.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9c58b7ddd70dd7bfaac4ca87131f36d10aaba441",
      "tree": "2796f11c283904cef9b38f543e31fed3fea565c7",
      "parents": [
        "2ed772b7b9df0f459308b3cbececc0136076d09e"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Aug 15 14:35:25 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 17 17:12:58 2012 -0700"
      },
      "message": "target: Simplify fabric sense data length handling\n\nEvery fabric driver has to supply a se_tfo-\u003eset_fabric_sense_len()\nmethod, just so iSCSI can return an offset of 2.  However, every fabric\ndriver is already allocating a sense buffer and passing it into the\ntarget core, either via transport_init_se_cmd() or target_submit_cmd().\n\nSo instead of having iSCSI pass the start of its sense buffer into the\ncore and then later tell the core to skip the first 2 bytes, it seems\neasier for iSCSI just to do the offset of 2 when it passes the sense\nbuffer into the core.  Then we can drop the se_tfo-\u003eset_fabric_sense_len()\neverywhere, and just add a couple of lines of code to iSCSI to set the\nsense data length to the beginning of the buffer right before it sends\nit over the network.\n\n(nab: Remove .set_fabric_sense_len usage from tcm_qla2xxx_npiv_ops +\n      change transport_get_sense_buffer to follow v3.6-rc6 code w/o\n      -\u003eset_fabric_sense_len usage)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2ed772b7b9df0f459308b3cbececc0136076d09e",
      "tree": "4f97f1cbdb889b921d48799c085e5142e5aa001b",
      "parents": [
        "343d475d6176fa081918fcbf3fcb0b0143e28661"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Aug 15 14:35:24 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Sep 17 16:15:47 2012 -0700"
      },
      "message": "target: Remove unused target_core_fabric_ops.get_fabric_sense_len method\n\nThere are no callers of se_tfo-\u003eget_fabric_sense_len(), so we should\nstop having every fabric driver implement it.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "32a8811ff164f882712c17946e58e52444f464a7",
      "tree": "f7af9ff41cd4f4e6c61a831c4e14fb1d57ebe05d",
      "parents": [
        "3717ef0c63e90686d959158e9728a13a49229be6"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Sep 07 17:30:36 2012 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 07 11:14:21 2012 -0700"
      },
      "message": "target: support zero allocation length in REQUEST SENSE\n\nSimilar to INQUIRY and MODE SENSE, construct the sense data in a\nbuffer and later copy it to the scatterlist.  Do not do anything,\nbut still clear a pending unit attention condition, if the allocation\nlength is zero.\n\nHowever, SPC tells us that \"If a REQUEST SENSE command is terminated with\nCHECK CONDITION status [and] the REQUEST SENSE command was received on\nan I_T nexus with a pending unit attention condition (i.e., before the\ndevice server reports CHECK CONDITION status), then the device server\nshall not clear the pending unit attention condition.\"  Do the\ntransport_kmap_data_sg early to detect this case.\n\nIt also tells us \"Device servers shall not adjust the additional sense\nlength to reflect truncation if the allocation length is less than the\nsense data available\", so do not do that!  Note that the err variable\nis write-only.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d5829eac5f7cfff89c6d1cf11717eee97cf030d0",
      "tree": "9acff1b99c654235b5ad4534735fdaf03a9c5a45",
      "parents": [
        "27a2709912ac19c755d34c79fe11994b0bf8082b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Sep 05 17:09:15 2012 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Sep 05 17:20:28 2012 -0700"
      },
      "message": "target: fix use-after-free with PSCSI sense data\n\nThe pointer to the sense buffer is fetched by transport_get_sense_data,\nbut this is called by target_complete_ok_work long after pscsi_req_done\nhas freed the struct that contains it.\n\nPass instead the fabric\u0027s sense buffer to transport_complete,\nand copy the data to it directly in transport_complete.  Setting\nSCF_TRANSPORT_TASK_SENSE also becomes a duty of transport_complete.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "af74115eed22698f771fec1287a864975c9a6671",
      "tree": "e0619a894a047598aaa412b334c06e20f2eb8fe5",
      "parents": [
        "08a16208c8cb2ce1f79fea24f21dd7a8df4f12b6"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Aug 15 21:24:52 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Aug 21 14:27:35 2012 -0700"
      },
      "message": "target: Remove unused se_cmd.cmd_spdtl\n\nThis was originally for helping fabrics to determine overflow/underflow\nstatus, and has been superceeded by SCF_OVERFLOW_BIT + SCF_UNDERFLOW_BIT.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d6dfc868bcf329392abd1ecfa7357eb51ebf8c30",
      "tree": "7eb33785e4d6a59111560b56e68f4facaddee310",
      "parents": [
        "7409a6657aebf8be74c21d0eded80709b27275cb"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 11:04:39 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jul 17 17:05:05 2012 -0700"
      },
      "message": "target: Allow for target_submit_cmd() returning errors\n\nWe want it to be possible for target_submit_cmd() to return errors up\nto its fabric module callers.  For now just update the prototype to\nreturn an int, and update all callers to handle non-zero return values\nas an error.\n\nThis is immediately useful for tcm_qla2xxx to fix a long-standing active\nI/O session shutdown race, but tcm_fc, usb-gadget, and sbp-target the\nfabric maintainers need to check + ACK that handling a target_submit_cmd()\nfailure due to session shutdown does not introduce regressions\n\n(nab: Respin against for-next after initial NACK + update docbook comment +\n      fix double se_cmd init in exception path for usb-gadget)\n\nCc: Chad Dupuis \u003cchad.dupuis@qlogic.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nCc: Chris Boot \u003cbootc@bootc.net\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Felipe Balbi \u003cbalbi@ti.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e2397c704429025bc6b331a970f699e52f34283e",
      "tree": "470157d2f9a66ca40b295b9aa16c4fdf2222f15c",
      "parents": [
        "c8045372dd2d4784bc4cb32ddc27f4b88ff2140c"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:21 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:35 2012 -0700"
      },
      "message": "target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE\n\nMany SCSI commands are defined to return a CHECK CONDITION / ILLEGAL\nREQUEST with ASC set to LOGICAL BLOCK ADDRESS OUT OF RANGE if the\ninitiator sends a command that accesses a too-big LBA.  Add an enum\nvalue and case entries so that target code can return this status.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1c7b13fe65269960f63082eafccede547191ab02",
      "tree": "2c2d7f46ab88c31f3b347394ef0d51eb9d11ab8c",
      "parents": [
        "e1013f14376f3121e73917f5455b9b7a22bdfb41"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 11:04:42 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:27 2012 -0700"
      },
      "message": "target: Remove se_session.sess_wait_list\n\nSince we set se_session.sess_tearing_down and stop new commands from\nbeing added to se_session.sess_cmd_list before we wait for commands to\nfinish when freeing a session, there\u0027s no need for a separate\nsess_wait_list -- if we let new commands be added to sess_cmd_list\nafter setting sess_tearing_down, that would be a bug that breaks the\nlogic of waiting in-flight commands.\n\nAlso rename target_splice_sess_cmd_list() to\ntarget_sess_cmd_list_set_waiting(), since we are no longer splicing\nonto a separate list.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "669ab62c9d045bd2ff647f39e9e7a088e7e8706a",
      "tree": "b4b10367aa41167ae48b00b9589abacc076987b8",
      "parents": [
        "b46e34a6721cb057702f19ebe27cfc7877e500e5"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 11:04:37 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:25 2012 -0700"
      },
      "message": "target: Un-export target_get_sess_cmd()\n\nThere are no in-tree users of target_get_sess_cmd() outside of\ntarget_core_transport.c.  Any new code should use the higher-level\ntarget_submit_cmd() interface.  So let\u0027s un-export target_get_sess_cmd()\nand make it static to the one file where it\u0027s actually used.\n\n(nab: Fix up minor fuzz to for-next)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "af8772926f019b7bddd7477b8de5f3b0f12bad21",
      "tree": "99bdfc7335a3223985b033404fb06fc58cb754f0",
      "parents": [
        "f314643751450a582c1ca40a54558240ef7cd4bf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jul 08 15:58:49 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:21 2012 -0700"
      },
      "message": "target: replace the processing thread with a TMR work queue\n\nThe last functionality of the target processing thread is offloading possibly\nlong running task management requests from the submitter context.  To keep\nTMR semantics the same we need a single threaded ordered queue, which can\nbe provided by a per-device workqueue with the right flags.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f314643751450a582c1ca40a54558240ef7cd4bf",
      "tree": "482343a17d77d36a872abff047bac5406728fae0",
      "parents": [
        "7a6f0a1ea5f5ac9b67211071d558c5b09580695d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jul 08 15:58:48 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:21 2012 -0700"
      },
      "message": "target: remove transport_generic_handle_cdb_map\n\nRemove this command submission path which is not used by any in-tree driver.\nThis also removes the now unused new_cmd_map fabtric method, which a few\ndrivers implemented despite never calling transport_generic_handle_cdb_map.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1389533ef944823a6ebc170345ad8743e48bc404",
      "tree": "53cb646e75d379521e205175505c4d9939b4589b",
      "parents": [
        "b8b22533fed12dbb9e5a63d414cb1c768d1c28dd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jul 08 15:58:46 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:20 2012 -0700"
      },
      "message": "target: remove transport_generic_handle_data\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "70baf0ab3b2608727515086bee4c484a93e22880",
      "tree": "9cb6a054b5b83c44629e3e1408839b570a228658",
      "parents": [
        "f7113a47e2c3880ed5f8a05ff9c54ead4ee7351c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jul 08 15:58:39 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:16 2012 -0700"
      },
      "message": "target: remove transport_generic_process_write\n\nJust call target_execute_cmd directly.  Also, convert loopback, sbp,\nusb-gadget to use the newly exported target_execute_cmd().\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "14150a6bbe9e15ce8e7a4f79047c2b4284a51b3d",
      "tree": "1a77a526359e6159ed367ac3b1e8f1e13de6bb37",
      "parents": [
        "6f974e8ce7b3f661910a49c7c2ba095631f341e9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jun 17 18:40:55 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:35:14 2012 -0700"
      },
      "message": "target: move unmap to struct spc_ops\n\nHaving all the unmap payload parsing in the backed is a bit ugly, but until\nmore drivers support it and we can find a good interface for all of them\nthat seems the way to go.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6f974e8ce7b3f661910a49c7c2ba095631f341e9",
      "tree": "5698f1ed849b92eec547571594a68183c592b590",
      "parents": [
        "ad67f0d9e63ca94661e06a145f05a9302368a826"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jun 17 18:40:54 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:34:41 2012 -0700"
      },
      "message": "target: move write_same to struct spc_ops\n\nAdd spc_ops-\u003eexecute_write_same() caller for -\u003eexecute_cmd() setup,\nand update IBLOCK backends to use it.\n\n(nab: add export of spc_get_write_same_sectors symbol)\n(roland: Carry forward: Fix range calculation in WRITE SAME emulation\n         when num blocks \u003d\u003d 0)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ad67f0d9e63ca94661e06a145f05a9302368a826",
      "tree": "2ada5604a0f61fa1f933f29cd4674f0cb95595c6",
      "parents": [
        "0c2ad7d1132d8b089b1d37875917858e03610019"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jun 17 18:40:53 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:29:12 2012 -0700"
      },
      "message": "target: move sync_cache to struct spc_ops\n\nAdd spc_ops-\u003eexecute_sync_cache() caller for -\u003eexecute_cmd() setup,\nand update IBLOCK + FILEIO backends to use it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0c2ad7d1132d8b089b1d37875917858e03610019",
      "tree": "e86cc118497605026a15c0e97630c57aeb625793",
      "parents": [
        "e1306bdab3af8bef620990a99e613f99eb30065c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jun 17 18:40:52 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:29:12 2012 -0700"
      },
      "message": "target: add struct spc_ops + initial -\u003eexecute_rw pointer usage\n\nRemove the execute_cmd method in struct se_subsystem_api, and always use the\none directly in struct se_cmd.  To make life simpler for SBC virtual backends\na struct spc_ops that is passed to sbc_parse_cmd is added.  For now it\nonly contains an execute_rw member, but more will follow with the subsequent\ncommits.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e1306bdab3af8bef620990a99e613f99eb30065c",
      "tree": "8712e8e9777bdc59f44f6801decf94d077c33135",
      "parents": [
        "c75660c5e42c1a3edc4df0d062b2bd73e69dadb7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Jun 17 18:40:51 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:29:12 2012 -0700"
      },
      "message": "target: remove dead SCF_ flags\n\nRemove the dead SCF_SE_ALLOW_EOO and SCF_DELAYED_CMD_FROM_SAM_ATTR\nfrom se_cmd_flags_table.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9f3eb93eaf5bd49051458fcb098af3fcf111d3d0",
      "tree": "449b9eafb1921bbfce0684e15b098691ddc2e412",
      "parents": [
        "5f41a31d0a49a014adb1588edd0cc7f7e30cc55b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun May 20 14:35:02 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:29:11 2012 -0700"
      },
      "message": "target: move ref_cmd from the generic se_tmr_req into iscsi code\n\nAlso remove the unused ref_task_lun field in struct se_tmr_req.\n\n(nab: Add missing TASK_REASSIGN ref_lun vs. ref_cmd orig_fe_lun checks\n      in iscsit_tmr_task_reassign)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5f41a31d0a49a014adb1588edd0cc7f7e30cc55b",
      "tree": "6ee74b84c59a0473aba1257d2e762fa6935c4066",
      "parents": [
        "a3785c8740c5b56b49ec336b59be996393d83332"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun May 20 14:34:44 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:29:11 2012 -0700"
      },
      "message": "target: remove the execute list\n\nSince \"target: Drop se_device TCQ queue_depth usage from I/O path\" we always\nsubmit all commands (or back then, tasks) from __transport_execute_tasks.\n\nThat means the the execute list has lots its purpose, as we can simply\nsubmit the commands that are restarted in transport_complete_task_attr\ndirectly while we walk the list.  In fact doing so also solves a race\nin the way it currently walks to delayed_cmd_list as well.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1fd032ee10d2816c947f5d5b9abda95e728f0a8f",
      "tree": "2a76ad6b466160127dd41ba1d2f6fdb54f412bf2",
      "parents": [
        "d6e0175cf3f9737a760482d185bb73566bcc9331"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun May 20 11:59:15 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:27:45 2012 -0700"
      },
      "message": "target: move code for CDB emulation\n\nMove the existing code in target_core_cdb.c into the files for the command\nsets that the emulations implement.\n\n(roland + nab: Squash patch: Fix range calculation in WRITE SAME emulation\n when num blocks \u003d\u003d 0s)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d6e0175cf3f9737a760482d185bb73566bcc9331",
      "tree": "99ca8361ebc8c4e83f8335193963faa3f30007b5",
      "parents": [
        "88455ec4be02c395820b1ff57656b0844ec03ac3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun May 20 11:59:14 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:25:56 2012 -0700"
      },
      "message": "target: add a parse_cdb method to the backend drivers\n\nInstead of trying to handle all SCSI command sets in one function\n(transport_generic_cmd_sequencer) call out to the backend driver to perform\nthis functionality.  For pSCSI a copy of the existing code is used, but for\nall virtual backends we can use a new parse_sbc_cdb helper is used to\nprovide a simple SBC emulation.\n\nFor now this setups means a fair amount of duplication between pSCSI and the\nSBC library, but patches later in this series will sort out that problem.\n\n(nab: Fix up build failure in target_core_pscsi.c)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "64f1db38c65fa634f4aa21e0f70480a6b8b4d47c",
      "tree": "de8a6b08d9230ba7cb69a3c78174b351123747df",
      "parents": [
        "cb4f4d3c7398a709b48d397e0520ee2509a953a4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun May 20 11:59:11 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jul 16 17:25:55 2012 -0700"
      },
      "message": "target: remove control CDB flags\n\nWe don\u0027t need three flags to classifiy the CDB as we can check for a NULL S/G\nlist for a dataless command, and can infer from the absence of the data flag\nthat we deal with a control CDB.  Also remove the _SG_IO from the data CDB\nflag as all I/O is dont on S/G lists now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4149268e7816d719b0fde8e89aaa6db8c168fc43",
      "tree": "3c180fca14317541addad2cf65e0d5ad5b01bc3d",
      "parents": [
        "cfaf025112d3856637ff34a767ef785ef5cf2ca9"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri May 18 13:57:19 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jun 12 19:33:05 2012 -0700"
      },
      "message": "target: Add TFO-\u003eput_session() caller for HW fabric session shutdown\n\nThis patch adds an optional target_core_fabric_ops-\u003eput_session() caller\nwithin the existing target_put_session() code path.\n\nThis is required by tcm_qla2xxx code in order to invoke it\u0027s own fabric\nspecific session shutdown handler using se_session-\u003esess_kref.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5b9a4d7280e160982a8ea37bc03619f53b5c98b7",
      "tree": "3d7fbce10e7379097f34276b6a8a7d090d4dc813",
      "parents": [
        "ba539743b70cd160c84bab1c82910d0789b820f8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 16 22:02:34 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu May 17 00:45:58 2012 -0700"
      },
      "message": "target: Add MI_REPORT_TARGET_PGS ext. header + implict_trans_secs attribute\n\nThis patch adds support for ALUA MI_REPORT_TARGET_PGS extended header\nformat defined within SPC-4.  It changes target core ALUA emulation logic\nwithin target_emulate_report_target_port_groups() to support both the\nextended and original length only header formats.\n\nIt includes adding a new \u0027implict_trans_secs\u0027 attribute for each ALUA\ntarget port group to control the value returned to the application client\nfor an recommended implict translation timeout in seconds.  By default\nthis value is currently set to zero, and limited up to 255 by virtue of\nusing a single byte in the extended header format.\n\nThis value is used by target_emulate_report_target_port_groups() within\nthe extended header logic to set IMPLICIT TRANSITION TIME as defined by\nspc4r30.\n\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Rob Evers \u003crevers@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "33933a0e962bba4af32de7db912e2fdfef603d24",
      "tree": "df8e63fc5554c5eae2950f9d07658e5bc3ce6b64",
      "parents": [
        "d28d96dcf635410422b41eca5203b0470dd059c1"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Fri May 11 10:35:08 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri May 11 15:01:52 2012 -0700"
      },
      "message": "target: make target_put_session void\n\nNo real change, it effectively already was.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "11e764bd5ed4bb930e0ec5dd161df58307507347",
      "tree": "fa753a950d19c2ef848c50c60f71019dcb912e74",
      "parents": [
        "2301917044b96fda41f794011368e623a9b7a435"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 09 12:42:09 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 09 15:08:47 2012 -0700"
      },
      "message": "target: Remove max_sectors device attribute for modern se_task less code\n\nThis patch removes the original usage of dev_attr-\u003emax_sectors in favor of\ndev_attr-\u003ehw_max_sectors that is now being enforced by target core from\nwithin transport_generic_cmd_sequencer() for SCF_SCSI_DATA_SG_IO_CDB ops.\n\nAfter the recent se_task removal patches from hch, this value for IBLOCK\nbackends being set via configfs by userspace from an saved max_sectors\nvalue that is turning out to be problematic, so it makes sense to go ahead\nand remove this now legacy attribute all-together.\n\nThis patch also continues to make se_dev_set_default_attribs() do\n(sectors / block_size) alignment for what actually get used by\ntarget_core_mod to be safe here, following the same alignment currently\nused by fabric_max_sectors.\n\nReported-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d5dc28eb92f2a2305a02cb3a5f1ed36542d47512",
      "tree": "97f2721b2eaa270a329d4dd556cd254a94bdb41b",
      "parents": [
        "d43d6aea844e66b847e3a0e5cb2c24b6ba84908a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:09 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:28 2012 -0700"
      },
      "message": "target: remove the t_se_count field in struct se_cmd\n\nNow that tasks are gone we are guaranteed to only get a single completion\nper command, and thus don\u0027t need this counter.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "d43d6aea844e66b847e3a0e5cb2c24b6ba84908a"
}
