)]}'
{
  "log": [
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\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": "5bda90c8f20f0af93375721533f4081a40fa6f41",
      "tree": "0ac0395e80359e8b4b8fc4220effc7a6225d259b",
      "parents": [
        "d29a5b6acc4b63d4e05ff554509df6fbeaf527cd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:45 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 10:44:35 2011 +0000"
      },
      "message": "target: use -\u003eexectute_task for all CDB emulation\n\nInstead of calling into transport_emulate_control_cdb from\n__transport_execute_tasks for some CDBs always set up -\u003eexectute_tasks\nin the command sequence and use it uniformly.\n\n(nab: Add default passthrough break for SERVICE_ACTION_IN)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\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": "6ed5a557905f1c4e9ca5f8a6d607303a12d097e1",
      "tree": "044b1acc91c0e3ebf2816856c262dd7c951346f2",
      "parents": [
        "e76a35d6c809bd1638e3b1b535bb780ac731c380"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:43 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 08:00:17 2011 +0000"
      },
      "message": "target: refactor transport_emulate_control_cdb\n\nEncapsulate each CDB emulation into a function of its own, to prepare\nsetting -\u003eexectute_task to these routines.\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": "617c0e06c1b30b799d8b25f92eefdc1b098cb9f8",
      "tree": "c256c38e2bbf9fb1a17cd5d821efca0839060821",
      "parents": [
        "eacac00ce5bfde8086cd0615fb53c986f7f970fe"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:41 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 08:00:17 2011 +0000"
      },
      "message": "target: split core_scsi3_emulate_pr\n\nSplit core_scsi2_emulate_crh into one routine each for the\nPERSISTENT_RESERVE_IN and PERSISTENT_RESERVE_OUT side.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "eacac00ce5bfde8086cd0615fb53c986f7f970fe",
      "tree": "e58c10a9f55b3704f1eed16eb3e5cfc5038336eb",
      "parents": [
        "a17f091d1a7c570804cfc2c77701634da88f8ecf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Nov 03 17:50:40 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 04 08:00:08 2011 +0000"
      },
      "message": "target: split core_scsi2_emulate_crh\n\nSplit core_scsi2_emulate_crh into one routine each for the reserve and\nrelease side.  The common code now is in a helper called by both\nroutines.\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": "2235007c4d3245c0eca5e49497aafe5a111c00fb",
      "tree": "dc7af94f5ac99d6558098b4fca2ed14d6ba828dc",
      "parents": [
        "ed327ed337a6ee6919ee092c82ac3edeb63bd4de"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 02 05:06:35 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 16:21:10 2011 +0000"
      },
      "message": "target: add back error handling in transport_complete_task\n\nThe commit\n\n    target: use a workqueue for I/O completions\n\naccidentally removed setting t_tasks_failed in transport_complete_task.\nAdd it back in a slightly cleaner way; now it is set for every failed task\ninstead of special casing the last one completing by using the success\nargument directly for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ed327ed337a6ee6919ee092c82ac3edeb63bd4de",
      "tree": "cb9db4d1386aae18a115e2d5de330ecb02d18316",
      "parents": [
        "3151d069e9e77043b0e791719bc65896cf24d9f0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Nov 02 08:48:15 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:58:47 2011 +0000"
      },
      "message": "target/pscsi: blk_make_request() returns an ERR_PTR()\n\nThe check is wrong here because blk_make_request() returns an\nERR_PTR() and it doesn\u0027t return NULL.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.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": "5a4c8666c6d576f076a7c6824589cdbb984c0f84",
      "tree": "cd4eb1d2c67ff7cf99b4de4e9420c6c1df5b1085",
      "parents": [
        "7e32da55e26b80d57961681e53aa67938268db3f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Oct 28 13:37:19 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:57:13 2011 +0000"
      },
      "message": "iscsi-target: Fix non-immediate TMR handling\n\nThis patch addresses two issues with non immediate TMR handling in\niscsit_handle_task_mgt_cmd().  The first involves breakage due to\nv3.1-rc conversion of iscsit_sequence_cmd(), which upon good status\nwould hit the iscsit_add_reject_from_cmd() block of code.  This patch\nadds an explict check for CMDSN_ERROR_CANNOT_RECOVER.\n\nThe second adds a check to return when non immediate TMR operation is\ndetected after iscsit_ack_from_expstatsn(), as iscsit_sequence_cmd()\n-\u003e iscsit_execute_cmd() will have called transport_generic_handle_tmr()\nfor the non immediate TMR case already.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7e32da55e26b80d57961681e53aa67938268db3f",
      "tree": "c56edb6b8267a1bfeaebdfe5ae6f8bcff3e7f592",
      "parents": [
        "b8a11d7399173dcf23b6d0ca4f416bdf1eba982e"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Oct 28 13:32:35 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:57:12 2011 +0000"
      },
      "message": "iscsi-target: Add missing CMDSN_LOWER_THAN_EXP check in iscsit_handle_scsi_cmd\n\nThis patch adds a missing CMDSN_LOWER_THAN_EXP return check for\niscsit_sequence_cmd() in iscsit_handle_scsi_cmd() that was incorrectly\ndropped during the v3.1-rc cleanups to use iscsit_sequence_cmd().\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b8a11d7399173dcf23b6d0ca4f416bdf1eba982e",
      "tree": "18d1c607b6aaad5e082a1ffd4d0c5406ff9482a3",
      "parents": [
        "abc1fd4f92d86168790a9eaf9834713a41da788e"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Thu Oct 27 15:44:46 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 02 15:56:41 2011 +0000"
      },
      "message": "target: Avoid double list_del for aborted se_tmr_req\n\nAfter the list_del() in core_tmr_drain_tmr_list(),\ncore_tmr_release_req() would list_del() the same object again.\n\nCall graph:\n        core_tmr_drain_tmr_list\n        transport_cmd_finish_abort_tmr\n        transport_generic_remove\n        transport_free_se_cmd\n        core_tmr_release_req\n\nSo use list_del_init(), as list_del() of an initialized list_head is\nsafe and essentially a nop.  In the CONFIG_DEBUG_LIST case, list_del()\nactually poisons the list_head, but that is fine as we free the object\ndirectly afterwards.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "827509e38e5a4a5ba65a745ec7b4b0278656d1ca",
      "tree": "9b7c3cb15548495f87aa4996b2bc44fb5786fc4e",
      "parents": [
        "c53181af838fb9d82eebbb62b7175b0466d5a7a0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue Aug 30 14:20:44 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:59 2011 -0400"
      },
      "message": "drivers/target: Add module.h to drivers/target files as required.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "c53181af838fb9d82eebbb62b7175b0466d5a7a0",
      "tree": "afb4fb9a78349b9ef21b0f1c17778a14b1a44a64",
      "parents": [
        "07c92739455520541c22f6529683467aa3058b7c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue Aug 30 18:16:43 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:58 2011 -0400"
      },
      "message": "drivers/target: Add export.h to files as required.\n\nSo that they have access to EXPORT_SYMBOL variants and THIS_MODULE.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "abc1fd4f92d86168790a9eaf9834713a41da788e",
      "tree": "d511435edbec33a4ffe283cd1e6de8fef06653a8",
      "parents": [
        "6eb40b2af4908e9aee71e43e7a384243128c56dd"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed Oct 26 14:22:19 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Oct 27 01:00:29 2011 +0000"
      },
      "message": "target: Minor cleanups to core_tmr_drain_tmr_list\n\nThis patch adds a handful minor cleanups to core_tmr_drain_tmr_list() that\nremove an unnecessary NULL check, use list_for_each_entry_safe() instead of\nlist_entry(), and makes the drain_tmr_list walk use *tmr_p instead of\ndirectly referencing the passed *tmr function parameter.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nReviewed-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6eb40b2af4908e9aee71e43e7a384243128c56dd",
      "tree": "4c2c2a1c7da25bbc176e7b38faaf5792f6176886",
      "parents": [
        "80ccbc8e00f7001d79dd503c2781487906b98611"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed Oct 26 13:37:56 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Oct 27 01:00:21 2011 +0000"
      },
      "message": "target: Fix wrong se_tmr being added to drain_tmr_list\n\nThis patch fixes another bug from LUN_RESET re-org fallout in\ncore_tmr_drain_tmr_list() that was adding the wrong se_tmr_req\ninto the local drain_tmr_list to be walked + released.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nReviewed-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "80ccbc8e00f7001d79dd503c2781487906b98611",
      "tree": "156726945115c87aa7f95f4c09f3ae53ceced6cc",
      "parents": [
        "f147abb475ab47ce620cf3d18de5b3192c9fa7ed"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Tue Oct 25 22:08:43 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Oct 27 01:00:11 2011 +0000"
      },
      "message": "target: Fix incorrect se_cmd assignment in core_tmr_drain_tmr_list\n\nThis patch fixes a bug in core_tmr_drain_tmr_list() where drain_tmr_list\nwas using the wrong se_tmr_req for cmd assignment due to a typo during the\nLUN_RESET re-org.  This was resulting in general protection faults while\nusing the leftover bogus *tmr_p pointer from list_for_each_entry_safe().\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f147abb475ab47ce620cf3d18de5b3192c9fa7ed",
      "tree": "2dddc11716663c387df52f102658c9812c62c54a",
      "parents": [
        "8cd79f24350826b81e16990d9e12bc878e67d385"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 25 23:57:41 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Oct 27 01:00:06 2011 +0000"
      },
      "message": "target: Check -ENOMEM to signal QUEUE_FULL from fabric callbacks\n\nThis patch changes target core to also check for -ENOMEM from fabric callbacks\nto signal QUEUE_FULL status, instead of just -EAGAIN in order to catch a\nlarger set of fabric failure cases that want to trigger QUEUE_FULL logic.\nThis includes the callbacks for -\u003ewrite_pending(), -\u003equeue_data_in() and\n-\u003equeue_status().\n\nIt also makes transport_generic_write_pending() return zero upon QUEUE_FULL,\nand removes two unnecessary -EAGAIN checks to catch write pending QUEUE_FULL\ncases from transport_generic_new_cmd() failures in transport_handle_cdb_direct()\nand transport_processing_thread():TRANSPORT_NEW_CMD_MAP state.\n\nReported-by: Bart Van Assche \u003cbvanassche@acm.org\u003e\nCc: Bart Van Assche \u003cbvanassche@acm.org\u003e\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": "8cd79f24350826b81e16990d9e12bc878e67d385",
      "tree": "14421b42c8c7eeb566e5793c1dfd45d051cd74d6",
      "parents": [
        "c9abb9bb0b8451588509192bd53005d65c02986c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 13:35:37 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 26 20:42:13 2011 +0000"
      },
      "message": "tcm_loop: Add explict read buffer memset for SCF_SCSI_CONTROL_SG_IO_CDB\n\nThis patch addresses an issue with buggy userspace code sending I/O\nvia scsi-generic that does not explictly clear their associated read\nbuffers.  It adds an explict memset of the first SGL entry within\ntcm_loop_new_cmd_map() for SCF_SCSI_CONTROL_SG_IO_CDB payloads that\nare currently guaranteed to be a single SGL by target-core code.\n\nThis issue is a side effect of the v3.1-rc1 merge to remove the\nextra memcpy between certain control CDB types using a contigious\n+ cleared buffer in target-core, and performing a memcpy into the\nSGL list within tcm_loop.\n\nIt was originally mainfesting itself by udev + scsi_id + scsi-generic\nnot properly setting up the expected /dev/disk/by-id/ symlinks because\nthe INQUIRY payload was containing extra bogus data preventing the\nproper NAA IEEE WWN from being parsed by userspace.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c9abb9bb0b8451588509192bd53005d65c02986c",
      "tree": "73f376d40d187276777df5b01c10446cc3542db8",
      "parents": [
        "2e982ab92dff057c639d4a43ccfa275be62f5e59"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 25 06:43:29 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 26 20:42:13 2011 +0000"
      },
      "message": "target: Fix compile warning w/ missing module.h include\n\nThis patch fixes the following compile warning in target_core_cdb.c in\nrecent linux-next code due to the new use of EXPORT_SYMBOL() for\ntarget_get_task_cdb().\n\ndrivers/target/target_core_cdb.c:1316: warning: data definition has no type or storage class\ndrivers/target/target_core_cdb.c:1316: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’\ndrivers/target/target_core_cdb.c:1316: warning: parameter names (without types) in function declaration\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\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": "7c1953ddb609f1c161bf4a11a5e4e4577e82e557",
      "tree": "283244582f4fafd15a2ddf52971e0e5ff048af47",
      "parents": [
        "1bc67188c3843b8e16caaa8624beeb0e2823c1f8",
        "b91bf5bf7fb0f35a8119a662e8e6b71ed950f443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 11:17:39 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 11:17:39 2011 +0200"
      },
      "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: (62 commits)\n  target: Fix compile warning w/ missing module.h include\n  target: Remove legacy se_task-\u003etask_timer and associated logic\n  target: Fix incorrect transport_sent usage\n  target: re-use the command S/G list for single-task commands\n  target: Fix BIDI t_task_cdb handling in transport_generic_new_cmd\n  target: remove transport_allocate_tasks\n  target: merge transport_new_cmd_obj into transport_generic_new_cmd\n  target: remove the task_sg_bidi field se_task and pSCSI BIDI support\n  target: transport_subsystem_check_init cleanups\n  target: use a workqueue for I/O completions\n  target: remove unused TRANSPORT_ states\n  target: remove TRANSPORT_DEFERRED_CMD state\n  target: remove the TRANSPORT_REMOVE state\n  target: move depth_left manipulation out of transport_generic_request_failure\n  target: stop task timers earlier\n  target: remove TF_TIMER_STOP\n  target: factor some duplicate code for stopping a task\n  target: fix list walking in transport_free_dev_tasks\n  target: use transport_cmd_check_stop_to_fabric consistently\n  target: do not pass the queue object to transport_remove_cmd_from_queue\n  ...\n"
    },
    {
      "commit": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\n"
    },
    {
      "commit": "b91bf5bf7fb0f35a8119a662e8e6b71ed950f443",
      "tree": "73f376d40d187276777df5b01c10446cc3542db8",
      "parents": [
        "2e982ab92dff057c639d4a43ccfa275be62f5e59"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 25 06:43:29 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 25 06:43:29 2011 +0000"
      },
      "message": "target: Fix compile warning w/ missing module.h include\n\nThis patch fixes the following compile warning in target_core_cdb.c in\nrecent linux-next code due to the new use of EXPORT_SYMBOL() for\ntarget_get_task_cdb().\n\ndrivers/target/target_core_cdb.c:1316: warning: data definition has no type or storage class\ndrivers/target/target_core_cdb.c:1316: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’\ndrivers/target/target_core_cdb.c:1316: warning: parameter names (without types) in function declaration\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\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": "af3f00c75949369d937f499f49118e879939724d",
      "tree": "97be6b877cd80489eb055ccf1dd0bdb5e8c3f526",
      "parents": [
        "9ac549873d35626cd6d7718691aaf4c55f2667a7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 18 06:57:03 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:22:04 2011 +0000"
      },
      "message": "target: re-use the command S/G list for single-task commands\n\nIf we only have a single task per command (which at least in my testing\nis the by far most common case) we do not have to allocate a new per-task\nS/G list but can reuse the one from the command.\n\n(nab: Fix BIDI handling in transport_free_dev_tasks)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9ac549873d35626cd6d7718691aaf4c55f2667a7",
      "tree": "dd4ed6ddb6d8a852242a349bc5021e20f956ff1a",
      "parents": [
        "38b400676b5b33178a418bebc2b1af6c3fb0b380"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Oct 22 04:06:23 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:22:02 2011 +0000"
      },
      "message": "target: Fix BIDI t_task_cdb handling in transport_generic_new_cmd\n\nThis patch fixes a bug for BIDI handling in transport_generic_new_cmd() where\ncmd-\u003et_task_cdbs_left and Co. where not taking into account the extra\ntask count generated during the first call to transport_allocate_data_tasks().\n\nCc: 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": "38b400676b5b33178a418bebc2b1af6c3fb0b380",
      "tree": "167cb6bbcffbbee7bc4728d6b5d2b58efe3111a2",
      "parents": [
        "da0f7619913751d45fc3cda652789379f4f435fb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 18 06:57:02 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:59 2011 +0000"
      },
      "message": "target: remove transport_allocate_tasks\n\nThere were only two callers, and one of them always wants the call\nto transport_allocate_data_tasks anyway.  Also drop the constant\nlba argument to transport_allocate_data_tasks and move the variables\ninside it into the minimum required scope.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "da0f7619913751d45fc3cda652789379f4f435fb",
      "tree": "a719ef4746505d51d13a1997de93ab5466db2687",
      "parents": [
        "7c1c6af37af69a4ac4a6485c968496d257245b5d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 18 06:57:01 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:57 2011 +0000"
      },
      "message": "target: merge transport_new_cmd_obj into transport_generic_new_cmd\n\nThese are two fairly small functions, and merging them gives a much\nmore readable control flow, and opportunities for more useful comments.\n\nIt also moves all code related to resources allocation closer together\nand allows to remove a forward declaration for transport_allocate_tasks.\n\nSigned-off-by: 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": "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": "4499dda85890e6726def812febaab5dc064cc920",
      "tree": "3b97ab6a88f58aa162a38f1e052e6655588553d0",
      "parents": [
        "cc5d0f0f61645ca43d9a7320ec2f268bad5016c5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:49 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:46 2011 +0000"
      },
      "message": "target: move depth_left manipulation out of transport_generic_request_failure\n\nWe only need to decrement dev-\u003edepth_left if failing a command from\n__transport_execute_tasks.  Instead of doing it first thing in\ntransport_generic_request_failure and requiring a pseudo-flag argument\nfor it just opencode the decrement in the two callers (which should\nbe factored into a single one anyway)\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": "0c2cfe5fe78e682d6235a1d32a363460b1c77528",
      "tree": "fae9d86d8415ea163a49df6bf290aaef8901702e",
      "parents": [
        "b7b8bef7f8c1c9b3358127608e867db7cd928022"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:45 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:39 2011 +0000"
      },
      "message": "target: fix list walking in transport_free_dev_tasks\n\nlist_for_each_entry_safe only protects against deletions from the list,\nbut not against any concurrent modifications.  Given that we drop\nt_state_lock inside the loop it is not safe in transport_free_dev_tasks.\n\nInstead of use a local dispose_list that we move all tasks that are\nto be deleted to.  This is safe because we never do list_emptry checks\non t_list to check if a command is on the list anywhere.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b7b8bef7f8c1c9b3358127608e867db7cd928022",
      "tree": "00649c38974f180008d382f80a7ccbc3db8f6433",
      "parents": [
        "3df8d40ba3fea72c35ab092c091b19a599df1e81"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:44 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:37 2011 +0000"
      },
      "message": "target: use transport_cmd_check_stop_to_fabric consistently\n\nChange one remaining user of transport_cmd_check_stop(cmd, 2, 0) to the\ntransport_cmd_check_stop_to_fabric wrapper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3df8d40ba3fea72c35ab092c091b19a599df1e81",
      "tree": "910896f429892ff39f1caa72473582d84a40487a",
      "parents": [
        "f7a5cc0b310af887f5391ba886d3d9254ac8920a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 17 13:56:43 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:36 2011 +0000"
      },
      "message": "target: do not pass the queue object to transport_remove_cmd_from_queue\n\nWe always operated on the same queue, so move finding it into the function,\njust like we do for all other helpers operating on it.\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": "df5fa691ce61aedd3e4dbcf960ee44f05b797d8b",
      "tree": "9acd9f28f37eb697247f6f7256650b03932ede8a",
      "parents": [
        "6b20fa9aaf0c2f69ee6f9648e20ab2be0206705e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 14 07:29:58 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:29 2011 +0000"
      },
      "message": "target: make iblock_emulate_sync_cache asynchronous\n\nDo not block the submitting thread when handling a SYNCHRONIZE CACHE command,\nbut implement it asynchronously by sending the FLUSH command ourself and\ncalling transport_complete_sync_cache from the completion handler.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6b20fa9aaf0c2f69ee6f9648e20ab2be0206705e",
      "tree": "468f2d3ed5583cf31c3718dd5c15902676e527c7",
      "parents": [
        "b937d27052e5759b1308782166fe47bc76e05b4d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 18 23:48:04 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:19 2011 +0000"
      },
      "message": "target: Fix REPORT TARGET PORT GROUPS handling with small allocation length\n\nThis patch fixes a bug with the handling of REPORT TARGET PORT GROUPS\ncontaining a smaller allocation length than the payload requires causing\nmemory writes beyond the end of the buffer.  This patch checks for the\nminimum 4 byte length for the response payload length, and also checks\nupon each loop of T10_ALUA(su_dev)-\u003etg_pt_gps_list to ensure the Target\nport group and Target port descriptor list is able to fit into the\nremaining allocation length.\n\nIf the response payload exceeds the allocation length length, then rd_len\nis still increments to indicate to the initiator that the payload has\nbeen truncated.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\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": "6193f06e6fe27c9475e407cb3cf2b0d4cd2725b0",
      "tree": "a876548f54088886ca0bbc084bb5c560175b5094",
      "parents": [
        "3189b067eeae4646f3c7fa0ed0d14659a682baa8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 12 11:09:11 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:11 2011 +0000"
      },
      "message": "target: make the -\u003eget_cdb method optional\n\nThe most commonly used file, iblock and rd backends have no use for\na per-task CDB and thus don\u0027t need a method to copy it into their\notherwise unused CDB fields.\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": "0a020436d8baf412bcf5997aee7796276ea773ae",
      "tree": "6fec66de13bb35b467f7753889521018dfeb3645",
      "parents": [
        "ce8762f6cd1e0e6d87a6d0b536635993aef0a697"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 10 19:44:05 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:21:01 2011 +0000"
      },
      "message": "loopback: Prevent uninitialized use of tl_tpg in tcm_loop_queuecommand\n\nThis patch fixes a bug with tcm_loop where performing a scsi_host rescan was\ncausing an oops due to a received scsi_cmnd-\u003edevice-\u003eid value not matching a\npreviously configured tcm_loop_tpg entry in tcm_loop_hba-\u003etl_hba_tpgs[]\nobtained from within tcm_loop_queuecommand() code.\n\nThis fix adds an explict check for tcm_loop_tpg-\u003etl_hba in order to ensure\ntcm_loop_make_naa_tpg() has already been invoked to initialize a given\ntcm_loop_tpg entry, and also adds an explict clear of tcm_loop_tpg-\u003etl_hba\nfrom within the tcm_loop_drop_naa_tpg() release path.\n\nThis bug was manifesting itself with the following OOPs:\n\n[176289.430909] BUG: unable to handle kernel NULL pointer dereference at 0000000000000090\n[176289.431337] IP: [\u003cffffffffa0395617\u003e] transport_processing_thread+0x1e3/0x794 [target_core_mod]\n[176289.431399] PGD 22e9b067 PUD 23375067 PMD 0\n[176289.431399] Oops: 0000 [#1] SMP\n[176289.431815] CPU 1\n[176289.431815] Modules linked in: tcm_loop target_core_stgt target_core_pscsi target_core_file target_core_iblock target_core_mod crc32c ib_cm ib_sa ib_mad ib_core qla2xxx scsi_tgt configfs fcoe libfcoe libfc scsi_transport_fc ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi sr_mod cdrom sd_mod ata_piix libata e1000 mptspi mptscsih mptbase [last unloaded: target_core_mod]\n[176289.431815]\n[176289.431815] Pid: 12339, comm: LIO_iblock Tainted: G        W   3.1.0-rc8+\n[176289.431815] RIP: 0010:[\u003cffffffffa0395617\u003e]  [\u003cffffffffa0395617\u003e] transport_processing_thread+0x1e3/0x794 [target_core_mod]\n[176289.431815] RSP: 0018:ffff880023bfbe10  EFLAGS: 00010283\n[176289.431815] RAX: 0000000000000000 RBX: ffff88002d600040 RCX: ffff88002d600108\n[176289.431815] RDX: ffff88000c9e50bc RSI: 0000000000000246 RDI: 0000000000000246\n[176289.431815] RBP: ffff880023bfbee0 R08: ffff88002d600108 R09: 0000000000000000\n[176289.431815] R10: ffff88002fc8cc80 R11: ffffffff81671b60 R12: ffff88002d600108\n[176289.431815] R13: ffff88000c9e4f38 R14: ffff88000c9e50b8 R15: 0000000000000000\n[176289.431815] FS:  0000000000000000(0000) GS:ffff88002fc80000(0000) knlGS:0000000000000000\n[176289.431815] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n[176289.431815] CR2: 0000000000000090 CR3: 000000002a33f000 CR4: 00000000000006e0\n[176289.431815] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[176289.431815] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[176289.431815] Process LIO_iblock (pid: 12339, threadinfo ffff880023bfa000, task ffff88002a2e0000)\n[176289.431815] Stack:\n[176289.431815]  0000000000011280 0000000000000246 ffff88002a2e0000 ffff880023a58900\n[176289.431815]  ffff880023bfbed0 ffff880023bfa000 ffff880023bfa000 ffff88000c9e50d0\n[176289.431815]  ffff88000c9e50c0 ffff88000c9e50bc ffff880023bfa000 ffff880023bfbfd8\n[176289.431815] Call Trace:\n[176289.431815]  [\u003cffffffff81056657\u003e] ? wake_up_bit+0x25/0x25\n[176289.431815]  [\u003cffffffffa0395434\u003e] ? transport_handle_cdb_direct+0x92/0x92 [target_core_mod]\n[176289.431815]  [\u003cffffffff8105619a\u003e] kthread+0x7d/0x85\n[176289.431815]  [\u003cffffffff813cbcb4\u003e] kernel_thread_helper+0x4/0x10\n[176289.431815]  [\u003cffffffff8105611d\u003e] ? kthread_worker_fn+0x16d/0x16d\n[176289.431815]  [\u003cffffffff813cbcb0\u003e] ? gs_change+0x13/0x13\n[176289.431815] Code: 67 05 00 00 41 8b 84 24 4c ff ff ff ff c8 83 f8 11 0f 87 f0 04 00 00 89 c0 ff 24 c5 b0 c6 39 a0 0f 0b eb fe 48 8b 83 d8 00 00 00\n[176289.431815] RIP  [\u003cffffffffa0395617\u003e] transport_processing_thread+0x1e3/0x794 [target_core_mod]\n[176289.431815]  RSP \u003cffff880023bfbe10\u003e\n[176289.431815] CR2: 0000000000000090\n[176295.041004] ---[ end trace 85dc6865b23b8f3e ]---\n\nReported-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ce8762f6cd1e0e6d87a6d0b536635993aef0a697",
      "tree": "e59be88ea03a2b315afffad194a23b3ff1c652bc",
      "parents": [
        "8dc52b54207f361f7abf6cbe26f5199ae8b7cf23"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 09 02:19:01 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:59 2011 +0000"
      },
      "message": "target: Remove legacy + unused device active I/O shutdown code\n\nThis patch removes the legacy device active I/O shutdown code that was\noriginally called from transport_processing_thread() context during shutdown\nincluding transport_processing_shutdown() and transport_release_all_cmds().\n\nThis is due to the fact that in modern configfs control plane code by the\ntime shutdown of an se_device instance in transport_processing_thread()\nis allowed to occur via:\n\n\trmdir /sys/kernel/config/target/core/$HBA/$DEV\n\nall active I/O will already have been ceased while removing active configfs\nfabric Port/LUN symlinks.  Eg: the removal of an active se_device is protected\nby inter-module VFS references from active Port/LUN symlinks.\n\nTwo WARN_ON() checks have been added in their place before exiting\ntransport_processing_thread() to watch out for any leaked descriptors.\n\nCc: 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": "d270190a75e5b859c6d8eed8d4095fbb45f78264",
      "tree": "61f3a7a031433a7a31d5d38f7662f445d3441fa3",
      "parents": [
        "d14921d6ad192868184686b3af5bb99cf3380510"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Oct 09 01:48:14 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:56 2011 +0000"
      },
      "message": "iscsi-target: Remove SCF_SE_LUN_CMD flag abuses\n\nThis patch removes a number of SCF_SE_LUN_CMD flag abuses within iscsi-target\ncode to determine when iscsit_release_cmd() or transport_generic_free_cmd()\nshould be called while releasing an individual iscsi_cmd descriptor.\n\nIn the place of SCF_SE_LUN_CMD checks, this patch converts existing code to\nuse a new iscsit_free_cmd() that inspects iscsi_cmd-\u003eiscsi_opcode types to\ndetermine which of the above functions should be invoked.  It also removes the\nnow unnecessary special case checking in iscsit_release_commands_from_conn().\n\n(hch: Use iscsit_free_cmd instead of open-coded alternative)\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": "942d82646e16725ac366d44087b8c992f2cb2190",
      "tree": "983f09609d6369d731487940bba21b6682dde27f",
      "parents": [
        "635a2b3f3e561278cb5b837ea305e50e3fa7f063"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sun Oct 02 01:59:13 2011 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:51 2011 +0000"
      },
      "message": "target: Make pscsi_create_virtdevice use ERR_CAST\n\nThis patch changes pscsi_create_virtdevice() to properly return ERR_CAST\ninstead of a raw pointer upon scsi_host_lookup() failure.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "635a2b3f3e561278cb5b837ea305e50e3fa7f063",
      "tree": "5247707ab19c1f766b9fadb12adf06587fbcd8aa",
      "parents": [
        "f2b56afd406b455fba339a35f43bfc4ada198073"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Fri Sep 30 14:45:40 2011 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:49 2011 +0000"
      },
      "message": "tcm_fc: remove custom hex_to_bin in ft_parse_wwn\n\nThis patch converts ft_parse_wwn() to use hex_to_bin() instead of custom\nconversion code.\n\n(Andy: Re-add missing strict \u0026\u0026 isupper(c) check)\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: \"Nicholas A. Bellinger\" \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f2b56afd406b455fba339a35f43bfc4ada198073",
      "tree": "f11190e11015c65d75b24ffbd8dee08db2e409e5",
      "parents": [
        "a3eedc227bfa7c9e21ef3cebe164d06a4c507a71"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Fri Sep 30 14:39:54 2011 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:48 2011 +0000"
      },
      "message": "iscsi-target: use native hex2bin for chap_string_to_hex\n\nThis patch converts chap_string_to_hex() to use hex2bin() instead of\nthe internal chap_asciihex_to_binaryhex().\n\n(nab: Fix up minor compile breakage + typo)\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: \"Nicholas A. Bellinger\" \u003cnab@linux-iscsi.org\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": "02b1a7463420e1cebe86c6755c44d3bd9489829e",
      "tree": "59ec8003f5c8a7937c0b9faee84c926793814ba8",
      "parents": [
        "dbbf3e94c2b26988d3c41af63e50189e9133eb28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 25 14:56:32 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:44 2011 +0000"
      },
      "message": "target: cleanup pscsi request submission\n\nMove the entirely request allocation, mapping and submission into -\u003edo_task.\nThis\n\n a) avoids blocking the I/O submission thread unessecarily, and\n b) simplifies the code greatly\n\nNote that the code seems to have various error handling issues, mostly\nrelated to bidi handling in the current form.  I\u0027ve added comments about\nthose but not tried to fix them in this commit.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "dbbf3e94c2b26988d3c41af63e50189e9133eb28",
      "tree": "4cb6f91946d2229c7eb521fa460bc0c2407107a5",
      "parents": [
        "b6b4e61ff4e26d6721b2607ea23402825a38c402"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 25 14:56:24 2011 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:43 2011 +0000"
      },
      "message": "target: cleanup iblock bio submission\n\nMove the entirely bio allocation, mapping and submission into -\u003edo_task.\nThis\n\n a) avoids blocking the I/O submission thread unessecarily, and\n b) simplifies the code greatly\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b6b4e61ff4e26d6721b2607ea23402825a38c402",
      "tree": "4bff0e5f62a908ae864e71df59b8c0bd205712fa",
      "parents": [
        "39c05f321a4b27f3036392eed68bd94ce2267155"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Sep 19 11:11:21 2011 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:41 2011 +0000"
      },
      "message": "target: simplify target_parse_naa_6h_vendor_specific()\n\nThis patch adds a minor simplfication in target_parse_naa_6h_vendor_specific()\nto remove direct isxdigit() + ctype.h usage.\n\n(nab: Fix next assignment breakage in for loop)\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\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": "e6a2573f1f5d66f0456c433afdfc63f33fdf9008",
      "tree": "90b36ed3403ab420521134e86f050e339d270b7b",
      "parents": [
        "4911e3ccbec047ed1f728e19a70ad87729a3fb01"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:08:50 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:36 2011 +0000"
      },
      "message": "target: remove transport_generic_remove\n\nAll callers that never have the session_reinstatement flag set can trivially\nbe converted to transport_put_cmd.  Opencode the session reinstatement code\nin transport_generic_free_cmd, which was the only caller ever asking for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4911e3ccbec047ed1f728e19a70ad87729a3fb01",
      "tree": "710a5799da6c38843560b412b7918b7d3c63bf29",
      "parents": [
        "d3df7825aed2e69e12732f9e32ef9093b01302d8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:08:42 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:34 2011 +0000"
      },
      "message": "target: simplify transport_put_cmd\n\nInline two simple functions only used by it, and replace a goto\nwith a simple if else construct.\n\nNote that the code moved from transport_dec_and_check seems fairly\nbuggy - the atomic_read check on a variable where we\u0027d do an\natomic_dec_and_test looks racy if we\u0027ll ever get someone increment\nit without the lock held around them (which it looks like we do),\nand not decrementing the second counter if the first one doesn\u0027t\nhit zero also at least needs an explanation.\n\n(nab: Fix transport_put_cmd breakage)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d3df7825aed2e69e12732f9e32ef9093b01302d8",
      "tree": "582bb19c5eb961945beeae347000c6c4a8d7b896",
      "parents": [
        "2dbc43d256c5371ebc294e3534620663eb80a5ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:08:32 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:33 2011 +0000"
      },
      "message": "target: simplify transport_generic_remove\n\nInstead of duplicating the code from transport_release_fe_cmd re-use it by\nallowing transport_release_fe_cmd to return wether it actually freed the\ncommand or not.  Also rename transport_release_fe_cmd to transport_put_cmd\nand add a kerneldoc comment for it to make the use case more obvious.\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": "31afc39c0c93edec5a117371f1bd2a264cceafac",
      "tree": "3dcf6671507fa2ffcb9f7df6b0820adcc04c247a",
      "parents": [
        "680b73c5f2fb60336707b53b2b2792d2c01b69dc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Sep 13 23:08:11 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:29 2011 +0000"
      },
      "message": "target: don\u0027t opencode transport_release_cmd in transport_release_fe_cmd\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": "acf3ecc4a1c7460662757c07ee1ec625760d3ae6",
      "tree": "02f67afb285d5b42e12b723d2d3fc6bb190598fa",
      "parents": [
        "4ca495e0630b6fd960f94f89a9f13ad32b91bc96"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Sep 12 21:50:56 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:26 2011 +0000"
      },
      "message": "iscsi-target: always call transport_handle_cdb_direct\n\niscsit_task_reassign_complete is always called from the TX thread, so\nhandle the CDB directly instead of offloading it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4ca495e0630b6fd960f94f89a9f13ad32b91bc96",
      "tree": "d138dda26a2d9cba41e8654d4d0c2372c3e917e4",
      "parents": [
        "c252f003470a99d319db4ebd12f4a9e4710a65db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Sep 12 21:50:49 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:24 2011 +0000"
      },
      "message": "tfm_fc: use transport_handle_cdb_direct\n\nft_send_work is always called from workqueue context, which means we can\nhandle the CDB directly instead of doing another context switch.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c252f003470a99d319db4ebd12f4a9e4710a65db",
      "tree": "4874bcd5c62a8c45750c8e28ace14fa8c717e6ed",
      "parents": [
        "77039d1eafbbc192df71ee84b157b8973766737d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Sep 29 14:22:13 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:12 2011 +0000"
      },
      "message": "target: Prevent transport_send_task_abort when CHECK_CONDITION status\n\nThis patch fixes a bug where transport_send_task_abort() could be called\nduring LUN_RESET to return SAM_STAT_TASK_ABORTED + tfo-\u003equeue_status(), when\nSCF_SENT_CHECK_CONDITION -\u003e tfo-\u003equeue_status() has already been sent from\nwithin another context via transport_send_check_condition_and_sense().\n\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "77039d1eafbbc192df71ee84b157b8973766737d",
      "tree": "c2066c32153765fa1a605d02ec1861dd6ee85ec5",
      "parents": [
        "b0e062aec578c756d1aea4b5809294488366a6e8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Sep 29 01:01:35 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:20:01 2011 +0000"
      },
      "message": "target: Fix transport_cmd_finish_abort queue removal bug\n\nThis patch fixes a bug in LUN_RESET operation with transport_cmd_finish_abort()\nwhere transport_remove_cmd_from_queue() was incorrectly being called, causing\ndescriptors with t_state \u003d\u003d TRANSPORT_FREE_CMD_INTR to be incorrectly removed\nfrom qobj-\u003eqobj_list during process context release.  This change ensures the\ndescriptor is only removed via transport_remove_cmd_from_queue() when doing a\ndirect release via transport_generic_remove().\n\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "b0e062aec578c756d1aea4b5809294488366a6e8",
      "tree": "be27087f96cade8c65c4ccb6c5ab53a5c28729d5",
      "parents": [
        "d050ffb922c782f092234611b9019e95024481ab"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 11 06:02:48 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:19:49 2011 +0000"
      },
      "message": "target: Prevent TRANSPORT_FREE_CMD_INTR processing in core_tmr_drain_cmd_list\n\nThis patch contains a bugfix for TMR LUN_RESET related to TRANSPORT_FREE_CMD_INTR\noperation, where core_tmr_drain_cmd_list() will now skip processing for this\ncase to prevent an ABORT_TASK status from being returned for descriptors that\nare already queued up to be released by processing thread context.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "d050ffb922c782f092234611b9019e95024481ab",
      "tree": "a2883666772d23546cda814ff9894ff05edbe005",
      "parents": [
        "79a7fef26431830e22e282053d050af790117db8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Sep 28 21:37:29 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:19:32 2011 +0000"
      },
      "message": "target: Re-org of core_tmr_lun_reset\n\nThis patch is a re-orginzation of core_tmr_lun_reset() logic to properly\nscan the active tmr_list, dev-\u003estate_task_list and qobj-\u003eqobj_list w/ the\nrelivent locks held, and performing a list_move_tail onto seperate local\nscope lists before performing the full drain.\n\nThis involves breaking out the code into three seperate list specific\nfunctions: core_tmr_drain_tmr_list(), core_tmr_drain_task_list() and\ncore_tmr_drain_cmd_list().\n\n(nab: Include target: Remove non-active tasks from execute list during\n      LUN_RESET patch to address original breakage)\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "79a7fef26431830e22e282053d050af790117db8",
      "tree": "85919eb3addb0b488f9d5361a375c961e5e311a3",
      "parents": [
        "9375b1bfd2555c8bc828d394a4419a212b46ba71"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Sep 28 22:12:07 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Oct 24 03:17:51 2011 +0000"
      },
      "message": "target: Prevent cmd-\u003ese_queue_node double add\n\nThis patch addresses a bug with the lio-core-2.6.git conversion of\ntransport_add_cmd_to_queue() to use a single embedded list_head, instead\nof individual struct se_queue_req allocations allowing a single se_cmd to\nbe added to the queue mulitple times.  This was changed in the following:\n\ncommit 2a9e4d5ca5d99f4c600578d6285d45142e7e5208\nAuthor: Andy Grover \u003cagrover@redhat.com\u003e\nDate:   Tue Apr 26 17:45:51 2011 -0700\n\n    target: Embed qr in struct se_cmd\n\nThe problem is that some target code still assumes performing multiple\nadds is allowed via transport_add_cmd_to_queue(), which ends up causing\nlist corruption in qobj-\u003eqobj_list code.  This patch addresses this\nby removing an existing struct se_cmd from the list before the add, and\nremoves an unnecessary list walk in transport_remove_cmd_from_queue()\n\nIt also changes cmd-\u003et_transport_queue_active to use explict sets intead\nof increment/decrement to prevent confusion during exception path handling.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "9375b1bfd2555c8bc828d394a4419a212b46ba71",
      "tree": "e7ead6b0d605c8b1383b94a913deaf0787c52e21",
      "parents": [
        "65112dccf8a113737684366349d7f9ec373ddc47"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Aug 01 23:29:11 2011 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Oct 11 04:10:19 2011 +0000"
      },
      "message": "target: Remove unneeded version.h includes\n\nIt was pointed out by \u0027make versioncheck\u0027 that some includes of\nlinux/version.h are not needed in drivers/target/.\nThis patch removes them.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bfb9035c98906aafcd3cf22694fba2550997bf53",
      "tree": "82256f42b5be76c49c0009b96b0641b34a8f16d3",
      "parents": [
        "395cf9691d72173d8cdaa613c5f0255f993af94b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Aug 17 06:58:04 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Sep 27 18:08:04 2011 +0200"
      },
      "message": "treewide: Correct spelling of successfully in comments\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8c35ad20270de91d0f3bfe521daa3b7983ee8db7",
      "tree": "49422eea35b4d856bd11aa4ae11387728b678fff",
      "parents": [
        "2b3ff6319e2312656fbefe0209bef02d58b6836a"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Fri Sep 16 08:50:30 2011 -0400"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Sep 21 08:27:43 2011 -0400"
      },
      "message": "target: check hex2bin result\n\nNow that hex2bin does error checking, on error add debugging error msg.\n\nChangelog v1 (update):\n- fixed definition of \u0027ret\u0027\n- hex2bin now returns an int\n\nSigned-off-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nAcked-by: Andy Shevchenko \u003candy.shevchenko@gmail.com\u003e\n"
    },
    {
      "commit": "40b054970afcf067896d62cd6f7e617c62665304",
      "tree": "5596f2b4fa1c1f41f599caf21bd5d10681ab152b",
      "parents": [
        "2ff017f5b4299e24a7f22d9a336dd162bf52bb54"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 16:55:47 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 23:47:07 2011 +0000"
      },
      "message": "iscsi-target: Fix sendpage breakage with proper padding+DataDigest iovec offsets\n\nThis patch fixes a bug in the iscsit_fe_sendpage_sg() transmit codepath that\nwas originally introduced with the v3.1 iscsi-target merge that incorrectly\nuses hardcoded cmd-\u003eiov_data_count values to determine cmd-\u003eiov_data[] offsets\nfor extra outgoing padding and DataDigest payload vectors.\n\nThis code is obviously incorrect for the DataDigest enabled case with sendpage\noffload, and this fix ensures correct operation for padding + DataDigest,\npadding only, and DataDigest only cases.  The bug was introduced during a\npre-merge change in iscsit_fe_sendpage_sg() to natively use struct scatterlist\ninstead of the legacy v3.0 struct se_mem logic.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2ff017f5b4299e24a7f22d9a336dd162bf52bb54",
      "tree": "71b896a42d7576dd751abf65adbf85f4a7726641",
      "parents": [
        "784eb99ebad91db4c8c231c4b17f203147ab827b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 01:44:54 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 19:37:18 2011 +0000"
      },
      "message": "iscsi-target: Disable markers + remove dangerous local scope array usage\n\nThis patch makes iscsi-target explictly disable OFMarker\u003dYes and IFMarker\u003dyes\nparameter key usage during iscsi login by setting IFMarkInt_Reject and\nOFMarkInt_Reject values in iscsi_enforce_integrity_rules() to effectively\ndisable iscsi marker usage.  With this patch, an initiator proposer asking\nto enable either marker parameter keys will be issued a \u0027No\u0027 response, and\nthe target sets OFMarkInt + IFMarkInt parameter key response to \u0027Irrelevant\u0027.\n\nWith markers disabled during iscsi login, this patch removes the problematic\non-stack local-scope array for marker intervals in iscsit_do_rx_data() +\niscsit_do_tx_data(), and other related marker code in iscsi_target_util.c.\nThis fixes a potentional stack smashing scenario with small range markers\nenabled and a large MRDSL as reported by DanC here:\n\n[bug report] target: stack can be smashed\nhttp://www.spinics.net/lists/target-devel/msg00453.html\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "784eb99ebad91db4c8c231c4b17f203147ab827b",
      "tree": "49c3e78a7a0f8cc056fe1705b37bae4343fd4915",
      "parents": [
        "58fc73d10f3e92bfcd1e9a8391eb3e49b68df8e5"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 01:31:28 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 19:36:56 2011 +0000"
      },
      "message": "target: Skip non hex characters for VPD\u003d0x83 NAA IEEE Registered Extended\n\nThis patch adds target_parse_naa_6h_vendor_specific() to address a bug where the\nconversion of PRODUCT SERIAL NUMBER to use hex2bin() in target_emulate_evpd_83()\nwas not doing proper isxdigit() checking.  This conversion of the vpd_unit_serial\nconfigifs attribute is done while generating a VPD\u003d0x83 NAA IEEE Registered\nExtended DESIGNATOR format\u0027s 100 bits of unique VENDOR SPECIFIC IDENTIFIER +\nVENDOR SPECIFIC IDENTIFIER EXTENSION area.\n\nThis patch allows vpd_unit_serial (VPD\u003d0x80) and the T10 Vendor ID DESIGNATOR\nformat (VPD\u003d0x83) to continue to use free-form variable length ASCII values,\nand now skips any non hex characters for fixed length NAA IEEE Registered Extended\nDESIGNATOR format (VPD\u003d0x83) requring the binary conversion.\n\nThis was originally reported by Martin after the v3.1-rc1 change to use hex2bin()\nin commit 11650b859681e03fdbf26277fcfc5f1f62186703 where the use of non hex\ncharacters in vpd_unit_serial generated different values than the original\nv3.0 internal hex -\u003e binary code.  This v3.1 change caused a problem with\nfilesystems who write a NAA DESIGNATOR onto it\u0027s ondisk metadata, and this patch\nwill (again) change existing values to ensure that non hex characters are not\nincluded in the fixed length NAA DESIGNATOR.\n\nNote this patch still expects vpd_unit_serial to be set via existing userspace\nmethods of uuid generation, and does not do strict formatting via configfs input.\n\nThe original bug report and thread can be found here:\n\nNAA breakage\nhttp://www.spinics.net/lists/target-devel/msg00477.html\n\nThe v3.1-rc1 formatting of VPD\u003d0x83 w/o this patch:\n\nVPD INQUIRY: Device Identification page\n  Designation descriptor number 1, descriptor length: 20\n    designator_type: NAA,  code_set: Binary\n    associated with the addressed logical unit\n      NAA 6, IEEE Company_id: 0x1405\n      Vendor Specific Identifier: 0xffde35ebf\n      Vendor Specific Identifier Extension: 0x3092f498ffa820f9\n      [0x6001405ffde35ebf3092f498ffa820f9]\n  Designation descriptor number 2, descriptor length: 56\n    designator_type: T10 vendor identification,  code_set: ASCII\n    associated with the addressed logical unit\n      vendor id: LIO-ORG\n      vendor specific: IBLOCK:ffde35ec-3092-4980-a820-917636ca54f1\n\nThe v3.1-final formatting of VPD\u003d0x83 w/ this patch:\n\nVPD INQUIRY: Device Identification page\n  Designation descriptor number 1, descriptor length: 20\n    designator_type: NAA,  code_set: Binary\n    associated with the addressed logical unit\n      NAA 6, IEEE Company_id: 0x1405\n      Vendor Specific Identifier: 0xffde35ec3\n      Vendor Specific Identifier Extension: 0x924980a82091763\n      [0x6001405ffde35ec30924980a82091763]\n  Designation descriptor number 2, descriptor length: 56\n    designator_type: T10 vendor identification,  code_set: ASCII\n    associated with the addressed logical unit\n      vendor id: LIO-ORG\n      vendor specific: IBLOCK:ffde35ec-3092-4980-a820-917636ca54f1\n\n(v2: Fix parsing code to dereference + check for string terminator instead\n     of null pointer to ensure a zeroed payload for vpd_unit_serial less\n     than 100 bits of NAA DESIGNATOR VENDOR SPECIFIC area.  Also, remove\n     the unnecessary bitwise assignment)\n\nReported-by: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "58fc73d10f3e92bfcd1e9a8391eb3e49b68df8e5",
      "tree": "0be84c4241f9080cfa01a369675e883114ed37cf",
      "parents": [
        "079587b4eb4d3b78a4d65d142f662aa9d7eedab4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 26 09:25:38 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 09:50:09 2011 +0000"
      },
      "message": "tcm_fc: Work queue based approach instead of managing own thread and event based mechanism\n\nProblem: Changed from wake_up_interruptible -\u003e wake_up_process and\nwait_event_interruptible-\u003e schedule_timeout_interruptible broke the FCoE\ntarget.  Earlier approach of wake_up_interruptible was also looking at\n\u0027queue_cnt\u0027 which is not necessary, because it increment of \u0027queue_cnt\u0027\nwith wake_up_inetrriptible / waker_up_process introduces race condition.\n\nFix: Instead of fixing the code which used wake_up_process and remove\n\u0027queue_cnt\u0027, using work_queue based approach is cleaner and acheives\nsame result. As well, work queue based approach has less programming\noverhead and OS manages threads which processes work queues.\n\nThis patch is developed by Christoph Hellwig and reviwed+validated by\nKiran Patil.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "079587b4eb4d3b78a4d65d142f662aa9d7eedab4",
      "tree": "1316ea524dac4cfd2979f040b3908699c02df840",
      "parents": [
        "bcac364a24c894c4cf8cf219b7863c192cd34079"
      ],
      "author": {
        "name": "Kiran Patil",
        "email": "kiran.patil@intel.com",
        "time": "Fri Aug 26 09:25:25 2011 -0700"
      },
      "committer": {
        "name": "Nicholas A. Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 09:29:27 2011 +0000"
      },
      "message": "tcm_fc: Invalidation of DDP context for FCoE target in error conditions\n\nProblem: HW DDP context wasn;t invalidated in case of ABORTS, etc...\nThis leads to the problem where memory pages which are used for DDP\nas user descriptor could get reused for some other purpose (such as to\nsatisfy new memory allocation request either by kernel or user mode threads)\nand since HW DDP context was not invalidated, HW continue to write to\nthose pages, hence causing memory corruption.\n\nFix: Either on incoming ABORTS or due to exchange time out, allowed the\ntarget to cleanup HW DDP context if it was setup for respective ft_cmd.\nAdded new function to perform this cleanup, furthur it can be enhanced\nfor other cleanup activity.\n\nAdditinal Notes: To avoid calling ddp_done from multiple places, composed\nthe functionality in helper function \"ft_invl_hw_context\" and it is being\ncalled from multiple places. Cleaned up code in function \"ft_recv_write_data\"\nw.r.t DDP.\n\nSigned-off-by: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bcac364a24c894c4cf8cf219b7863c192cd34079",
      "tree": "121757157452bf6e546c53c0efd2a3d463f4aa2e",
      "parents": [
        "a7f934d4f16144cb9521b62e9b8c9ac0118097da"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Sat Aug 27 21:33:16 2011 -0700"
      },
      "committer": {
        "name": "Nicholas A. Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Sep 16 09:29:20 2011 +0000"
      },
      "message": "target: Fix race between multiple invocations of target_qf_do_work()\n\nWhen work is scheduled with schedule_work(), the work can end up\nrunning on multiple CPUs at the same time -- this happens if\nthe work is already running on one CPU and schedule_work() is called\non another CPU.  This leads to list corruption with target_qf_do_work(),\nwhich is roughly doing:\n\n\tspin_lock(...);\n\tlist_for_each_entry_safe(...) {\n\t\tlist_del(...);\n\t\tspin_unlock(...);\n\n\t\t// do stuff\n\n\t\tspin_lock(...);\n\t}\n\nWith multiple CPUs running this code, one CPU can end up deleting the\nlist entry that the other CPU is about to work on.\n\nFix this by splicing the list entries onto a local list and then\noperating on that in the work function.  This way, each invocation of\ntarget_qf_do_work() operates on its own local list and so multiple\ninvocations don\u0027t corrupt each other\u0027s list.  This also avoids dropping\nand reacquiring the lock for each list entry.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e060c38434b2caa78efe7cedaff4191040b65a15",
      "tree": "407361230bf6733f63d8e788e4b5e6566ee04818",
      "parents": [
        "10e4ac572eeffe5317019bd7330b6058a400dfc2",
        "cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:05 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:18 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forward merge with Linus to be able to merge patches\nbased on more recent version of the tree.\n"
    },
    {
      "commit": "9f5c3125d433b3044b013471fa92f1b5738036fe",
      "tree": "c27ea0662c7451fb9351b3dbb74a9f28f322843c",
      "parents": [
        "101ae14edc14efb0fe6ed8a77ed370cca670ffc8"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Aug 01 23:29:11 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:57:07 2011 +0200"
      },
      "message": "Remove unneeded version.h includes from drivers/target/\n\nIt was pointed out by \u0027make versioncheck\u0027 that some includes of\nlinux/version.h are not needed in drivers/target/.\nThis patch removes them.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "28638887f351d11867562322b7abaa014dd5528a",
      "tree": "6540c800b66ef3045e942125e57b756053fc84b5",
      "parents": [
        "e63a8e1933a2218cf801e46dd01bd8cca4a555ec"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Aug 16 09:40:01 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Aug 22 19:28:36 2011 +0000"
      },
      "message": "target: Convert acl_node_lock to be IRQ-disabling\n\nWith qla2xxx, acl_node_lock is taken inside qla2xxx\u0027s hardware_lock,\nwhich is taken in hardirq context.  This means acl_node_lock must become\nan IRQ-disabling lock; in particular this fixes lockdep warnings along\nthe lines of\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ INFO: HARDIRQ-safe -\u003e HARDIRQ-unsafe lock order detected ]\n\n     (\u0026(\u0026se_tpg-\u003eacl_node_lock)-\u003erlock){+.....}, at: [\u003cffffffffa026f872\u003e] transport_deregister_session+0x92/0x140 [target_core_mod]\n\n    and this task is already holding:\n     (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...}, at: [\u003cffffffffa017c5e7\u003e] qla_tgt_stop_phase1+0x57/0x2c0 [qla2xxx]\n    which would create a new lock dependency:\n     (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...} -\u003e (\u0026(\u0026se_tpg-\u003eacl_node_lock)-\u003erlock){+.....}\n\n    but this new dependency connects a HARDIRQ-irq-safe lock:\n     (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...}\n\n    to a HARDIRQ-irq-unsafe lock:\n     (\u0026(\u0026se_tpg-\u003eacl_node_lock)-\u003erlock){+.....}\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e63a8e1933a2218cf801e46dd01bd8cca4a555ec",
      "tree": "10c1affafe6dfc5db25006953477e836b658d1ab",
      "parents": [
        "4e0f05297ff615a9a4e269da301ff77f660a3ab0"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Aug 12 16:01:02 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Aug 22 19:26:33 2011 +0000"
      },
      "message": "target: Make locking in transport_deregister_session() IRQ safe\n\nAt least the tcm_qla2xxx fabric driver calls into transport_deregister_session()\nwhile holding an IRQ-disabled spinlock, so the inner locking needs to\nuse spin_lock_irqsave() instead of spin_lock_bh().\n\nThis fixes warnings seen with tcm_qla2xxx like:\n\n    WARNING: at kernel/softirq.c:159 local_bh_enable_ip+0x98/0xb0()\n    Call Trace:\n     [\u003cffffffff8104e65f\u003e] warn_slowpath_common+0x7f/0xc0\n     [\u003cffffffff8104e6ba\u003e] warn_slowpath_null+0x1a/0x20\n     [\u003cffffffff81055368\u003e] local_bh_enable_ip+0x98/0xb0\n     [\u003cffffffff814d5284\u003e] _raw_spin_unlock_bh+0x14/0x20\n     [\u003cffffffffa027b7f6\u003e] transport_deregister_session+0x96/0x180 [target_core_mod]\n     [\u003cffffffffa00f7731\u003e] tcm_qla2xxx_free_session+0xd1/0x170 [tcm_qla2xxx]\n     [\u003cffffffffa01b9173\u003e] qla_tgt_sess_put+0xc3/0x140 [qla2xxx]\n     [\u003cffffffffa01bf40f\u003e] qla_tgt_stop_phase1+0x8f/0x2c0 [qla2xxx]\n     [\u003cffffffffa00f735e\u003e] tcm_qla2xxx_tpg_store_enable+0x6e/0xd0 [tcm_qla2xxx]\n     [\u003cffffffffa026ca29\u003e] target_fabric_tpg_attr_store+0x39/0x40 [target_core_mod]\n     [\u003cffffffffa00a575d\u003e] configfs_write_file+0xbd/0x120 [configfs]\n     [\u003cffffffff811464a6\u003e] vfs_write+0xc6/0x180\n     [\u003cffffffff811467c1\u003e] sys_write+0x51/0x90\n     [\u003cffffffff814dd382\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4e0f05297ff615a9a4e269da301ff77f660a3ab0",
      "tree": "d0cc6e5419248685907afe0a693e25de1fdd7f98",
      "parents": [
        "f15ea5780d08e4c96930c0d607d05e480ec588c8"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Aug 12 10:16:52 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Aug 22 19:26:32 2011 +0000"
      },
      "message": "tcm_fc: init/exit functions should not be protected by \"#ifdef MODULE\"\n\nThere\u0027s no need for the #ifdef protection when building into the kernel,\nand in fact we need the module_init() for the initialization function to\nbe called.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "f15ea5780d08e4c96930c0d607d05e480ec588c8"
}
