)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "16786454acec0e0e55e32d508b3058b32c1f23f3",
      "tree": "2f0039c11ef0d69cb7839db7b2f1e570bbaf7644",
      "parents": [
        "afe2cb7fb111ac52ec95ab2bfb19d9d9e0d52ed8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Feb 02 17:04:42 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "tcm_loop: switch to using transport_handle_cdb_direct\n\nNow that we use a workqueue for I/O submission there is no need to use\ntransport_generic_handle_cdb_map any more.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "afe2cb7fb111ac52ec95ab2bfb19d9d9e0d52ed8",
      "tree": "f4ae15c8e06727b90e81405776d32d59c71aafcc",
      "parents": [
        "f872c9f417a38a08b6ffe46e1f937d3db1d22775"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Feb 02 17:04:41 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "tcm_loop: defer all command submissions to workqueue\n\nApply the qla2xxx model of submitting all commands from a workqueue.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f872c9f417a38a08b6ffe46e1f937d3db1d22775",
      "tree": "c475f8e56b369bd8d03343e97ab171ef6cfe0ac5",
      "parents": [
        "59dcb5ec47965d8d22428db67cbea33a9ec4f347"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Feb 02 17:04:40 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "tcm_loop: kill tcm_loop_allocate_core_cmd\n\nThis function makes little sense as a separate abstraction as it\u0027s deeply\ninterwinded with the control flow of its only caller.  Merged it into\ntcm_loop_queuecommand after factoring out a helper to convert the task\nattribute representation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "59dcb5ec47965d8d22428db67cbea33a9ec4f347",
      "tree": "17420f43636ec5dade33dcc312d210c6efc1ee12",
      "parents": [
        "ea98d7f9c7cc38de55f81a1c249112442b93c7c9"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:22 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "tcm_fc: Convert ft_send_tm to use target_submit_tmr\n\nChange ft_send_tm() make use of the new target_submit_tmr helper\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ea98d7f9c7cc38de55f81a1c249112442b93c7c9",
      "tree": "cd5b136fa5b22ba290a9da8992c486a5d5ff68e8",
      "parents": [
        "a1321f71e87930579afc4a4029cce128c23f3fd3"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:21 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "target: Add target_submit_tmr helper function\n\nSimilar to target_submit_cmd, this function lets fabrics call one function\n(albeit with a lot of parameters) instead of 3 or more.\n\n(nab: Add missing return for transport_lookup_tmr_lun failure)\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a1321f71e87930579afc4a4029cce128c23f3fd3",
      "tree": "e0b7ac436500fc74462db31820ab9d1451522510",
      "parents": [
        "06fb6313d975c144850a3381ffa792c752d5473d"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:20 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:48 2012 -0800"
      },
      "message": "tcm_fc: Use transport_generic_free_cmd for ft_sess_put in ft_send_tm\n\ntransport_generic_free_cmd will end up calling ft_sess_put, so it should\nwork just the same.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "06fb6313d975c144850a3381ffa792c752d5473d",
      "tree": "bc3ba0622b0c013f01960071aa0ee1df5c7a1c85",
      "parents": [
        "5ebddd48ffc5b54f96a8041704de3890ee629d8f"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:19 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "tcm_fc: Call lookup_tmr_lun() for all TM types\n\nDon\u0027t see a reason to differentiate, so drop the fabric specific\nswitch statement in ft_send_tm() ahead of conversion to use\ntarget_submit_tmr().\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5ebddd48ffc5b54f96a8041704de3890ee629d8f",
      "tree": "4ce191729cc4f61d41683a6b84266e3c4c1453ec",
      "parents": [
        "c8e31f26feeb03dc6f51bff68135cc58431e099b"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:18 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "tcm_fc: Move core-\u003efc code conversion earlier in ft_send_tm()\n\nNo dependencies on rest of code, let\u0027s get tm_func set asap.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c8e31f26feeb03dc6f51bff68135cc58431e099b",
      "tree": "8d584fcb7cb7a58988cd2463a9a26f577410e6ac",
      "parents": [
        "35b2cdc4fea1f0d13e1602c07e62c797c9fe5ed4"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:17 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "target: Add SCF_SCSI_TMR_CDB usage and drop se_tmr_req_cache\n\nChange the test for if a cmd is a tmr request to checking if\nSCF_SCSI_TMR_CDB (a new flag) is set in cmd-\u003ese_cmd_flags.\n\nAlso remove se_tmr_req_cache usage in favor of kzalloc usage,\nand make core_tmr_alloc_req() return int + setup se_cmd-\u003ese_tmr_req\ndirectly and fix up various fabric module usages\n\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "35b2cdc4fea1f0d13e1602c07e62c797c9fe5ed4",
      "tree": "7cf4bbb95bd7b591c9c8ca6503e812dafdfc4471",
      "parents": [
        "0dccb69d42a06d438c979c933a1657cb0b4ec4fb"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:16 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "tcm_fc: Remove cmd-\u003ecdb data member\n\nIt\u0027s used only for debug output. Debug output may want to make use of\nfcp-\u003efc_cdb directly.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0dccb69d42a06d438c979c933a1657cb0b4ec4fb",
      "tree": "0e56f56d33907726932c9074d26d1faae60fdee8",
      "parents": [
        "4f26998a79b30a5c912cfa1a759fa0c3e6f6414e"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Feb 09 06:42:33 2012 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "tcm_fc: Simplify ft_send_work for tmr path\n\nCheck fc_tm_flags early and call ft_send_tm() right away. Don\u0027t need to\nset local vars for tm case.\n\ndata_len local var now unneeded, remove.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4f26998a79b30a5c912cfa1a759fa0c3e6f6414e",
      "tree": "b69fd7ed5d387edb81364e29cf484eaae99d2f05",
      "parents": [
        "ef28640497f5935bf614e1e29b16972d8b97cdb2"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:14 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:47 2012 -0800"
      },
      "message": "target/iscsi: Remove unneeded wrapper functions\n\niscsit_get_lun_for_{cmd,tmr} are unnecessary.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e35fa8c2d0feb977c2f7d14a973b4132483ffef3",
      "tree": "51e22df14dcef278c0eb6a3433b06e48a18a6d09",
      "parents": [
        "8e94b8db6121570f5ceb1aede9b28db93461cb86"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:11 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "scsi: Use struct scsi_lun in fc/fcp.h\n\nThis allows us to use scsilun_to_int without an ugly cast.\n\nFix up places that use scsilun_to_int on fcp-\u003efc_lun accordingly.\n\nIn fc target, this leaves ft_cmd.lun unused, so remove it.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Kiran Patil \u003ckiran.patil@intel.com\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8e94b8db6121570f5ceb1aede9b28db93461cb86",
      "tree": "b1d77a887ff2b21fce84d910df6a6354771b7d6e",
      "parents": [
        "cd0c72c16ebf604db5e8c97d287bc79d66281e32"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon Jan 16 16:57:07 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: Use #define for SYNCHRONIZE_CACHE_16\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d0f474e501929acdbd116cca39ef083012f70f25",
      "tree": "ce4db92ff234d82c3b61ff05404ed4ae41551770",
      "parents": [
        "d5b4a21b3dc116b477c1b1b493233a73aacbb440"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Thu Jan 12 10:41:18 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: Use LIST_HEAD()/DEFINE_MUTEX() for static objects\n\nInstead of\n\n   static struct list_head foo;\n   static struct mutex bar;\n\n   ...\n\n   INIT_LIST_HEAD(\u0026foo);\n   mutex_init(\u0026bar);\n\njust do\n\n   static LIST_HEAD(foo);\n   static DEFINE_MUTEX(bar);\n\nAlso remove some superfluous struct list_head and spinlock_t\ninitialization calls where the variables are already defined using\nmacros that initialize them.\n\nThis saves a decent amount of compiled code too:\n\n    add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-178 (-178)\n    function                                     old     new   delta\n    target_core_init_configfs                    898     850     -48\n    core_scsi3_emulate_pro_preempt              1742    1683     -59\n    iscsi_thread_set_init                        159      88     -71\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d5b4a21b3dc116b477c1b1b493233a73aacbb440",
      "tree": "f11a6274442cb2e5a1ab6209661dbdd8969eb76e",
      "parents": [
        "6e315a066d7d1917f762d2f2a14e9a71a8656fea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:20:31 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: increase iblock task sizes\n\nThere is no real limit for task sizes in the iblock driver given that we\ncan chain bios.  Increase the maximum size to UINT_MAX, and change the\ncode to submit bios in a smaller batch size to avoid deadlocks when\nhaving more bios in flight than the pool supports.  Also increase the\npool size to always allow multiple tasks to be in flight.\n\nI also had to change the task refcounting to include one reference for\nthe submission task, which is a standard practice in this kind of code\nin Linux (e.g. XFS I/O submission).  This was wrong before, but couldn\u0027t\nbe hit easily.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6e315a066d7d1917f762d2f2a14e9a71a8656fea",
      "tree": "cfc7f4f79f68a26356fea3f0307104dbefbbd450",
      "parents": [
        "3d26fea01d5f80e3e585d69d8d73a60e1ca563a0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:20:10 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: remove the unused struct iblock_hba\n\nThere is no reason to allocate a struct just to store the host number for\na debug printk in the detach path.  I\u0027ve simply removed the verbose\ndebugging given that the calling code thinks the number passed in is\nsomething different from a host ID anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3d26fea01d5f80e3e585d69d8d73a60e1ca563a0",
      "tree": "6955955e14533854f9e9eaae7b7475e819bc53d5",
      "parents": [
        "7d680f3b74dd6f0f57569eeeee8c257790ceaa96"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:14:05 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:46 2012 -0800"
      },
      "message": "target: remove the transport_lun_active field in struct se_cmd\n\nThere is no reason to have a flag telling if a command is on the per-lun list,\nwe can simply do a list_empty check before removing it as long as we\u0027re careful\nto always use list_del_init.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7d680f3b74dd6f0f57569eeeee8c257790ceaa96",
      "tree": "e0797ab722c222213b7cbe4fa9ba4a61db2d8b0c",
      "parents": [
        "b01543dfe67bb1d191998e90d20534dc354de059"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:13:47 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 25 14:37:45 2012 -0800"
      },
      "message": "target: replace various cmd flags with a transport state\n\nReplace various atomic_ts used as flags in struct se_cmd with a single\ntransport_state bitmap that requires t_state_lock to be held for modifications.\n\nIn the target core that assumption generally is true, but some recently added\ncode in the SRP target had to grow new lock calls.  I can\u0027t say I like the way\nhow it messes with the command state directly, but let\u0027s leave that for later.\n\n(Re-add missing ib_srpt.c changes that nab dropped..)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a6c76da8f8b4549ccec7425ba94d8395d68a2e56",
      "tree": "ac2c59a5f20fa26c75e7193cbd0257554fb3b723",
      "parents": [
        "bc399d6e6ed8615007110f5e438886ffd236760e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Jan 06 17:02:13 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Feb 21 09:03:29 2012 -0800"
      },
      "message": "tcm_fc: Convert call_rcu() to kfree_rcu(), drop ft_tport_rcu_free()\n\nThe call_rcu() in ft_tport_delete() invokes ft_tport_rcu_free(),\nwhich just does a kfree().  So convert the call_rcu() to kfree_rcu(),\nallowing ft_tport_rcu_free() to be eliminated.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \"Nicholas A. Bellinger\" \u003cnab@linux-iscsi.org\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: linux-scsi@vger.kernel.org\nCc: target-devel@vger.kernel.org\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "67236c44741e250199ccd77f1115568e68cf8848",
      "tree": "4b09d2017a0122984b694e167aeaff2afcc931e0",
      "parents": [
        "9f9ef6d3c08319defc29e4cf6ef2868d15ed0cc3"
      ],
      "author": {
        "name": "Martin Svec",
        "email": "martin.svec@zoner.cz",
        "time": "Mon Feb 06 22:13:25 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:58 2012 +0000"
      },
      "message": "target: Fix unsupported WRITE_SAME sense payload\n\nThis patch fixes a bug in target-core where unsupported WRITE_SAME ops\nfrom a target_check_write_same_discard() failure was incorrectly\nreturning CHECK_CONDITION w/ TCM_INVALID_CDB_FIELD sense data.\nThis was causing some clients to not properly fall back, so go ahead\nand use the correct TCM_UNSUPPORTED_SCSI_OPCODE sense for this case.\n\nReported-by: Martin Svec \u003cmartin.svec@zoner.cz\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9f9ef6d3c08319defc29e4cf6ef2868d15ed0cc3",
      "tree": "dab36bf875ce037be9fc59b7fab101dce192d188",
      "parents": [
        "5c55125f4794f4e77574fc09839cb47b0eb45b06"
      ],
      "author": {
        "name": "Dax Kelson",
        "email": "dkelson@gurulabs.com",
        "time": "Fri Feb 03 23:40:25 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:53 2012 +0000"
      },
      "message": "iscsi: use IP_FREEBIND socket option\n\nUse IP_FREEBIND socket option so that iscsi portal configuration with\nexplicit IP addresses can happen during boot, before network interfaces\nhave been assigned IPs.\n\nThis is especially important on systemd based Linux boxes where system\nboot happens asynchronously and non-trivial configuration must be done\nto get targetcli.service to start synchronously after the network is\nconfigured.\n\nReference:\nhttp://lists.fedoraproject.org/pipermail/devel/2011-October/158025.html\n\nSigned-off-by: Dax Kelson \u003cdkelson@gurulabs.com\u003e\nCc: \"Nicholas A. Bellinger\" \u003cnab@linux-iscsi.org\u003e\nCc: \"Andy Grover\" \u003cagrover@redhat.com\u003e\nCc: \"Lennart Poettering\" \u003clennart@poettering.net\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5c55125f4794f4e77574fc09839cb47b0eb45b06",
      "tree": "2e35bfcfe983dee5d5afbf0437dd3ff5f9a4938a",
      "parents": [
        "3011684c0b0b77b0f88113ef1c15b18befc6734a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Feb 02 16:51:24 2012 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:46 2012 +0000"
      },
      "message": "iblock: fix handling of large requests\n\nRequesting to many bvecs upsets bio_alloc_bioset, so limit the number we ask\nfor to the amount it can handle.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3011684c0b0b77b0f88113ef1c15b18befc6734a",
      "tree": "fcac41c9b6cb8de95214e74d0f1c1b84aa979655",
      "parents": [
        "c3bc93da24c8f315d9ece741f6e6414a38879ec6"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Jan 27 15:50:55 2012 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:40 2012 +0000"
      },
      "message": "target: handle empty string writes in sysfs\n\nThese are root only and we\u0027re not likely to hit the problem in practise,\nbut it makes the static checkers happy.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c3bc93da24c8f315d9ece741f6e6414a38879ec6",
      "tree": "4b7fe46a3fec2e222d0e77f721cb09f69e81899a",
      "parents": [
        "7347b5ff7090b2b399b7921a266255cd55bbd78f"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Jan 23 11:39:49 2012 +1100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:30 2012 +0000"
      },
      "message": "iscsi_target: in_aton needs linux/inet.h\n\nFixes this error after a recent nfs cleanup:\n\ndrivers/target/iscsi/iscsi_target_configfs.c: In function \u0027lio_target_call_addnptotpg\u0027:\ndrivers/target/iscsi/iscsi_target_configfs.c:214:3: error: implicit declaration of function \u0027in6_pton\u0027 [-Werror\u003dimplicit-function-declaration]\ndrivers/target/iscsi/iscsi_target_configfs.c:239:3: error: implicit declaration of function \u0027in_aton\u0027 [-Werror\u003dimplicit-function-declaration]\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7347b5ff7090b2b399b7921a266255cd55bbd78f",
      "tree": "3952df49566e07f4cbdbc7aef6b28abadf008dca",
      "parents": [
        "735703cac08f34a197e1c6331ca9adc8a52d6046"
      ],
      "author": {
        "name": "Marco Sanvido",
        "email": "marco@purestorage.com",
        "time": "Fri Jan 20 15:49:27 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:48:20 2012 +0000"
      },
      "message": "target: Fix iblock se_dev_attrib.unmap_granularity\n\nThe block layer keeps q-\u003elimits.discard_granularity in bytes, but iblock\n(and the SCSI Block Limits VPD page) keep unmap_granularity in blocks.\nReport the correct value when exporting block devices by dividing to\nconvert bytes to blocks.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "735703cac08f34a197e1c6331ca9adc8a52d6046",
      "tree": "93e3e09572f681f9f3a360832ba4a84a6f99018e",
      "parents": [
        "1edcdb497ef418122cd4f98e157660cf594b345a"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jan 20 19:02:56 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:47:11 2012 +0000"
      },
      "message": "target: Fix target_submit_cmd() exception handling\n\nThis patch fixes a bug in target_submit_cmd() where the failure path\nfor transport_generic_allocate_tasks() made a direct call to\ntransport_send_check_condition_and_sense() and not calling the\nfinal target_put_sess_cmd() release callback.\n\nFor transport_generic_allocate_tasks() failures, use the proper call to\ntransport_generic_request_failure() to handle kref_put() along\nwith potential internal queue full response processing.\n\nIt also makes transport_lookup_cmd_lun() failures in\ntarget_submit_cmd() use transport_send_check_condition_and_sense() and\ntarget_put_sess_cmd() directly to avoid se_cmd-\u003ese_dev reference in\ntransport_generic_request_failure() handling.\n\nFinally it drops the out_check_cond: label and use direct reference for\nallocate task failures, and per-se_device queue_full handling is\ncurrently not supported for transport_lookup_cmd_lun() failure\ndescriptors due to se_device dependency.\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1edcdb497ef418122cd4f98e157660cf594b345a",
      "tree": "bf41780935b8996f85a0ae090897495961deb6d7",
      "parents": [
        "95fe1ee41e23fa271416da67483594dde74bc6ca"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Thu Jan 19 13:39:23 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:41:04 2012 +0000"
      },
      "message": "target: Change target_submit_cmd() to return void\n\nRetval not very useful, and may even be harmful. Once submitted, fabrics\nshould expect a sense error if anything goes wrong. All fabrics checking\nof this retval are useless or broken:\n\nfc checks it just to emit more debug output.\nib_srpt trickles retval up, then it is ignored.\nqla2xxx trickles it up, which then causes a bug because the abort goto\nin qla_target.c thinks cmd hasn\u0027t been sent to target.\n\nJust returning nothing is best.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "95fe1ee41e23fa271416da67483594dde74bc6ca",
      "tree": "6bfed9186c9fbec3954f4c9f590802ade39ffbe7",
      "parents": [
        "bf0053550aebe56f3bb5dd793e9de69238b5b945"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Jan 18 14:04:29 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 07 06:32:39 2012 +0000"
      },
      "message": "target: accept REQUEST_SENSE with 18bytes\n\nWindowsXP+BOT issues a MODE_SENSE request with page 0x1c which is not\nsuppoerted by target. Target rejects that command with\nTCM_INVALID_CDB_FIELD, so far so good. On BOT I can\u0027t send the SENSE\nresponse back, instead I can only reply that an error occured. The next\nthing happens is a REQUEST_SENSE request with 18 bytes length. Since the\ncheck here is more than 18 bytes I have to NACK that request as well.\nThis is not really required: We check for some additional room, but we\nnever use it. The additional length is set to 0xa so the total length is\n0xa + 8 \u003d 18 which is fine with my 18 bytes.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bf0053550aebe56f3bb5dd793e9de69238b5b945",
      "tree": "eac9ac787478014209756b6505146564d41f40a8",
      "parents": [
        "bb1acb2ee038a6c13ee99e0b9fb44dacb4a9de84"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Jan 17 18:00:57 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:59 2012 +0000"
      },
      "message": "target: Fail INQUIRY commands with EVPD\u003d\u003d0 but PAGE CODE!\u003d0\n\nMy draft of SPC-4 says:\n\n    If the PAGE CODE field is not set to zero when the EVPD bit is set\n    to zero, the command shall be terminated with CHECK CONDITION\n    status, with the sense key set to ILLEGAL REQUEST, and the\n    additional sense code set to INVALID FIELD IN CDB.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bb1acb2ee038a6c13ee99e0b9fb44dacb4a9de84",
      "tree": "47ac9d29a68025c963f815933a68e1ed3f35de84",
      "parents": [
        "2f9bc894c67dbacae5a6a9875818d2a18a918d18"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Jan 17 18:00:56 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:58 2012 +0000"
      },
      "message": "target: Return correct ASC for unimplemented VPD pages\n\nMy draft of SPC-4 says:\n\n    If the device server does not implement the requested vital product\n    data page, then the command shall be terminated with CHECK CONDITION\n    status, with the sense key set to ILLEGAL REQUEST, and the\n    additional sense code set to INVALID FIELD IN CDB.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "2f9bc894c67dbacae5a6a9875818d2a18a918d18",
      "tree": "2891680fbe0b57299776d44123969452a9cb1a25",
      "parents": [
        "4949314c7283ea4f9ade182ca599583b89f7edd6"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jan 16 23:33:48 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:58 2012 +0000"
      },
      "message": "iscsi-target: Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT\n\nThis patch addresses a bug with sendtargets discovery where INADDR_ANY (0.0.0.0)\n+ IN6ADDR_ANY_INIT ([0:0:0:0:0:0:0:0]) network portals where incorrectly being\nreported back to initiators instead of the address of the connecting interface.\nTo address this, save local socket -\u003egetname() output during iscsi login setup,\nand makes iscsit_build_sendtargets_response() return these TargetAddress keys\nwhen INADDR_ANY or IN6ADDR_ANY_INIT portals are in use.\n\nReported-by: Dax Kelson \u003cdkelson@gurulabs.com\u003e\nReported-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4949314c7283ea4f9ade182ca599583b89f7edd6",
      "tree": "bbd2316996bc2f19c1b3a8c24f8591f12d2330fa",
      "parents": [
        "e8904dc5008ef92f0f62391d6557f03f921eeb32"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Mon Jan 16 16:57:08 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:58 2012 +0000"
      },
      "message": "target: Allow control CDBs with data \u003e 1 page\n\nWe need to handle \u003e1 page control cdbs, so extend the code to do a vmap\nif bigger than 1 page. It seems like kmap() is still preferable if just\na page, fewer TLB shootdowns(?), so keep using that when possible.\n\nRename function pair for their new scope.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e8904dc5008ef92f0f62391d6557f03f921eeb32",
      "tree": "da3cdfc1e0be8166b58649840dac0d1ba0842081",
      "parents": [
        "f8d48ae52eeec906d7fb42485eb26a5d305bab0a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Jan 15 19:33:30 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:57 2012 +0000"
      },
      "message": "iscsi-target: Fix up a few assignments\n\nA statement such as\n  struct iscsi_node_attrib *na \u003d na \u003d iscsit_tpg_get_node_attrib(sess);\nhas undefined behaviour since there are two assignments to \u0027na\u0027, strictly\nspeaking (the order in which side-effects from the assignments take place\nis undefined since there\u0027s no intervening sequence point), and it looks\nunintentional in any case.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f8d48ae52eeec906d7fb42485eb26a5d305bab0a",
      "tree": "4de9fc43d78b02bb6569860c887f81af763f9308",
      "parents": [
        "cd931ee62fd0258fc85c76a7c5499fe85e0f3436"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sun Jan 15 14:30:24 2012 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:57 2012 +0000"
      },
      "message": "iscsi-target: make one-bit bitfields unsigned\n\nSigned bitfields are a problem because instead of being 1 or 0 like\nyou\u0027d expect they are 0 and -1.  It doesn\u0027t cause a problem in this case\nbut sparse complains:\n\ndrivers/target/iscsi/iscsi_target_core.h:564:56: error: dubious one-bit\nsigned bitfield\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cd931ee62fd0258fc85c76a7c5499fe85e0f3436",
      "tree": "3e98ce1d1fc20b0782dee6eea01e6db295d12503",
      "parents": [
        "c1ce4bd56f2846de55043374598fd929ad3b711b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jan 16 17:11:54 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:57 2012 +0000"
      },
      "message": "iscsi-target: Fix double list_add with iscsit_alloc_buffs reject\n\nThis patch fixes a bug where the iscsit_add_reject_from_cmd() call\nfrom a failure to iscsit_alloc_buffs() was incorrectly passing\nadd_to_conn\u003d1 and causing a double list_add after iscsi_cmd-\u003ei_list\nhad already been added in iscsit_handle_scsi_cmd().\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c1ce4bd56f2846de55043374598fd929ad3b711b",
      "tree": "86a088a99e1c51c78aa2198d015936edccdfeb12",
      "parents": [
        "8d9efe539cf78f6a90947d47100e4a86d907750f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Jan 16 16:04:15 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:35:56 2012 +0000"
      },
      "message": "iscsi-target: Fix reject release handling in iscsit_free_cmd()\n\nThis patch addresses a bug where iscsit_free_cmd() was incorrectly calling\niscsit_release_cmd() for ISCSI_OP_REJECT because iscsi_add_reject*() will\noverwrite the original iscsi_cmd-\u003eiscsi_opcode assignment.  This bug was\nintroduced with the following commit:\n\ncommit 0be67f2ed8f577d2c72d917928394c5885fa9134\nAuthor: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nDate:   Sun Oct 9 01:48:14 2011 -0700\n\n    iscsi-target: Remove SCF_SE_LUN_CMD flag abuses\n\nand was manifesting itself as list corruption with the following:\n\n[  131.191092] ------------[ cut here ]------------\n[  131.191092] WARNING: at lib/list_debug.c:53 __list_del_entry+0x8d/0x98()\n[  131.191092] Hardware name: VMware Virtual Platform\n[  131.191092] list_del corruption. prev-\u003enext should be ffff880022d3c100, but was 6b6b6b6b6b6b6b6b\n[  131.191092] Modules linked in: tcm_vhost ib_srpt ib_cm ib_sa ib_mad ib_core tcm_qla2xxx qla2xxx tcm_loop tcm_fc libfc scsi_transport_fc crc32c iscsi_target_mod target_core_stgt scsi_tgt target_core_pscsi target_core_file target_core_iblock target_core_mod configfs ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi sr_mod cdrom sd_mod e1000 ata_piix libata mptspi mptscsih mptbase [last unloaded: scsi_wait_scan]\n[  131.191092] Pid: 2250, comm: iscsi_ttx Tainted: G        W    3.2.0-rc4+ #42\n[  131.191092] Call Trace:\n[  131.191092]  [\u003cffffffff8103b553\u003e] warn_slowpath_common+0x80/0x98\n[  131.191092]  [\u003cffffffff8103b5ff\u003e] warn_slowpath_fmt+0x41/0x43\n[  131.191092]  [\u003cffffffff811d0279\u003e] __list_del_entry+0x8d/0x98\n[  131.191092]  [\u003cffffffffa01395c9\u003e] transport_lun_remove_cmd+0x9b/0xb7 [target_core_mod]\n[  131.191092]  [\u003cffffffffa013a55c\u003e] transport_generic_free_cmd+0x5d/0x71 [target_core_mod]\n[  131.191092]  [\u003cffffffffa01a012b\u003e] iscsit_free_cmd+0x1e/0x27 [iscsi_target_mod]\n[  131.191092]  [\u003cffffffffa01a13be\u003e] iscsit_close_connection+0x14d/0x5b2 [iscsi_target_mod]\n[  131.191092]  [\u003cffffffffa0196a0c\u003e] iscsit_take_action_for_connection_exit+0xdb/0xe0 [iscsi_target_mod]\n[  131.191092]  [\u003cffffffffa01a55d4\u003e] iscsi_target_tx_thread+0x15cb/0x1608 [iscsi_target_mod]\n[  131.191092]  [\u003cffffffff8103609a\u003e] ? check_preempt_wakeup+0x121/0x185\n[  131.191092]  [\u003cffffffff81030801\u003e] ? __dequeue_entity+0x2e/0x33\n[  131.191092]  [\u003cffffffffa01a4009\u003e] ? iscsit_send_text_rsp+0x25f/0x25f [iscsi_target_mod]\n[  131.191092]  [\u003cffffffffa01a4009\u003e] ? iscsit_send_text_rsp+0x25f/0x25f [iscsi_target_mod]\n[  131.191092]  [\u003cffffffff8138f706\u003e] ? schedule+0x55/0x57\n[  131.191092]  [\u003cffffffff81056c7d\u003e] kthread+0x7d/0x85\n[  131.191092]  [\u003cffffffff81399534\u003e] kernel_thread_helper+0x4/0x10\n[  131.191092]  [\u003cffffffff81056c00\u003e] ? kthread_worker_fn+0x16d/0x16d\n[  131.191092]  [\u003cffffffff81399530\u003e] ? gs_change+0x13/0x13\n\nReported-by: \u003cjrepac@yahoo.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8d9efe539cf78f6a90947d47100e4a86d907750f",
      "tree": "82c9981047853687f83117d65de94ba18a25f144",
      "parents": [
        "1dd0a0674530da61cdbfadd88c96949b483a7c19"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Jan 11 21:43:38 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:33:44 2012 +0000"
      },
      "message": "target: fix return code of core_tpg_.*_lun\n\n- core_tpg_pre_addlun()\n  returns always ERR_PTR() or the pointer, never NULL. The additional\n  check for NULL in core_dev_add_lun() is not required.\n\n- core_tpg_pre_dellun()\n  returns always ERR_PTR() or the pointer, never NULL. The check for NULL\n  in core_dev_del_lun() is wrong. The third argument (int *) is never\n  used, remove it.\n\n- core_dev_add_lun()\n  returns always NULL or the pointer, never ERR_PTR. The check for\n  IS_ERR() is not required.\n\n(nab: Convert core_dev_add_lun() use err.h macros for failure\nhandling to be consistent with the rest of target_core_fabric_configfs.c\ncallers)\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1dd0a0674530da61cdbfadd88c96949b483a7c19",
      "tree": "5e47fe019fb7961883b3104a043eff71392c0ff2",
      "parents": [
        "e59a41b69a8e116d5ac8c95c4222f5a971f66bbd"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 10 14:16:58 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:30:39 2012 +0000"
      },
      "message": "target: use save/restore lock primitive in core_dec_lacl_count()\n\nIt may happen that uasp will free the request in irq conntext, the\ncallchain:\n\n uasp_cmd_release() -\u003e transport_generic_free_cmd() -\u003e core_dec_lacl_count()\n\nwhere the last function enables the IRQ. Those irqs are re-disabled\nlater (due to the spin.*irq_restore) but in between we could get hurt.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e59a41b69a8e116d5ac8c95c4222f5a971f66bbd",
      "tree": "84f1d9b3d79f4455a18c2485acb493e354315c20",
      "parents": [
        "91ec1d3535b2acf12c599045cc19ad9be3c6a47b"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 10 14:16:57 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:30:36 2012 +0000"
      },
      "message": "target: avoid multiple outputs in scsi_dump_inquiry()\n\nThe multiple calls to pr_debug() each with one letter results in a new\nline. This patch merges the multiple requests into one call per line\nso we don\u0027t have the multiple line cuts.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "91ec1d3535b2acf12c599045cc19ad9be3c6a47b",
      "tree": "12a312b34c2a932832ca02d28c082e86ab7d2813",
      "parents": [
        "9fbc8909876a2160044e71d376848973b9bfdc3f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Jan 13 12:01:34 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:30:22 2012 +0000"
      },
      "message": "target: Add workaround for zero-length control CDB handling\n\nThis patch adds a work-around for handling zero allocation length\ncontrol CDBs (type SCF_SCSI_CONTROL_SG_IO_CDB) that was causing an\nOOPs with the following raw calls:\n\n   # sg_raw -v /dev/sdd 3 0 0 0 0 0\n   # sg_raw -v /dev/sdd 0x1a 0 1 0 0 0\n\nThis patch will follow existing zero-length handling for data I/O\nand silently return with GOOD status.  This addresses the zero length\nissue, but the proper long-term resolution for handling arbitary\nallocation lengths will be to refactor out data-phase handling in\nindividual CDB emulation logic within target_core_cdb.c\n\nReported-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9fbc8909876a2160044e71d376848973b9bfdc3f",
      "tree": "4db778e4d91bb64460e0aa0bdfa4d9ea83cbea21",
      "parents": [
        "9db9da332250dbe662995703a4dcdd692112f0c3"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jan 09 17:54:00 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:30:05 2012 +0000"
      },
      "message": "target: Correct sense key for INVALID FIELD IN {PARAMETER LIST,CDB}\n\nAccording to SPC-4, the sense key for commands that are failed with\nINVALID FIELD IN PARAMETER LIST and INVALID FIELD IN CDB should be\nILLEGAL REQUEST (5h) rather than ABORTED COMMAND (Bh).  Without this\npatch, a tcm_loop LUN incorrectly gives:\n\n    # sg_raw -r 1 -v /dev/sda 3 1 0 0 ff 0\n    Sense Information:\n     Fixed format, current;  Sense key: Aborted Command\n     Additional sense: Invalid field in cdb\n     Raw sense data (in hex):\n            70 00 0b 00 00 00 00 0a  00 00 00 00 24 00 00 00\n            00 00\n\nWhile a real SCSI disk gives:\n\n    Sense Information:\n     Fixed format, current;  Sense key: Illegal Request\n     Additional sense: Invalid field in cdb\n     Raw sense data (in hex):\n            70 00 05 00 00 00 00 18  00 00 00 00 24 00 00 00\n            00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00\n\nwith the main point being that the real disk gives a sense key of\nILLEGAL REQUEST (5h).\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9db9da332250dbe662995703a4dcdd692112f0c3",
      "tree": "bec92f208f928e41e84cc03ff9687e35eda6a062",
      "parents": [
        "6816966a8418b980481b4dced7eddd1796b145e8"
      ],
      "author": {
        "name": "roland@purestorage.com",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 04 15:59:58 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:29:57 2012 +0000"
      },
      "message": "target: Don\u0027t zero pages used for data buffers\n\nDoing alloc_page(GFP_KERNEL | __GFP_ZERO) to get pages used for data\nbuffers wastes a lot of CPU clearing pages that will be quickly be\noverwritten by the actual data.  However, for emulated control\ncommands such as INQUIRY and so on, the code does assume that the\nbuffer is zeroed.\n\nTo avoid this CPU overhead, skip the __GFP_ZERO for commands that are\nactually moving data, ie cmds that have SCF_SCSI_DATA_SG_IO_CDB set.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6816966a8418b980481b4dced7eddd1796b145e8",
      "tree": "5f6e391c719e1ca131442c0eeb661bc3f0029f72",
      "parents": [
        "9e08e34e3735ae057eb3834da3570995811b7eb9"
      ],
      "author": {
        "name": "Marco Sanvido",
        "email": "marco@purestorage.com",
        "time": "Tue Jan 03 17:12:58 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:29:36 2012 +0000"
      },
      "message": "target: Allow PERSISTENT RESERVE IN for non-reservation holder\n\nInitiators that aren\u0027t the active reservation holder should be able to\ndo a PERSISTENT RESERVE IN command in all cases, so add it to the list\nof allowed CDBs in core_scsi3_pr_seq_non_holder().\n\nSigned-off-by: Marco Sanvido \u003cmarco@purestorage.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9e08e34e3735ae057eb3834da3570995811b7eb9",
      "tree": "2a062cdc55b523373690325b3a2b8686e367ac90",
      "parents": [
        "48cfe37cc03f616e6c139796962e7ec677cde8a9"
      ],
      "author": {
        "name": "Marco Sanvido",
        "email": "marco@purestorage.com",
        "time": "Tue Jan 03 17:12:57 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:28:43 2012 +0000"
      },
      "message": "target: Use correct preempted registration sense code\n\nThe comments quote the right parts of the spec:\n\n   * d) Establish a unit attention condition for the\n   *    initiator port associated with every I_T nexus\n   *    that lost its registration other than the I_T\n   *    nexus on which the PERSISTENT RESERVE OUT command\n   *    was received, with the additional sense code set\n   *    to REGISTRATIONS PREEMPTED.\n\nand\n\n   * e) Establish a unit attention condition for the initiator\n   *    port associated with every I_T nexus that lost its\n   *    persistent reservation and/or registration, with the\n   *    additional sense code set to REGISTRATIONS PREEMPTED;\n\nbut the actual code accidentally uses ASCQ_2AH_RESERVATIONS_PREEMPTED\ninstead of ASCQ_2AH_REGISTRATIONS_PREEMPTED.  Fix this.\n\nSigned-off-by: Marco Sanvido \u003cmarco@purestorage.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "48cfe37cc03f616e6c139796962e7ec677cde8a9",
      "tree": "0dafa66ac58400b8eee1e68182b6c73dc8b880d3",
      "parents": [
        "895f3022523361e9b383cf48f51feb1f7d5e7e53"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 21 14:20:23 2011 -0500"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jan 18 08:28:02 2012 +0000"
      },
      "message": "target: don\u0027t allocate bio headroom in iblock\n\nWe never embedd the bio into a structure, so there is no need to allocate\n64 bytes of headroom per bio.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "895f3022523361e9b383cf48f51feb1f7d5e7e53",
      "tree": "6a692ebaacc4af38c8869eee0da7c6e868b1232a",
      "parents": [
        "6d5b59756033c2a029bde7262bb5f8d45f4ca952"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Dec 13 14:55:33 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Dec 16 06:29:04 2011 +0000"
      },
      "message": "target: Set additional sense length field in sense data\n\nThe target code was not setting the additional sense length field in the\nsense data it returned, which meant that at least the Linux stack\nignored the ASC/ASCQ fields.  For example, without this patch, on a\ntcm_loop device:\n\n    # sg_raw -v /dev/sda 2 0 0 0 0 0\n\ngives\n\n        cdb to send: 02 00 00 00 00 00\n    SCSI Status: Check Condition\n\n    Sense Information:\n     Fixed format, current;  Sense key: Illegal Request\n      Raw sense data (in hex):\n            70 00 05 00 00 00 00 00\n\nwhile after the patch we correctly get the following (which matches what\na regular disk returns):\n\n        cdb to send: 02 00 00 00 00 00\n    SCSI Status: Check Condition\n\n    Sense Information:\n     Fixed format, current;  Sense key: Illegal Request\n     Additional sense: Invalid command operation code\n     Raw sense data (in hex):\n            70 00 05 00 00 00 00 0a  00 00 00 00 20 00 00 00\n            00 00\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6d5b59756033c2a029bde7262bb5f8d45f4ca952",
      "tree": "01cf728296b46e5af005307859e890ef839e063d",
      "parents": [
        "beb55a0cc15a43be43a646b588fcf83822f0c44f"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 18:24:03 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:53:29 2011 +0000"
      },
      "message": "target: Remove legacy device status check from transport_execute_tasks\n\nThis patch removes a legacy se_dev_check_online() check from within\ntransport_execute_tasks() that should no longer be necessary as\ntransport_lookup_cmd_lun() is already making this call.\n\nUsing transport_cmd_check_stop() from transport_execute_tasks() should\nalready be checking per se_cmd context for each descriptor upon active\nI/O shutdown, so no need to acquire dev-\u003edev_status_lock again while\nexecuting se_task submission.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "beb55a0cc15a43be43a646b588fcf83822f0c44f",
      "tree": "4ad60fa940e13870449e70341b036e5eaa22c01c",
      "parents": [
        "4d2300ccffd22d1d0213b6a8e4d685eb6ca069c0"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 18:21:24 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:50:12 2011 +0000"
      },
      "message": "target: Remove __transport_execute_tasks() for each processing context\n\nThis patch removes the original usage of __transport_execute_tasks() ahead\nof every transport_get_cmd_from_queue() call in transport_processing_thread().\nThis helps reduce se_device-\u003eexecute_task_lock contention between qla2xxx wq\nwith target_submit_cmd() for READs and transport_processing_thread()\ncontext servicing WRITEs with full payloads for I/O submission.\n\nIt also adds a __transport_execute_tasks() to kick the task queue again\nwithout a *se_cmd descriptor with existing queue full logic, but this may\nend up not being necessary.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "4d2300ccffd22d1d0213b6a8e4d685eb6ca069c0",
      "tree": "a76817aa4aaba5a6ffb05b3e6a0ea9ca654a0519",
      "parents": [
        "65586d51e0986be574118286c3d0007e903a2add"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 18:18:33 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:48:46 2011 +0000"
      },
      "message": "target: Remove extra se_device-\u003eexecute_task_lock access in fast path\n\nThis patch makes __transport_execute_tasks() perform the addition of\ntasks to dev-\u003eexecute_task_list via __transport_add_tasks_from_cmd()\nwhile holding dev-\u003eexecute_task_lock during normal I/O fast path\nsubmission.\n\nIt effectively removes the unnecessary re-acquire of dev-\u003eexecute_task_lock\nduring transport_execute_tasks() -\u003e transport_add_tasks_from_cmd() ahead\nof calling  __transport_execute_tasks() to queue tasks for the passed\n*se_cmd descriptor.\n\n(v2: Re-add goto check_depth usage for multi-task submission for now..)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "65586d51e0986be574118286c3d0007e903a2add",
      "tree": "0684f76d53e666ffe2a2c77f8e3947d263fa1b75",
      "parents": [
        "40be67f4c588fe2f3e2dbd60ae1f470abc5b6ad8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 01:25:21 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:42:13 2011 +0000"
      },
      "message": "target: Drop se_device TCQ queue_depth usage from I/O path\n\nHistorically, pSCSI devices have been the ones that required target-core\nto enforce a per se_device-\u003edepth_left.  This patch changes target-core\nto no longer (by default) enforce a per se_device-\u003edepth_left or sleep in\ntransport_tcq_window_closed() when we out of queue slots for all backend\nexport cases.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "40be67f4c588fe2f3e2dbd60ae1f470abc5b6ad8",
      "tree": "2651859707dfe779766552cde0fce41f5eb19103",
      "parents": [
        "ec54cc081ead14e85736c6543e36ec59be8a7d3d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 30 00:41:20 2011 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 14 11:42:12 2011 +0000"
      },
      "message": "target: Fix possible NULL pointer with __transport_execute_tasks\n\nThis patch makes __transport_execute_tasks() use a local *se_dev\nreference to prevent direct se_cmd-\u003ese_dev access after\ntransport_cmd_check_stop() -\u003e transport_add_tasks_from_cmd()\nhas been called, as in the current implementation we can expect\n__transport_execute_tasks() may be called from another context\nthat may have already completed the I/O.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "4355a9110eeb2eaf1dd44fcab16ccbd1c8c5fad4"
}
