)]}'
{
  "log": [
    {
      "commit": "2a38ada0f1ab9f894eea4428731ebc811b51c3f3",
      "tree": "759c765808a23a3a35e4ba10d8306c847c0205b7",
      "parents": [
        "19218e895cefdd389c96af12c93c89e7276bbaad",
        "44d19f5a04ae4e433548ba2f25e4d2ccfcac765e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.72\u0027 into tmp\n\nThis is the 3.4.72 stable release\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/include/asm/mutex.h\n\tarch/arm/kernel/perf_event.c\n\tarch/arm/kernel/traps.c\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/base/power/main.c\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/gpu/drm/radeon/radeon_mode.h\n\tdrivers/mmc/card/block.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/usb/core/message.c\n\tdrivers/usb/host/xhci-plat.c\n\tdrivers/usb/host/xhci.h\n\tdrivers/virtio/virtio_ring.c\n\tfs/ubifs/dir.c\n\tinclude/linux/freezer.h\n\tinclude/linux/virtio.h\n\tinclude/media/v4l2-ctrls.h\n\tinclude/net/bluetooth/hci_core.h\n\tinclude/net/bluetooth/mgmt.h\n\tkernel/cgroup.c\n\tkernel/futex.c\n\tkernel/signal.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_core.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/mgmt.c\n\tnet/bluetooth/rfcomm/sock.c\n\tnet/bluetooth/smp.c\n\nChange-Id: I4fb0d5de74ca76f933d95d98e1a9c2c859402f34\n"
    },
    {
      "commit": "27c0008c75ddfa759d5645ecbc3f86e0de37472a",
      "tree": "e9fde1aec4d5fb1de9ca537767279e698a8526b9",
      "parents": [
        "7dac7f101e7b6e5b1dd5164cba7cf7268311e13e"
      ],
      "author": {
        "name": "Eric Seppanen",
        "email": "eric@purestorage.com",
        "time": "Wed Nov 20 14:19:52 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Dec 04 10:50:28 2013 -0800"
      },
      "message": "iscsi-target: chap auth shouldn\u0027t match username with trailing garbage\n\ncommit 86784c6bdeeef78eed94d298be7a8879f6a97ee2 upstream.\n\nIn iSCSI negotiations with initiator CHAP enabled, usernames with\ntrailing garbage are permitted, because the string comparison only\nchecks the strlen of the configured username.\n\ne.g. \"usernameXXXXX\" will be permitted to match \"username\".\n\nJust check one more byte so the trailing null char is also matched.\n\nSigned-off-by: Eric Seppanen \u003ceric@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7dac7f101e7b6e5b1dd5164cba7cf7268311e13e",
      "tree": "ee905090ef9fed06f3b67ac1c732b90e9a5b2bf3",
      "parents": [
        "34bf7634b6d5dd7ce87588b51420cc0a23f3d9d6"
      ],
      "author": {
        "name": "Eric Seppanen",
        "email": "eric@purestorage.com",
        "time": "Wed Nov 20 14:19:51 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Dec 04 10:50:27 2013 -0800"
      },
      "message": "iscsi-target: fix extract_param to handle buffer length corner case\n\ncommit 369653e4fb511928511b0ce81f41c812ff1f28b6 upstream.\n\nextract_param() is called with max_length set to the total size of the\noutput buffer.  It\u0027s not safe to allow a parameter length equal to the\nbuffer size as the terminating null would be written one byte past the\nend of the output buffer.\n\nSigned-off-by: Eric Seppanen \u003ceric@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e51c435e8f955faeb93c8a10f71d7ebf43d887db",
      "tree": "b6b8c68a9668731c7d6d03c0110659aeafcc8589",
      "parents": [
        "3f661fbf82b3751be0875ed0993d4c29f8268186"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 24 16:15:08 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Sep 07 21:58:16 2013 -0700"
      },
      "message": "target: Fix trailing ASCII space usage in INQUIRY vendor+model\n\ncommit ee60bddba5a5f23e39598195d944aa0eb2d455e5 upstream.\n\nThis patch fixes spc_emulate_inquiry_std() to add trailing ASCII\nspaces for INQUIRY vendor + model fields following SPC-4 text:\n\n  \"ASCII data fields described as being left-aligned shall have any\n   unused bytes at the end of the field (i.e., highest offset) and\n   the unused bytes shall be filled with ASCII space characters (20h).\"\n\nThis addresses a problem with Falconstor NSS multipathing.\n\nReported-by: Tomas Molota \u003ctomas.molota@lightstorm.sk\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "c447fb2bd2b310e34c74580a494e001312a58a68",
      "tree": "0d3cde85adea2670fc7ae7895901a0a51c931a82",
      "parents": [
        "6da6fd28a496262bf5fd2d8211d3b906a1239f13"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Wed Jul 03 11:35:11 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Aug 04 16:25:41 2013 +0800"
      },
      "message": "iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow\n\ncommit 0fbfc46fb0b2f543a8b539e94c6c293ebc0b05a6 upstream.\n\nThis patch fixes a potential buffer overflow while processing\niscsi_node_auth input for configfs attributes within NodeACL\ntfc_tpg_nacl_auth_cit context.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1c9ce1e6c11777c95b974883be2f0313873d6f14",
      "tree": "68b149cb9f9e7988fc0955239208d9ab104d7bb6",
      "parents": [
        "849520777e464fa051188d1118d43f21babb9dbe",
        "00709f7f01c3a10252f030f0bdacecbb349d7be4"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 22 22:10:20 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 22 22:10:20 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.11\u0027 into cm-10.1\n\nThis is the 3.4.11 stable release\n\nConflicts:\n\tarch/arm/vfp/vfpmodule.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\nChange-Id: I164bf611358e14afd3ff48e55a99c0d7c7afc45f\n"
    },
    {
      "commit": "4c3017e4b2d21feed4a510c1ee69aa77d2384493",
      "tree": "fe6f80bc038d7952cf5ffba9c747134b7f99f5bd",
      "parents": [
        "14a940f54732e81466120a0cf55035df72745ce6"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Thu May 30 16:36:51 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 27 11:27:33 2013 -0700"
      },
      "message": "target/iscsi: don\u0027t corrupt bh_count in iscsit_stop_time2retain_timer()\n\ncommit 574780fd5e6ec52bd43e0bdb777a19e4c4c6aa9c upstream.\n\nHere is a fun one.  Bug seems to have been introduced by commit 140854cb,\nalmost two years ago.  I have no idea why we only started seeing it now,\nbut we did.\n\nRough callgraph:\ncore_tpg_set_initiator_node_queue_depth()\n`-\u003e spin_lock_irqsave(\u0026tpg-\u003esession_lock, flags);\n`-\u003e lio_tpg_shutdown_session()\n    `-\u003e iscsit_stop_time2retain_timer()\n        `-\u003e spin_unlock_bh(\u0026se_tpg-\u003esession_lock);\n        `-\u003e spin_lock_bh(\u0026se_tpg-\u003esession_lock);\n`-\u003e spin_unlock_irqrestore(\u0026tpg-\u003esession_lock, flags);\n\ncore_tpg_set_initiator_node_queue_depth() used to call spin_lock_bh(),\nbut 140854cb changed that to spin_lock_irqsave().  However,\nlio_tpg_shutdown_session() still claims to be called with spin_lock_bh()\nheld, as does iscsit_stop_time2retain_timer():\n *      Called with spin_lock_bh(\u0026struct se_portal_group-\u003esession_lock) held\n\nStale documentation is mostly annoying, but in this case the dropping\nthe lock with the _bh variant is plain wrong.  It is also wrong to drop\nlocks two functions below the lock-holder, but I will ignore that bit\nfor now.\n\nAfter some more locking and unlocking we eventually hit this backtrace:\n------------[ cut here ]------------\nWARNING: at kernel/softirq.c:159 local_bh_enable_ip+0xe8/0x100()\nPid: 24645, comm: lio_helper.py Tainted: G           O 3.6.11+\nCall Trace:\n [\u003cffffffff8103e5ff\u003e] warn_slowpath_common+0x7f/0xc0\n [\u003cffffffffa040ae37\u003e] ? iscsit_inc_conn_usage_count+0x37/0x50 [iscsi_target_mod]\n [\u003cffffffff8103e65a\u003e] warn_slowpath_null+0x1a/0x20\n [\u003cffffffff810472f8\u003e] local_bh_enable_ip+0xe8/0x100\n [\u003cffffffff815b8365\u003e] _raw_spin_unlock_bh+0x15/0x20\n [\u003cffffffffa040ae37\u003e] iscsit_inc_conn_usage_count+0x37/0x50 [iscsi_target_mod]\n [\u003cffffffffa041149a\u003e] iscsit_stop_session+0xfa/0x1c0 [iscsi_target_mod]\n [\u003cffffffffa0417fab\u003e] lio_tpg_shutdown_session+0x7b/0x90 [iscsi_target_mod]\n [\u003cffffffffa033ede4\u003e] core_tpg_set_initiator_node_queue_depth+0xe4/0x290 [target_core_mod]\n [\u003cffffffffa0409032\u003e] iscsit_tpg_set_initiator_node_queue_depth+0x12/0x20 [iscsi_target_mod]\n [\u003cffffffffa0415c29\u003e] lio_target_nacl_store_cmdsn_depth+0xa9/0x180 [iscsi_target_mod]\n [\u003cffffffffa0331b49\u003e] target_fabric_nacl_base_attr_store+0x39/0x40 [target_core_mod]\n [\u003cffffffff811b857d\u003e] configfs_write_file+0xbd/0x120\n [\u003cffffffff81148f36\u003e] vfs_write+0xc6/0x180\n [\u003cffffffff81149251\u003e] sys_write+0x51/0x90\n [\u003cffffffff815c0969\u003e] system_call_fastpath+0x16/0x1b\n---[ end trace 3747632b9b164652 ]---\n\nAs a pure band-aid, this patch drops the _bh.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n\n"
    },
    {
      "commit": "dde448d95d8698ee4c8373bb48fe08a22f41052f",
      "tree": "7fe87fa93bfa5b81e6f87b147e32512d2e8198e3",
      "parents": [
        "ac4f6190fae02a3dc30133f90488b996f726bf7a",
        "f95b978981a7d154ba40d14c18e8ed5c694e6124"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.10\u0027 into cm-10.1\n\nThis is the 3.4.10 stable release\n\nConflicts:\n\tarch/arm/mm/tlb-v7.S\n\tarch/arm/vfp/entry.S\n\tdrivers/base/power/main.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/net/tun.c\n\tdrivers/usb/core/hub.c\n\tdrivers/usb/host/xhci.h\n\tinclude/linux/sched.h\n\tkernel/power/suspend.c\n\nChange-Id: Ia2477ec93ceb64b13dd1a2d8aa646cb233387d14\n"
    },
    {
      "commit": "7c12b0057706c0694c96c06a2988fed65c8c7515",
      "tree": "f628b18c568df643b0ed89e8d8eb81ced39fb9bf",
      "parents": [
        "6092ad5bbc7631f60be754f5013533c909eca733"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu May 23 10:32:17 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 07 12:49:29 2013 -0700"
      },
      "message": "iscsi-target: fix heap buffer overflow on error\n\ncommit cea4dcfdad926a27a18e188720efe0f2c9403456 upstream.\n\nIf a key was larger than 64 bytes, as checked by iscsi_check_key(), the\nerror response packet, generated by iscsi_add_notunderstood_response(),\nwould still attempt to copy the entire key into the packet, overflowing\nthe structure on the heap.\n\nRemote preauthentication kernel memory corruption was possible if a\ntarget was configured and listening on the network.\n\nCVE-2013-2850\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "173603ab8ed8aff22b3606abf3b1dc591cc5ccd7",
      "tree": "70baf68671f58f4a2ad590e83c5991bb515a9912",
      "parents": [
        "b1f6964aaa88bbd9695a51fc7b46177bed91e425"
      ],
      "author": {
        "name": "Shlomo Pongratz",
        "email": "shlomop@mellanox.com",
        "time": "Sun May 05 17:36:26 2013 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun May 19 10:54:49 2013 -0700"
      },
      "message": "iscsi-target: Fix processing of OOO commands\n\ncommit 3eccfdb01da58fbd0f789ae6ca61cee3769e26de upstream.\n\nFix two issues in OOO commands processing done at iscsit_attach_ooo_cmdsn.\n\nHandle command serial numbers wrap around by using iscsi_sna_lt and not regular comparisson.\n\nThe routine iterates until it finds an entry whose serial number is greater than the serial number of\nthe new one, thus the new entry should be inserted before that entry and not after.\n\nSigned-off-by: Shlomo Pongratz \u003cshlomop@mellanox.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "eced4ec1b69c8cc5428ef29b947376bc6d57c8ce",
      "tree": "33df82d0e27871e3351d970eb97772ec6de7c417",
      "parents": [
        "e0b4cef3446f77889a3699309a9aad5f70d9a939"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Apr 10 15:00:27 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Apr 16 21:27:26 2013 -0700"
      },
      "message": "target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition CDBs\n\ncommit 30f359a6f9da65a66de8cadf959f0f4a0d498bba upstream.\n\nThis patch fixes a bug where a handful of informational / control CDBs\nthat should be allowed during ALUA access state Standby/Offline/Transition\nwhere incorrectly returning CHECK_CONDITION + ASCQ_04H_ALUA_TG_PT_*.\n\nThis includes INQUIRY + REPORT_LUNS, which would end up preventing LUN\nregistration when LUN scanning occured during these ALUA access states.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6e8d94de159e7520e6ff1ecaf8419844b93631e7",
      "tree": "8f6a2bfb1a240d3822937f181a86bce30e2d8e73",
      "parents": [
        "bea7cce4319edd8c15d78833f9b5bb752f997662"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon Mar 04 13:52:09 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 28 12:12:13 2013 -0700"
      },
      "message": "target/iscsi: Fix mutual CHAP auth on big-endian arches\n\ncommit 7ac9ad11b2a5cf77a92b58ee6b672ad2fa155eb1 upstream.\n\nSee https://bugzilla.redhat.com/show_bug.cgi?id\u003d916290\n\nUsed a temp var since we take its address in sg_init_one.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a5646410c2d80c4dd4692f5f6bc2fcdfc3aa557b",
      "tree": "eeaf3a5dc5bbbbe2abe76ecee486769078a0b480",
      "parents": [
        "c60de9344ceeedd5f61a655af34306002fda9167"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Wed Feb 27 13:29:29 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 14 11:29:42 2013 -0700"
      },
      "message": "target/pscsi: Fix page increment\n\ncommit 472b72f2db7831d7dbe22ffdff4adee3bd49b05d upstream.\n\nThe page++ is wrong. It makes bio_add_pc_page() pointing to a wrong page\naddress if the \u0027while (len \u003e 0 \u0026\u0026 data_len \u003e 0) { ... }\u0027 loop is\nexecuted more than one once.\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "316857e5fe5391057d5a05f215e01d0deff7c473",
      "tree": "0e701551c2631af261b632b407c0d2c5577b79fb",
      "parents": [
        "3fa4f7261d75cb6b35fdf8d329f5fd64e7354c58"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:31:37 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 04 06:06:39 2013 +0800"
      },
      "message": "target: Add missing mapped_lun bounds checking during make_mappedlun setup\n\ncommit fbbf8555a986ed31e54f006b6cc637ea4ff1425b upstream.\n\nThis patch adds missing bounds checking for the configfs provided\nmapped_lun value during target_fabric_make_mappedlun() setup ahead\nof se_lun_acl initialization.\n\nThis addresses a potential OOPs when using a mapped_lun value that\nexceeds the hardcoded TRANSPORT_MAX_LUNS_PER_TPG-1 value within\nse_node_acl-\u003edevice_list[].\n\nReported-by: Jan Engelhardt \u003cjengelh@inai.de\u003e\nCc: Jan Engelhardt \u003cjengelh@inai.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3fa4f7261d75cb6b35fdf8d329f5fd64e7354c58",
      "tree": "2cd2f12bd87943cb865c2038b578d568e890d050",
      "parents": [
        "58d7422c654e7720a3920e63dcd6c64052aeec2d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:00:33 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 04 06:06:39 2013 +0800"
      },
      "message": "target: Fix lookup of dynamic NodeACLs during cached demo-mode operation\n\ncommit fcf29481fb8e106daad6688f2e898226ee928992 upstream.\n\nThis patch fixes a bug in core_tpg_check_initiator_node_acl() -\u003e\ncore_tpg_get_initiator_node_acl() where a dynamically created\nse_node_acl generated during session login would be skipped during\nsubsequent lookup due to the \u0027!acl-\u003edynamic_node_acl\u0027 check, causing\na new se_node_acl to be created with a duplicate -\u003einitiatorname.\n\nThis would occur when a fabric endpoint was configured with\nTFO-\u003etpg_check_demo_mode()\u003d1 + TPF-\u003etpg_check_demo_mode_cache()\u003d1\npreventing the release of an existing se_node_acl during se_session\nshutdown.\n\nAlso, drop the unnecessary usage of core_tpg_get_initiator_node_acl()\nwithin core_dev_init_initiator_node_lun_acl() that originally\nrequired the extra \u0027!acl-\u003edynamic_node_acl\u0027 check, and just pass\nthe configfs provided se_node_acl pointer instead.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "bdfb3335569583fd195a3a1a89380d7648a9a85f",
      "tree": "01b3dc5da797651dac0f949db3f9c4ff080f08d0",
      "parents": [
        "61d40262e55fe00b817fe7e28f0f4dfad6e31fca"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 19 03:15:14 2013 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 28 06:59:03 2013 -0800"
      },
      "message": "target: Fix divide by zero bug in fabric_max_sectors for unconfigured devices\n\ncommit 7a3cf6ca1ab2a2f7161c6dec5a787fc7a5de864e upstream\n\nThis patch fixes a possible divide by zero bug when the fabric_max_sectors\ndevice attribute is written and backend se_device failed to be successfully\nconfigured -\u003e enabled.\n\nGo ahead and use block_size\u003d512 within se_dev_set_fabric_max_sectors()\nin the event of a target_configure_device() failure case, as no valid\ndev-\u003edev_attrib.block_size value will have been setup yet.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Herton Ronaldo Krzesinski \u003cherton.krzesinski@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "9767a2421ad0f125bda9a8a1bed0c76bece8125c",
      "tree": "c415b897f11dfdabb190be081df9cfa7749f4147",
      "parents": [
        "ae2bac5c25d3f073d307338d9a84a1fe454c283b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 24 21:57:14 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Feb 03 18:24:42 2013 -0600"
      },
      "message": "target: fix regression with dev_link_magic in target_fabric_port_link\n\nThis is to fix a regression that only affect the stable (not for the mainline)\nthat the stable commit fdf9d86 was incorrectly placed dev-\u003edev_link_magic check\nbefore the *dev assignment in target_fabric_port_link() due to fuzzy automatically\ncontext adjustment during the back-porting.\n\nReported-by: Chris Boot \u003cbootc@bootc.net\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "92a7389317838f3338466df0c0e3d23ad33cb1f4",
      "tree": "6ccd124313aa8d7abbf16fd5aab09af8d80b8acb",
      "parents": [
        "ced8dfbc6b44c7b14204a13ff95f22bdee52578f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 04 23:43:57 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jan 21 11:45:24 2013 -0800"
      },
      "message": "target: Add link_magic for fabric allow_link destination target_items\n\ncommit 0ff8754981261a80f4b77db2536dfea92c2d4539 upstream.\n\nThis patch adds [dev,lun]_link_magic value assignment + checks within generic\ntarget_fabric_port_link() and target_fabric_mappedlun_link() code to ensure\ndestination config_item *target_item sent from configfs_symlink() -\u003e\nconfig_item_operations-\u003eallow_link() is the underlying se_device-\u003edev_group\nand se_lun-\u003elun_group that we expect to symlink.\n\nReported-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "aa16959322c2c096ac050d8a970e1cf2d2b1cc35",
      "tree": "8a4f501726a496b4a7805c719a073f8d745db58c",
      "parents": [
        "4b77fd473bf78ec6ddd7c6f4d1f03582a4ec34b9"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:47:59 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jan 21 11:45:14 2013 -0800"
      },
      "message": "target: Release se_cmd when LUN lookup fails for TMR\n\ncommit 5a3b6fc0092c5f8dee7820064ee54d2631d48573 upstream.\n\nWhen transport_lookup_tmr_lun() fails and we return a task management\nresponse from target_complete_tmr_failure(), we need to call\ntransport_cmd_check_stop_to_fabric() to release the last ref to the\ncmd after calling se_tfo-\u003equeue_tm_rsp(), or else we will never remove\nthe failed TMR from the session command list (and we\u0027ll end up waiting\nforever when trying to tear down the session).\n\n(nab: Fix minor compile breakage)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "4b77fd473bf78ec6ddd7c6f4d1f03582a4ec34b9",
      "tree": "af88d9db58a3b219bf9605f3bb3620dd0a309f71",
      "parents": [
        "e86f92f7eaeb01b071d2ca2a473c1efff6e9db68"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Fri Dec 21 10:58:19 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jan 21 11:45:14 2013 -0800"
      },
      "message": "tcm_fc: Do not report target role when target is not defined\n\ncommit edec8dfefa1f372b2dd8197da555352e76a10c03 upstream.\n\nClear the target role when no target is provided for\nthe node performing a PRLI.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nReviewed-by: Bhanu Prakash Gollapudi \u003cbprakash@broadcom.com\u003e\nAcked by Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e86f92f7eaeb01b071d2ca2a473c1efff6e9db68",
      "tree": "86f306643a7daa9f67d5c1d5bec79607093ae9fe",
      "parents": [
        "8630dda5a013d1b39280ec9bda2ee9b7e99b68c1"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Fri Dec 21 10:58:14 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jan 21 11:45:14 2013 -0800"
      },
      "message": "tcm_fc: Do not indicate retry capability to initiators\n\ncommit f2eeba214bcd0215b7f558cab6420e5fd153042b upstream.\n\nWhen generating a PRLI response to an initiator, clear the\nFCP_SPPF_RETRY bit in the response.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nReviewed-by: Bhanu Prakash Gollapudi \u003cbprakash@broadcom.com\u003e\nAcked by Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "28a63b67b3d52e40826d82425307e8f067551106",
      "tree": "937050b18079273f65a9c2217305ba3a6dce3d14",
      "parents": [
        "93269101285d5bfd18b1f3b7078a76ed87e7a834"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Mon Dec 10 17:04:00 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 17 08:50:45 2013 -0800"
      },
      "message": "target/tcm_fc: fix the lockdep warning due to inconsistent lock state\n\ncommit 9f4ad44b264f8bb61ffdd607148215566568430d upstream.\n\nThe lockdep warning below is in theory correct but it will be in really weird\nrare situation that ends up that deadlock since the tcm fc session is hashed\nbased the rport id. Nonetheless, the complaining below is about rcu callback\nthat does the transport_deregister_session() is happening in softirq, where\ntransport_register_session() that happens earlier is not. This triggers the\nlockdep warning below. So, just fix this to make lockdep happy by disabling\nthe soft irq before calling transport_register_session() in ft_prli.\n\nBTW, this was found in FCoE VN2VN over two VMs, couple of create and destroy\nwould get this triggered.\n\nv1: was enforcing register to be in softirq context which was not righ. See,\nhttp://www.spinics.net/lists/target-devel/msg03614.html\n\nv2: following comments from Roland\u0026Nick (thanks), it seems we don\u0027t have to\ndo transport_deregister_session() in rcu callback, so move it into ft_sess_free()\nbut still do kfree() of the corresponding ft_sess struct in rcu callback to\nmake sure the ft_sess is not freed till the rcu callback.\n\n...\n[ 1328.370592] scsi2 : FCoE Driver\n[ 1328.383429] fcoe: No FDMI support.\n[ 1328.384509] host2: libfc: Link up on port (000000)\n[ 1328.934229] host2: Assigned Port ID 00a292\n[ 1357.232132] host2: rport 00a393: Remove port\n[ 1357.232568] host2: rport 00a393: Port sending LOGO from Ready state\n[ 1357.233692] host2: rport 00a393: Delete port\n[ 1357.234472] host2: rport 00a393: work event 3\n[ 1357.234969] host2: rport 00a393: callback ev 3\n[ 1357.235979] host2: rport 00a393: Received a LOGO response closed\n[ 1357.236706] host2: rport 00a393: work delete\n[ 1357.237481]\n[ 1357.237631] \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[ 1357.238064] [ INFO: inconsistent lock state ]\n[ 1357.238450] 3.7.0-rc7-yikvm+ #3 Tainted: G           O\n[ 1357.238450] ---------------------------------\n[ 1357.238450] inconsistent {SOFTIRQ-ON-W} -\u003e {IN-SOFTIRQ-W} usage.\n[ 1357.238450] ksoftirqd/0/3 [HC0[0]:SC1[1]:HE0:SE0] takes:\n[ 1357.238450]  (\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock){+.?...}, at: [\u003cffffffffa01eacd4\u003e] transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450] {SOFTIRQ-ON-W} state was registered at:\n[ 1357.238450]   [\u003cffffffff810834f5\u003e] mark_held_locks+0x6d/0x95\n[ 1357.238450]   [\u003cffffffff8108364a\u003e] trace_hardirqs_on_caller+0x12d/0x197\n[ 1357.238450]   [\u003cffffffff810836c1\u003e] trace_hardirqs_on+0xd/0xf\n[ 1357.238450]   [\u003cffffffff8149caba\u003e] _raw_spin_unlock_irq+0x2d/0x45\n[ 1357.238450]   [\u003cffffffffa01e8d10\u003e] __transport_register_session+0xb8/0x122 [target_core_mod]\n[ 1357.238450]   [\u003cffffffffa01e8dbe\u003e] transport_register_session+0x44/0x5a [target_core_mod]\n[ 1357.238450]   [\u003cffffffffa018e32c\u003e] ft_prli+0x1e3/0x275 [tcm_fc]\n[ 1357.238450]   [\u003cffffffffa0160e8d\u003e] fc_rport_recv_req+0x95e/0xdc5 [libfc]\n[ 1357.238450]   [\u003cffffffffa015be88\u003e] fc_lport_recv_els_req+0xc4/0xd5 [libfc]\n[ 1357.238450]   [\u003cffffffffa015c778\u003e] fc_lport_recv_req+0x12f/0x18f [libfc]\n[ 1357.238450]   [\u003cffffffffa015a6d7\u003e] fc_exch_recv+0x8ba/0x981 [libfc]\n[ 1357.238450]   [\u003cffffffffa0176d7a\u003e] fcoe_percpu_receive_thread+0x47a/0x4e2 [fcoe]\n[ 1357.238450]   [\u003cffffffff810549f1\u003e] kthread+0xb1/0xb9\n[ 1357.238450]   [\u003cffffffff814a40ec\u003e] ret_from_fork+0x7c/0xb0\n[ 1357.238450] irq event stamp: 275411\n[ 1357.238450] hardirqs last  enabled at (275410): [\u003cffffffff810bb6a0\u003e] rcu_process_callbacks+0x229/0x42a\n[ 1357.238450] hardirqs last disabled at (275411): [\u003cffffffff8149c2f7\u003e] _raw_spin_lock_irqsave+0x22/0x8e\n[ 1357.238450] softirqs last  enabled at (275394): [\u003cffffffff8103d669\u003e] __do_softirq+0x246/0x26f\n[ 1357.238450] softirqs last disabled at (275399): [\u003cffffffff8103d6bb\u003e] run_ksoftirqd+0x29/0x62\n[ 1357.238450]\n[ 1357.238450] other info that might help us debug this:\n[ 1357.238450]  Possible unsafe locking scenario:\n[ 1357.238450]\n[ 1357.238450]        CPU0\n[ 1357.238450]        ----\n[ 1357.238450]   lock(\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock);\n[ 1357.238450]   \u003cInterrupt\u003e\n[ 1357.238450]     lock(\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock);\n[ 1357.238450]\n[ 1357.238450]  *** DEADLOCK ***\n[ 1357.238450]\n[ 1357.238450] no locks held by ksoftirqd/0/3.\n[ 1357.238450]\n[ 1357.238450] stack backtrace:\n[ 1357.238450] Pid: 3, comm: ksoftirqd/0 Tainted: G           O 3.7.0-rc7-yikvm+ #3\n[ 1357.238450] Call Trace:\n[ 1357.238450]  [\u003cffffffff8149399a\u003e] print_usage_bug+0x1f5/0x206\n[ 1357.238450]  [\u003cffffffff8100da59\u003e] ? save_stack_trace+0x2c/0x49\n[ 1357.238450]  [\u003cffffffff81082aae\u003e] ? print_irq_inversion_bug.part.14+0x1ae/0x1ae\n[ 1357.238450]  [\u003cffffffff81083336\u003e] mark_lock+0x106/0x258\n[ 1357.238450]  [\u003cffffffff81084e34\u003e] __lock_acquire+0x2e7/0xe53\n[ 1357.238450]  [\u003cffffffff8102903d\u003e] ? pvclock_clocksource_read+0x48/0xb4\n[ 1357.238450]  [\u003cffffffff810ba6a3\u003e] ? rcu_process_gp_end+0xc0/0xc9\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff81085ef1\u003e] lock_acquire+0x119/0x143\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff8149c329\u003e] _raw_spin_lock_irqsave+0x54/0x8e\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff810bb6a0\u003e] ? rcu_process_callbacks+0x229/0x42a\n[ 1357.238450]  [\u003cffffffffa018ddc5\u003e] ft_sess_rcu_free+0x17/0x24 [tcm_fc]\n[ 1357.238450]  [\u003cffffffffa018ddae\u003e] ? ft_sess_free+0x1b/0x1b [tcm_fc]\n[ 1357.238450]  [\u003cffffffff810bb6d7\u003e] rcu_process_callbacks+0x260/0x42a\n[ 1357.238450]  [\u003cffffffff8103d55d\u003e] __do_softirq+0x13a/0x26f\n[ 1357.238450]  [\u003cffffffff8149b34e\u003e] ? __schedule+0x65f/0x68e\n[ 1357.238450]  [\u003cffffffff8103d6bb\u003e] run_ksoftirqd+0x29/0x62\n[ 1357.238450]  [\u003cffffffff8105c83c\u003e] smpboot_thread_fn+0x1a5/0x1aa\n[ 1357.238450]  [\u003cffffffff8105c697\u003e] ? smpboot_unregister_percpu_thread+0x47/0x47\n[ 1357.238450]  [\u003cffffffff810549f1\u003e] kthread+0xb1/0xb9\n[ 1357.238450]  [\u003cffffffff8149b49d\u003e] ? wait_for_common+0xbb/0x10a\n[ 1357.238450]  [\u003cffffffff81054940\u003e] ? __init_kthread_worker+0x59/0x59\n[ 1357.238450]  [\u003cffffffff814a40ec\u003e] ret_from_fork+0x7c/0xb0\n[ 1357.238450]  [\u003cffffffff81054940\u003e] ? __init_kthread_worker+0x59/0x59\n[ 1417.440099]  rport-2:0-0: blocked FC remote port time out: removing rport\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nCc: Open-FCoE \u003cdevel@open-fcoe.org\u003e\nCc: Nicholas A. Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "370caef9e8e2800a759d9c29e2c4d41375bdad62",
      "tree": "26a3951afb4f4546bc5c73c2c85df6b39a1a4e1c",
      "parents": [
        "2e4be18823cb686f1316ac856ce1fbc651dd28e1"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Fri Nov 23 12:07:39 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 17 08:50:44 2013 -0800"
      },
      "message": "iscsit: use GFP_ATOMIC under spin lock\n\ncommit 3c989d7603872bf878840f7ce3ea49b73bea4c6c upstream.\n\nThe function iscsit_build_conn_drop_async_message() is called\nfrom iscsit_close_connection() with spin lock \u0027sess-\u003econn_lock\u0027\nheld, so we should use GFP_ATOMIC instead of GFP_KERNEL.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "bfc5de3bc907e97b9aabce6d6517a55d5ed6d791",
      "tree": "9b18db8668193c999e607f89be27d619d46bfcaf",
      "parents": [
        "7f83bc1f1bff2e9b89b3a505750b067f0073fe5c"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "steve@purestorage.com",
        "time": "Wed Oct 31 10:24:02 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Nov 17 13:15:55 2012 -0800"
      },
      "message": "target: Fix incorrect usage of nested IRQ spinlocks in ABORT_TASK path\n\ncommit ab74b3d62f05192bf8fb8f169e7999d1183b2e08 upstream.\n\nThis patch changes core_tmr_abort_task() to use spin_lock -\u003e spin_unlock\naround se_cmd-\u003et_state_lock while spin_lock_irqsave is held via\nse_sess-\u003esess_cmd_lock.\n\nSigned-off-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7f83bc1f1bff2e9b89b3a505750b067f0073fe5c",
      "tree": "93452f9f6cee6ca772d91f1e095772e29b7851bb",
      "parents": [
        "227ab73196544a25f0c03338c5b49d3fdc1d1e38"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:46 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Nov 17 13:15:55 2012 -0800"
      },
      "message": "iscsi-target: Fix missed wakeup race in TX thread\n\ncommit d5627acba9ae584cf4928af19f7ddf5f6837de32 upstream.\n\nThe sleeping code in iscsi_target_tx_thread() is susceptible to the classic\nmissed wakeup race:\n\n - TX thread finishes handle_immediate_queue() and handle_response_queue(),\n   thinks both queues are empty.\n - Another thread adds a queue entry and does wake_up_process(), which does\n   nothing because the TX thread is still awake.\n - TX thread does schedule_timeout() and sleeps forever.\n\nIn practice this can kill an iSCSI connection if for example an initiator\ndoes single-threaded writes and the target misses the wakeup window when\nqueueing an R2T; in this case the connection will be stuck until the\ninitiator loses patience and does some task management operation (or kills\nthe connection entirely).\n\nFix this by converting to wait_event_interruptible(), which does not\nsuffer from this sort of race.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "227ab73196544a25f0c03338c5b49d3fdc1d1e38",
      "tree": "b987a8cbba2a2bdbea7bb2081294fd0206d796d7",
      "parents": [
        "506485a3c6d926cc01e6d05088eac94adf1d6ae5"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:45 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Nov 17 13:15:55 2012 -0800"
      },
      "message": "target: Avoid integer overflow in se_dev_align_max_sectors()\n\ncommit 3e03989b5868acf69a391a424dc71fcd6cc48167 upstream.\n\nThe expression (max_sectors * block_size) might overflow a u32\n(indeed, since iblock sets max_hw_sectors to UINT_MAX, it is\nguaranteed to overflow and end up with a much-too-small result in many\ncommon cases).  Fix this by doing an equivalent calculation that\ndoesn\u0027t require multiplication.\n\nWhile we\u0027re touching this code, avoid splitting a printk format across\ntwo lines and use pr_info(...) instead of printk(KERN_INFO ...).\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "506485a3c6d926cc01e6d05088eac94adf1d6ae5",
      "tree": "580e630da6ecf040e229dabb9b43dc31a8f6502f",
      "parents": [
        "75d1ac720f8e92d2334ff7cc4e9a58ddb5213636"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:44 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Nov 17 13:15:55 2012 -0800"
      },
      "message": "target: Don\u0027t return success from module_init() if setup fails\n\ncommit 0d0f9dfb31e0a6c92063e235417b42df185b3275 upstream.\n\nIf the call to core_dev_release_virtual_lun0() fails, then nothing\nsets ret to anything other than 0, so even though everything is\ntorn down and freed, target_core_init_configfs() will seem to succeed\nand the module will be loaded.  Fix this by passing the return value\non up the chain.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8c9c9dfcd1d31e2f149ea991f15bfdd4b5e1496e",
      "tree": "5380dd7a7819ecf530531e5f130c837c745ba741",
      "parents": [
        "4bd1d456218f48e77be45feaadcacce29ce6e3ac"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Oct 26 15:35:45 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Nov 05 09:50:42 2012 +0100"
      },
      "message": "target: Fix double-free of se_cmd in target_complete_tmr_failure\n\ncommit e13d5fef88c40b87c8430f8274c3a9ca32ef90bc upstream.\n\nFabric drivers currently expect to internally release se_cmd in the event\nof a TMR failure during target_submit_tmr(), which means the immediate call\nto transport_generic_free_cmd() after TFO-\u003equeue_tm_rsp() from within\ntarget_complete_tmr_failure() workqueue context is wrong.\n\nThis is done as some fabrics expect TMR operations to be acknowledged\nbefore releasing the descriptor, so the assumption that core is releasing\nse_cmd associated TMR memory is incorrect.  This fixes a OOPs where\ntransport_generic_free_cmd() was being called more than once.\n\nThis bug was originally observed with tcm_qla2xxx fabric ports.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e1621ec4754097582c73c0ed8c394dcc50b1e0fd",
      "tree": "473e8cf05aa8ef5b256298006343e74ecb2213d7",
      "parents": [
        "b77a7a0e9f3ed51b523857f26c42e350faf43add"
      ],
      "author": {
        "name": "Peter Senna Tschudin",
        "email": "peter.senna@gmail.com",
        "time": "Mon Sep 17 20:05:33 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 21 09:27:58 2012 -0700"
      },
      "message": "target: fix return code in target_core_init_configfs error path\n\ncommit 37bb7899ca366dc212b71b150e78566d04808cc0 upstream.\n\nThis patch fixes error cases within target_core_init_configfs() to\nproperly set ret \u003d -ENOMEM before jumping to the out_global exception\npath.\n\nThis was originally discovered with the following Coccinelle semantic\nmatch information:\n\nConvert a nonnegative error return code to a negative one, as returned\nelsewhere in the function.  A simplified version of the semantic match\nthat finds this problem is as follows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n(\nif@p1 (\\(ret \u003c 0\\|ret !\u003d 0\\))\n { ... return ret; }\n|\nret@p1 \u003d 0\n)\n... when !\u003d ret \u003d e1\n    when !\u003d \u0026ret\n*if(...)\n{\n  ... when !\u003d ret \u003d e2\n      when forall\n return ret;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2a7c11208e542071eee2240dde98e1673f5c01d4",
      "tree": "5671584456986d8a6bff7650384d132e4af36dec",
      "parents": [
        "a114a8b43b038c327aff0298cfb69509469e84b4"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Oct 03 15:42:48 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 21 09:27:58 2012 -0700"
      },
      "message": "iscsi-target: Bump defaults for nopin_timeout + nopin_response_timeout values\n\ncommit cf0eb28d3ba60098865bf7dbcbfdd6b1cc483e3b upstream.\n\nThis patch increases the default for nopin_timeout to 15 seconds (wait\nbetween sending a new NopIN ping) and nopin_response_timeout to 30 seconds\n(wait for NopOUT response before failing the connection) in order to avoid\nfalse positives by iSCSI Initiators who are not always able (under load) to\nrespond to NopIN echo PING requests within the current 5 second window.\n\nFalse positives have been observed recently using Open-iSCSI code on v3.3.x\nwith heavy large-block READ workloads over small MTU 1 Gb/sec ports, and\nincreasing these values to more reasonable defaults significantly reduces\nthe possibility of false positive NopIN response timeout events under\nthis specific workload.\n\nHistorically these have been set low to initiate connection recovery as\nsoon as possible if we don\u0027t hear a ping back, but for modern v3.x code\non 1 -\u003e 10 Gb/sec ports these new defaults make alot more sense.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a114a8b43b038c327aff0298cfb69509469e84b4",
      "tree": "4b5bcbf9adabf6377c5b838522682ab871c86ae6",
      "parents": [
        "b095d61243b5f2333e2ae11a9051cd9d47597002"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Sep 30 12:20:02 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 21 09:27:58 2012 -0700"
      },
      "message": "iscsi-target: Add explicit set of cache_dynamic_acls\u003d1 for TPG demo-mode\n\ncommit 38b11bae6ba02da352340aff12ee25755977b222 upstream.\n\nWe\u0027ve had reports in the past about this specific case, so it\u0027s time to\ngo ahead and explicitly set cache_dynamic_acls\u003d1 for generate_node_acls\u003d1\n(TPG demo-mode) operation.\n\nDuring normal generate_node_acls\u003d0 operation with explicit NodeACLs -\u003e\nse_node_acl memory is persistent to the configfs group located at\n/sys/kernel/config/target/$TARGETNAME/$TPGT/acls/$INITIATORNAME, so in\nthe generate_node_acls\u003d1 case we want the reservation logic to reference\nexisting per initiator IQN se_node_acl memory (not to generate a new\nse_node_acl), so go ahead and always set cache_dynamic_acls\u003d1 when\nTPG demo-mode is enabled.\n\nReported-by: Ronnie Sahlberg \u003cronniesahlberg@gmail.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b095d61243b5f2333e2ae11a9051cd9d47597002",
      "tree": "ce96680c48b4ddadf814b385b0aac388e921e0ba",
      "parents": [
        "1faef9285ad868082403da1cec5adefc0c505c2e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 26 08:00:37 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 21 09:27:58 2012 -0700"
      },
      "message": "iscsit: remove incorrect unlock in iscsit_build_sendtargets_resp\n\ncommit 904753da183566c71211d23c169a80184648c121 upstream.\n\nFix a potential multiple spin-unlock -\u003e deadlock scenario during the\noverflow check within iscsit_build_sendtargets_resp() as found by\nsparse static checking.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1faef9285ad868082403da1cec5adefc0c505c2e",
      "tree": "96e512a6241430448471f649d40d388188199499",
      "parents": [
        "8892290fcc4476db20bbe591d9c0d401096d6275"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Sep 22 17:21:06 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 21 09:27:58 2012 -0700"
      },
      "message": "iscsi-target: Correctly set 0xffffffff field within ISCSI_OP_REJECT PDU\n\ncommit f25590f39d543272f7ae7b00d533359c8d7ff331 upstream.\n\nThis patch adds a missing iscsi_reject-\u003effffffff assignment within\niscsit_send_reject() code to properly follow RFC-3720 Section 10.17\nBytes 16 -\u003e 19 for the PDU format definition of ISCSI_OP_REJECT.\n\nWe\u0027ve not seen any initiators care about this bytes in practice, but\nas Ronnie reported this was causing trouble with wireshark packet\ndecoding lets go ahead and fix this up now.\n\nReported-by: Ronnie Sahlberg \u003cronniesahlberg@gmail.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a18a65bd69dfdb28e729f22f9ca171fa81544dc4",
      "tree": "9118cdd6c741ff124e8292d694fb1f6af7498f76",
      "parents": [
        "2d4d5e8eefbfb75feac2f2d98b70399f4c5c09a5"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Aug 16 15:33:10 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:29:51 2012 -0700"
      },
      "message": "target: Fix -\u003edata_length re-assignment bug with SCSI overflow\n\ncommit 4c054ba63ad47ef244cfcfa1cea38134620a5bae upstream.\n\nThis patch fixes a long-standing bug with SCSI overflow handling\nwhere se_cmd-\u003edata_length was incorrectly being re-assigned to\nthe larger CDB extracted allocation length, resulting in a number\nof fabric level errors that would end up causing a session reset\nin most cases.  So instead now:\n\n - Only re-assign se_cmd-\u003edata_length durining UNDERFLOW (to use the\n   smaller value)\n - Use existing se_cmd-\u003edata_length for OVERFLOW (to use the smaller\n   value)\n\nThis fix has been tested with the following CDB to generate an\nSCSI overflow:\n\n  sg_raw -r512 /dev/sdc 28 0 0 0 0 0 0 0 9 0\n\nTested using iscsi-target, tcm_qla2xxx, loopback and tcm_vhost fabric\nports.  Here is a bit more detail on each case:\n\n - iscsi-target: Bug with open-iscsi with overflow, sg_raw returns\n                 -3584 bytes of data.\n - tcm_qla2xxx: Working as expected, returnins 512 bytes of data\n - loopback: sg_raw returns CHECK_CONDITION, from overflow rejection\n             in transport_generic_map_mem_to_cmd()\n - tcm_vhost: Same as loopback\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "94a6f1787e1f896585a093aa2f45cefbbef80f24",
      "tree": "4e72aa0fbebfe8be1a816adeaee45951d60f3d17",
      "parents": [
        "69b9b6d1966c9d2a3c610401eee3491b28e8a935"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Tue Aug 14 16:06:43 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Sep 14 10:00:06 2012 -0700"
      },
      "message": "target: fix NULL pointer dereference bug alloc_page() fails to get memory\n\ncommit d0e27c88d795fb9647153063ec48051fd84e1731 upstream.\n\nI am hitting this bug when the target is low in memory that fails the\nalloc_page() for the newly submitted command. This is a sort of off-by-one\nbug causing NULL pointer dereference in __free_page() since \u0027i\u0027 here is\nreally the counter of total pages that have been successfully allocated here.\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Open-FCoE.org \u003cdevel@open-fcoe.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6213566323948ac7ed0aa4eb78058e77d445b0f8",
      "tree": "65404d0b9b8aa7fb6231f26fd1f24e46503316cf",
      "parents": [
        "c329e96ae86fb69c30287a434426f2083fb2430b"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:25 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 15 08:10:32 2012 -0700"
      },
      "message": "target: Check number of unmap descriptors against our limit\n\ncommit 7409a6657aebf8be74c21d0eded80709b27275cb upstream.\n\nFail UNMAP commands that have more than our reported limit on unmap\ndescriptors.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n[bwh: Backported to 3.2: adjust filename]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "c329e96ae86fb69c30287a434426f2083fb2430b",
      "tree": "11fc728c818baa573f3a15ee5e0bfa8df64b74c2",
      "parents": [
        "6fb6469c601a80a0c883ec0be189ecf1677ecf56"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:24 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 15 08:10:32 2012 -0700"
      },
      "message": "target: Fix possible integer underflow in UNMAP emulation\n\ncommit b7fc7f3777582dea85156a821d78a522a0c083aa upstream.\n\nIt\u0027s possible for an initiator to send us an UNMAP command with a\ndescriptor that is less than 8 bytes; in that case it\u0027s really bad for\nus to set an unsigned int to that value, subtract 8 from it, and then\nuse that as a limit for our loop (since the value will wrap around to\na huge positive value).\n\nFix this by making size be signed and only looping if size \u003e\u003d 16 (ie\nif we have at least a full descriptor available).\n\nAlso remove offset as an obfuscated name for the constant 8.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n[bwh: Backported to 3.2: adjust filename, context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6fb6469c601a80a0c883ec0be189ecf1677ecf56",
      "tree": "7792763b3f2a4025a9a4671659306ec06a63aa41",
      "parents": [
        "74c90d4c3e5ee158cec2f6f32f6fb3cbfc0a2f47"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:23 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 15 08:10:31 2012 -0700"
      },
      "message": "target: Fix reading of data length fields for UNMAP commands\n\ncommit 1a5fa4576ec8a462313c7516b31d7453481ddbe8 upstream.\n\nThe UNMAP DATA LENGTH and UNMAP BLOCK DESCRIPTOR DATA LENGTH fields\nare in the unmap descriptor (the payload transferred to our data out\nbuffer), not in the CDB itself.  Read them from the correct place in\ntarget_emulated_unmap.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n[bwh: Backported to 3.2: adjust filename, context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "74c90d4c3e5ee158cec2f6f32f6fb3cbfc0a2f47",
      "tree": "0e0d71ffc18b7a047aa3695e5a6734e253a48ad4",
      "parents": [
        "49ca240411df57586fecddd1152ff30cbef82d59"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:22 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 15 08:10:31 2012 -0700"
      },
      "message": "target: Add range checking to UNMAP emulation\n\ncommit 2594e29865c291db162313187612cd9f14538f33 upstream.\n\nWhen processing an UNMAP command, we need to make sure that the number\nof blocks we\u0027re asked to UNMAP does not exceed our reported maximum\nnumber of blocks per UNMAP, and that the range of blocks we\u0027re\nunmapping doesn\u0027t go past the end of the device.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n[bwh: Backported to 3.2: adjust filename, context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f1377fddb346729aa2fe9cdbfc54aaf2ca463bd5",
      "tree": "425f87111539cffbe1db389dfdd28cf7ac1b35fd",
      "parents": [
        "480692b1562b07a4bb8e4d6e49bf7fd2acefbea2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Jul 21 08:55:18 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 09 08:31:26 2012 -0700"
      },
      "message": "iscsi-target: Drop bogus struct file usage for iSCSI/SCTP\n\ncommit bf6932f44a7b3fa7e2246a8b18a44670e5eab6c2 upstream.\n\nFrom Al Viro:\n\n\tBTW, speaking of struct file treatment related to sockets -\n        there\u0027s this piece of code in iscsi:\n        /*\n         * The SCTP stack needs struct socket-\u003efile.\n         */\n        if ((np-\u003enp_network_transport \u003d\u003d ISCSI_SCTP_TCP) ||\n            (np-\u003enp_network_transport \u003d\u003d ISCSI_SCTP_UDP)) {\n                if (!new_sock-\u003efile) {\n                        new_sock-\u003efile \u003d kzalloc(\n                                        sizeof(struct file), GFP_KERNEL);\n\nFor one thing, as far as I can see it\u0027not true - sctp does *not* depend on\nsocket-\u003efile being non-NULL; it does, in one place, check socket-\u003efile-\u003ef_flags\nfor O_NONBLOCK, but there it treats NULL socket-\u003efile as \"flag not set\".\nWhich is the case here anyway - the fake struct file created in\n__iscsi_target_login_thread() (and in iscsi_target_setup_login_socket(), with\nthe same excuse) do *not* get that flag set.\n\nMoreover, it\u0027s a bloody serious violation of a bunch of asserts in VFS;\nall struct file instances should come from filp_cachep, via get_empty_filp()\n(or alloc_file(), which is a wrapper for it).  FWIW, I\u0027m very tempted to\ndo this and be done with the entire mess:\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "480692b1562b07a4bb8e4d6e49bf7fd2acefbea2",
      "tree": "3b9fa92da4f35c273294a6ef66b3862fe59bf4f9",
      "parents": [
        "0d0eef55e03a76885b5d665b1f5572e1f4975886"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:34:21 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 09 08:31:26 2012 -0700"
      },
      "message": "target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE\n\ncommit e2397c704429025bc6b331a970f699e52f34283e upstream.\n\nMany SCSI commands are defined to return a CHECK CONDITION / ILLEGAL\nREQUEST with ASC set to LOGICAL BLOCK ADDRESS OUT OF RANGE if the\ninitiator sends a command that accesses a too-big LBA.  Add an enum\nvalue and case entries so that target code can return this status.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8db5153f9dca89afbeebe0b077e7cc1e5827e07a",
      "tree": "f82d65c99c59f3855e91678d790603f085429920",
      "parents": [
        "fd25080998d00a94a87bf7fc9f843291db7250a6"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Fri Jul 13 18:18:04 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:18 2012 -0700"
      },
      "message": "tcm_fc: Fix crash seen with aborts and large reads\n\ncommit 3cc5d2a6b9a2fd1bf024aa5e52dd22961eecaf13 upstream.\n\nThis patch fixes a crash seen when large reads have their exchange\naborted by either timing out or being reset. Because the exchange\nabort results in the seq pointer being set to NULL, because the\nsequence is no longer valid, it must not be dereferenced. This\npatch changes the function ft_get_task_tag to return ~0 if it is\nunable to get the tag for this reason. Because the get_task_tag\ninterface provides no means of returning an error, this seems\nlike the best way to fix this issue at the moment.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "5c8c9e57270fc5f54aa02144f7280f91ee2e3334",
      "tree": "6dfaa7ed9e422cba32fa2a3d5ef9b1316eacca84",
      "parents": [
        "815faab2c4b7deb2cc6495186307ceb0983214a9"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 17:10:17 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:18 2012 -0700"
      },
      "message": "target: Fix range calculation in WRITE SAME emulation when num blocks \u003d\u003d 0\n\ncommit 1765fe5edcb83f53fc67edeb559fcf4bc82c6460 upstream.\n\nWhen NUMBER OF LOGICAL BLOCKS is 0, WRITE SAME is supposed to write\nall the blocks from the specified LBA through the end of the device.\nHowever, dev-\u003etransport-\u003eget_blocks(dev) (perhaps confusingly) returns\nthe last valid LBA rather than the number of blocks, so the correct\nnumber of blocks to write starting with lba is\n\ndev-\u003etransport-\u003eget_blocks(dev) - lba + 1\n\n(nab: Backport roland\u0027s for-3.6 patch to for-3.5)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "815faab2c4b7deb2cc6495186307ceb0983214a9",
      "tree": "0321d6a2654e7621f59a1cf4016e612905519599",
      "parents": [
        "c82cd13737cfab6cb9d1b31e624896e627f9c9e4"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jul 16 15:17:10 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:18 2012 -0700"
      },
      "message": "target: Clean up returning errors in PR handling code\n\ncommit d35212f3ca3bf4fb49d15e37f530c9931e2d2183 upstream.\n\n - instead of (PTR_ERR(file) \u003c 0) just use IS_ERR(file)\n - return -EINVAL instead of EINVAL\n - all other error returns in target_scsi3_emulate_pr_out() use\n   \"goto out\" -- get rid of the one remaining straight \"return.\"\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1ee0932804c2526efca4c6623911b07f6992eb3f",
      "tree": "e74d5126c1973b96065bdfbf7179489edc4e0fce",
      "parents": [
        "c86f7d63a7906495a6742dfe4a0cd708fd41b9e1"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Tue Jun 26 15:57:30 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:24 2012 -0700"
      },
      "message": "tcm_fc: Resolve suspicious RCU usage warnings\n\ncommit 863555be0c81558b1af277addcf68acb8f778860 upstream.\n\nUse rcu_dereference_protected to tell rcu that the ft_lport_lock\nis held during ft_lport_create. This resolved \"suspicious RCU usage\"\nwarnings when debugging options are turned on.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nTested-by: Ross Brattain \u003cross.b.brattain@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d5b72ad32325771d662c4da368b0279375200e4b",
      "tree": "540589439f97a6108274e76cba9702789bf0a218",
      "parents": [
        "7da88b117a2fb591421e93558413568ca5f61b09"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Apr 03 15:51:20 2012 -0700"
      },
      "committer": {
        "name": "Pavankumar Kondeti",
        "email": "pkondeti@codeaurora.org",
        "time": "Sun Jun 24 11:43:36 2012 +0530"
      },
      "message": "target: Rename target_allocate_tasks to target_setup_cmd_from_cdb\n\nThis patch renames a horribly misnamed function that no longer allocate\ntasks to something more descriptive for it\u0027s modern use in target core.\n\n(nab: Fix up ib_srpt to use this as well ahead of a target_submit_cmd\nconversion)\n\nChange-Id: Ib7ab2b67723753777084fffe19c47e6eac3b255e\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Pavankumar Kondeti \u003cpkondeti@codeaurora.org\u003e\n"
    },
    {
      "commit": "7da88b117a2fb591421e93558413568ca5f61b09",
      "tree": "9a2ab9226fcd944c62cc0e93367b7cc1f0360ca8",
      "parents": [
        "ca5ace246a3ae92ef960e5f1f161ae87584a03d8"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 10 14:16:59 2012 +0100"
      },
      "committer": {
        "name": "Pavankumar Kondeti",
        "email": "pkondeti@codeaurora.org",
        "time": "Sun Jun 24 11:36:25 2012 +0530"
      },
      "message": "target: add unknown size flag to target_submit_cmd()\n\nThe UASP protocol does not inform the target device upfront how much\ndata it should expect so we have to learn in from the CDB.  So in order\nto handle this case, add a TARGET_SCF_UNKNOWN_SIZE to target_submit_cmd()\nand perform an explictly assignment for se_cmd-\u003edata_length from the\nextracted CDB size in transport_generic_cmd_sequencer().\n\nChange-Id: Ic654c46de72b263aea8aeb5e8a76136f47dd775e\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Pavankumar Kondeti \u003cpkondeti@codeaurora.org\u003e\n"
    },
    {
      "commit": "f5f062e1be5fdafaa68c4dd97a2d64ef78458b37",
      "tree": "27daceb9af40e206bae076d71522ba9524e3c09a",
      "parents": [
        "75862961e9b445a9bfce25b9da70ef930a857762"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jun 04 23:24:51 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 22 11:37:17 2012 -0700"
      },
      "message": "target: Return error to initiator if SET TARGET PORT GROUPS emulation fails\n\ncommit 59e4f541baf728dbb426949bfa9f6862387ffd0e upstream.\n\nThe error paths in target_emulate_set_target_port_groups() are all\nessentially \"rc \u003d -EINVAL; goto out;\" but the code at \"out:\" ignores\nrc and always returns success.  This means that even if eg explicit\nALUA is turned off, the initiator will always see a good SCSI status\nfor SET TARGET PORT GROUPS.\n\nFix this by returning rc as is intended.  It appears this bug was\nadded by the following patch:\n\ncommit 05d1c7c0d0db4cc25548d9aadebb416888a82327\nAuthor: Andy Grover \u003cagrover@redhat.com\u003e\nDate:   Wed Jul 20 19:13:28 2011 +0000\n\n    target: Make all control CDBs scatter-gather\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n[bwh: Backported to 3.2: we have transport_complete_task()\n and not target_complete_cmd()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "cd9323fd68aee3c1c6b5b21e5746c9d1b586fb58",
      "tree": "a1e5045e68a8a081a2e932846a0bf951128d93db",
      "parents": [
        "edc318d9fea6854df752ec8c645b960b0d5a1d23"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed May 16 16:05:26 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu May 17 12:02:43 2012 -0700"
      },
      "message": "target: Fix bug in handling of FILEIO + block_device resize ops\n\nThis patch fixes a bug in the handling of FILEIO w/ underlying block_device\nresize operations where the original fd_dev-\u003efd_dev_size was incorrectly being\nused in fd_get_blocks() for READ_CAPACITY response payloads.\n\nThis patch avoids using fd_dev-\u003efd_dev_size for FILEIO devices with\nan underlying block_device, and instead changes fd_get_blocks() to\nget the sector count directly from i_size_read() as recommended by hch.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "edc318d9fea6854df752ec8c645b960b0d5a1d23",
      "tree": "0b36996acd203023c98c627ec90cee41abf70f49",
      "parents": [
        "cfebf8f42f47327fa54cf05c19b98f4bd5236a26"
      ],
      "author": {
        "name": "Bernhard Kohl",
        "email": "Riedel-und-Kohl@t-online.de",
        "time": "Sun May 13 23:39:37 2012 +0200"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon May 14 15:13:50 2012 -0700"
      },
      "message": "target: Fix SPC-2 RELEASE bug for multi-session iSCSI client setups\n\nThis patch addresses a bug in a special case for target core SPC-2 RELEASE\nlogic where the same physical client (eg: iSCSI InitiatorName) with\ndiffering iSCSI session identifiers (ISID) is allowed to incorrectly release\nthe same client\u0027s SPC-2 reservation from the non reservation holding path.\n\nNote this bug is specific to iscsi-target w/ SPC-2 reservations, and\nwith the default enforce_pr_isids\u003d1 device attr setting in target-core\ncontrols if a InitiatorName + different ISID reservations are handled\nthe same as a single iSCSI client entity.\n\nSigned-off-by: Bernhard Kohl \u003cbernhard.kohl@gmx.net\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cfebf8f42f47327fa54cf05c19b98f4bd5236a26",
      "tree": "6885aaed332ffc132f8de40d91f43364343a9415",
      "parents": [
        "06383f10c49f507220594a455c6491ca6f8c94ab"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu May 10 22:05:49 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri May 11 14:55:19 2012 -0700"
      },
      "message": "target: Drop incorrect se_lun_acl release for dynamic -\u003e explict ACL conversion\n\nThis patch removes some potentially problematic legacy code within\ncore_clear_initiator_node_from_tpg() that was originally intended to\nrelease left over se_lun_acl setup during dynamic NodeACL+MappedLUN\ngenerate when running with TPG demo-mode operation.\n\nSince we now only ever expect to allocate and release se_lun_acl from\nwithin target_core_fabric_configfs.c:target_fabric_make_mappedlun() and\ntarget_fabric_drop_mappedlun() context respectively, this code for\ndemo-mode release is incorrect and needs to be removed.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "06383f10c49f507220594a455c6491ca6f8c94ab",
      "tree": "aeed502673297971463114c1046e82c74ab498f2",
      "parents": [
        "e1c4038282c7586c3544542b37872c434669d3ac"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Tue Apr 03 10:24:52 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Apr 06 18:57:05 2012 -0700"
      },
      "message": "tcm_fc: Do not free tpg structure during wq allocation failure\n\nAvoid freeing a registered tpg structure if an alloc_workqueue call\nfails.  This fixes a bug where the failure was leaking memory associated\nwith se_portal_group setup during the original core_tpg_register() call.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nAcked-by: Kiran Patil \u003cKiran.patil@intel.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e1c4038282c7586c3544542b37872c434669d3ac",
      "tree": "f747aea02b1e52b14ba89bd7606cd4d8bdccc279",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Tue Apr 03 10:24:41 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Apr 06 18:56:43 2012 -0700"
      },
      "message": "tcm_fc: Add abort flag for gracefully handling exchange timeout\n\nAdd abort flag and use it to terminate processing when an exchange\nis timed out or is reset. The abort flag is used in place of the\ntransport_generic_free_cmd function call in the reset and timeout\ncases, because calling that function in that context would free\nmemory that was in use. The aborted flag allows the lifetime to\nbe managed in a more normal way, while truncating the processing.\n\nThis change eliminates a source of memory corruption which\nmanifested in a variety of ugly ways.\n\n(nab: Drop unused struct fc_exch *ep in ft_recv_seq)\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nAcked-by: Kiran Patil \u003cKiran.patil@intel.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1ab142d499294b844ecc81e8004db4ce029b0b61",
      "tree": "9db85a456d0cba3de8b9bd6671b1b52fa939770c",
      "parents": [
        "267d7b23dd62f6ec55e0fba777e456495c308fc7",
        "187e70a554e0f0717a65998bc9199945cbbd4692"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:38:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:38:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target updates from Nicholas Bellinger:\n \"This contains the usual set of updates and bugfixes to target-core +\n  existing fabric module code, along with a handful of the patches\n  destined for v3.3 stable.\n\n  It also contains the necessary target-core infrastructure pieces\n  required to run using tcm_qla2xxx.ko WWPNs with the new Qlogic Fibre\n  Channel fabric module currently queued in target-pending/for-next-merge,\n  and coming for round 2.\n\n  The highlights for this series include:\n\n   - Add target_submit_tmr() helper function for fabric task management\n     (andy)\n   - Convert tcm_fc to use target_submit_tmr() (andy)\n   - Replace target core various cmd flags with a transport state (hch)\n   - Convert loopback to use workqueue submission (hch)\n   - Convert target core to use array_zalloc for tpg_lun_list (joern)\n   - Convert target core to use array_zalloc for device_list (joern)\n   - Add target core support for TMR_ABORT_TASK (nab)\n   - Add target core se_sess-\u003esess_kref + get/put helpers (nab)\n   - Add target core se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n     (nab)\n   - Convert iscsi-target to use target_put_session + sess_kref (nab)\n   - Fix tcm_fc fc_exch memory leak in ft_send_resp_status (nab)\n   - Fix ib_srpt srpt_handle_cmd send_ioctx-\u003eioctx_kref leak on\n     exception (nab)\n   - Fix target core up handling of short INQUIRY buffers (roland)\n   - Untangle target-core front-end and back-end meanings of max_sectors\n     attribute (roland)\n   - Set loopback residual field for SCSI commands (roland)\n   - Fix target-core 16-bit target ports for SET TARGET PORT GROUPS\n     emulation (roland)\n\n  Thanks again to Andy, Christoph, Joern, Roland, and everyone who has\n  contributed this round!\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (64 commits)\n  ib_srpt: Fix srpt_handle_cmd send_ioctx-\u003eioctx_kref leak on exception\n  loopback: Fix transport_generic_allocate_tasks error handling\n  iscsi-target: remove improper externs\n  iscsi-target: Remove unused variables in iscsi_target_parameters.c\n  target: remove obvious warnings\n  target: Use array_zalloc for device_list\n  target: Use array_zalloc for tpg_lun_list\n  target: Fix sense code for unsupported SERVICE ACTION IN\n  target: Remove hack to make READ CAPACITY(10) lie if thin provisioning is enabled\n  target: Bump core version to v4.1.0-rc2-ml + fabric versions\n  tcm_fc: Fix fc_exch memory leak in ft_send_resp_status\n  target: Drop unused legacy target_core_fabric_ops API callers\n  iscsi-target: Convert to use target_put_session + sess_kref\n  target: Convert se_node_acl-\u003eacl_group removal to use -\u003eacl_kref\n  target: Add se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n  target: Add se_node_acl-\u003eacl_free_comp for NodeACL release path\n  target: Add se_sess-\u003esess_kref + get/put helpers\n  target: Convert session_lock to irqsave\n  target: Fix typo in drivers/target\n  iscsi-target: Fix dynamic -\u003e explict NodeACL pointer reference\n  ...\n"
    },
    {
      "commit": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "5928a2b60cfdbad730f93696acab142d0b607280",
      "tree": "49bb21c9219673e61bad7a7c9202c7f25f5fe1be",
      "parents": [
        "5ed59af85077d28875a3a137b21933aaf1b4cd50",
        "bdd4431c8d071491a68a65d9457996f222b5ecd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 19 17:12:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:10:18 2012 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU changes for v3.4 from Ingo Molnar.  The major features of this\nseries are:\n\n - making RCU more aggressive about entering dyntick-idle mode in order\n   to improve energy efficiency\n\n - converting a few more call_rcu()s to kfree_rcu()s\n\n - applying a number of rcutree fixes and cleanups to rcutiny\n\n - removing CONFIG_SMP #ifdefs from treercu\n\n - allowing RCU CPU stall times to be set via sysfs\n\n - adding CPU-stall capability to rcutorture\n\n - adding more RCU-abuse diagnostics\n\n - updating documentation\n\n - fixing yet more issues located by the still-ongoing top-to-bottom\n   inspection of RCU, this time with a special focus on the CPU-hotplug\n   code path.\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)\n  rcu: Stop spurious warnings from synchronize_sched_expedited\n  rcu: Hold off RCU_FAST_NO_HZ after timer posted\n  rcu: Eliminate softirq-mediated RCU_FAST_NO_HZ idle-entry loop\n  rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections\n  rcu: Allow nesting of rcu_idle_enter() and rcu_idle_exit()\n  rcu: Remove redundant check for rcu_head misalignment\n  PTR_ERR should be called before its argument is cleared.\n  rcu: Convert WARN_ON_ONCE() in rcu_lock_acquire() to lockdep\n  rcu: Trace only after NULL-pointer check\n  rcu: Call out dangers of expedited RCU primitives\n  rcu: Rework detection of use of RCU by offline CPUs\n  lockdep: Add CPU-idle/offline warning to lockdep-RCU splat\n  rcu: No interrupt disabling for rcu_prepare_for_idle()\n  rcu: Move synchronize_sched_expedited() to rcutree.c\n  rcu: Check for illegal use of RCU from offlined CPUs\n  rcu: Update stall-warning documentation\n  rcu: Add CPU-stall capability to rcutorture\n  rcu: Make documentation give more realistic rcutorture duration\n  rcutorture: Permit holding off CPU-hotplug operations during boot\n  rcu: Print scheduling-clock information on RCU CPU stall-warning messages\n  ...\n"
    },
    {
      "commit": "ca747d610b765f184e0662088dd9aeecf9a17822",
      "tree": "ced29c47417e2ef78d1fb1fc11dfd79a4b96c272",
      "parents": [
        "ba82fe2e691146a92a25c85b611b436dc20f7825"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:25 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:20 2012 +0800"
      },
      "message": "target: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "ee9b866a3696ae434418348e2f499c41841366d4",
      "tree": "d648749dbee6c5fd1104ddbc92cf897502af540a",
      "parents": [
        "f760903ae512c7851b619be1742ae1581145a878"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 17 17:40:23 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 17 18:07:27 2012 -0700"
      },
      "message": "loopback: Fix transport_generic_allocate_tasks error handling\n\nThis patch addresses a tcm_loop bug with transport_generic_allocate_tasks()\nreturn checking in tcm_loop_submission_work() where other non zero return\ncodes (including -EBUSY for reservation conflicts) are incorrectly falling\nthrough to transport_generic_map_mem_to_cmd() -\u003e transport_handle_cdb_direct().\n\nThis bug was introduced into target-pending/for-next-merge with the following\nfor-3.4 commit:\n\ncommit 16786454acec0e0e55e32d508b3058b32c1f23f3\nAuthor: Christoph Hellwig \u003chch@infradead.org\u003e\nDate:   Thu Feb 2 17:04:42 2012 -0500\n\n    tcm_loop: switch to using transport_handle_cdb_direct\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f760903ae512c7851b619be1742ae1581145a878",
      "tree": "0e2c40deda9e60804cd9a4804e2f3d9cae18820f",
      "parents": [
        "a227fb3a5a61e70ae4e4957818a23e9239bf5a43"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sat Mar 17 16:11:52 2012 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 17 18:07:04 2012 -0700"
      },
      "message": "iscsi-target: remove improper externs\n\nThese externs aren\u0027t needed and Sparse complains about them.\n\ndrivers/target/iscsi/iscsi_target_nodeattrib.c:52:12: warning:\n\tfunction \u0027iscsit_na_dataout_timeout\u0027 with external linkage has\n\tdefinition\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a227fb3a5a61e70ae4e4957818a23e9239bf5a43",
      "tree": "861197e821a8cc347e8ea5788ee4a944c872fcd0",
      "parents": [
        "281689051a628e5341ce1efcfafde9d60f2f6fbb"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:08:03 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:16:25 2012 -0700"
      },
      "message": "iscsi-target: Remove unused variables in iscsi_target_parameters.c\n\nlocal_right_val was an obvious case, tmp_ptr is also write-only, but\nevades the compiler by being passed to simple_strtoul as char **endp.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "281689051a628e5341ce1efcfafde9d60f2f6fbb",
      "tree": "15809410fe5d1c8540622f5bd7c726517b22ddd3",
      "parents": [
        "f2083241f23722207676025abbb45a301d412e69"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:06:58 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:16:09 2012 -0700"
      },
      "message": "target: remove obvious warnings\n\nGet rid of a bunch of write-only variables.  In a number of cases I\nsuspect actual bugs to be present, so I left all of those for a second\nlook.\n\n(nab: fix lio-core patch fuzz)\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f2083241f23722207676025abbb45a301d412e69",
      "tree": "c340376faf2a1eebe0983075adee2a3c8070c064",
      "parents": [
        "4a5a75f32dcbcd0b2685f74fd4ede26edf8765a9"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:05:40 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:15:51 2012 -0700"
      },
      "message": "target: Use array_zalloc for device_list\n\nTurns an order-8 allocation into slab-sized ones, thereby preventing\nallocation failures with memory fragmentation.\n\nThis likely saves memory as well, as the slab allocator can pack objects\nmore tightly than the buddy allocator.\n\n(nab: Fix lio-core patch fuzz)\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4a5a75f32dcbcd0b2685f74fd4ede26edf8765a9",
      "tree": "9c05e0df5d2cfe06ed490ce763347f65aaf64c6a",
      "parents": [
        "b168fe8cfe530daabbdf632af4554600006a81a9"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Mar 15 15:05:12 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:15:38 2012 -0700"
      },
      "message": "target: Use array_zalloc for tpg_lun_list\n\nTurns an order-10 allocation into slab-sized ones, thereby preventing\nallocation failures with memory fragmentation.\n\nThis likely saves memory as well, as the slab allocator can pack objects\nmore tightly than the buddy allocator.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b168fe8cfe530daabbdf632af4554600006a81a9",
      "tree": "b64cb6523b11f8d91f24390a8e470ca5d09f1a24",
      "parents": [
        "1f6fa8f8179dd66345d59f067f2a48a86095c499"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Mar 14 10:40:43 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:14:53 2012 -0700"
      },
      "message": "target: Fix sense code for unsupported SERVICE ACTION IN\n\nIf we don\u0027t handle a given service action, we\u0027re supposed to return\nINVALID FIELD IN CDB, since we do handle the SERVICE ACTION IN opcode.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1f6fa8f8179dd66345d59f067f2a48a86095c499",
      "tree": "9ab51aafe013436934b5683d911c846cc655ffdf",
      "parents": [
        "9765b1f327951e643a97f43924d1fbeb4e90ffba"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Mar 14 10:12:03 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 15 19:14:48 2012 -0700"
      },
      "message": "target: Remove hack to make READ CAPACITY(10) lie if thin provisioning is enabled\n\nRemove the hack that has READ CAPACITY(10) return 0xFFFFFFFF as the\nnumber of sectors when thin provisioning is enabled.  This is supposed\nto trigger the initiator to use READ CAPACITY(16) in this case so that\nit finds out about thin provisioning.  But an initiator that cares about\nthin provisioning is going to ask anyway, and an initiator that doesn\u0027t\nknow about READ CAPACITY(16) is going to get the wrong capacity.  So\njust have READ CAPACITY(10) return the size it\u0027s supposed to.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "00fdc6bbef77844ce397a7de7acfaf25e8e2e4eb",
      "tree": "df8d71a6b9c9239b68d43fc04d57580caf3e4992",
      "parents": [
        "087a03b3ea1c8d6e2d5743a8d1c6d571058caa04"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Mar 13 18:20:11 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Mar 13 21:43:58 2012 -0700"
      },
      "message": "iscsi-target: Fix reservation conflict -EBUSY response handling bug\n\nThis patch addresses a iscsi-target specific bug related to reservation conflict\nhandling in iscsit_handle_scsi_cmd() that has been causing reservation conflicts\nto complete and not fail as expected due to incorrect errno checking.  The problem\noccured with the change to return -EBUSY from transport_generic_cmd_sequencer() -\u003e\ntransport_generic_allocate_tasks() failures, that broke iscsit_handle_scsi_cmd()\nchecking for -EINVAL in order to invoke a non GOOD status response.\n\nThis was manifesting itself as data corruption with legacy SPC-2 reservations,\nbut also effects iscsi-target LUNs with SPC-3 persistent reservations.\n\nThis bug was originally introduced in lio-core commit:\n\ncommit 03e98c9eb916f3f0868c1dc344dde2a60287ff72\nAuthor: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nDate:   Fri Nov 4 02:36:16 2011 -0700\n\n    target: Address legacy PYX_TRANSPORT_* return code breakage\n\nReported-by: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nCc: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "087a03b3ea1c8d6e2d5743a8d1c6d571058caa04",
      "tree": "52cb057d9c2f01f8772de66f1cce7086c9e8b7c5",
      "parents": [
        "67236c44741e250199ccd77f1115568e68cf8848"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Mar 13 21:29:06 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Mar 13 21:43:43 2012 -0700"
      },
      "message": "target: Fix compatible reservation handling (CRH\u003d1) with legacy RESERVE/RELEASE\n\nThis patch addresses a bug with target_check_scsi2_reservation_conflict()\nreturn checking in target_scsi2_reservation_[reserve,release]() that was\npreventing CRH\u003d1 operation from silently succeeding in the two special\ncases defined by SPC-3, and not failing with reservation conflict status\nwhen dealing with legacy RESERVE/RELEASE + active SPC-3 PR logic.\n\nAlso explictly set cmd-\u003escsi_status \u003d SAM_STAT_RESERVATION_CONFLICT during\nthe early non reservation holder failure from pr_ops-\u003et10_seq_non_holder()\ncheck in transport_generic_cmd_sequencer() for fabrics that already expect\nit to be set.\n\nThis bug was originally introduced in mainline commit:\n\ncommit eacac00ce5bfde8086cd0615fb53c986f7f970fe\nAuthor: Christoph Hellwig \u003chch@infradead.org\u003e\nDate:   Thu Nov 3 17:50:40 2011 -0400\n\n    target: split core_scsi2_emulate_crh\n\nReported-by: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nCc: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9765b1f327951e643a97f43924d1fbeb4e90ffba",
      "tree": "d1e9691a7b366874ca37bf229f84443384fd5366",
      "parents": [
        "031ed4d565b31880a4136bb7366bc89f5b1dba7d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:50:19 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:55:17 2012 -0800"
      },
      "message": "target: Bump core version to v4.1.0-rc2-ml + fabric versions\n\nBump core version to v4.1.0-rc2-ml, and for versions from the\nfollowing mainline fabric modules:\n\nloopback: v2.1-rc2\ntcm_fc: v0.4\niscsi-target: v4.1.0-rc2\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "031ed4d565b31880a4136bb7366bc89f5b1dba7d",
      "tree": "e905871a0c6706ca16f9df33dfaacebbf33a4ca3",
      "parents": [
        "c7ec05c82bfd6acf1fd800d628591500805f3179"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Mar 09 23:45:38 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:56 2012 -0800"
      },
      "message": "tcm_fc: Fix fc_exch memory leak in ft_send_resp_status\n\nThis patch fixes a bug in tcm_fc where fc_exch memory from fc_exch_mgr-\u003eep_pool\nis currently being leaked by ft_send_resp_status() usage.  Following current\ncode in ft_queue_status() response path, using lport-\u003ett.seq_send() needs to be\nfollowed by a lport-\u003ett.exch_done() in order to release fc_exch memory back into\nlibfc_em kmem_cache.\n\nft_send_resp_status() code is currently used in pre submit se_cmd ft_send_work()\nerror exceptions, TM request setup exceptions, and main TM response callback\npath in ft_queue_tm_resp().  This bugfix addresses the leak in these cases.\n\nCc: Mark D Rustad \u003cmark.d.rustad@intel.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c7ec05c82bfd6acf1fd800d628591500805f3179",
      "tree": "c64d5d330120d038f5ee9fe90b7a7eba0a0b3459",
      "parents": [
        "99367f01b8df2018ff3328ddf4111e701d34188d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 28 00:22:12 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:55 2012 -0800"
      },
      "message": "target: Drop unused legacy target_core_fabric_ops API callers\n\nThis patch drops the following unused legacy API callers from target_core_fabric.h:\n\n*) TFO-\u003efall_back_to_erl0()\n*) TFO-\u003estop_session()\n*) TFO-\u003esess_logged_in()\n*) TFO-\u003eis_state_remove()\n\nThis patch also removes the stub usage in loopback, tcm_fc, iscsi_target,\nand ib_srpt fabric modules.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "99367f01b8df2018ff3328ddf4111e701d34188d",
      "tree": "5ef6e2ffe8b1d3ee8bfd995b80efcb4e6d02095d",
      "parents": [
        "337c060701fb3d27d9945bf7af7ba194ae2153a8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 27 01:43:32 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:25 2012 -0800"
      },
      "message": "iscsi-target: Convert to use target_put_session + sess_kref\n\nThis patch converts iscsi-target session code to use se_sess-\u003esess_kref\ncounting for iscsi session shutdown.  The following cases include:\n\n*) last iscsit_close_connection() shutdown path to invoke close session\n*) iscsit_logout_post_handler_closesession() for explict logout\n*) iscsit_free_session() caller for explict shutdown\n\nIt also moves iscsit_stop_session() call from lio_tpg_close_session()\ninto lio_tpg_shutdown_session() TFO callbacks to invoke an explict\nshutdown, and also changes iscsi_check_for_session_reinstatement()\nlogin code to use se_sess-\u003esess_kref.\n\n(v2: Make iscsit_handle_time2retain_timeout() use target_put_session)\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": "337c060701fb3d27d9945bf7af7ba194ae2153a8",
      "tree": "7b2d50a7cc4b291a876e95c60388cf57a52d912a",
      "parents": [
        "afb999ffc48f5e7ec18e6f8f9e68aa3d0085862d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:36:21 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:19 2012 -0800"
      },
      "message": "target: Convert se_node_acl-\u003eacl_group removal to use -\u003eacl_kref\n\nThis patch converts core_tpg_del_initiator_node_acl() shutdown from configfs\ncontext to use se_node_acl-\u003eacl_kref and -\u003eacl_free_comp in order to wait for\noutstanding fabric callbacks to complete via transport_deregister_session()\ncallbacks before waking -\u003eacl_free_comp from the last -\u003eacl_kref put.\n\nIt also changes core_tpg_del_initiator_node_acl() to setup a local sess_list\nwith target_get_session() + acl-\u003eacl_stop \u003d 1 for active sessions that will\nbe shutdown, and changes transport_deregister_session_configfs() to check\nfor -\u003eacl_stop usage.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "afb999ffc48f5e7ec18e6f8f9e68aa3d0085862d",
      "tree": "781a1055eaed8bef8148c95fa6f9e779484511c6",
      "parents": [
        "01468346546a9bcc09035a7e8b71f78af5b7133a"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 08 23:45:02 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:42:09 2012 -0800"
      },
      "message": "target: Add se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n\nThis patch adds se_node_acl-\u003eacl_kref for use with -\u003eacl_free_comp\nduring explict se_node_acl release.  It adds kref_init() during\nse_node_acl setup, kref_get() during __transport_register_session()\n-\u003e target_put_nacl() with existing transport_deregister_session()\nfabric callback usage.\n\nIt also moves transport_free_session() to release *se_sess memory\nafter target_put_nacl() execution in transport_deregister_session()\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "01468346546a9bcc09035a7e8b71f78af5b7133a",
      "tree": "5d7b69d10a2fb7e7f34717531fd099cae24f8044",
      "parents": [
        "41ac82b668177876d5965d5f60956fb0fbcdb514"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:32:52 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:41:59 2012 -0800"
      },
      "message": "target: Add se_node_acl-\u003eacl_free_comp for NodeACL release path\n\nAdd se_node_acl-\u003eacl_free_comp for NodeACL release path to wait for outstanding\nfabric session shutdown to complete in transport_deregister_session() before\nfinishing NodeACL release from configfs process context.\n\nAlso make transport_deregister_session() clear the comp_nacl bit\nto skip se_node_acl-\u003eacl_free_comp completion for dynamically generated\nNodeACL during fabric session shutdown.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "41ac82b668177876d5965d5f60956fb0fbcdb514",
      "tree": "229c299330fa9c3cb4cb5a1903e0559e3e7a5d5b",
      "parents": [
        "140854cb72525246745b67300d35101ad2875a39"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Feb 26 22:22:10 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 14:41:53 2012 -0800"
      },
      "message": "target: Add se_sess-\u003esess_kref + get/put helpers\n\nThis patch adds basic se_session-\u003esess_kref and get/put helpers for fabric\nsession reference counting.  It sets the initial kref in transport_init_session()\nand adds a target_release_session() callback to invoke TFO-\u003eclose_session()\nfor final session shutdown.\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "140854cb72525246745b67300d35101ad2875a39",
      "tree": "0bf6ee374f97781b6f7f00d3b89f2e901dae2255",
      "parents": [
        "5e58b0299794fc4acf6e19995a2159e0535a008c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Aug 31 12:34:39 2011 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 13:59:03 2012 -0800"
      },
      "message": "target: Convert session_lock to irqsave\n\nThis patch converts the remaining struct se_portal_group-\u003esession_lock\nusage to use irqsave+irqrestore to address the following warnings for\nhardware target mode interrupt context usage.  This change generate\nother warnings for current iscsi-target mode still using -\u003esession_lock\nwith spin_lock_bh, which will need to be converted in a seperate patch.\n\n[  492.480728] [ INFO: HARDIRQ-safe -\u003e HARDIRQ-unsafe lock order detected ]\n[  492.488194] 3.0.0+ #23\n[  492.490820] ------------------------------------------------------\n[  492.497704] sh/7162 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire:\n[  492.504493] (\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock){+.....}, at: [\u003cffffffffa022364d\u003e] transport_deregister_session+0x2d/0x163 [target_core_mod]\n  492.518390]\n[  492.518390] and this task is already holding:\n[  492.524897] (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...}, at: [\u003cffffffffa00b9146\u003e] qla_tgt_stop_phase1+0x5e/0x27e [qla2xxx]\n[  492.536856] which would create a new lock dependency:\n[  492.542481] (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...} -\u003e (\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock){+.....}\n[  492.552321]\n[  492.552321] but this new dependency connects a HARDIRQ-irq-safe lock:\n[  492.561149] (\u0026(\u0026ha-\u003ehardware_lock)-\u003erlock){-.-...}\n[  492.566400] ... which became HARDIRQ-irq-safe at:\n[  492.571841]   [\u003cffffffff81064720\u003e] __lock_acquire+0x68f/0x921\n[  492.578247]   [\u003cffffffff81064eff\u003e] lock_acquire+0xe0/0x10d\n[  492.584367]   [\u003cffffffff813a74c6\u003e] _raw_spin_lock_irqsave+0x44/0x56\n[  492.591358]   [\u003cffffffffa009b1be\u003e] qla24xx_msix_default+0x5c/0x2aa [qla2xxx]\n[  492.599227]   [\u003cffffffff81088582\u003e] handle_irq_event_percpu+0x5a/0x197\n[  492.606413]   [\u003cffffffff810886fb\u003e] handle_irq_event+0x3c/0x5c\n[  492.612822]   [\u003cffffffff8108a6dc\u003e] handle_edge_irq+0xcc/0xf1\n[  492.619138]   [\u003cffffffff810039b9\u003e] handle_irq+0x83/0x8e\n[  492.624971]   [\u003cffffffff8100333e\u003e] do_IRQ+0x48/0xaf\n[  492.630413]   [\u003cffffffff813a7cd3\u003e] ret_from_intr+0x0/0x1a\n[  492.636437]   [\u003cffffffff81001dc1\u003e] cpu_idle+0x5b/0x8d\n[  492.642073]   [\u003cffffffff81392709\u003e] rest_init+0xad/0xb4\n[  492.647809]   [\u003cffffffff81a1cbbc\u003e] start_kernel+0x366/0x371\n[  492.654030]   [\u003cffffffff81a1c2b1\u003e] x86_64_start_reservations+0xb8/0xbc\n[  492.661311]   [\u003cffffffff81a1c3b6\u003e] x86_64_start_kernel+0x101/0x110\n[  492.668204]\n[  492.668205] to a HARDIRQ-irq-unsafe lock:\n[  492.674324] (\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock){+.....}\n[  492.679862] ... which became HARDIRQ-irq-unsafe at:\n[  492.685497] ...  [\u003cffffffff8106479a\u003e] __lock_acquire+0x709/0x921\n[  492.692209]   [\u003cffffffff81064eff\u003e] lock_acquire+0xe0/0x10d\n[  492.698330]   [\u003cffffffff813a75ed\u003e] _raw_spin_lock_bh+0x31/0x40\n[  492.704836]   [\u003cffffffffa021c208\u003e] core_tpg_del_initiator_node_acl+0x89/0x336 [target_core_mod]\n[  492.714546]   [\u003cffffffffa02fb075\u003e] tcm_qla2xxx_drop_nodeacl+0x20/0x2d [tcm_qla2xxx]\n[  492.723087]   [\u003cffffffffa02108d9\u003e] target_fabric_nacl_base_release+0x22/0x24 [target_core_mod]\n[  492.732698]   [\u003cffffffffa01661c8\u003e] config_item_release+0x7d/0xa3 [configfs]\n[  492.740465]   [\u003cffffffff811d48fe\u003e] kref_put+0x43/0x4d\n[  492.746101]   [\u003cffffffffa0166149\u003e] config_item_put+0x19/0x1b [configfs]\n[  492.753481]   [\u003cffffffffa0164987\u003e] configfs_rmdir+0x1eb/0x258 [configfs]\n[  492.760957]   [\u003cffffffff810ecc54\u003e] vfs_rmdir+0x79/0xd0\n[  492.766690]   [\u003cffffffff810eec4a\u003e] do_rmdir+0xc2/0x111\n[  492.772423]   [\u003cffffffff810eecd0\u003e] sys_rmdir+0x11/0x13\n[  492.778156]   [\u003cffffffff813ae4d2\u003e] system_call_fastpath+0x16/0x1b\n[  492.784953]\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5e58b0299794fc4acf6e19995a2159e0535a008c",
      "tree": "14d46ddd8b001aea2b75f89598e131360dbb9a7c",
      "parents": [
        "d06283341aee9e48eff1b068779d340785c635ce"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Mon Feb 27 23:18:15 2012 +0900"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Mar 10 13:55:05 2012 -0800"
      },
      "message": "target: Fix typo in drivers/target\n\nCorrect spelling \"exeeds\" to \"exceeds\" in iscsi/iscsi_target_nego.c\nCorrect spelling \"diabled\" to \"disabled\" in target_core_configfs.c\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d06283341aee9e48eff1b068779d340785c635ce",
      "tree": "4b6085fababdbb6784db9945968cbf6ed292e0e8",
      "parents": [
        "c0974f89385970455a60a999ae4fc0a783cf458d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Feb 26 22:16:07 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Mar 08 12:10:56 2012 -0800"
      },
      "message": "iscsi-target: Fix dynamic -\u003e explict NodeACL pointer reference\n\nThis patch fixes a free after use in lio_target_make_nodeacl() where\niscsi_node_acl was referenced from the original se_nacl_new allocation,\ninstead of from core_tpg_add_initiator_node_acl() in the case of dynamic\n-\u003e explict NodeACL conversion.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c0974f89385970455a60a999ae4fc0a783cf458d",
      "tree": "14abc856524251bf392bcaf0b2b8c621500ec1b2",
      "parents": [
        "9f0d05c2c6185d7b5ba08a6c052e90837101031f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 05:10:04 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:39:13 2012 -0800"
      },
      "message": "target: Allow target_submit_tmr interrupt context + pass ABORT_TASK tag\n\nThis patch allows target_submit_tmr() to pass gfp_t for se_cmd-\u003ese_tmr_req\nallocation, and also set up se_cmd-\u003ese_tmr_req-\u003eref_task_tag for passed\ntag with TMR_ABORT_TASK.\n\nAlso update tcm_fc(fcoe) parameter usgae and add ref_task_tag FIXME\nfor TMR_ABORT_TASK usage,\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9f0d05c2c6185d7b5ba08a6c052e90837101031f",
      "tree": "3ea308edfd01d79d2b87ea9496fcb02445a77d13",
      "parents": [
        "00ad4c4e81ba8bfcc52c42ec9d72ff84a081fb82"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 05:02:48 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:38:41 2012 -0800"
      },
      "message": "target: Push target_submit_tmr LUN lookup failure to system_wq context\n\nIn order to handle incoming target_submit_tmr() callers using interrupt\ncontext, use system_wq process context for transport_lookup_tmr_lun()\nfailures to return TMR_LUN_DOES_NOT_EXIST status for fabric TM response.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "00ad4c4e81ba8bfcc52c42ec9d72ff84a081fb82",
      "tree": "f77fd50761bf224937656145dbae20a036fd3552",
      "parents": [
        "c7042cae58c13970f39c0820a3aab2a13dda9fe1"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 01:43:04 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:38:39 2012 -0800"
      },
      "message": "tcm_fc: Handle target_submit_tmr allocation failure\n\nThis patch makes ft_send_tm() handle target_submit_tmr() allocation failures\nvia an ft_send_resp_code_and_free() w/ FCP_TMF_FAILED status.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c7042cae58c13970f39c0820a3aab2a13dda9fe1",
      "tree": "63d75c4c8e37d9a26033ed11b47345b4ae697524",
      "parents": [
        "3de55ec74aa803d7aa1e581700086d755c2599d2"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 01:40:24 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 18:38:34 2012 -0800"
      },
      "message": "target: Fix target_submit_tmr se_tmr_req allocation failures\n\nThis patch makes target_submit_tmr() se_tmr_req allocation occur before\ntarget_get_sess_cmd(), and changes target_submit_tmr() to return a failure\nw/ non zero status to the fabric caller upon core_tmr_alloc_req() failure.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3de55ec74aa803d7aa1e581700086d755c2599d2",
      "tree": "713add78069fd0082a7fd2ed33612623d9608c97",
      "parents": [
        "d335e6054db616bce3f040e659fa38440518ad1d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 01:30:55 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:51 2012 -0800"
      },
      "message": "target: Fix target_submit_tmr LUN lookup failures\n\nThis patch changes target_submit_tmr() LUN lookup failures to set response\nstatus TMR_LUN_DOES_NOT_EXIST and invoke TFO-\u003equeue_tm_rsp(), instead of\nsending CHECK_CONDITION status that can cause problems with Linux FCoE\nclients.\n\nTested with tcm_fc ports and explict LUN_RESET lookup failures.\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: Arun Easi \u003carun.easi@qlogic.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d335e6054db616bce3f040e659fa38440518ad1d",
      "tree": "f426c61320c4b323536a2b46203e17e5c6c3ea59",
      "parents": [
        "33395fb8a13731c7ef7b175dbf5a4d8a6738fe6c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Feb 23 17:28:43 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "iscsi-target: Fix iscsit_alloc_buffs() failure cases\n\nMake iscsit_alloc_buffs() failure case for page_alloc_failed use correct\n__free_page() SGL pointer, and return -ENOMEM for iscsit_allocate_iovecs\nfailure to push se_cmd-\u003et_mem_sg release into iscsit_release_cmd()\ncallback during iscsit_add_reject_from_cmd() connection reset.\n\nAlso drop cmd-\u003et_mem_sg \u003d NULL assignment from page_alloc_failed\nfailure case.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "33395fb8a13731c7ef7b175dbf5a4d8a6738fe6c",
      "tree": "accb78603eae5a6ebb407559d5c5546a36a8af9f",
      "parents": [
        "355b769e03e2a35f9dae32d95670df2fe3a6b4d2"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Thu Feb 23 17:22:12 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation\n\nThe old code did (MSB \u003c\u003c 8) \u0026 0xff, which always evaluates to 0.  Just use\nget_unaligned_be16() so we don\u0027t have to worry about whether our open-coded\nversion is correct or not.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e6a8a41a30489bcb775b505f75bced550aeaa4f1",
      "tree": "cd51f513c5e4996ba7942d055adb1a8224b7feef",
      "parents": [
        "99f730d88fd0a25c3e2dfc357bde4cf6b8cb5b40"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@linux.vnet.ibm.com",
        "time": "Thu Feb 23 18:15:26 2012 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "target/pscsi: fix PHV_VIRUTAL_HOST_ID typo\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@linux.vnet.ibm.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "99f730d88fd0a25c3e2dfc357bde4cf6b8cb5b40",
      "tree": "94b74e3bbceda90501e550543dfc82f0bde13917",
      "parents": [
        "47f1b8803e1e358ebbf4f82bfdb98971c912a2c3"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Feb 16 11:14:27 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "target: Fix off-by-seven in target_report_luns\n\ncdb_offset is always equal to offset - 8, so remove that one.  More\nimportantly, the existing code only worked correct if\nse_cmd-\u003edata_length is a multiple of 8.  Pass in a length of, say, 9 and\nwe will happily overwrite 7 bytes of \"unallocated\" memory.\n\nNow, afaics this bug is currently harmless, as allocations will\nimplicitly be padded to multiples of 8 bytes.  But depending on such a\nfact wouldn\u0027t qualify as sound engineering practice.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "47f1b8803e1e358ebbf4f82bfdb98971c912a2c3",
      "tree": "c5d85478fb2c7245a819b707adc7fca2b926b4c3",
      "parents": [
        "382436f8804fe1cb20b9a2a811a10eb2d8554721"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Wed Feb 15 16:52:11 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "target: prevent NULL pointer dereference in target_report_luns\n\ntransport_kmap_data_sg can return NULL.  I never saw this trigger, but\nreturning -ENOMEM seems better than a crash.  Also removes a pointless\ncase while at it.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "382436f8804fe1cb20b9a2a811a10eb2d8554721",
      "tree": "7eb91d8121092133c6b3a58928c54253b1d224b4",
      "parents": [
        "6cf3fa6918baab0c447f1206f1cef9166ad04864"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Wed Feb 15 16:51:32 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "target: fix use after free in target_report_luns\n\nFix possible NULL pointer dereference in target_report_luns failure path.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6cf3fa6918baab0c447f1206f1cef9166ad04864",
      "tree": "9613aaaa51fd6082f31f2d45f707b54e01128dc9",
      "parents": [
        "015487b89f27d91d95a056cdc3c85e6c729bff12"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Feb 14 15:30:31 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:50 2012 -0800"
      },
      "message": "tcm_loop: Set residual field for SCSI commands\n\nIf the target core signals an over- or under-run, tcm_loop should call\nscsi_set_resid() to tell the SCSI midlayer about the residual data length.\n\nThe difference can be seen by doing something like\n\n    strace -eioctl sg_raw -r 1024 /dev/sda 8 0 0 0 1 0 \u003e /dev/null\n\nand looking at the \"resid\u003d\" part of the SG_IO ioctl -- after this patch,\nthe field is correctly reported as 512.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "015487b89f27d91d95a056cdc3c85e6c729bff12",
      "tree": "0cecb2acc903154e25abb23e8f345f301fcd1ef5",
      "parents": [
        "effc6cc8828257c32c37635e737f14fd6e19ecd7"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:17 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Untangle front-end and back-end meanings of max_sectors attribute\n\nse_dev_attrib.max_sectors currently has two independent meanings:\n\n - It is reported in the block limits VPD page as the maximum transfer\n   length, ie the largest IO that the front-end (fabric) can handle.\n   Also the target core doesn\u0027t enforce this maximum transfer length.\n\n - It is used to hold the size of the largest IO that the back-end can\n   handle, so we know when to split SCSI commands into multiple tasks.\n\nFix this by adding a new se_dev_attrib.fabric_max_sectors to hold the\nmaximum transfer length, and checking incoming IOs against that limit.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "effc6cc8828257c32c37635e737f14fd6e19ecd7",
      "tree": "07e44ddcae2a8384bd29faa4565b9c290176ab80",
      "parents": [
        "089461dda1770c10fea0b988ff74519a9be81d7e"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:16 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Don\u0027t set WBUS16 or SYNC bits in INQUIRY response\n\nSPC-4 says about the WBUS16 and SYNC bits:\n\n    The meanings of these fields are specific to SPI-5 (see 6.4.3).\n    For SCSI transport protocols other than the SCSI Parallel\n    Interface, these fields are reserved.\n\nWe don\u0027t have a SPI fabric module, so we should never set these bits.\n(The comment was misleading, since it only mentioned Sync but the\nactual code set WBUS16 too).\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "089461dda1770c10fea0b988ff74519a9be81d7e",
      "tree": "4e1a644fe2a32ae3ffa22c52673060e617b2e692",
      "parents": [
        "d95b82461c56a6ff8ff248b101049a69ebb20278"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:15 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Set peripheral device type consistently in INQUIRY response\n\nCurrent code sets the peripheral device type to 0x3f \u003d\u003d \"not present\nunknown\" for virtual LUN 0 for standard INQUIRY commands, but leaves it\nas 0 \u003d\u003d \"connected direct access block\" for VPD INQUIRY commands.  This\nis just because the check for LUN 0 only happens in some code paths.\n\nMake our peripheral device type consistent by moving the LUN 0 check\ninto the common emulate_inquiry() code.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d95b82461c56a6ff8ff248b101049a69ebb20278",
      "tree": "0a0c8ad9d37c529c859ddcdfc7123b80bd195b0c",
      "parents": [
        "3d28934aaae5e924afedf0f5cb42e1316514da6b"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Feb 13 16:18:14 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Fix up handling of short INQUIRY buffers\n\nIf the initiator sends us an INQUIRY command with an allocation length\nthat\u0027s shorter than what we want to return, we\u0027re simply supposed to\ntruncate our response and return what the initiator gave us space for,\nwithout signaling any error.  Current target code has various tests that\ndon\u0027t fill out the full response if the buffer is too short and\nsometimes return errors incorrectly.\n\nFix this up by allocating a bounce buffer for INQUIRY responses if we\nneed to, ie if we have cmd-\u003edata_length too small as well as\nSCF_PASSTHROUGH_SG_TO_MEM_NOALLOC set in cmd-\u003ese_cmd_flags -- for most\nfabrics, we always allocate at least a full page, but for tcm_loop we\nmay have a small buffer coming directly from the SCSI stack.\n\nThis lets us delete a lot of cmd-\u003edata_length checking, and also makes\nour INQUIRY handling correct per SPC in a lot more cases.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3d28934aaae5e924afedf0f5cb42e1316514da6b",
      "tree": "6a11e13b7da8187339f262c14726107ccb32eb1b",
      "parents": [
        "ffc32d5259d107a3aa1b822e22f20b69cb9ec0a5"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 13 02:38:14 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Add TMR_ABORT_TASK task management support\n\nThis patch adds initial support for TMR_ABORT_TASK ops for se_cmd\ndescriptors using se_sess-\u003esess_cmd_list and se_cmd-\u003ecmd_kref counting.\n\nIt will perform an explict abort for all outstanding se_cmd ops based\nupon tmr-\u003eref_task_tag that have not been set CMD_T_COMPLETE.\nIt will cancel se_cmd-\u003ework and wait for backing I/O to complete before\nattempting to send SAM_STAT_TASK_ABORTED and perform\ntarget_put_sess_cmd() to release the referenced descriptor.\n\nIt also adds a CMD_T_ABORTED check into transport_complete_task() to\ncatch the completion from backend I/O that has been aborted, and\nupdates transport_wait_for_tasks() to allow CMD_T_ABORTED usage with\ncore_tmr_abort_task() context.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ffc32d5259d107a3aa1b822e22f20b69cb9ec0a5",
      "tree": "770ec5b87b91c9c1bc7edd76c8a1535259424696",
      "parents": [
        "86715569d085addc635c2b55ee8acb79d3a7fbbf"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 13 02:35:01 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Make target_release_cmd_kref release on empty list\n\nThis patch changes target_release_cmd_kref() to make TFO-\u003erelease_cmd()\ncall when list_empty(\u0026se_cmd-\u003ese_cmd_list) is TRUE.  This is required\nfor TMR_ABORT_TASK operation where the referenced tag descriptor may\nhave already been pulled of the session command list.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "86715569d085addc635c2b55ee8acb79d3a7fbbf",
      "tree": "b6b6d554b329a86845d8de661529c3fc2bc6dbef",
      "parents": [
        "2fbff1276bb635294b3384b6c167f72d0acdab95"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 13 01:07:22 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:49 2012 -0800"
      },
      "message": "target: Add SCF_ACK_KREF flag for acknowledgement kref\n\nWhen TARGET_SCF_ACK_KREF is in use with target_submit_cmd() for\nsetting the extra acknowledgement reference to se_cmd-\u003ecmd_kref,\ngo ahead and set SCF_ACK_KREF in order to be used later by\nabort task.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2fbff1276bb635294b3384b6c167f72d0acdab95",
      "tree": "d480bcaff6665583ff5f8120cc81754a8f3651b0",
      "parents": [
        "a1edf9cf6d1efed2981fcf6e4caa704fbb1bd093"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Feb 10 16:18:11 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "target: Export transport_generic_request_failure symbol\n\ntransport_generic_request_failure() is a wrapper around calling\ntransport_send_check_condition_and_sense() that is required once\nan se_cmd-\u003ecmd_kref has been obtained via target_submit_cmd() -\u003e\ntarget_get_sess_cmd().\n\ntcm_qla2xxx currently requires this, and since it\u0027s necessary for\nother callers using target_submit_cmd() make it exportable now.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a1edf9cf6d1efed2981fcf6e4caa704fbb1bd093",
      "tree": "e9b0c6585a2028844d790efae0bf3ca15e4276cf",
      "parents": [
        "16786454acec0e0e55e32d508b3058b32c1f23f3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Feb 09 12:18:06 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "target: Cleanup transport_kunmap_data_sg()\n\nThis code isn\u0027t broken per se, but it\u0027s scary to look at! It looks like\nin the t_data_nents\u003d\u003d1 case we\u0027re doing both a kunmap and a vunmap,\nwhat\u0027s saving us is that t_data_vmap in this case is 0, so vunmap\ndoesn\u0027t do anything.\n\nReturn after kunmap, so the handling of the three cases does not overlap.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "16786454acec0e0e55e32d508b3058b32c1f23f3"
}
