)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "d60b7a0fc918245c6fb8cc2b15e570e040d8f38b",
      "tree": "954f4a6144738b17f6c08e6a72cd30f537e272fd",
      "parents": [
        "af57c3ac9947990da2608561b71f4799eb7795c6"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu May 19 20:19:13 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jbottomley@parallels.com",
        "time": "Tue May 24 13:02:42 2011 -0400"
      },
      "message": "[SCSI] target: Convert REPORT_LUNs to use int_to_scsilun\n\nThis patch converts transport_core_report_lun_response() to use\ndrivers/scsi/scsi_scan.c:int_to_scsilun instead of using the\nstruct target_core_fabric_ops-\u003epack_lun() fabric provided API vector.\n\nIt also removes the tfo-\u003epack_lun check from target_fabric_tf_ops_check()\nand removes from struct target_core_fabric_ops-\u003epack_lun() from\ntarget_core_fabric_ops.h, and the following mainline scsi-misc fabric\nmodules:\n\n*) tcm_loop: Drop tcm_loop_pack_lun() usage\n*) tcm_fc: Drop ft_pack_lun() usage\n\nReported-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cjbottomley@parallels.com\u003e\n"
    },
    {
      "commit": "f436677262a5b524ac87675014c6d4e8ee153029",
      "tree": "c3ab2fb111163ac52eb4999b83d3063ca4fca718",
      "parents": [
        "53ab6709b4d35b1924240854d794482fd7d33d4a"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu May 19 20:19:11 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jbottomley@parallels.com",
        "time": "Tue May 24 13:00:10 2011 -0400"
      },
      "message": "[SCSI] target: Fix bug with task_sg chained transport_free_dev_tasks release\n\nThis patch addresses a bug in the target core release path for HW\noperation where transport_free_dev_tasks() was incorrectly being called\nfrom transport_lun_remove_cmd() while releasing a se_cmd reference and\ncalling struct target_core_fabric_ops-\u003equeue_data_in().\n\nThis would result in a OOPs with HW target mode when the release of\nse_task-\u003etask_sg[] would happen before pci_unmap_sg() can be called in\nHW target mode fabric module code.  This patch addresses the issue by\nmoving transport_free_dev_tasks() from transport_lun_remove_cmd() into\ntransport_generic_free_cmd(), and adding TRANSPORT_FREE_CMD_INTR and\ntransport_generic_free_cmd_intr() to allow se_cmd descriptor release\nto happen fromfrom within transport_processing_thread() process context\nwhen release of se_cmd is not possible from HW interrupt context.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: stable@kernel.org\nSigned-off-by: James Bottomley \u003cjbottomley@parallels.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "12d233842987d9972957419e427987b94f7bd7b4",
      "tree": "b3d08872b37f08aac3a9ec66e3fef49fbedb0f19",
      "parents": [
        "15fb48cc40be170423fe8ddd17666aa6175315e3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Mar 14 04:06:11 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 23 11:36:50 2011 -0500"
      },
      "message": "[SCSI] target: add initial statistics\n\nThis patch adds a target_core_mib.c statistics conversion for\nbackend context struct se_subsystem_dev + struct se_device config_group\nbased statistics in target_core_device.c using CONFIGFS_EATTR()\nbased struct config_item_types from target_core_stat.c code.\n\nThe conversion from backend /proc/scsi_target/mib/ context output to configfs\ndefault groups+attributes include scsi_dev, scsi_lu, and scsi_tgt_dev output\nfrom within individual:\n\n\t/sys/kernel/config/target/core/$HBA/DEV/\n\nThe legacy procfs output now appear as individual configfs attributes under:\n\n*) $HBA/$DEV/statistics/scsi_dev:\n\n|-- indx\n|-- inst\n|-- ports\n`-- role\n\n*) $HBA/$DEV/statistics/scsi_lu:\n\n|-- creation_time\n|-- dev\n|-- dev_type\n|-- full_stat\n|-- hs_num_cmds\n|-- indx\n|-- inst\n|-- lu_name\n|-- lun\n|-- num_cmds\n|-- prod\n|-- read_mbytes\n|-- resets\n|-- rev\n|-- state_bit\n|-- status\n|-- vend\n`-- write_mbytes\n\n*) $HBA/$DEV/statistics/scsi_tgt_dev:\n\n|-- indx\n|-- inst\n|-- non_access_lus\n|-- num_lus\n|-- resets\n`-- status\n\nThe conversion from backend /proc/scsi_target/mib/ context output to configfs\ndefault groups+attributes include scsi_port, scsi_tgt_port and scsi_transport\noutput from within individual:\n\n\t/sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/\n\nThe legacy procfs output now appear as individual configfs attributes under:\n\n*) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_port\n\n|-- busy_count\n|-- dev\n|-- indx\n|-- inst\n`-- role\n\n*) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_tgt_port\n\n|-- dev\n|-- hs_in_cmds\n|-- in_cmds\n|-- indx\n|-- inst\n|-- name\n|-- port_index\n|-- read_mbytes\n`-- write_mbytes\n\n*) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_transport\n\n|-- dev_name\n|-- device\n|-- indx\n`-- inst\n\nThe conversion from backend /proc/scsi_target/mib/ context output to configfs\ndefault groups+attributes include scsi_att_intr_port and scsi_auth_intr output\nfrom within individual:\n\n\t/sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/\n\nThe legacy procfs output now appear as individual configfs attributes under:\n\n*) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_att_intr_port\n\n|-- dev\n|-- indx\n|-- inst\n|-- port\n|-- port_auth_indx\n`-- port_ident\n\n*) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_auth_intr\n\n|-- att_count\n|-- creation_time\n|-- dev\n|-- dev_or_port\n|-- hs_num_cmds\n|-- indx\n|-- inst\n|-- intr_name\n|-- map_indx\n|-- num_cmds\n|-- port\n|-- read_mbytes\n|-- row_status\n`-- write_mbytes\n\nAlso, this includes adding struct target_fabric_configfs_template-\u003e\ntfc_wwn_fabric_stats_cit and -\u003etfc_tpg_nacl_stat_cit respectively for\nuse during target_core_fabric_configfs.c:target_fabric_setup_cits()\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "15fb48cc40be170423fe8ddd17666aa6175315e3",
      "tree": "3733a84fd12074f014a639cff681a250e0ffaa2f",
      "parents": [
        "54550fabfecdb71e0deb51999cca7d28bb4299ed"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Mar 14 04:06:10 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 23 11:36:49 2011 -0500"
      },
      "message": "[SCSI] target: update version to v4.0.0-rc7-ml\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5c6cd613196558ba50ba97268b6d225c8d2f56d6",
      "tree": "9b00f8e0b21eb4e49f2237be72b468c1c7d30d0e",
      "parents": [
        "065f97161b2da30b13000b1d9f64adff7e01e270"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Mar 14 04:06:04 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 23 11:36:35 2011 -0500"
      },
      "message": "[SCSI] target: Convert TMR REQ/RSP definitions to target namespace\n\nThis patch changes include/target/target_core_tmr.h code to use\ntarget specific \u0027TMR_*\u0027 prefixed definitions for fabric independent\nSCSI Task Management Request/Request naming in include/scsi/scsi.h\ndefinitions for mainline target code.\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "35ce9e26d7e0674892f77a9172c898dfcba50064",
      "tree": "b37702735fc5e01c64e03342d5adab79caa492ed",
      "parents": [
        "5dd7ed2e811d5cd12f31fb7f0c5ad0107d494a12"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Mar 14 04:06:02 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 23 11:36:32 2011 -0500"
      },
      "message": "[SCSI] target: Remove spurious double cast from structure macro accessors\n\nReported-by: Fubo Chen \u003cfubo.chen@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5dd7ed2e811d5cd12f31fb7f0c5ad0107d494a12",
      "tree": "f5a9318be8ce5460940e769b710a07cb60026940",
      "parents": [
        "05aea6e7e497ab418239ae54fe5966d52cbd8550"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Mar 14 04:06:01 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Mar 23 11:36:29 2011 -0500"
      },
      "message": "[SCSI] target: Minor sparse warning fixes and annotations\n\nThis patch addresses the majority of sparse warnings and adds\nproper locking annotations.  It also fixes the dubious one-bit signed\nbitfield, for which the signed one-bit types can be 0 or -1 which can\ncause a problem if someone ever checks if (foo-\u003elu_gp_assoc \u003d\u003d 1).\nThe current code is fine because everyone just checks zero vs non-zero.\nBut Sparse complains about it so lets change it.  The warnings look like\nthis:\n\ninclude/target/target_core_base.h:228:26: error: dubious one-bit signed bitfield\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Fubo Chen \u003cfubo.chen@gmail.com\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "52208ae3fc60cbcb214c10fb8b82304199e2cc3a",
      "tree": "d7c7e938453b257ce49197cb91f64fed1860b254",
      "parents": [
        "493f3358cb289ccf716c5a14fa5bb52ab75943e5"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Feb 24 16:58:20 2011 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Feb 28 11:23:32 2011 -0600"
      },
      "message": "[SCSI] target: Fix t_transport_aborted handling in LUN_RESET + active I/O shutdown\n\nThis patch addresses two outstanding bugs related to\nT_TASK(cmd)-\u003et_transport_aborted handling during TMR LUN_RESET and\nactive I/O shutdown.\n\nThis first involves adding two explict t_transport_aborted\u003d1\nassignments in core_tmr_lun_reset() in order to signal the task has\nbeen aborted, and updating transport_generic_wait_for_tasks() to skip\nsleeping when t_transport_aborted\u003d1 has been set.  This fixes an issue\nwhere transport_generic_wait_for_tasks() would end up sleeping\nindefinately when called from fabric module context while TMR\nLUN_RESET was happening with long outstanding backend struct se_task\nnot yet being completed.\n\nThe second adds a missing call to\ntransport_remove_task_from_execute_queue() when\ntask-\u003etask_execute_queue\u003d1 is set in order to fix an OOPs when\ntask-\u003et_execute_list has not been dropped.  It also fixes the same\ncase in transport_processing_shutdown() to prevent the issue from\nhappening during active I/O struct se_device shutdown.\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "1f6fe7cba1c0a817a8712d7fdd0ec1b4ddd4ea2f",
      "tree": "d3210e224f8c415d78fbf70883026fa945591b8a",
      "parents": [
        "e89d15eeadb172bd53ca6362bf9ab6b22077224c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 09 15:34:54 2011 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Feb 12 12:32:41 2011 -0600"
      },
      "message": "[SCSI] target: fix use after free detected by SLUB poison\n\nThis patch moves a large number of memory release paths inside of the\nconfigfs callback target_core_hba_item_ops-\u003erelease() called from\nwithin fs/configfs/item.c: config_item_cleanup() context.  This patch\nresolves the SLUB \u0027Poison overwritten\u0027 warnings.\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e89d15eeadb172bd53ca6362bf9ab6b22077224c",
      "tree": "d7b5716ed3ccc80a4b3863305d6a0f8284ce49e4",
      "parents": [
        "e63af95888894af6ca4112dc90083d1dff0fec29"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 09 15:35:03 2011 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Feb 12 12:15:47 2011 -0600"
      },
      "message": "[SCSI] target: Remove procfs based target_core_mib.c code\n\nThis patch removes the legacy procfs based target_core_mib.c code,\nand moves the necessary scsi_index_tables functions and defines into\ntarget_core_transport.c and target_core_base.h code to allow existing\nfabric independent statistics to function.\n\nThis includes the removal of a handful of \u0027atomic_t mib_ref_count\u0027\ncounters used in struct se_node_acl, se_session and se_hba to prevent\nremoval while using seq_list procfs walking logic.\n\n[jejb: fix up compile failures]\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5",
      "tree": "71c6344688bf56ea6aaf18c586ab69ff4f077ade",
      "parents": [
        "f4013c3879d1bbd9f3ab8351185decd049502368"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Dec 17 11:11:26 2010 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Jan 14 10:12:29 2011 -0600"
      },
      "message": "[SCSI] target: Add LIO target core v4.0.0-rc6\n\nLIO target is a full featured in-kernel target framework with the\nfollowing feature set:\n\nHigh-performance, non-blocking, multithreaded architecture with SIMD\nsupport.\n\nAdvanced SCSI feature set:\n\n    * Persistent Reservations (PRs)\n    * Asymmetric Logical Unit Assignment (ALUA)\n    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)\n    * Full Error Recovery (ERL\u003d0,1,2)\n    * Active/active task migration and session continuation (ERL\u003d2)\n    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)\n\nMultiprotocol target plugins\n\nStorage media independence:\n\n    * Virtualization of all storage media; transparent mapping of IO to LUNs\n    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB\n    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.\n\nStandards compliance:\n\n    * Full compliance with IETF (RFC 3720)\n    * Full implementation of SPC-4 PRs and ALUA\n\nSignificant code cleanups done by Christoph Hellwig.\n\n[jejb: fix up for new block bdev exclusive interface. Minor fixes from\n Randy Dunlap and Dan Carpenter.]\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    }
  ]
}
