)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "d43d6aea844e66b847e3a0e5cb2c24b6ba84908a",
      "tree": "8a9a365b75d1bd186f29287a09702ba4e27b0c33",
      "parents": [
        "226b6faf2e30e272ee5a52c2ed0a8c8a1d7b47d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:08 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:27 2012 -0700"
      },
      "message": "target: remove the t_task_cdbs_ex_left 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"
    },
    {
      "commit": "226b6faf2e30e272ee5a52c2ed0a8c8a1d7b47d1",
      "tree": "f39c5904c6da5f04a6f5860c646005e21fba4282",
      "parents": [
        "5787cacd0bd5ee016ad807b244550d34fe2beebe"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:07 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:27 2012 -0700"
      },
      "message": "target: remove the t_task_cdbs_left 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"
    },
    {
      "commit": "5787cacd0bd5ee016ad807b244550d34fe2beebe",
      "tree": "d9303fd0c5767f945c13dfc34eb0b16a4f4d2730",
      "parents": [
        "cf572a9627c9ae86082216de109780c1d2e2ee28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:06 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:26 2012 -0700"
      },
      "message": "target: remove struct se_task\n\nWe can use struct se_cmd for everything it did.  Make sure to pass the S/G\nlist and data direction to the execution function to ease adding back BIDI\nsupport later on.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cf572a9627c9ae86082216de109780c1d2e2ee28",
      "tree": "fe6eec75bc3c388534390efe3be2b3b2c4c93903",
      "parents": [
        "785fdf70b2b46588c973ad8b65ed62871994452f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:05 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:26 2012 -0700"
      },
      "message": "target: move the state and execute lists to the command\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "785fdf70b2b46588c973ad8b65ed62871994452f",
      "tree": "e564a42e34e5a471f6d69a3d8e5e845ebf8c8eef",
      "parents": [
        "4101f0a89d4eb13f04cb0344d59a335b862ca5f9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Apr 24 00:25:04 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:25 2012 -0700"
      },
      "message": "target: simplify command to task linkage\n\nNow that we only have a single task per command we can use a direct pointer\nto it instead of list.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6bb35e009b656b36f7985057822c5fbf53ea75b7",
      "tree": "31384150dbd2828ee72a0802efb23692511f032f",
      "parents": [
        "bd31377878868a47b2d2e6f570fb0cace828555b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 23 11:35:33 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:11:14 2012 -0700"
      },
      "message": "target: replace -\u003eexecute_task with -\u003eexecute_cmd\n\nMake CDB emulation work on commands instead of tasks again as a preparation\nof removing tasks completely.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bd31377878868a47b2d2e6f570fb0cace828555b",
      "tree": "f42aca1e190ab4bf4a1cca98e5a354b81a9a33c2",
      "parents": [
        "7a83aa4e7b26ba61b9dc98d5c0bf725f4df0043f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 23 11:35:32 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:03:46 2012 -0700"
      },
      "message": "target: remove the task_sectors field in struct se_task\n\nRemove the task_sectors field that isn\u0027t used anywhere.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7a83aa4e7b26ba61b9dc98d5c0bf725f4df0043f",
      "tree": "dc2c7e29f7850e238e5f752aaeb4bbaa8dd69f94",
      "parents": [
        "72a0e5e2e2e6b577343c79013611ad5701e94482"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 23 11:35:31 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:03:41 2012 -0700"
      },
      "message": "target: remove the task_size field in struct se_task\n\nNow that we don\u0027t split commands the size field in the task is always\nequivalent to the one in the CDB, even in cases where we have two tasks\ndue to a BIDI transfer.  Just refer the the size in the command instead\nof duplicating it in the task.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "72a0e5e2e2e6b577343c79013611ad5701e94482",
      "tree": "06e41f5240a98040a2a6eed30ab75c0c4213baf2",
      "parents": [
        "ed3102c678c6274933948f9097bb4e2b314e5f82"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 23 11:35:30 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:02:59 2012 -0700"
      },
      "message": "target: remove the task_lba field in struct se_task\n\nNow that we don\u0027t split commands the lba field in the task is always\nequivalent to the one in the CDB, even in cases where we have two tasks\ndue to a BIDI transfer.  Just refer the the lba in the command instead\nof duplicating it in the task.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ed3102c678c6274933948f9097bb4e2b314e5f82",
      "tree": "a1dabb18032a61539905fe932bc1949cb6e8dd80",
      "parents": [
        "32d8d2e4300cabb0acbf4b60fa695924be27d0d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 23 11:35:29 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun May 06 15:02:59 2012 -0700"
      },
      "message": "target: remove target_get_task_cdb\n\nNow that tasks are always the same size as the command there is no need\nto rewrite a CDB in common code.  Notw that we keep the separately allocated\nCDB in the pscsi and stgt backends for now, to easy reintroducing any\ncommand splitting local to these backends if nessecary.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a12f41f8412ff57057906ebbe146fda37db158ac",
      "tree": "e3138df9188c5fff3156e53c8f6781240ee062cb",
      "parents": [
        "8b1e1244db85d58f7c612870ec2c1afd9098ae93"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Apr 03 15:51:20 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Apr 14 17:40:36 2012 -0700"
      },
      "message": "target: Rename target_allocate_tasks to target_setup_cmd_from_cdb\n\nThis patch renames a horribly misnamed function that no longer allocate\ntasks to something more descriptive for it\u0027s modern use in target core.\n\n(nab: Fix up ib_srpt to use this as well ahead of a target_submit_cmd\nconversion)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "957525a2424aad367d6e0efb64e440b2b37fa5cd",
      "tree": "dc56eaa7a6e60ad674059d110e6d4145adb55efd",
      "parents": [
        "6f9e7f01b69bc2d6021e4ab827e1fd78c82cbc52"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Mar 30 11:29:15 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Apr 14 17:40:32 2012 -0700"
      },
      "message": "target: Remove transport_do_task_sg_chain() and associated detritus\n\nNow that all fabrics are converted over to using se_cmd-\u003et_data_sg\ndirectly, we can drop the task sg chaining support.  With the modern\nmemory allocation in target core, task sg chaining is needless\noverhead -- we would split up the main cmd sglist into pieces, and\nthen splice those pieces back together instead of just using the\noriginal list directly.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b0d7994660af1601cc26ef7ab748569fdb9c253b",
      "tree": "49740bdc2f2284762b1d367295b238c5f3bc931d",
      "parents": [
        "58d926187758f76647d68e2f51ce44e6ace81873"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 10 14:16:59 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Apr 14 17:40:03 2012 -0700"
      },
      "message": "target: add unknown size flag to target_submit_cmd()\n\nThe UASP protocol does not inform the target device upfront how much\ndata it should expect so we have to learn in from the CDB.  So in order\nto handle this case, add a TARGET_SCF_UNKNOWN_SIZE to target_submit_cmd()\nand perform an explictly assignment for se_cmd-\u003edata_length from the\nextracted CDB size in transport_generic_cmd_sequencer().\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "58d926187758f76647d68e2f51ce44e6ace81873",
      "tree": "c877294c394ab14cbdeca4af1a3e7835d644f73b",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Mar 20 21:26:48 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Apr 14 16:04:58 2012 -0700"
      },
      "message": "target: Remove obsolete DF_READ_ONLY usage\n\nThis was used at one time as a hack by FILEIO backend registration to\nallow a struct block_device that was claimed with blkdev_get (by a local\nfilesystem mount for example) to be exported as read-only (SCSI WP\u003d1).\n\nSince FILEIO backend registration will no longer attempt to obtain\nexclusive access to an underlying struct block_device here, this flag is\nnow obsolete.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f2083241f23722207676025abbb45a301d412e69",
      "tree": "c340376faf2a1eebe0983075adee2a3c8070c064",
      "parents": [
        "4a5a75f32dcbcd0b2685f74fd4ede26edf8765a9"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:05:40 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:15:51 2012 -0700"
      },
      "message": "target: Use array_zalloc for device_list\n\nTurns an order-8 allocation into slab-sized ones, thereby preventing\nallocation failures with memory fragmentation.\n\nThis likely saves memory as well, as the slab allocator can pack objects\nmore tightly than the buddy allocator.\n\n(nab: Fix lio-core patch fuzz)\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4a5a75f32dcbcd0b2685f74fd4ede26edf8765a9",
      "tree": "9c05e0df5d2cfe06ed490ce763347f65aaf64c6a",
      "parents": [
        "b168fe8cfe530daabbdf632af4554600006a81a9"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:05:12 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:15:38 2012 -0700"
      },
      "message": "target: Use array_zalloc for tpg_lun_list\n\nTurns an order-10 allocation into slab-sized ones, thereby preventing\nallocation failures with memory fragmentation.\n\nThis likely saves memory as well, as the slab allocator can pack objects\nmore tightly than the buddy allocator.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9765b1f327951e643a97f43924d1fbeb4e90ffba",
      "tree": "d1e9691a7b366874ca37bf229f84443384fd5366",
      "parents": [
        "031ed4d565b31880a4136bb7366bc89f5b1dba7d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:50:19 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:55:17 2012 -0800"
      },
      "message": "target: Bump core version to v4.1.0-rc2-ml + fabric versions\n\nBump core version to v4.1.0-rc2-ml, and for versions from the\nfollowing mainline fabric modules:\n\nloopback: v2.1-rc2\ntcm_fc: v0.4\niscsi-target: v4.1.0-rc2\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c7ec05c82bfd6acf1fd800d628591500805f3179",
      "tree": "c64d5d330120d038f5ee9fe90b7a7eba0a0b3459",
      "parents": [
        "99367f01b8df2018ff3328ddf4111e701d34188d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 28 00:22:12 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:55 2012 -0800"
      },
      "message": "target: Drop unused legacy target_core_fabric_ops API callers\n\nThis patch drops the following unused legacy API callers from target_core_fabric.h:\n\n*) TFO-\u003efall_back_to_erl0()\n*) TFO-\u003estop_session()\n*) TFO-\u003esess_logged_in()\n*) TFO-\u003eis_state_remove()\n\nThis patch also removes the stub usage in loopback, tcm_fc, iscsi_target,\nand ib_srpt fabric modules.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "337c060701fb3d27d9945bf7af7ba194ae2153a8",
      "tree": "7b2d50a7cc4b291a876e95c60388cf57a52d912a",
      "parents": [
        "afb999ffc48f5e7ec18e6f8f9e68aa3d0085862d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:36:21 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:19 2012 -0800"
      },
      "message": "target: Convert se_node_acl-\u003eacl_group removal to use -\u003eacl_kref\n\nThis patch converts core_tpg_del_initiator_node_acl() shutdown from configfs\ncontext to use se_node_acl-\u003eacl_kref and -\u003eacl_free_comp in order to wait for\noutstanding fabric callbacks to complete via transport_deregister_session()\ncallbacks before waking -\u003eacl_free_comp from the last -\u003eacl_kref put.\n\nIt also changes core_tpg_del_initiator_node_acl() to setup a local sess_list\nwith target_get_session() + acl-\u003eacl_stop \u003d 1 for active sessions that will\nbe shutdown, and changes transport_deregister_session_configfs() to check\nfor -\u003eacl_stop usage.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "afb999ffc48f5e7ec18e6f8f9e68aa3d0085862d",
      "tree": "781a1055eaed8bef8148c95fa6f9e779484511c6",
      "parents": [
        "01468346546a9bcc09035a7e8b71f78af5b7133a"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 08 23:45:02 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:09 2012 -0800"
      },
      "message": "target: Add se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n\nThis patch adds se_node_acl-\u003eacl_kref for use with -\u003eacl_free_comp\nduring explict se_node_acl release.  It adds kref_init() during\nse_node_acl setup, kref_get() during __transport_register_session()\n-\u003e target_put_nacl() with existing transport_deregister_session()\nfabric callback usage.\n\nIt also moves transport_free_session() to release *se_sess memory\nafter target_put_nacl() execution in transport_deregister_session()\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "01468346546a9bcc09035a7e8b71f78af5b7133a",
      "tree": "5d7b69d10a2fb7e7f34717531fd099cae24f8044",
      "parents": [
        "41ac82b668177876d5965d5f60956fb0fbcdb514"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:32:52 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:41:59 2012 -0800"
      },
      "message": "target: Add se_node_acl-\u003eacl_free_comp for NodeACL release path\n\nAdd se_node_acl-\u003eacl_free_comp for NodeACL release path to wait for outstanding\nfabric session shutdown to complete in transport_deregister_session() before\nfinishing NodeACL release from configfs process context.\n\nAlso make transport_deregister_session() clear the comp_nacl bit\nto skip se_node_acl-\u003eacl_free_comp completion for dynamically generated\nNodeACL during fabric session shutdown.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "41ac82b668177876d5965d5f60956fb0fbcdb514",
      "tree": "229c299330fa9c3cb4cb5a1903e0559e3e7a5d5b",
      "parents": [
        "140854cb72525246745b67300d35101ad2875a39"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Feb 26 22:22:10 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:41:53 2012 -0800"
      },
      "message": "target: Add se_sess-\u003esess_kref + get/put helpers\n\nThis patch adds basic se_session-\u003esess_kref and get/put helpers for fabric\nsession reference counting.  It sets the initial kref in transport_init_session()\nand adds a target_release_session() callback to invoke TFO-\u003eclose_session()\nfor final session shutdown.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c0974f89385970455a60a999ae4fc0a783cf458d",
      "tree": "14abc856524251bf392bcaf0b2b8c621500ec1b2",
      "parents": [
        "9f0d05c2c6185d7b5ba08a6c052e90837101031f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 05:10:04 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:39:13 2012 -0800"
      },
      "message": "target: Allow target_submit_tmr interrupt context + pass ABORT_TASK tag\n\nThis patch allows target_submit_tmr() to pass gfp_t for se_cmd-\u003ese_tmr_req\nallocation, and also set up se_cmd-\u003ese_tmr_req-\u003eref_task_tag for passed\ntag with TMR_ABORT_TASK.\n\nAlso update tcm_fc(fcoe) parameter usgae and add ref_task_tag FIXME\nfor TMR_ABORT_TASK usage,\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c7042cae58c13970f39c0820a3aab2a13dda9fe1",
      "tree": "63d75c4c8e37d9a26033ed11b47345b4ae697524",
      "parents": [
        "3de55ec74aa803d7aa1e581700086d755c2599d2"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 01:40:24 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:38:34 2012 -0800"
      },
      "message": "target: Fix target_submit_tmr se_tmr_req allocation failures\n\nThis patch makes target_submit_tmr() se_tmr_req allocation occur before\ntarget_get_sess_cmd(), and changes target_submit_tmr() to return a failure\nw/ non zero status to the fabric caller upon core_tmr_alloc_req() failure.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "015487b89f27d91d95a056cdc3c85e6c729bff12",
      "tree": "0cecb2acc903154e25abb23e8f345f301fcd1ef5",
      "parents": [
        "effc6cc8828257c32c37635e737f14fd6e19ecd7"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:17 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Untangle front-end and back-end meanings of max_sectors attribute\n\nse_dev_attrib.max_sectors currently has two independent meanings:\n\n - It is reported in the block limits VPD page as the maximum transfer\n   length, ie the largest IO that the front-end (fabric) can handle.\n   Also the target core doesn\u0027t enforce this maximum transfer length.\n\n - It is used to hold the size of the largest IO that the back-end can\n   handle, so we know when to split SCSI commands into multiple tasks.\n\nFix this by adding a new se_dev_attrib.fabric_max_sectors to hold the\nmaximum transfer length, and checking incoming IOs against that limit.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d95b82461c56a6ff8ff248b101049a69ebb20278",
      "tree": "0a0c8ad9d37c529c859ddcdfc7123b80bd195b0c",
      "parents": [
        "3d28934aaae5e924afedf0f5cb42e1316514da6b"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:14 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Fix up handling of short INQUIRY buffers\n\nIf the initiator sends us an INQUIRY command with an allocation length\nthat\u0027s shorter than what we want to return, we\u0027re simply supposed to\ntruncate our response and return what the initiator gave us space for,\nwithout signaling any error.  Current target code has various tests that\ndon\u0027t fill out the full response if the buffer is too short and\nsometimes return errors incorrectly.\n\nFix this up by allocating a bounce buffer for INQUIRY responses if we\nneed to, ie if we have cmd-\u003edata_length too small as well as\nSCF_PASSTHROUGH_SG_TO_MEM_NOALLOC set in cmd-\u003ese_cmd_flags -- for most\nfabrics, we always allocate at least a full page, but for tcm_loop we\nmay have a small buffer coming directly from the SCSI stack.\n\nThis lets us delete a lot of cmd-\u003edata_length checking, and also makes\nour INQUIRY handling correct per SPC in a lot more cases.\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": "86715569d085addc635c2b55ee8acb79d3a7fbbf",
      "tree": "b6b6d554b329a86845d8de661529c3fc2bc6dbef",
      "parents": [
        "2fbff1276bb635294b3384b6c167f72d0acdab95"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 13 01:07:22 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Add SCF_ACK_KREF flag for acknowledgement kref\n\nWhen TARGET_SCF_ACK_KREF is in use with target_submit_cmd() for\nsetting the extra acknowledgement reference to se_cmd-\u003ecmd_kref,\ngo ahead and set SCF_ACK_KREF in order to be used later by\nabort task.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2fbff1276bb635294b3384b6c167f72d0acdab95",
      "tree": "d480bcaff6665583ff5f8120cc81754a8f3651b0",
      "parents": [
        "a1edf9cf6d1efed2981fcf6e4caa704fbb1bd093"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Feb 10 16:18:11 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "target: Export transport_generic_request_failure symbol\n\ntransport_generic_request_failure() is a wrapper around calling\ntransport_send_check_condition_and_sense() that is required once\nan se_cmd-\u003ecmd_kref has been obtained via target_submit_cmd() -\u003e\ntarget_get_sess_cmd().\n\ntcm_qla2xxx currently requires this, and since it\u0027s necessary for\nother callers using target_submit_cmd() make it exportable now.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ea98d7f9c7cc38de55f81a1c249112442b93c7c9",
      "tree": "cd5b136fa5b22ba290a9da8992c486a5d5ff68e8",
      "parents": [
        "a1321f71e87930579afc4a4029cce128c23f3fd3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:21 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "target: Add target_submit_tmr helper function\n\nSimilar to target_submit_cmd, this function lets fabrics call one function\n(albeit with a lot of parameters) instead of 3 or more.\n\n(nab: Add missing return for transport_lookup_tmr_lun failure)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c8e31f26feeb03dc6f51bff68135cc58431e099b",
      "tree": "8d584fcb7cb7a58988cd2463a9a26f577410e6ac",
      "parents": [
        "35b2cdc4fea1f0d13e1602c07e62c797c9fe5ed4"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:17 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "target: Add SCF_SCSI_TMR_CDB usage and drop se_tmr_req_cache\n\nChange the test for if a cmd is a tmr request to checking if\nSCF_SCSI_TMR_CDB (a new flag) is set in cmd-\u003ese_cmd_flags.\n\nAlso remove se_tmr_req_cache usage in favor of kzalloc usage,\nand make core_tmr_alloc_req() return int + setup se_cmd-\u003ese_tmr_req\ndirectly and fix up various fabric module usages\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ef28640497f5935bf614e1e29b16972d8b97cdb2",
      "tree": "76ef67c94005581784fcd943e293c5ea4f403c75",
      "parents": [
        "644df699d598c12989238b3f14fdabf78c6076ab"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:13 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "target: Remove unused struct se_queue_req\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "644df699d598c12989238b3f14fdabf78c6076ab",
      "tree": "ffe92b9148bc3209a183b668e6786ca6a28b187c",
      "parents": [
        "e35fa8c2d0feb977c2f7d14a973b4132483ffef3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:12 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: fix comment typos\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3d26fea01d5f80e3e585d69d8d73a60e1ca563a0",
      "tree": "6955955e14533854f9e9eaae7b7475e819bc53d5",
      "parents": [
        "7d680f3b74dd6f0f57569eeeee8c257790ceaa96"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:14:05 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: remove the transport_lun_active field in struct se_cmd\n\nThere is no reason to have a flag telling if a command is on the per-lun list,\nwe can simply do a list_empty check before removing it as long as we\u0027re careful\nto always use list_del_init.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7d680f3b74dd6f0f57569eeeee8c257790ceaa96",
      "tree": "e0797ab722c222213b7cbe4fa9ba4a61db2d8b0c",
      "parents": [
        "b01543dfe67bb1d191998e90d20534dc354de059"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:13:47 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:45 2012 -0800"
      },
      "message": "target: replace various cmd flags with a transport state\n\nReplace various atomic_ts used as flags in struct se_cmd with a single\ntransport_state bitmap that requires t_state_lock to be held for modifications.\n\nIn the target core that assumption generally is true, but some recently added\ncode in the SRP target had to grow new lock calls.  I can\u0027t say I like the way\nhow it messes with the command state directly, but let\u0027s leave that for later.\n\n(Re-add missing ib_srpt.c changes that nab dropped..)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1edcdb497ef418122cd4f98e157660cf594b345a",
      "tree": "bf41780935b8996f85a0ae090897495961deb6d7",
      "parents": [
        "95fe1ee41e23fa271416da67483594dde74bc6ca"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:23 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:41:04 2012 +0000"
      },
      "message": "target: Change target_submit_cmd() to return void\n\nRetval not very useful, and may even be harmful. Once submitted, fabrics\nshould expect a sense error if anything goes wrong. All fabrics checking\nof this retval are useless or broken:\n\nfc checks it just to emit more debug output.\nib_srpt trickles retval up, then it is ignored.\nqla2xxx trickles it up, which then causes a bug because the abort goto\nin qla_target.c thinks cmd hasn\u0027t been sent to target.\n\nJust returning nothing is best.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4949314c7283ea4f9ade182ca599583b89f7edd6",
      "tree": "bbd2316996bc2f19c1b3a8c24f8591f12d2330fa",
      "parents": [
        "e8904dc5008ef92f0f62391d6557f03f921eeb32"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon Jan 16 16:57:08 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:58 2012 +0000"
      },
      "message": "target: Allow control CDBs with data \u003e 1 page\n\nWe need to handle \u003e1 page control cdbs, so extend the code to do a vmap\nif bigger than 1 page. It seems like kmap() is still preferable if just\na page, fewer TLB shootdowns(?), so keep using that when possible.\n\nRename function pair for their new scope.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "895f3022523361e9b383cf48f51feb1f7d5e7e53",
      "tree": "6a692ebaacc4af38c8869eee0da7c6e868b1232a",
      "parents": [
        "6d5b59756033c2a029bde7262bb5f8d45f4ca952"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Dec 13 14:55:33 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Dec 16 06:29:04 2011 +0000"
      },
      "message": "target: Set additional sense length field in sense data\n\nThe target code was not setting the additional sense length field in the\nsense data it returned, which meant that at least the Linux stack\nignored the ASC/ASCQ fields.  For example, without this patch, on a\ntcm_loop device:\n\n    # sg_raw -v /dev/sda 2 0 0 0 0 0\n\ngives\n\n        cdb to send: 02 00 00 00 00 00\n    SCSI Status: Check Condition\n\n    Sense Information:\n     Fixed format, current;  Sense key: Illegal Request\n      Raw sense data (in hex):\n            70 00 05 00 00 00 00 00\n\nwhile after the patch we correctly get the following (which matches what\na regular disk returns):\n\n        cdb to send: 02 00 00 00 00 00\n    SCSI Status: Check Condition\n\n    Sense Information:\n     Fixed format, current;  Sense key: Illegal Request\n     Additional sense: Invalid command operation code\n     Raw sense data (in hex):\n            70 00 05 00 00 00 00 0a  00 00 00 00 20 00 00 00\n            00 00\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4d2300ccffd22d1d0213b6a8e4d685eb6ca069c0",
      "tree": "a76817aa4aaba5a6ffb05b3e6a0ea9ca654a0519",
      "parents": [
        "65586d51e0986be574118286c3d0007e903a2add"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 18:18:33 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:48:46 2011 +0000"
      },
      "message": "target: Remove extra se_device-\u003eexecute_task_lock access in fast path\n\nThis patch makes __transport_execute_tasks() perform the addition of\ntasks to dev-\u003eexecute_task_list via __transport_add_tasks_from_cmd()\nwhile holding dev-\u003eexecute_task_lock during normal I/O fast path\nsubmission.\n\nIt effectively removes the unnecessary re-acquire of dev-\u003eexecute_task_lock\nduring transport_execute_tasks() -\u003e transport_add_tasks_from_cmd() ahead\nof calling  __transport_execute_tasks() to queue tasks for the passed\n*se_cmd descriptor.\n\n(v2: Re-add goto check_depth usage for multi-task submission for now..)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "65586d51e0986be574118286c3d0007e903a2add",
      "tree": "0684f76d53e666ffe2a2c77f8e3947d263fa1b75",
      "parents": [
        "40be67f4c588fe2f3e2dbd60ae1f470abc5b6ad8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 01:25:21 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:42:13 2011 +0000"
      },
      "message": "target: Drop se_device TCQ queue_depth usage from I/O path\n\nHistorically, pSCSI devices have been the ones that required target-core\nto enforce a per se_device-\u003edepth_left.  This patch changes target-core\nto no longer (by default) enforce a per se_device-\u003edepth_left or sleep in\ntransport_tcq_window_closed() when we out of queue slots for all backend\nexport cases.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ec54cc081ead14e85736c6543e36ec59be8a7d3d",
      "tree": "8164a0a18787602a89eaaf83c0861676821fdada",
      "parents": [
        "4355a9110eeb2eaf1dd44fcab16ccbd1c8c5fad4"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 10:50:16 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:42:11 2011 +0000"
      },
      "message": "target: Remove TFO-\u003echeck_release_cmd() fabric API caller\n\nRemove the now unused target_core_fabric_ops-\u003echeck_release_cmd() as\ntarget_core handles this directly for se_cmd-\u003ecmd_kref objects now.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a63607855224702ea17e6016ecf3f7d544e83625",
      "tree": "844d9a7dbdc636ba657763f04945b91ca8da9ba7",
      "parents": [
        "7481deb413be132a22193e8a0bce88b311ecb3c2"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 18 20:36:22 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:40:56 2011 +0000"
      },
      "message": "target: Add target_submit_cmd() for process context fabric submission\n\nThis patch adds a target_submit_cmd() caller that can be used by fabrics\nto submit an uninitialized se_cmd descriptor to an struct se_session +\nunpacked_lun from workqueue process context.  This call will invoke the\nfollowing steps:\n\n- transport_init_se_cmd() to setup se_cmd specific pointers\n- Obtain se_cmd-\u003ecmd_kref references with target_get_sess_cmd()\n- set se_cmd-\u003et_tasks_bidi\n- transport_lookup_cmd_lun() to setup struct se_cmd-\u003ese_lun from\n  the passed unpacked_lun\n- transport_generic_allocate_tasks() to setup the passed *cdb, and\n- transport_handle_cdb_direct() handle READ dispatch or WRITE\n  ready-to-transfer callback to fabric\n\nv2 changes from hch feedback:\n\n*) Add target_sc_flags_table for target_submit_cmd flags\n*) Rename bidi parameter to flags, add TARGET_SCF_BIDI_OP\n*) Convert checks to BUG_ON\n*) Add out_check_cond for transport_send_check_condition_and_sense\n   usage\n\nv3 changes:\n\n*) Add TARGET_SCF_ACK_KREF for target_submit_cmd into\n   target_get_sess_cmd to determine when the fabric caller is expecting\n   a second kref_put() from fabric packet acknowledgement.\n\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": "7481deb413be132a22193e8a0bce88b311ecb3c2",
      "tree": "6d417c6856f983cb28fae0717563f4efcd6019e1",
      "parents": [
        "ce136176fea522fc8f4c16dcae7e8ed1d890ca39"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Nov 12 00:32:17 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:38:29 2011 +0000"
      },
      "message": "target: Make target_put_sess_cmd use target_release_cmd_kref\n\nThis patch moves target_put_sess_cmd() to use a se_cmd-\u003ecmd_kref\ncallback target_release_cmd_kref when performing driver release of\nfabric-\u003ese_cmd descriptor memory.  It sets the default cmd_kref\ncount value to \u00272\u0027 within target_get_sess_cmd() setup, and\ncurrently assumes TFO-\u003echeck_stop_free() usage.\n\nIt drops se_tfo-\u003echeck_release_cmd() usage in the main\ntransport_release_cmd codepath.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e0a53e70e8d519579d92c150606ece22333645cb",
      "tree": "7f28469be2885fd7979ec584dcc65b3b35748871",
      "parents": [
        "2e88efd3aaafa0df05593cdfa5fd17afe922781d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 29 03:29:38 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:28:13 2011 +0000"
      },
      "message": "target: remove overagressive ____cacheline_aligned annoations\n\nIf we want dynamically allocated objects to be cacheline aligned we need\nto tell that to the slab allocator by using the proper flags and not\nby liberally sprinkling annotations onto all structures.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1880807adb21d741f08b747956c90bf4a6f95fbf",
      "tree": "fb3815bf85679116bb455ded1a678049950a3d9f",
      "parents": [
        "41e16e981679124c78c30f046d4f0b71d86ff1b2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 23 06:54:36 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:27:02 2011 +0000"
      },
      "message": "target: make the se_task task_state_active a normal bool\n\nThere is no need to make task_state_active an atomic_t given that it is\nalways set under the execute_task_lock so we can make it a simple bool.\nAlso rename it to t_state_active to be closer to the list it guards,\nand make sure all checks before the list addion/removal actually happen\nunder execute_task_lock.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "41e16e981679124c78c30f046d4f0b71d86ff1b2",
      "tree": "2db886814e0f8b9b39d8e8b836e3598d128d14e1",
      "parents": [
        "ef804a849ffae058a783e9dddd24cc1a555bbdb4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 23 06:54:15 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:26:44 2011 +0000"
      },
      "message": "target: remove the se_task task_error_status field\n\nWe only reach transport_complete_task once per task, so the test and set on\ntask_error_status is never going to have an effect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ef804a849ffae058a783e9dddd24cc1a555bbdb4",
      "tree": "e67737300936c2b94359ded96d9113981cb610aa",
      "parents": [
        "c4795fb20edf2fe2c862c8fe9f8b681edeb79ac1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 23 06:53:58 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:26:27 2011 +0000"
      },
      "message": "target: fold se_task.task_sense into task_flags\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c4795fb20edf2fe2c862c8fe9f8b681edeb79ac1",
      "tree": "506a8cb0a12ea2b56c5ebed5e6bc2a0d842c069d",
      "parents": [
        "e26d99aed42ec6cdc9540d19c77ac5d4dd2c5b00"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 16 09:46:48 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:26:05 2011 +0000"
      },
      "message": "target: header reshuffle, part2\n\nThis reorganized the headers under include/target into:\n\n - target_core_base.h stays as is with all target-wide data stuctures and defines\n - target_core_backend.h contains the whole interface to I/O backends\n - target_core_fabric.h contains the whole interface to fabric modules\n\nExcept for those only the various configfs macro headers stay around.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e26d99aed42ec6cdc9540d19c77ac5d4dd2c5b00",
      "tree": "9c0424f81877d6c5cfaf7746447e0c9decf8e82e",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 12:30:30 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 08:51:12 2011 +0000"
      },
      "message": "target: reshuffle headers\n\nCreate a new headers, drivers/target/target_core_internal.h that is supposed\nto hold all target_core-internal prototypes.  Move all non-exported includes\nfrom include/target to it, and merge the smaller prototype-only includes\ninside drivers/target into it as well.  Mark functions that were found to\nnot be called outside their implementation file static.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "6f21475576dde397cd2580262209d4080fbd5458"
}
