)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "6f21475576dde397cd2580262209d4080fbd5458",
      "tree": "2fa1831eaec0722b2e48278e447a3aa57b52a9fc",
      "parents": [
        "9649fa1b8764f64c8cc4293e197e14cd46fe7205"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 29 03:29:59 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:57 2011 +0000"
      },
      "message": "target: remove the unused se_dev_list\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5c73b678f729ea087ef57b59a5d7b5dd3a97042b",
      "tree": "1dfbf0564bba408d6728cb2cf1054b3f0f2eddbc",
      "parents": [
        "1289a0571c037b4757f60597d646aedb70361ec3"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Nov 24 02:04:16 2011 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:56 2011 +0000"
      },
      "message": "target: remove unused struct fields\n\nSome are never used, some are set but never read, dev_hoq_count is\nincremented and decremented, but never read.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6fd126ffebef3897d8fca98644a9fd1cc5c7a5e3",
      "tree": "14371a3621bd18ed18ee5262844d673e4d48d843",
      "parents": [
        "33c3fafc43e56a22be60ebe67bec5ba763d51010"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 11:36:31 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:53 2011 +0000"
      },
      "message": "target: remove the unused t_task_pt_sgl and t_task_pt_sgl_num se_cmd fields\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "33c3fafc43e56a22be60ebe67bec5ba763d51010",
      "tree": "87a482353c77ff469b4d7b4fab8df105087d8cf9",
      "parents": [
        "2d3a4b51df4db2ee0415f42a63b9629a7977b975"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 11:36:30 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:53 2011 +0000"
      },
      "message": "target: remove the t_tasks_bidi se_cmd field\n\nAnd use a SCF_BIDI flag instead.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2d3a4b51df4db2ee0415f42a63b9629a7977b975",
      "tree": "fd83d9881b4d2041061d62271fea53af8a81be44",
      "parents": [
        "aad13ca20d960ab74b739d7bbe876dac4502f546"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 11:36:29 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:52 2011 +0000"
      },
      "message": "target: remove the t_tasks_fua se_cmd field\n\nAnd use a SCF_FUA flag instead.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "aad13ca20d960ab74b739d7bbe876dac4502f546",
      "tree": "be24d2405a4f53449a7368cbd8218edc06ad8828",
      "parents": [
        "58a2801a4b9ad97d3685bb7a3344e17d60292908"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 11:36:28 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:52 2011 +0000"
      },
      "message": "target: remove the se_ordered_node se_cmd field\n\nWe never walk ordered_cmd_list in the se_device, so remove all code related\nto supporting it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "58a2801a4b9ad97d3685bb7a3344e17d60292908",
      "tree": "57326befbef1dfdf86b20b2237939c333e1cddbc",
      "parents": [
        "6297b07cbc42eb6b53eb88fce70a4727ea230797"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 14 11:36:27 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:52 2011 +0000"
      },
      "message": "target: remove the se_obj_ptr and se_orig_obj_ptr se_cmd fields\n\nWe already have a perfectly valid se_device pointer in the command, so\nremove the mostly useless duplicates.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5f655e8d2a7cdc41943f929e86054051d7441ec5",
      "tree": "1386eb5a5e2585ed4aff57a04c15ca341524dc7f",
      "parents": [
        "330694a50f5b80e983136237c10516810fb427a9"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bvanassche@acm.org",
        "time": "Tue Nov 08 20:46:29 2011 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:50 2011 +0000"
      },
      "message": "target: Avoid compiler warnings about signed one-bit bitfields\n\nConvert to unsigned bit fields for active I/O shutdown fields.\n\nSigned-off-by: Bart Van Assche \u003cbvanassche@acm.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "03e98c9eb916f3f0868c1dc344dde2a60287ff72",
      "tree": "cfa47c1cec5b0a589b868c34310ee25f6a6a1939",
      "parents": [
        "5611cc4572e889b62a7b4c72a413536bf6a9c416"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 02:36:16 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 06 06:00:49 2011 +0000"
      },
      "message": "target: Address legacy PYX_TRANSPORT_* return code breakage\n\nThis patch removes legacy usage of PYX_TRANSPORT_* return codes in a number\nof locations and addresses cases where transport_generic_request_failure()\nwas returning the incorrect sense upon CHECK_CONDITION status after the\nv3.1 converson to use errno return codes.\n\nThis includes the conversion of transport_generic_request_failure() to\nprocess cmd-\u003escsi_sense_reason and handle extra TCM_RESERVATION_CONFLICT\nbefore calling transport_send_check_condition_and_sense() to queue up\nresponse status.  It also drops PYX_TRANSPORT_OUT_OF_MEMORY_RESOURCES legacy\nusgae, and returns TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE w/ a response\nfor these cases.\n\ntransport_generic_allocate_tasks(), transport_generic_new_cmd(), backend\nSCF_SCSI_DATA_SG_IO_CDB -\u003edo_task(), and emulated -\u003eexecute_task() have\nall been updated to set se_cmd-\u003escsi_sense_reason and return errno codes\nuniversally upon failure.  This includes cmd-\u003escsi_sense_reason assignment\nin target_core_alua.c, target_core_pr.c and target_core_cdb.c emulation code.\n\nFinally it updates fabric modules to remove the legacy usage, and for\nTFO-\u003enew_cmd_map() callers forwards return values outside of fabric code.\niscsi-target has also been updated to remove a handful of special cases\nrelated to the cleanup and signaling QUEUE_FULL handling w/ ft_write_pending()\n\n(v2: Drop extra SCF_SCSI_CDB_EXCEPTION check during failure from\n     transport_generic_new_cmd, and re-add missing task-\u003etask_error_status\n     assignment in transport_complete_task)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
      "tree": "08fb9ec4824bf3320af01f29fe84b75f814c0fa0",
      "parents": [
        "02ebbbd481635fd3ce7018e5bb19c18c0f1e4561",
        "5bda90c8f20f0af93375721533f4081a40fa6f41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:00:42 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:00:42 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:\n  target: use -\u003eexectute_task for all CDB emulation\n  target: remove SCF_EMULATE_CDB_ASYNC\n  target: refactor transport_emulate_control_cdb\n  target: pass the se_task to the CDB emulation callback\n  target: split core_scsi3_emulate_pr\n  target: split core_scsi2_emulate_crh\n  target: Add generic active I/O shutdown logic\n  target: add back error handling in transport_complete_task\n  target/pscsi: blk_make_request() returns an ERR_PTR()\n  target: Remove core TRANSPORT_FREE_CMD_INTR usage\n  target: Make TFO-\u003echeck_stop_free return free status\n  iscsi-target: Fix non-immediate TMR handling\n  iscsi-target: Add missing CMDSN_LOWER_THAN_EXP check in iscsit_handle_scsi_cmd\n  target: Avoid double list_del for aborted se_tmr_req\n  target: Minor cleanups to core_tmr_drain_tmr_list\n  target: Fix wrong se_tmr being added to drain_tmr_list\n  target: Fix incorrect se_cmd assignment in core_tmr_drain_tmr_list\n  target: Check -ENOMEM to signal QUEUE_FULL from fabric callbacks\n  tcm_loop: Add explict read buffer memset for SCF_SCSI_CONTROL_SG_IO_CDB\n  target: Fix compile warning w/ missing module.h include\n"
    },
    {
      "commit": "d29a5b6acc4b63d4e05ff554509df6fbeaf527cd",
      "tree": "edd94dc0420982dea35a811827757b3145689df0",
      "parents": [
        "6ed5a557905f1c4e9ca5f8a6d607303a12d097e1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:44 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 10:43:35 2011 +0000"
      },
      "message": "target: remove SCF_EMULATE_CDB_ASYNC\n\nAll -\u003eexecute_task instances now need to complete the I/O explicitly,\nwhich can either happen synchronously or asynchronously.\n\nNote that a lot of the CDB emulations appear to return success even if\nsome lowlevel operations failed.  Given that this is an existing issue\nthis patch doesn\u0027t change that fact.\n\n(nab: Adding missing switch breaks in PR-IN + PR_OUT)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e76a35d6c809bd1638e3b1b535bb780ac731c380",
      "tree": "a67bbbbc16cb4e612015da8b0f86fe981d1a5f77",
      "parents": [
        "617c0e06c1b30b799d8b25f92eefdc1b098cb9f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:42 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 08:00:17 2011 +0000"
      },
      "message": "target: pass the se_task to the CDB emulation callback\n\nWe want to be able to handle all CDBs through it and remove hacks like\nalways using the first task in a CDB in target_report_luns.\n\nAlso rename the callback to -\u003eexecute_task to better describe its use.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a17f091d1a7c570804cfc2c77701634da88f8ecf",
      "tree": "50884063148c31cb5ee7b9a3f13bcc41f585cb92",
      "parents": [
        "2235007c4d3245c0eca5e49497aafe5a111c00fb"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 21:52:08 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 07:50:26 2011 +0000"
      },
      "message": "target: Add generic active I/O shutdown logic\n\nThis patch adds the initial pieces of generic active I/O shutdown logic.\nThis is intended to be a \u0027opt-in\u0027 feature for fabric modules that\nincludes the following functions to provide a mechinism for fabric\nmodules to track se_cmd via se_session-\u003esess_cmd_list:\n\n*) target_get_sess_cmd() - Add se_cmd to sess-\u003esess_cmd_list, called\n   from fabric module incoming I/O path.\n*) target_put_sess_cmd() - Check for completion or drop se_cmd from\n   -\u003esess_cmd_list\n*) target_splice_sess_cmd_list() - Splice active I/O list from\n   -\u003esess_cmd_list to -\u003esess_wait_list, can called with HW fabric\n   lock held.\n*) target_wait_for_sess_cmds() - Walk -\u003esess_wait_list waiting on\n   individual -\u003ecmd_wait_comp.  Optional transport_wait_for_tasks()\n   call.\n\ntarget_splice_sess_cmd_list() is allowed to be called under HW fabric\nlock, and performs the splice into se_sess-\u003esess_wait_list and set\nse_cmd-\u003ecmd_wait_set.  Then target_wait_for_sess_cmds() walks the list\nwaiting for individual target_put_sess_cmd() fabric callbacks to\ncomplete.\n\nIt also adds TFO-\u003echeck_release_cmd() to split the completion and memory\nrelease calls, where a fabric module uses target_put_sess_cmd() to check\nfor I/O completion during session shutdown.  This is currently pushed out\ninto fabric modules as current fabric code may sleep here waiting for\nTFO-\u003echeck_stop_free() to complete in main response path, and because\ntarget_wait_for_sess_cmds() calling TFO-\u003erelease_cmd() to free fabric\ndescriptor memory directly.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3151d069e9e77043b0e791719bc65896cf24d9f0",
      "tree": "7913988d9a7efc0ac7ef6cd44ca892243adcb9bd",
      "parents": [
        "88dd9e26d6d3e743f9c7e4562b94b2ad3c2994d3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 08:28:20 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:58:46 2011 +0000"
      },
      "message": "target: Remove core TRANSPORT_FREE_CMD_INTR usage\n\nThis patch drops TRANSPORT_FREE_CMD_INTR usage from target core, which\nincludes the removal of transport_generic_free_cmd_intr() symbol,\nTRANSPORT_FREE_CMD_INTR usage in transport_processing_thread(), and\nspecial case LUN_RESET handling to skip TRANSPORT_FREE_CMD_INTR processing\nin core_tmr_drain_cmd_list().  We now expect that fabric modules will\nuse an internal workqueue to provide process context when releasing\nse_cmd descriptor resources via transport_generic_free_cmd().\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Madhuranath Iyengar \u003cmni@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "88dd9e26d6d3e743f9c7e4562b94b2ad3c2994d3",
      "tree": "452154b4137170de74d4445c5fcbbf62ce2f04fd",
      "parents": [
        "5a4c8666c6d576f076a7c6824589cdbb984c0f84"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 03:33:16 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:58:30 2011 +0000"
      },
      "message": "target: Make TFO-\u003echeck_stop_free return free status\n\nThis patch converts target_core_fabric_ops-\u003echeck_stop_free() usage in\ntransport_cmd_check_stop() and associated fabric module usage to\nreturn \u00271\u0027 when the passed se_cmd has been released directly within\n-\u003echeck_stop_free(), or return \u00270\u0027 when the passed se_cmd has not\nbeen released.\n\nThis addresses an issue where transport_cmd_finish_abort() -\u003e\ntransport_cmd_check_stop_to_fabric() was leaking descriptors during\nLUN_RESET for modules using -\u003echeck_stop_free(), but not directly\nreleasing se_cmd in all cases.\n\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "59e52534172d845ebffb0d7e85fc56fb7b857051",
      "tree": "49552e03f1bdb413cd8b5f7542e91770688d7047",
      "parents": [
        "73692d9bb58ecc2fa73f4b2bfcf6eadaa6d49a26",
        "0d89e54c8249645404283436d952afc261a04e1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (59 commits)\n  MAINTAINERS: linux-m32r is moderated for non-subscribers\n  linux@lists.openrisc.net is moderated for non-subscribers\n  Drop default from \"DM365 codec select\" choice\n  parisc: Kconfig: cleanup Kernel page size default\n  Kconfig: remove redundant CONFIG_ prefix on two symbols\n  cris: remove arch/cris/arch-v32/lib/nand_init.S\n  microblaze: add missing CONFIG_ prefixes\n  h8300: drop puzzling Kconfig dependencies\n  MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers\n  tty: drop superfluous dependency in Kconfig\n  ARM: mxc: fix Kconfig typo \u0027i.MX51\u0027\n  Fix file references in Kconfig files\n  aic7xxx: fix Kconfig references to READMEs\n  Fix file references in drivers/ide/\n  thinkpad_acpi: Fix printk typo \u0027bluestooth\u0027\n  bcmring: drop commented out line in Kconfig\n  btmrvl_sdio: fix typo \u0027btmrvl_sdio_sd6888\u0027\n  doc: raw1394: Trivial typo fix\n  CIFS: Don\u0027t free volume_info-\u003eUNC until we are entirely done with it.\n  treewide: Correct spelling of successfully in comments\n  ...\n"
    },
    {
      "commit": "2e982ab92dff057c639d4a43ccfa275be62f5e59",
      "tree": "8c8467e06736efa042006b11210281894c75bd95",
      "parents": [
        "415a090ade7e674018e3fa4255938e4c312339b3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 23 18:46:36 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:22:08 2011 +0000"
      },
      "message": "target: Remove legacy se_task-\u003etask_timer and associated logic\n\nThis patch removes the legacy usage of se_task-\u003etask_timer and associated\ninfrastructure that originally was used as a way to help manage buggy backend\nSCSI LLDs that in certain cases would never return back an outstanding task.\n\nThis includes the removal of target_complete_timeout_work(), timeout logic\nfrom transport_complete_task(), transport_task_timeout_handler(),\ntransport_start_task_timer(), the per device task_timeout configfs attribute,\nand all task_timeout associated structure members and defines in\ntarget_core_base.h\n\nThis is being removed in preparation to make transport_complete_task() run\nin lock-less mode.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "415a090ade7e674018e3fa4255938e4c312339b3",
      "tree": "075991035ca3410cdd2a9110d2cde1c1ca485e4d",
      "parents": [
        "af3f00c75949369d937f499f49118e879939724d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 23 18:16:13 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:22:06 2011 +0000"
      },
      "message": "target: Fix incorrect transport_sent usage\n\nThis patch converts target-core to use se_cmd-\u003et_transport_sent instead of\na duplicated se_cmd-\u003etransport_sent member in a handful of locations.\nIt also updates iscsi_target to properly use -\u003et_transport_sent instead of\nit\u0027s own iscsi_cmd_t-\u003etransport_sent value that was not being assigned.\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": "7c1c6af37af69a4ac4a6485c968496d257245b5d",
      "tree": "7837a4ec24de8dc4c373810137250c7e75d9f24b",
      "parents": [
        "dbc5623eb2898f5b5dcdc0b16077bb3f58629c78"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 18 06:57:00 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:56 2011 +0000"
      },
      "message": "target: remove the task_sg_bidi field se_task and pSCSI BIDI support\n\nThis field is never used given that BIDI handling happens at the\ncommand and not the task level.  Remove it and the dead code in\npscsi that tries to work on it.\n\nIt also prevents pSCSI passthrough for the two currently enabled BIDI\ncommands now that task-\u003etask_sg_bidi support has been removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "dbc5623eb2898f5b5dcdc0b16077bb3f58629c78",
      "tree": "f69f4cba91f373a40bcfbbfca8b5383ee297320e",
      "parents": [
        "35e0e757537b9239172e35db773dd062727fd612"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Oct 22 01:03:54 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:54 2011 +0000"
      },
      "message": "target: transport_subsystem_check_init cleanups\n\nRemove the now unnecessary extra call to transport_subsystem_check_init() in\ntarget_core_register_fabric(), and also merge transport_subsystem_reqmods()\ndirectly into transport_subsystem_check_init().\n\nReported-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "35e0e757537b9239172e35db773dd062727fd612",
      "tree": "3a54e1e426f1a962219325eac474b715a4699924",
      "parents": [
        "59aaad1ec44d9a77c32b873b001f31c5af47fcc7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:53 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:52 2011 +0000"
      },
      "message": "target: use a workqueue for I/O completions\n\nInstead of abusing the target processing thread for offloading I/O\ncompletion in the backends to user context add a new workqueue.  This means\ncompletions can be processed as fast as available CPU time allows it,\nincluding in parallel with other completions and more importantly I/O\nsubmission or QUEUE FULL retries.  This should give much better performance\nespecially on loaded systems.\n\nAs a fallout we can merge all the completed states into a single\none.\n\nOn the downside this change complicates lun reset handling a bit by\nrequiring us to cancel a work item only for those states that have it\ninitialized.  The alternative would be to either always initialize the work\nitem to a dummy handler, or always use the same handler and do a switch on\nthe state. The long term solution will be a flag that says that the command\nhas an initialized work item, but that\u0027s only going to be useful once we\nhave more users.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "59aaad1ec44d9a77c32b873b001f31c5af47fcc7",
      "tree": "7246282fed654e4e09f79e4989e0b0689dd8e13b",
      "parents": [
        "f2da9dbdb54f2e9fa00dd01af6ff2ab06b4d90b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:52 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:51 2011 +0000"
      },
      "message": "target: remove unused TRANSPORT_ states\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f2da9dbdb54f2e9fa00dd01af6ff2ab06b4d90b7",
      "tree": "c4ae5aa2e59828b35462dcaf1758290c9d999f49",
      "parents": [
        "bfaf40ada2e15bc972cab4cd5452a88720e30647"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:51 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:49 2011 +0000"
      },
      "message": "target: remove TRANSPORT_DEFERRED_CMD state\n\nWe never check for this state, and it makes testing for a completed\nstate much harder given that it overrides the existing state.\n\nAlso remove the unused deferred_t_state which is related to it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bfaf40ada2e15bc972cab4cd5452a88720e30647",
      "tree": "23f64315f802c1e81b14a80988e1f192813c1133",
      "parents": [
        "4499dda85890e6726def812febaab5dc064cc920"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:50 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:47 2011 +0000"
      },
      "message": "target: remove the TRANSPORT_REMOVE state\n\nWe never queue an command with this state, and only set it in a completely\nbogus place in tcm_fc.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cc5d0f0f61645ca43d9a7320ec2f268bad5016c5",
      "tree": "4e6857339fed505ed1b373941126ff1e1e37a0ba",
      "parents": [
        "e99d48a62bfc6e64548e0d5085240c5024eca471"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:48 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:44 2011 +0000"
      },
      "message": "target: stop task timers earlier\n\nCurrently we stop the timers for all tasks in a command fairly late during\nI/O completion, which is fairly pointless and requires all kinds of safety\nchecks.\n\nInstead delete pending timers early on in transport_complete_task, thus\nensuring no new timers firest after that.  We take t_state_lock a bit later\nin that function thus making sure currenly running timers are out of the\ncriticial section.  To be completely sure the timer has finished we also\nadd another del_timer_sync call when freeing the task.\n\nThis also allows removing TF_TIMER_RUNNING as it would be equivalent\nto TF_ACTIVE now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e99d48a62bfc6e64548e0d5085240c5024eca471",
      "tree": "bf17954cdd6b995a7b2c1ac48fbc38fc2e6c3d6e",
      "parents": [
        "cdbb70bb4c17dad0ee23a357030021892a0f60f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:47 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:42 2011 +0000"
      },
      "message": "target: remove TF_TIMER_STOP\n\nTF_TIMER_STOP is useless as it only helps to mitigate a tiny race during\ndeleting the timer.  But given that we have cleared TF_ACTIVE at this point\nwe already have another mitigation a few lines down the function.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cdbb70bb4c17dad0ee23a357030021892a0f60f0",
      "tree": "8387550cc921a1fb92de73b455b25fdd3cc98e92",
      "parents": [
        "0c2cfe5fe78e682d6235a1d32a363460b1c77528"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:46 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:41 2011 +0000"
      },
      "message": "target: factor some duplicate code for stopping a task\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f7a5cc0b310af887f5391ba886d3d9254ac8920a",
      "tree": "c764805c79e4e4ff573a999573eb5dfa6965c461",
      "parents": [
        "e057f53308a5f071556ee80586b99ee755bf07f5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:42 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:34 2011 +0000"
      },
      "message": "target: remove SCF_EMULATE_QUEUE_FULL\n\nAdd a new boolean at_head parameter to transport_add_cmd_to_queue and thus\nobsolete the SCF_EMULATE_QUEUE_FULL flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e057f53308a5f071556ee80586b99ee755bf07f5",
      "tree": "560174961d64837f53b32f56bced6f9109717b8b",
      "parents": [
        "f55918fa3202a646dad2404f7de008108edc5048"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:41 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:32 2011 +0000"
      },
      "message": "target: remove the transport_qf_callback se_cmd callback\n\nRemove the need for the transport_qf_callback callback by making\nsure we have specific states with specific handlers for the two\nqueue full cases.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f55918fa3202a646dad2404f7de008108edc5048",
      "tree": "6b39361985ad31ce9511763e504dfdf89e92412b",
      "parents": [
        "df5fa691ce61aedd3e4dbcf960ee44f05b797d8b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 14 07:30:17 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:31 2011 +0000"
      },
      "message": "target: clean up the backend interface to caching parameters\n\nRemove the dpo_emulated, fua_write_emulated, fua_read_emulated and\nwrite_cache_emulated methods, and replace them with a simple bitfields in\nse_subsystem_api in those cases where they ever returned one.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b937d27052e5759b1308782166fe47bc76e05b4d",
      "tree": "eb5a99096bb695d208b5cacd27637c167e9bb8f5",
      "parents": [
        "485fd0d1e3b8010b538bd0b209f3592acc825677"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:09:13 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:15 2011 +0000"
      },
      "message": "target: remove the -\u003etransport_split_cdb callback in se_cmd\n\nAdd a switch statement implementing the CDB LBA/len update directly\nin target_get_task_cdb and remove the old -\u003etransport_split_cdb\ncallback and all its implementations.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "485fd0d1e3b8010b538bd0b209f3592acc825677",
      "tree": "a13b8785b9b24fcec032b9f28fd06597edae7256",
      "parents": [
        "6193f06e6fe27c9475e407cb3cf2b0d4cd2725b0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:09:12 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:13 2011 +0000"
      },
      "message": "target: replace -\u003eget_cdb with a target_get_task_cdb helper\n\nInstead of calling out to the backends from the core to get a per-task\nCDB and then modify it for the LBA/len pair used for this CDB provide\na helper that writes the adjusted CDB into a provided buffer and call\nthis method from -\u003edo_task in pscsi.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3189b067eeae4646f3c7fa0ed0d14659a682baa8",
      "tree": "b6e69465e1d79775e4afc2422e4067eea94dea3e",
      "parents": [
        "04629b7bde553e3703577779f53cb0ba1eddd2c0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:07:07 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:10 2011 +0000"
      },
      "message": "target: pack struct se_task more tightly\n\nRearrange the fields in se_task to avoid holes.  Also increase the\nflags field to 16 bits as we have the space for it, and this makes\nadding new flags safer.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "04629b7bde553e3703577779f53cb0ba1eddd2c0",
      "tree": "0ad137523361599cdd4c16daad11d6bab2893511",
      "parents": [
        "6c76bf951cb099f5573954b1f56c1121c3a41c72"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:07:04 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:08 2011 +0000"
      },
      "message": "target: Remove unnecessary se_task members\n\nThis is a squashed version of the following unnecessary se_task structure\nmember removal patches:\n\ntarget: remove the task_execute_queue field in se_task\n\n    Instead of using a separate flag we can simply do list_emptry checks\n    on t_execute_list if we make sure to always use list_del_init to remove\n    a task from the list.  Also factor some duplicate code into a new\n    __transport_remove_task_from_execute_queue helper.\n\ntarget: remove the read-only task_no field in se_task\n\n    The task_no field never was initialized and only used in debug printks,\n    so kill it.\n\ntarget: remove the task_padded_sg field in se_task\n\n    This field is only check in one place and not actually needed there.\n\n    Rationale:\n    - transport_do_task_sg_chain asserts that we have task_sg_chaining\n      set early on\n    - we only make use of the sg_prev_nents field we calculate based on it\n      if there is another sg list that gets chained onto this one, which\n      never happens for the last (or only) task.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6c76bf951cb099f5573954b1f56c1121c3a41c72",
      "tree": "e9b739b4fb28ae7e2be2fdf400dc4772d63360b8",
      "parents": [
        "42bf829eee0e36371a3df43978b14572c716cbe7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:07:03 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:06 2011 +0000"
      },
      "message": "target: make more use of the task_flags field in se_task\n\nReplace various atomic_t variables that were mostly under t_state_lock\nwith new flags in task_flags.  Note that the execution error path\ndidn\u0027t take t_state_lock before, so add it there.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "42bf829eee0e36371a3df43978b14572c716cbe7",
      "tree": "2f488a819a713a2cfb8c093e4779ffe312291cc3",
      "parents": [
        "c0427f155614908ca1147cd5b6a0d5cdcaef8327"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:07:00 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:05 2011 +0000"
      },
      "message": "target: Cleanup unused se_task bits\n\nThis is a squashed version of the following se_task cleanup patches:\n\n    target: remove the unused task_state_flags field in se_task\n    target: remove the unused se_obj_ptr field in se_task\n    target: remove the se_dev field in se_task\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c0427f155614908ca1147cd5b6a0d5cdcaef8327",
      "tree": "a4c4d59078679302ccea165080213d0752b1369d",
      "parents": [
        "0a020436d8baf412bcf5997aee7796276ea773ae"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:06:56 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:03 2011 +0000"
      },
      "message": "target: Cleanup unused target_core_base.h bits\n\nThis is a squashed version of the following target_core_base.h\ncleanup patches:\n\n    target: remove the unused SHUTDOWN_SIGS defintion\n    target: remove unused se_mem leftovers\n    target: remove the unused map_func_t typedef\n    target: move TRANSPORT_IOV_DATA_BUFFER to the iscsi-specific code\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8dc52b54207f361f7abf6cbe26f5199ae8b7cf23",
      "tree": "71b328bf052940a44af314b1524a2a7a3765337e",
      "parents": [
        "d270190a75e5b859c6d8eed8d4095fbb45f78264"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 09 02:02:51 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:58 2011 +0000"
      },
      "message": "target: Merge transport_cmd_finish_abort_tmr into transport_cmd_finish_abort\n\nThis patch merges transport_cmd_finish_abort_tmr() logic into a single\ntransport_cmd_finish_abort() function by adding a cmd-\u003ese_tmr_req check\naround transport_lun_remove_cmd(), and updates the single caller within\ncore_tmr_drain_tmr_list().\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": "d14921d6ad192868184686b3af5bb99cf3380510",
      "tree": "a6ffc3a5a695d6dc50ca1885cf41f2c372607fca",
      "parents": [
        "dd503a5fcc0dfb8b5fd887bd967b6f431176864b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 09 01:00:58 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:54 2011 +0000"
      },
      "message": "target: Convert -\u003etransport_wait_for_tasks usage to transport_generic_free_cmd\n\nThis patch converts se_cmd-\u003etransport_wait_for_tasks(se_cmd, 1) usage to use\ntransport_generic_free_cmd() directly in target-core and iscsi-target fabric\nusage.  The includes:\n\n*) Removal of the optional transport_generic_free_cmd() call from within\n   transport_generic_wait_for_tasks()\n*) Usage of existing SCF_SUPPORTED_SAM_OPCODE to determine when\n   transport_generic_wait_for_tasks() processing may occur instead of\n   checking se_cmd-\u003etransport_wait_for_tasks()\n*) Move transport_generic_wait_for_tasks() call ahead of core_dec_lacl_count()\n   and transport_lun_remove_cmd() in transport_generic_free_cmd() to follow\n   existing logic for iscsi-target w/ se_cmd-\u003etransport_wait_for_tasks(se_cmd, 1)\n*) Removal of se_cmd-\u003etransport_wait_for_tasks() function pointer\n*) Rename transport_generic_wait_for_tasks() -\u003e transport_wait_for_tasks(), and\n   add docbook comment.\n*) Add EXPORT_SYMBOL for transport_wait_for_tasks()\n\nFor the case in iscsi_target_erl2.c:iscsit_prepare_cmds_for_realligance()\nwhere se_cmd-\u003etransport_wait_for_tasks(se_cmd, 0) is called, this patch\nadds a direct call to transport_wait_for_tasks().\n\n(hch: Fix transport_generic_free_cmd() usage in iscsit_release_commands_from_conn)\n(nab: Add patch: Ensure that TMRs hit wait_for_tasks logic during release)\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": "dd503a5fcc0dfb8b5fd887bd967b6f431176864b",
      "tree": "59d5bd7db7d4040ea91def8676cca5334f9926a6",
      "parents": [
        "942d82646e16725ac366d44087b8c992f2cb2190"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Thu Oct 06 09:56:16 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:53 2011 +0000"
      },
      "message": "target: Have core_tmr_alloc_req() take an explicit GFP_xxx flag\n\nTesting in_interrupt() to know when sleeping is allowed is not really\nreliable (since eg it won\u0027t be true if the caller is holding a spinlock).\nInstead have the caller tell core_tmr_alloc_req() what GFP_xxx to use;\nevery caller except tcm_qla2xxx can use GFP_KERNEL.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a3eedc227bfa7c9e21ef3cebe164d06a4c507a71",
      "tree": "276a9003777f55abd8633a23c9e4151509c8d0f4",
      "parents": [
        "02b1a7463420e1cebe86c6755c44d3bd9489829e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 25 14:56:43 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:46 2011 +0000"
      },
      "message": "target: remove unused se_subsystem_api methods\n\nThe cdb_none, map_data_SG and map_control_SG methods have no callers left\nand can be removed now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "39c05f321a4b27f3036392eed68bd94ce2267155",
      "tree": "28f5db67b1ac89444428cc03d043481b51fbac71",
      "parents": [
        "82f1c8a4e7739eae9f1c32c2c419efdc19b8af41"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Oct 08 13:59:52 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:39 2011 +0000"
      },
      "message": "target: Remove session_reinstatement parameter from -\u003etransport_wait_for_tasks\n\nThis patch removes the unnecessary session_reinstatement parameter from\nse_cmd-\u003etransport_wait_for_tasks(), logic in transport_generic_wait_for_tasks,\nand usage within iscsi-target code.\n\nThis also includes the removal of the \u0027bool\u0027 return from transport_put_cmd() +\ntransport_generic_free_cmd() that is no longer necessary.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "82f1c8a4e7739eae9f1c32c2c419efdc19b8af41",
      "tree": "e4b9141c59cbc1402b96fb34003205fe90d362df",
      "parents": [
        "e6a2573f1f5d66f0456c433afdfc63f33fdf9008"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:09:01 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:38 2011 +0000"
      },
      "message": "target: push session reinstatement out of transport_generic_free_cmd\n\nPush session reinstatement out of transport_generic_free_cmd into the only\ncaller that actually needs it.  Clean up transport_generic_free_cmd a bit,\nand remove the useless comment.  I\u0027d love to add a more useful kerneldoc\ncomment for it, but as this point I\u0027m still a bit confused in where it\nstands in the command release stack.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2dbc43d256c5371ebc294e3534620663eb80a5ce",
      "tree": "f23de858027389d0eaa85a17b35748139d8275b2",
      "parents": [
        "31afc39c0c93edec5a117371f1bd2a264cceafac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:08:19 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:31 2011 +0000"
      },
      "message": "target: remove transport_free_se_cmd\n\nIt is only called by transport_release_cmd, so inline it there.  Also add\na kerneldoc comment for transport_release_cmd while we are at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "680b73c5f2fb60336707b53b2b2792d2c01b69dc",
      "tree": "2c80c260bda7e87dadb11dd3b91b70828fc775fb",
      "parents": [
        "acf3ecc4a1c7460662757c07ee1ec625760d3ae6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Sep 12 21:51:14 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:28 2011 +0000"
      },
      "message": "target: remove transport_generic_handle_cdb\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "395cf9691d72173d8cdaa613c5f0255f993af94b",
      "tree": "813be524794fe1c0850805d7faca90e45fd0e60b",
      "parents": [
        "e060c38434b2caa78efe7cedaff4191040b65a15"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Mon Aug 15 02:02:26 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Sep 27 18:08:04 2011 +0200"
      },
      "message": "doc: fix broken references\n\nThere are numerous broken references to Documentation files (in other\nDocumentation files, in comments, etc.). These broken references are\ncaused by typo\u0027s in the references, and by renames or removals of the\nDocumentation files. Some broken references are simply odd.\n\nFix these broken references, sometimes by dropping the irrelevant text\nthey were part of.\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "052605c6caa3e1edf8eee8fe5fe6d53f5721f39a",
      "tree": "87997618fff7f63a4c5bef8a6a093d522d424266",
      "parents": [
        "eb39d34004888afcc0a44d9c36383cd69fa3b3b9"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jul 26 17:48:43 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Aug 22 19:25:35 2011 +0000"
      },
      "message": "target: Make standard INQUIRY return \u0027not connected\u0027 for tpg_virt_lun0\n\nThis patch changes target_emulate_inquiry_std() to set the \u0027not connected\u0027\n(0x35) bit in standard INQUIRY response data when we are processing a\nrequest to a virtual LUN\u003d0 mapping from struct se_device *g_lun0_dev that\nhave been setup for us in transport_lookup_cmd_lun().\n\nThis addresses an issue where qla2xxx FC clients need to be able\nto create demo-mode I_T FC Nexuses by default, but should not be\nexposing the default set of TPG LUNs to all FC clients.  This includes\nadding an new optional target_core_fabric_ops-\u003etpg_check_demo_mode_login_only()\ncaller to allow demo_mode nexuses to skip the old default of bulding\na demo-mode MappedLUNs list via core_tpg_add_node_to_devs().\n\n(roland: Add missing tpg_check_demo_mode_login_only check in core_dev_add_lun)\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andrew Vasquez \u003candrew.vasquez@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "fa4951595648c14754621c99a07c47c9b9dcf05b",
      "tree": "4c722e426d18130e31baf2d3d9c5f4aeba068989",
      "parents": [
        "11650b859681e03fdbf26277fcfc5f1f62186703"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 08:24:22 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:49 2011 +0000"
      },
      "message": "target: Bump version to v4.1.0-rc1-ml\n\nThis patch bumps the target core version to v4.1.0-rc1 now that we are\nin sync with upstream lio-core-2.6.git/master\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "11650b859681e03fdbf26277fcfc5f1f62186703",
      "tree": "1073305aa356589d05cf59c70dae748c4c0e8b75",
      "parents": [
        "163cd5fa9fcb7ccc73a9e39d5f601cfd41a23bfa"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Jul 18 22:26:40 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:49 2011 +0000"
      },
      "message": "target: remove custom hex2bin() implementation\n\nThis patch drops transport_asciihex_to_binaryhex() in favor of proper\nhex2bin usage from include/linux/kernel.h:hex2bin()\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5de619a31d9cb051d1f818e661af4e54def82316",
      "tree": "bbdf282c42fe3818607fff4f3a4f7d1b74ee064e",
      "parents": [
        "1d20bb6147954d4fbd337a3d1b40c7eeae254cd7"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jul 17 02:57:58 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:49 2011 +0000"
      },
      "message": "target: Update QUEUE ALGORITHM MODIFIER control page default\n\nThis patch adds the default \u0027Unrestricted reordering allowed\u0027 for SCSI\ncontrol mode page QUEUE ALGORITHM MODIFIER on a per se_device basis in\ntarget_modesense_control() following spc4r23.  This includes a new\nemuluate_rest_reord configfs attribute that currently (only) accepts\nzero to signal \u0027Unrestricted reordering allowed\u0027 in control mode page\nusage by the backend target device.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "1d20bb6147954d4fbd337a3d1b40c7eeae254cd7",
      "tree": "23dcdd9376c5e26acfd2817812e2d5ccfbf81149",
      "parents": [
        "6708bb27bb2703da238f21f516034263348af5be"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jul 21 04:41:48 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: -\u003emap_task_SG conversion to -\u003emap_control_SG and -\u003emap_data_SG\n\nThis patch breaks up the -\u003emap_task_SG() backend call into two seperate\n-\u003emap_control_SG() and -\u003emap_data_SG() in order to better address\nIBLOCK and pSCSI.  IBLOCK only allocates bios for -\u003emap_data_SG(), and\npSCSI will allocate a struct request for both cases.\n\nThis patch fixes incorrect usage of -\u003emap_task_SG() for all se_cmd descriptors\nin transport_generic_new_cmd() by moving the call into it\u0027s proper location\ndirectly inside of transport_allocate_data_tasks()\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6708bb27bb2703da238f21f516034263348af5be",
      "tree": "a23e1f9eab22933d773d6b6ad6263d6751379a00",
      "parents": [
        "ec98f7825c6eaa4a9afb0eb518826efc8a2ed4a2"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Wed Jun 08 10:36:43 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: Follow up core updates from AGrover and HCH (round 4)\n\nThis patch contains the squashed version of forth round series cleanups\nfrom Andy and Christoph following the post heavy lifting in the preceeding:\n\u0027Eliminate usage of struct se_mem\u0027 and \u0027Make all control CDBs scatter-gather\u0027\nchanges.  This also includes a conversion of target core and the v3.0\nmainline fabric modules (loopback and tcm_fc) to use pr_debug and the\nCONFIG_DYNAMIC_DEBUG infrastructure!\n\nThese have been squashed into this third and final round for v3.1.\n\ntarget: Remove ifdeffed code in t_g_process_write\ntarget: Remove direct ramdisk code\ntarget: Rename task_sg_num to task_sg_nents\ntarget: Remove custom debug macros for pr_debug. Use pr_err().\ntarget: Remove custom debug macros in mainline fabrics\ntarget: Set WSNZ\u003d1 in block limits VPD. Abort if WRITE_SAME sectors \u003d 0\ntarget: Remove transport do_se_mem_map callback\ntarget: Further simplify transport_free_pages\ntarget: Redo task allocation return value handling\ntarget: Remove extra parentheses\ntarget: change alloc_task call to take *cdb, not *cmd\n\n(nab: Fix bogus struct file assignments in fd_do_readv and fd_do_writev)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ec98f7825c6eaa4a9afb0eb518826efc8a2ed4a2",
      "tree": "b4ccee24db5d7d54ccfa5e3be2441d3a4e37f295",
      "parents": [
        "3a86720567fd92819b449df10db85a2f73447d87"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Wed Jul 20 19:28:46 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: Eliminate usage of struct se_mem\n\nBoth backstores and fabrics use arrays of struct scatterlist to describe\ndata buffers. However TCM used struct se_mems, basically a linked list\nof scatterlist entries. We are able to simplify the code by eliminating\nthis intermediate data structure and just using struct scatterlist[]\nthroughout.\n\nAlso, moved attachment of task to cmd out of transport_generic_get_task\nand into allocate_control_task and allocate_data_tasks. The reasoning\nis that it\u0027s nonintuitive that get_task should automatically add it to\nthe cmd\u0027s task list -- it should just return an allocated, initialized\ntask. That\u0027s all it should do, based on the function\u0027s name, so either the\nfunction shouldn\u0027t do it, or the name should change to encapsulate the\nentire essence of what it does.\n\n(nab: Fix compile warnings in tcm_fc, and make transport_kmap_first_data_page\n honor sg-\u003eoffset for SGLs from contigious memory with TCM_Loop, and\n fix control se_cmd descriptor memory leak)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3a86720567fd92819b449df10db85a2f73447d87",
      "tree": "2d971854eabe7b4bc8ff091b0e9d91dca8377bbe",
      "parents": [
        "d0229ae3fed59b4009e33f836d9ad4e312294d46"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Jun 28 10:31:18 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: Pass 2nd param of transport_split_cdb by value\n\nSince sectors is not modified, it\u0027s more straightforward to do this.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d0229ae3fed59b4009e33f836d9ad4e312294d46",
      "tree": "148f60e1db4efa563d3f4ee5e7bc735358b57a13",
      "parents": [
        "05d1c7c0d0db4cc25548d9aadebb416888a82327"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Fri Jul 08 17:04:53 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: Enforce 1 page max for control cdb buffer sizes\n\nDue to all cdbs\u0027 data buffers being referenced by scatterlists, buffers\nof more than a page are not contiguous. Instead of handling this in all\ncontrol command handlers, we may be able to get away with just limiting\ncontrol cdb data buffers to one page. The only control CDBs we handle that\nhave potentially large data buffers are REPORT LUNS and UNMAP, so if we\ndidn\u0027t want to live with this limitation, they would need to be modified\nto walk the pages in the data buffer\u0027s sgl.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "05d1c7c0d0db4cc25548d9aadebb416888a82327",
      "tree": "290243526d188a7f6a683b0e13a63c7207471fa1",
      "parents": [
        "e22a7f075226c51f3f71b922e9eeb4f99fac1475"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Wed Jul 20 19:13:28 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:48 2011 +0000"
      },
      "message": "target: Make all control CDBs scatter-gather\n\nPreviously, some control CDBs did not allocate memory in pages for their\ndata buffer, but just did a kmalloc. This patch makes all cdbs allocate\npages.\n\nThis has the benefit of streamlining some paths that had to behave\ndifferently when we used two allocation methods. The downside is that\nall accesses to the data buffer need to kmap it before use, and need to\nhandle data in page-sized chunks if more than a page is needed for a given\ncommand\u0027s data buffer.\n\nFinally, note that cdbs with no data buffers are handled a little\ndifferently. Before, SCSI_NON_DATA_CDBs would not call get_mem at all\n(they\u0027d be in the final else in transport_allocate_resources) but now\nthese will make it into generic_get_mem, but just not allocate any\nbuffers.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e22a7f075226c51f3f71b922e9eeb4f99fac1475",
      "tree": "e0a04f974153136eafe13793ee59be58c37c5ffc",
      "parents": [
        "b2eb705e00a9b9a9b3122192a7ab3e9058f0c48a"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Jul 05 13:34:52 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:47 2011 +0000"
      },
      "message": "target: Implement Block Device Characteristics VPD page\n\nImplement page B1h, Block Device Characteristics, so that we can report\na medium rotation rate of 1 (non-rotating / solid state) if the\nis_nonrot device attribute is set; we update the iblock backend to set\nthis attribute if the underlying Linux block device has its nonrot\nflag set.\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": "07bde79a5c355dbca66ca4318645aa17b4c0d859",
      "tree": "e602132193959df436a2f5d325cd3da9984ada4f",
      "parents": [
        "695434e1cbd57f404110bf4ab187a5127ffd79bb"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jun 13 14:46:09 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:45 2011 +0000"
      },
      "message": "target: Add SCF_EMULATE_QUEUE_FULL -\u003e transport_handle_queue_full\n\nThis patch adds SCF_EMULATE_QUEUE_FULL support using -EAGAIN failures\nvia transport_handle_queue_full() to signal queue full in completion\npath TFO-\u003equeue_data_in() and TFO-\u003equeue_status() callbacks.\n\nThis is done using a new se_cmd-\u003etransport_qf_callback() to handle\nthe following queue full exception cases within target core:\n\n*) TRANSPORT_COMPLETE_OK (for completion path queue full)\n\n*) TRANSPORT_COMPLETE_QF_WP (for TRANSPORT_WRITE_PENDING queue full)\n\n*) transport_send_check_condition_and_sense() failure paths in\n   transport_generic_request_failure() and transport_generic_complete_ok()\n\nAll logic is driven using se_device-\u003eqf_work_queue -\u003e target_qf_do_work()\nto to requeue outstanding se_cmd at the head of se_dev-\u003equeue_obj-\u003eqobj_list\nfor transport_processing_thread() execution.\n\nTested using tcm_qla2xxx with MAX_OUTSTANDING_COMMANDS\u003d128 for FCP READ\nto trigger the TRANSPORT_COMPLETE_OK queue full cases, and a simulated\nTFO-\u003ewrite_pending() -EAGAIN failure to trigger TRANSPORT_COMPLETE_QF_WP.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "695434e1cbd57f404110bf4ab187a5127ffd79bb",
      "tree": "7d014011669e28498cf3fd210427373992031735",
      "parents": [
        "35462975b2b197b990fedbb74b81f9bea9d344cb"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jun 03 20:59:19 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:44 2011 +0000"
      },
      "message": "target: Add transport_handle_cdb_direct optimization\n\nThis patch adds a transport_handle_cdb_direct() optimization for mapping\nand queueing tasks directly from within fabric processing context by calling\nthe newly exported transport_generic_new_cmd().  This currently expects to\nbe called from process context only, and will fail if called within interrupt\ncontext.\n\nThis patch also leaves transport_generic_handle_cdb() unmodified for the\nmoment to function as expected with existing tcm_fc and ib_srpt fabrics,\nand will be removed once these have been converted and tested with v4.1\ncode using transport_handle_cdb_direct().\n\nBased on Andy\u0027s original patch here:\n\n[PATCH 39/42] target: Call transport_new_cmd instead of adding to cmd queue\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "35462975b2b197b990fedbb74b81f9bea9d344cb",
      "tree": "72aea1508e81292f7fe7a17b39ed7f59de3dc3ce",
      "parents": [
        "db1620a2788f6c470804f6a5f983a0152188bd90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue May 31 23:56:57 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:44 2011 +0000"
      },
      "message": "target: merge release_cmd methods\n\nThe release_cmd_to_pool and release_cmd_direct methods are always the same.\nMerge them into a single release_cmd method, and clean up the fallout.\n\n(nab: fix breakage in transport_generic_free_cmd() parameter build breakage\n in drivers/target/tcm_fc/tfc_cmd.c)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "db1620a2788f6c470804f6a5f983a0152188bd90",
      "tree": "031e8ee5657121717b222bf3c0b6f3fe989d369f",
      "parents": [
        "dc2e652d5f36d7b1c8764c3c3174e28ec2d9903b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue May 31 17:06:43 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:44 2011 +0000"
      },
      "message": "target: remove the unused SCF_* flags\n\nThis patch contains a squashed version to remove unused  SCF_* flags:\n\ntarget: remove the unused SCF_SE_DISABLE_ONLINE_CHECK flag\ntarget: remove the unused SCF_CMD_PASSTHROUGH_NOALLOC flag\ntarget: remove the unused SCF_EMULATE_SYNC_UNMAP flag\ntarget: remove the unused SCF_EMULATE_SYNC_CACHE flag\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "dc2e652d5f36d7b1c8764c3c3174e28ec2d9903b",
      "tree": "08f87c10784efbffffe39384d1ee1e3c7c8094ed",
      "parents": [
        "a1d8b49abd60ba5d09e7c968731abcb0f8f1cbf6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue May 31 17:06:42 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:44 2011 +0000"
      },
      "message": "target: remove the always-noop -\u003enew_cmd_failure method\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a1d8b49abd60ba5d09e7c968731abcb0f8f1cbf6",
      "tree": "8cbfd54b4829fd5f0ed206e15c81c1e626e7701d",
      "parents": [
        "dd3a5ad8e0c8706659f02c4a72b8c87f6f7ab479"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon May 02 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:44 2011 +0000"
      },
      "message": "target: Updates from AGrover and HCH (round 3)\n\nThis patch contains a squashed version of third round series cleanups,\nimprovements ,and simplfications from Andy and Christoph ahead of the\nheavy lifting between round 3 -\u003e 4 for the target core SGL conversion.\n\nThis include cleanups to the main target I/O path and other miscellaneous\nupdates.\n\ntarget: Replace custom sg\u003c-\u003ebuf functions with lib funcs\ntarget: Simplify sector limiting code\ntarget: get_cdb should never return NULL\ntarget: Simplify transport_memcpy_se_mem_read_contig\ntarget: Use assignment rather than increment for t_task_cdbs\ntarget: Don\u0027t pass dma_size to generic_get_mem\ntarget: Pass sg with type scatterlist in transport_map_sg_to_mem\ntarget: Move task_sg_num next to task_sg in struct se_task\ntarget: inline struct se_transport_task into struct se_cmd\ntarget: Change name \u0026 semantics of transport_get_sectors()\ntarget: Remove unused members of se_cmd\ntarget: Rename se_cmd.t_task_cdbs to t_task_list_num\ntarget: Fix some spelling\ntarget: Remove unused var from transport_generic_do_tmr\ntarget: map_sg_to_mem: return sg_count in return value\ntarget/pscsi: Use min_t for sector limits\ntarget/pscsi: Unused param for pscsi_get_bio()\ntarget: Rename get_cdb_count to allocate_tasks\ntarget: Make transport_generic_new_cmd() available for iscsi-target\ntarget: Remove fabric callback to allocate iovecs\ntarget: Fix transport_generic_new_cmd WRITE comment\n\n(hch: Use __GFP_ZERO usage for alloc_pages() usage)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5951146dea1ac8ff2f177477c907084d63913cad",
      "tree": "699cb7c498ca1799ae3e349cb4360171d9fa63e0",
      "parents": [
        "f22c119683e73498d8126581a1be75e1b7a339a3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Jul 19 10:26:37 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:43 2011 +0000"
      },
      "message": "target: More core cleanups from AGrover (round 2)\n\nThis patch contains the squashed version of second round of target core\ncleanups and simplifications and Andy and Co.   It also contains a handful\nof fixes to address bugs the original series and other minor cleanups.\n\nHere is the condensed shortlog:\n\ntarget: Remove unneeded casts to void*\ntarget: Rename get_lun_for_{cmd,tmr} to lookup_{cmd,tmr}_lun\ntarget: Make t_task a member of se_cmd, not a pointer\ntarget: Handle functions returning \"-2\"\ntarget: Use cmd-\u003ese_dev over cmd-\u003ese_lun-\u003elun_se_dev\ntarget: Embed qr in struct se_cmd\ntarget: Replace embedded struct se_queue_req with a list_head\ntarget: Rename list_heads that are nodes in struct se_cmd to \"*_node\"\ntarget: Fold transport_device_setup_cmd() into lookup_{tmr,cmd}_lun()\ntarget: Make t_mem_list and t_mem_list_bidi members of t_task\ntarget: Add comment \u0026 cleanup transport_map_sg_to_mem()\ntarget: Remove unneeded checks in transport_free_pages()\n\n(Roland: Fix se_queue_req removal leftovers OOPs)\n(nab: Fix transport_lookup_tmr_lun failure case)\n(nab: Fix list_empty(\u0026cmd-\u003et_task.t_mem_bidi_list) inversion bugs)\n\nSigned-off-by: 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": "e3d6f909ed803d92a5ac9b4a2c087e0eae9b90d0",
      "tree": "2eb65e958a2cc35c896a0e184ec09edcb9076b3b",
      "parents": [
        "a8c6da90b823fb94ca76ca0df6bb44e6e205dc87"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Jul 19 08:55:10 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:43 2011 +0000"
      },
      "message": "target: Core cleanups from AGrover (round 1)\n\nThis patch contains the squashed version of a number of cleanups and\nminor fixes from Andy\u0027s initial series (round 1) for target core this\npast spring.  The condensed log looks like:\n\ntarget: use errno values instead of returning -1 for everything\ntarget: Rename transport_calc_sg_num to transport_init_task_sg\ntarget: Fix leak in error path in transport_init_task_sg\ntarget/pscsi: Remove pscsi_get_sh() usage\ntarget: Make two runtime checks into WARN_ONs\ntarget: Remove hba queue depth and convert to spin_lock_irq usage\ntarget: dev-\u003edev_status_queue_obj is unused\ntarget: Make struct se_queue_req.cmd type struct se_cmd *\ntarget: Remove __transport_get_qr_from_queue()\ntarget: Rename se_dev-\u003eg_se_dev_list to se_dev_node\ntarget: Remove struct se_global\ntarget: Simplify scsi mib index table code\ntarget: Make dev_queue_obj a member of se_device instead of a pointer\ntarget: remove extraneous returns at end of void functions\ntarget: Ensure transport_dump_vpd_ident_type returns null-terminated str\ntarget: Function pointers don\u0027t need to use \u0027\u0026\u0027 to be assigned\ntarget: Fix comment in __transport_execute_tasks()\ntarget: Misc style cleanups\ntarget: rename struct pr_reservation_template to pr_reservation\ntarget: Remove #defines that just perform indirection\ntarget: Inline transport_get_task_from_execute_queue()\ntarget: Minor header comment fixes\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "efa4988d72c69d3024ee25ad1ae87c83b9f8267e",
      "tree": "7ee08a9e843d21a0163cbaa579f9b042ed929b29",
      "parents": [
        "e434f1f182674d775c52869d49f714a2614d1c66"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jul 19 08:09:01 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jul 22 09:37:42 2011 +0000"
      },
      "message": "target: Remove unnecessary *cdb transport_get_lun_for_cmd parameter\n\nThis patch removes the now unnecessary \u0027unsigned char *cdb\u0027 function\nparameter from transport_get_lun_for_cmd().  This also includes updating\nlio-target, tcm_loop and tcm_fc usage of transport_get_lun_for_cmd().\n\nReported-by: Fubo Chen \u003cfubo.chen@gmail.com\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "d60b7a0fc918245c6fb8cc2b15e570e040d8f38b"
}
