)]}'
{
  "log": [
    {
      "commit": "986248993d495aebffcdf0758ce28ab85aa4e9ff",
      "tree": "850c037dc3cb992ae1eb93bb05038f2fed95d70a",
      "parents": [
        "426d266c12e9116497e3055212f823a56e1a6914",
        "2dbe10a202d2743582b5fb7c9864455ef6ecf9a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 11:43:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 11:43:27 2013 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target patches from Nicholas Bellinger:\n \"Here are the remaining target-pending patches for v3.9-rc1.\n\n  The most important one here is the immediate queue starvation\n  regression fix for iscsi-target, which addresses a bug that\u0027s\n  effecting v3.5+ kernels under heavy sustained READ only workloads.\n  Thanks alot to Benjamin Estrabaud for helping to track this down!\n\n  Also included is a pSCSI exception bugfix from Asias, along with a\n  handful of other minor changes.  Both bugfixes are CC\u0027ed to stable.\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:\n  target/pscsi: Rename sg_num to nr_vecs in pscsi_get_bio()\n  target/pscsi: Fix page increment\n  target/pscsi: Drop unnecessary NULL assignment to bio-\u003ebi_next\n  target: Add __exit annotation for module_exit functions\n  iscsi-target: Fix immediate queue starvation regression with DATAIN\n"
    },
    {
      "commit": "2dbe10a202d2743582b5fb7c9864455ef6ecf9a6",
      "tree": "80ea9aa6e7261642f184d10f5688f0c06209f329",
      "parents": [
        "472b72f2db7831d7dbe22ffdff4adee3bd49b05d"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Wed Feb 27 13:29:30 2013 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 19:24:20 2013 -0800"
      },
      "message": "target/pscsi: Rename sg_num to nr_vecs in pscsi_get_bio()\n\nIt is actually a vector not a sg, so nr_vecs is better than sg_num.\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "472b72f2db7831d7dbe22ffdff4adee3bd49b05d",
      "tree": "65bdd44ddbfd58cd496b6631a7863c135a86911a",
      "parents": [
        "b07da9fb527e547e2c6198f5594f523bcc11433c"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Wed Feb 27 13:29:29 2013 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 19:20:21 2013 -0800"
      },
      "message": "target/pscsi: Fix page increment\n\nThe page++ is wrong. It makes bio_add_pc_page() pointing to a wrong page\naddress if the \u0027while (len \u003e 0 \u0026\u0026 data_len \u003e 0) { ... }\u0027 loop is\nexecuted more than one once.\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b07da9fb527e547e2c6198f5594f523bcc11433c",
      "tree": "f36b9bfe591092b1601eca8346449f0a7acfa09b",
      "parents": [
        "63b91d5a492ae1cdc1ba0a0a45024718f6d1437f"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Wed Feb 27 13:29:28 2013 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 19:15:58 2013 -0800"
      },
      "message": "target/pscsi: Drop unnecessary NULL assignment to bio-\u003ebi_next\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "63b91d5a492ae1cdc1ba0a0a45024718f6d1437f",
      "tree": "7ed6a3f30c3fdcd8f7e806f59551ad041bd4c248",
      "parents": [
        "fd3a9025c0349bc9b01d627529f54e6e1e389015"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Wed Feb 27 12:50:56 2013 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 19:12:10 2013 -0800"
      },
      "message": "target: Add __exit annotation for module_exit functions\n\nInclues sbp_exit, fileio_module_exit, iblock_module_exit and\npscsi_module_exit.\n\nNote: rd_module_exit() can not be annotated by __exit, becasue it is\ncalled by target_core_init_configfs() which is annotated by __init.\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9365bd028a48017ebc09d7a565d3b6bbc86b3c6",
      "tree": "0a89a54581c3c9b8e16f22772068306fe6881085",
      "parents": [
        "b98c52b5721f5d88cd9b18aaf532049b44f7815a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:18 2013 -0800"
      },
      "message": "target/iscsi: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd3a9025c0349bc9b01d627529f54e6e1e389015",
      "tree": "2b76a08283890e902756307e6e2c004c10a24099",
      "parents": [
        "972b29c8f86093f44e1d781588bd5c5faae3d8e3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 17:53:52 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 27 19:03:22 2013 -0800"
      },
      "message": "iscsi-target: Fix immediate queue starvation regression with DATAIN\n\nThis patch addresses a v3.5+ regression in iscsi-target where TX thread\nprocess context -\u003e handle_response_queue() execution is allowed to run\nunbounded while servicing constant outgoing flow of ISTATE_SEND_DATAIN\nresponse state.\n\nThis ends up preventing memory release of StatSN acknowledged commands\nin a timely manner when under heavy large block streaming DATAIN\nworkloads.\n\nThe regression bug was initially introduced with:\n\ncommit 6f3c0e69a9c20441bdc6d3b2d18b83b244384ec6\nAuthor: Andy Grover \u003cagrover@redhat.com\u003e\nDate:   Tue Apr 3 15:51:09 2012 -0700\n\n    target/iscsi: Refactor target_tx_thread immediate+response queue loops\n\nGo ahead and follow original iscsi_target_tx_thread() logic and check\nto break for immediate queue processing after each DataIN Sequence and/or\nResponse PDU has been sent.\n\nReported-by: Benjamin ESTRABAUD \u003cbe@mpstor.com\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "ecc88efbe7adceb3f4bfdbbb1efb669efcaab124",
      "tree": "d9288ef55a17de21ac41cf84ae696ee83a28e336",
      "parents": [
        "70a3a06d01ed9ca887316a881813cdefb8a20170",
        "972b29c8f86093f44e1d781588bd5c5faae3d8e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 11:42:23 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 11:42:23 2013 -0800"
      },
      "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 \"The highlights in this series include:\n\n   - Improve sg_table lookup scalability in RAMDISK_MCP (martin)\n\n   - Add device attribute to expose config name for INQUIRY model (tregaron)\n\n   - Convert tcm_vhost to use lock-less list for cmd completion (asias)\n\n   - Add tcm_vhost support for multiple target\u0027s per endpoint (asias)\n\n   - Add tcm_vhost support for multiple queues per vhost (asias)\n\n   - Add missing mapped_lun bounds checking during make_mappedlun setup\n     in generic fabric configfs code (jan engelhardt + nab)\n\n   - Enforce individual iscsi-target network portal export once per\n     TargetName endpoint (grover + nab)\n\n   - Add WRITE_SAME w/ UNMAP\u003d0 emulation to FILEIO backend (nab)\n\n  Things have been mostly quiet this round, with majority of the work\n  being done on the iser-target WIP driver + associated iscsi-target\n  refactoring patches currently in flight for v3.10 code.\n\n  At this point there is one patch series left outstanding from Asias to\n  add support for UNMAP + WRITE_SAME w/ UNMAP\u003d1 to FILEIO awaiting\n  feedback from hch \u0026 Co, that will likely be included in a post\n  v3.9-rc1 PULL request if there are no objections.\n\n  Also, there is a regression bug recently reported off-list that seems\n  to be effecting v3.5 and v3.6 kernels with MSFT iSCSI initiators that\n  is still being tracked down.  No word if this effects \u003e\u003d v3.7 just\n  yet, but if so there will likely another PULL request coming your\n  way..\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)\n  target: Rename spc_get_write_same_sectors -\u003e sbc_get_write_same_sectors\n  target/file: Add WRITE_SAME w/ UNMAP\u003d0 emulation support\n  iscsi-target: Enforce individual network portal export once per TargetName\n  iscsi-target: Refactor iscsit_get_np sockaddr matching into iscsit_check_np_match\n  target: Add missing mapped_lun bounds checking during make_mappedlun setup\n  target: Fix lookup of dynamic NodeACLs during cached demo-mode operation\n  target: Fix parameter list length checking in MODE SELECT\n  target: Fix error checking for UNMAP commands\n  target: Fix sense data for out-of-bounds IO operations\n  target_core_rd: break out unterminated loop during copy\n  tcm_vhost: Multi-queue support\n  tcm_vhost: Multi-target support\n  target: Add device attribute to expose config_item_name for INQUIRY model\n  target: don\u0027t truncate the fail intr address\n  target: don\u0027t always say \"ipv6\" as address type\n  target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status\n  iscsi-target: make some temporary buffers larger\n  tcm_vhost: Optimize gup in vhost_scsi_map_to_sgl\n  tcm_vhost: Use iov_num_pages to calculate sgl_count\n  tcm_vhost: Introduce iov_num_pages\n  ...\n"
    },
    {
      "commit": "0e9b10a90f1c30f25dd6f130130240745ab14010",
      "tree": "bd77dadf79f5c4b5e859e42815d33eb284faa086",
      "parents": [
        "7bb307e894d51308aa0582a8c4cc5875bbc645b9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 23 15:22:43 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 26 02:46:11 2013 -0500"
      },
      "message": "target: writev() on single-element vector is pointless\n\n... in other news:\n\tfilp_open() can\u0027t return a struct file with NULL dentry\n\tfilp_open() can\u0027t return a struct file negative dentry\n\tfilp_close() of something that never had been in any descriptor\ntables is pointless - fput() is all you need\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "972b29c8f86093f44e1d781588bd5c5faae3d8e3",
      "tree": "b5da94cd21ebd5486cefbde45cfadb9cfc475442",
      "parents": [
        "7b745c84a9f4ad62db4b67053fbceb5d706451af"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 22 09:52:57 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Feb 23 12:46:14 2013 -0800"
      },
      "message": "target: Rename spc_get_write_same_sectors -\u003e sbc_get_write_same_sectors\n\nTrivial, but WRITE SAME is an SBC command so it seems strange for a\nrelated function (defined in target_core_sbc.c) to be in the spc_\nnamespace.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9afa3195b96da7d2320ec44d19fbfbded7a15571",
      "tree": "15c4222de2a2b2814c9430dcb4e997b18597881c",
      "parents": [
        "7c2db36e730ee4facd341679ecb21ee73ba92831",
        "df63447f1a4402d7d9c6a9cd1c39a6d6766452d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:40:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:40:58 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"Assorted tiny fixes queued in trivial tree\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (22 commits)\n  DocBook: update EXPORT_SYMBOL entry to point at export.h\n  Documentation: update top level 00-INDEX file with new additions\n  ARM: at91/ide: remove unsused at91-ide Kconfig entry\n  percpu_counter.h: comment code for better readability\n  x86, efi: fix comment typo in head_32.S\n  IB: cxgb3: delay freeing mem untill entirely done with it\n  net: mvneta: remove unneeded version.h include\n  time: x86: report_lost_ticks doesn\u0027t exist any more\n  pcmcia: avoid static analysis complaint about use-after-free\n  fs/jfs: Fix typo in comment : \u0027how may\u0027 -\u003e \u0027how many\u0027\n  of: add missing documentation for of_platform_populate()\n  btrfs: remove unnecessary cur_trans set before goto loop in join_transaction\n  sound: soc: Fix typo in sound/codecs\n  treewide: Fix typo in various drivers\n  btrfs: fix comment typos\n  Update ibmvscsi module name in Kconfig.\n  powerpc: fix typo (utilties -\u003e utilities)\n  of: fix spelling mistake in comment\n  h8300: Fix home page URL in h8300/README\n  xtensa: Fix home page URL in Kconfig\n  ...\n"
    },
    {
      "commit": "7b745c84a9f4ad62db4b67053fbceb5d706451af",
      "tree": "2c8886e676130abfa4682531eb5c01d57feb6e47",
      "parents": [
        "6e5459353de4ac80924e94fafa8b3e31a086c5dd"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 19 17:30:34 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 20 12:29:04 2013 -0800"
      },
      "message": "target/file: Add WRITE_SAME w/ UNMAP\u003d0 emulation support\n\nThis patch adds support for emulation of WRITE_SAME w/ UNMAP\u003d0 within\nfd_execute_write_same() backend code.\n\nThe emulation uses vfs_writev() to submit a locally populated buffer\nfrom the received WRITE_SAME scatterlist block for duplication, and by\ndefault enforces a limit of max_write_same_len\u003d0x1000 (8192) sectors up\nto the limit of 1024 iovec entries for the single call to vfs_writev().\n\nIt also sets max_write_same_len to the operational default at setup -\u003e\nfd_configure_device() time.\n\nTested with 512, 1k, 2k, and 4k block_sizes.\n\n(asias: convert to vzalloc)\n\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6e5459353de4ac80924e94fafa8b3e31a086c5dd",
      "tree": "18066f37c9070b23b30754052d113b2f6fb9022c",
      "parents": [
        "05b9689245c1b2f0dea38c1cb4882810ce3adda8"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 21:01:02 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 19 17:58:12 2013 -0800"
      },
      "message": "iscsi-target: Enforce individual network portal export once per TargetName\n\nThis patch enforces individual network portal export on a once per TargetName\nbasis, thus preventing a network portal from being exported multiple times\nacross multiple TargetPortalGroups in a single TargetName instance.\n\nThis is done in iscsit_tpg_check_network_portal() by walking tiqn-\u003etiqn_tpg_list\nand tpg-\u003etpg_gnp_list using iscsit_check_np_match() looking for an existing\nnetwork portal mapping from iscsit_tpg_add_network_portal() context, but only\nwhen no pre-existing tpg_np_parent pointer is present.\n\nReported-by: Andy Grover \u003cagrover@redhat.com\u003e\nTested-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "05b9689245c1b2f0dea38c1cb4882810ce3adda8",
      "tree": "fcf82d7aad2b9772f7c70a0572f83441ddb04f72",
      "parents": [
        "fbbf8555a986ed31e54f006b6cc637ea4ff1425b"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 20:59:27 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Feb 19 17:58:04 2013 -0800"
      },
      "message": "iscsi-target: Refactor iscsit_get_np sockaddr matching into iscsit_check_np_match\n\nThis patch refactors the sockaddr matching logic in iscsit_get_np() into\na seperate iscsit_check_np_match() that can be used by external code.\n\nTested-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "fbbf8555a986ed31e54f006b6cc637ea4ff1425b",
      "tree": "5e95a54ec56f9470b8269dd73b1ccff3d4653ef9",
      "parents": [
        "fcf29481fb8e106daad6688f2e898226ee928992"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:31:37 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:47:28 2013 -0800"
      },
      "message": "target: Add missing mapped_lun bounds checking during make_mappedlun setup\n\nThis patch adds missing bounds checking for the configfs provided\nmapped_lun value during target_fabric_make_mappedlun() setup ahead\nof se_lun_acl initialization.\n\nThis addresses a potential OOPs when using a mapped_lun value that\nexceeds the hardcoded TRANSPORT_MAX_LUNS_PER_TPG-1 value within\nse_node_acl-\u003edevice_list[].\n\nReported-by: Jan Engelhardt \u003cjengelh@inai.de\u003e\nCc: Jan Engelhardt \u003cjengelh@inai.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "fcf29481fb8e106daad6688f2e898226ee928992",
      "tree": "dabde5fb8908c786e8f22019d552c62961f7d007",
      "parents": [
        "71f41fe1fafae2e407ef19d8174207f7ff80b387"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:00:33 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Mon Feb 18 18:47:20 2013 -0800"
      },
      "message": "target: Fix lookup of dynamic NodeACLs during cached demo-mode operation\n\nThis patch fixes a bug in core_tpg_check_initiator_node_acl() -\u003e\ncore_tpg_get_initiator_node_acl() where a dynamically created\nse_node_acl generated during session login would be skipped during\nsubsequent lookup due to the \u0027!acl-\u003edynamic_node_acl\u0027 check, causing\na new se_node_acl to be created with a duplicate -\u003einitiatorname.\n\nThis would occur when a fabric endpoint was configured with\nTFO-\u003etpg_check_demo_mode()\u003d1 + TPF-\u003etpg_check_demo_mode_cache()\u003d1\npreventing the release of an existing se_node_acl during se_session\nshutdown.\n\nAlso, drop the unnecessary usage of core_tpg_get_initiator_node_acl()\nwithin core_dev_init_initiator_node_lun_acl() that originally\nrequired the extra \u0027!acl-\u003edynamic_node_acl\u0027 check, and just pass\nthe configfs provided se_node_acl pointer instead.\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "71f41fe1fafae2e407ef19d8174207f7ff80b387",
      "tree": "e780f1e3fcfec59f5ff3f876d8850843d52b442c",
      "parents": [
        "bb992e72f9b751fceb04afeb7736b6a3e50effcf"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 08 15:18:40 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 12:16:11 2013 -0800"
      },
      "message": "target: Fix parameter list length checking in MODE SELECT\n\nAn empty parameter list (length \u003d\u003d 0) is not an error, so succeed MODE\nSELECT in this case.  If the parameter list length is too small,\nreturn the correct sense code of PARAMETER LIST LENGTH ERROR.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bb992e72f9b751fceb04afeb7736b6a3e50effcf",
      "tree": "432d59d06184a8909b4e43e0ae9fdb0dd4bdf1ed",
      "parents": [
        "33633676df0d16d0685f2fbc571143801bc16e3b"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 08 15:18:39 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 12:16:05 2013 -0800"
      },
      "message": "target: Fix error checking for UNMAP commands\n\nSBC-3 (revision 35) says:\n\n    The PARAMETER LIST LENGTH field specifies the length in bytes of the\n    UNMAP parameter list that is available to be transferred from the\n    Data-Out Buffer. If the parameter list length is greater than zero\n    and less than 0008h (i.e., eight), then the device server shall\n    terminate the command with CHECK CONDITION status with the sense key\n    set to ILLEGAL REQUEST and the additional sense code set to\n    PARAMETER LIST LENGTH ERROR. A PARAMETER LIST LENGTH set to zero\n    specifies that no data shall be sent.\n\nso our sense code for too-short descriptors was wrong, and we were\nincorrectly failing commands that didn\u0027t transfer any descriptors.\n\nWhile we\u0027re at it, also handle the UNMAP check:\n\n    If the ANCHOR bit is set to one, and the ANC_SUP bit in the Logical\n    Block Provisioning VPD page (see 6.6.4) is set to zero, then the\n    device server shall terminate the command with CHECK CONDITION\n    status with the sense key set to ILLEGAL REQUEST and the additional\n    sense code set to INVALID FIELD IN CDB.\n\n(chris boot: Fix wrong cut+paste comment in transport_send_check_condition_and_sense)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "33633676df0d16d0685f2fbc571143801bc16e3b",
      "tree": "a439b1714313e53af48192c83908d203f1a4b337",
      "parents": [
        "bbf344e54ed9a76e344d08feedc70ab2c5a8a64c"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Feb 08 15:18:38 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:54:50 2013 -0800"
      },
      "message": "target: Fix sense data for out-of-bounds IO operations\n\nWe\u0027re supposed to return LOGICAL BLOCK ADDRESS OUT OF RANGE, not\nINVALID FIELD IN CDB.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bbf344e54ed9a76e344d08feedc70ab2c5a8a64c",
      "tree": "e3740b8ca23f80f042b566b97f67bb8f634f0f5e",
      "parents": [
        "1b7f390eb3bfc197c979c5478eadbc2a90f07667"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Feb 06 14:42:28 2013 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:54:29 2013 -0800"
      },
      "message": "target_core_rd: break out unterminated loop during copy\n\nThe loop in rd_execute_rw() will never terminate if the\nsg element has a zero size. Or it\u0027ll spill over into\nouter space if the sg element is larger than the available\nspace.\nSo we need to add some safety catches here.\n\nCc: Nic Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "adfa9570a56c3dbfc2a28baab77ff6f0b8f480d3",
      "tree": "3d0fcb992e2cf56c8a88cac6861c276f4ad7b088",
      "parents": [
        "0e48e7a5a345a727d5fd7a06bd6a9e6a67eae2bd"
      ],
      "author": {
        "name": "Tregaron Bayly",
        "email": "tregaron@baylys.org",
        "time": "Thu Jan 31 15:30:24 2013 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:58 2013 -0800"
      },
      "message": "target: Add device attribute to expose config_item_name for INQUIRY model\n\nThis patch changes LIO to use the configfs backend device name as the\nmodel if you echo \u00271\u0027 to an individual device\u0027s emulate_model_alias attribute.\nThis is a valid operation only on devices with an export count of 0.\n\nSigned-off-by: Tregaron Bayly \u003ctbayly@bluehost.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0e48e7a5a345a727d5fd7a06bd6a9e6a67eae2bd",
      "tree": "db0ef8e0367dbe427dcb6f6f984db9d9d60e1111",
      "parents": [
        "07ea81b6f7d6345e146245c4964640a5a27b5cc5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Jan 31 11:19:09 2013 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:58 2013 -0800"
      },
      "message": "target: don\u0027t truncate the fail intr address\n\nThe temporary buffer was only 32 characters but -\u003elast_intr_fail_ip_addr\nis a 48 character buffer.  We don\u0027t need to use a temporary buffer at\nall, we can just print directly to \"page\".\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "07ea81b6f7d6345e146245c4964640a5a27b5cc5",
      "tree": "ac51b8c8445ace138389659e2994fa154b04e426",
      "parents": [
        "d0c8b259f8970d39354c1966853363345d401330"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Jan 31 11:17:54 2013 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:51 2013 -0800"
      },
      "message": "target: don\u0027t always say \"ipv6\" as address type\n\n\"lstat-\u003elast_intr_fail_ip_addr\" is an array inside the \"lstat\" struct.\nIt\u0027s never NULL so we always print \"ipv6\\n\" here.  The test should be\n\"if (lstat-\u003elast_intr_fail_ip_family \u003d\u003d AF_INET6)\".\n\nWe don\u0027t need the temporary buffer either.  We could print directly into\n\"page\".\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d0c8b259f8970d39354c1966853363345d401330",
      "tree": "e6739094ba5db9ca88038f0e047e83e82bf21088",
      "parents": [
        "1be2956d30b2b6200ebb26ffb758ed3c8071303c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 22:10:06 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:51 2013 -0800"
      },
      "message": "target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status\n\nThis patch allows IBLOCK to check block hints in request_queue-\u003eflush_flags\nwhen reporting current backend device WriteCacheEnabled status to a remote\nSCSI initiator port.\n\nThis is done via a se_subsystem_api-\u003eget_write_cache() call instead of a\nbackend se_device creation time flag, as we expect REQ_FLUSH bits to possibly\nchange from an underlying blk_queue_flush() by the SCSI disk driver, or\ninternal raw struct block_device driver usage.\n\nAlso go ahead and update iblock_execute_rw() bio I/O path code to use\nREQ_FLUSH + REQ_FUA hints when determining WRITE_FUA usage, and make SPC\nemulation code use a spc_check_dev_wce() helper to handle both types of\ncases for virtual backend subsystem drivers.\n\n(asias: Drop unnecessary comparsion operators)\n\nReported-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nCc: majianpeng \u003cmajianpeng@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: James Bottomley \u003cJBottomley@Parallels.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1be2956d30b2b6200ebb26ffb758ed3c8071303c",
      "tree": "b063414656f3a45045be867ee420f36861cb43a9",
      "parents": [
        "1810053e8db3fd65f039229bde9e420278994300"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Jan 24 10:06:37 2013 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:51 2013 -0800"
      },
      "message": "iscsi-target: make some temporary buffers larger\n\nMy static checker complains because we use sprintf() to print some\nunsigned ints into 10 byte buffers.  In theory unsigned ints can take 10\ncharacters and we need another for the terminator.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "703d641d87034629f8b0da94334034ed5d805b36",
      "tree": "6697505c60330ca106b936797b01d1b793163424",
      "parents": [
        "8f67835f1e389978bb0809d5e528961986aa2a69"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Jan 18 16:05:12 2013 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:31 2013 -0800"
      },
      "message": "target: change sprintf to snprintf in transport_dump_vpd_ident\n\n\"buf\" is 128 characters and \"vpd-\u003edevice_identifier\" is 256.  It makes\nthe static checkers complain.\n\nAlso bump VPD_TMP_BUF_SIZE to match INQUIRY_VPD_DEVICE_IDENTIFIER_LEN.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8f67835f1e389978bb0809d5e528961986aa2a69",
      "tree": "4bee48a706dec1da02e927309b6851f57730337c",
      "parents": [
        "d09816ae8fc05322b4e37a589537b4ecdca28a0d"
      ],
      "author": {
        "name": "Martin Svec",
        "email": "martin.svec@zoner.cz",
        "time": "Tue Jan 15 12:43:35 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:31 2013 -0800"
      },
      "message": "target/rd: improve sg_table lookup scalability\n\nSequential scan of rd_dev-\u003esg_table_array in rd_get_sg_table is\na serious I/O performance bottleneck for large rd LUNs. Fix this\nby computing the sg_table index directly from page offset because\nall sg_tables (except the last one) have the same number of pages.\n\nTested with 90 GiB rd_mcp LUN, where the patch improved maximal\nrandom R/W IOPS by more than 100-150%, depending on actual\nhardware and SAN setup.\n\nSigned-off-by: Martin Svec\u003cmartin.svec@zoner.cz\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6f15667e21e40ef14005699610723a13cfb26155",
      "tree": "c7a488bc414b2881c04c1a2df3dff1ba9eba9059",
      "parents": [
        "0dfa1c5da3e4b6849d40f4c3fc43212b6359a09d"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:48:00 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:22 2013 -0800"
      },
      "message": "target: Remove useless if statement\n\nWe do the same thing no matter which way the test goes, so just remove\nthe test and do what we\u0027re going to do.\n\nThe debug messages printed the wrong value of CMD_T_ACTIVE and don\u0027t\nseem particularly useful, remove them too.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0dfa1c5da3e4b6849d40f4c3fc43212b6359a09d",
      "tree": "a3417bdc2868a2c8bfa3f8670949038e8cebd512",
      "parents": [
        "836dc9e3fbbab0c30aa6e664417225f5c1fb1c39"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:35 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Feb 13 11:27:22 2013 -0800"
      },
      "message": "target: Export SPC inquiry emulation\n\nSome target drivers might need to access the inquiry data\ndirectly, without sending out the actual command.\nSo export these functions.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "7a3cf6ca1ab2a2f7161c6dec5a787fc7a5de864e",
      "tree": "3d902302f0b9f4b9e76bd8230f88bcd9d8eea686",
      "parents": [
        "faa06ab9aed22f0ad0e15bbf3f80463b5dd7cbe0"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 31 15:05:48 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 31 15:22:53 2013 -0800"
      },
      "message": "target: Fix divide by zero bug in fabric_max_sectors for unconfigured devices\n\nThis patch fixes a possible divide by zero bug when the fabric_max_sectors\ndevice attribute is written and backend se_device failed to be successfully\nconfigured -\u003e enabled.\n\nGo ahead and use block_size\u003d512 within se_dev_set_fabric_max_sectors()\nin the event of a target_configure_device() failure case, as no valid\ndev-\u003edev_attrib.block_size value will have been setup yet.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "faa06ab9aed22f0ad0e15bbf3f80463b5dd7cbe0",
      "tree": "bb1f916cedbe04fff6cfb2b656fb4cbe6f50ea65",
      "parents": [
        "71f1e45aa9974926c3eb511ac488119ed59d7a82"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 31 14:56:12 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 31 15:13:23 2013 -0800"
      },
      "message": "target: Fix regression allowing unconfigured devices to fabric port link\n\nThis patch fixes a v3.8-rc1 regression bug where an unconfigured se_device\nwas incorrectly allowed to perform a fabric port-link.  This bug was\nintroduced in commit:\n\n  commit 0fd97ccf45be26fb01b3a412f1f6c6b5044b2f16\n  Author: Christoph Hellwig \u003chch@infradead.org\u003e\n  Date:   Mon Oct 8 00:03:19 2012 -0400\n\n      target: kill struct se_subsystem_dev\n\nwhich ended up dropping the original se_subsystem_dev-\u003ese_dev_ptr check\npreventing this from happening with pre commit 0fd97ccf code.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8b4b0dcbf70d10f3acd6a88fca0679ca711066e0",
      "tree": "d855daea82993811014a7668622a0b7ad6cdb3fa",
      "parents": [
        "cab9609b449ae5a6875d7d4cef32a814527a3baa"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 14:18:00 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 14:24:26 2013 -0800"
      },
      "message": "target: Fix zero-length READ_CAPACITY_16 regression\n\nThis patch fixes a regression introduced in v3.8-rc1 code where a\nzero-length READ_CAPACITY_16 was no longer returning GOOD status, but\ninstead returning TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE to generate\na CHECK_CONDITION status.\n\nThis regression was introduced with the following commit:\n\n  commit de103c93aff0bed0ae984274e5dc8b95899badab\n  Author: Christoph Hellwig \u003chch@lst.de\u003e\n  Date:   Tue Nov 6 12:24:09 2012 -0800\n\n      target: pass sense_reason as a return value\n\nand this patch has been tested with the following zero-length CDB:\n\n  sg_raw /dev/sdd 9e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  SCSI Status: Good\n\n  Sense Information:\n  sense buffer empty\n\nAlso, convert sbc_emulate_readcapacity() to follow the same method\nof handling transport_kmap_data_sg() return values, but we never\nexpect a zero-length request here.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cab9609b449ae5a6875d7d4cef32a814527a3baa",
      "tree": "c07eb1b9d9b5758e300177de0faae75dff7e5304",
      "parents": [
        "49df9fc9b9fd41e5749c5a9be2d2076328f75fc7"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 14:10:01 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 14:24:20 2013 -0800"
      },
      "message": "target: Fix zero-length MODE_SENSE regression\n\nThis patch fixes a regression introduced in v3.8-rc1 code where\na zero-length MODE_SENSE was no longer returning GOOD status, but\ninstead returning TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE to generate\na CHECK_CONDITION status.\n\nThis regression was introduced with the following commit:\n\n  commit de103c93aff0bed0ae984274e5dc8b95899badab\n  Author: Christoph Hellwig \u003chch@lst.de\u003e\n  Date:   Tue Nov 6 12:24:09 2012 -0800\n\n      target: pass sense_reason as a return value\n\nand this patch has been tested with the following zero-length CDB:\n\n  sg_raw /dev/sdd 5a 00 0a 00 00 00 00 00 00 00\n  SCSI Status: Good\n\n  Sense Information:\n  sense buffer empty\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "49df9fc9b9fd41e5749c5a9be2d2076328f75fc7",
      "tree": "e10c0fed21b6d37e6fbe536684f2af36ebec72fa",
      "parents": [
        "64fe4f4f181cc2fe97d4176bf6ee6e3725ae33ec"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 13:33:05 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 29 14:22:01 2013 -0800"
      },
      "message": "target: Fix zero-length INQUIRY additional sense code regression\n\nThis patch fixes a minor regression introduced in v3.8-rc1 code\nwhere a zero-length INQUIRY was no longer returning the correct\nINVALID FIELD IN CDB additional sense code.\n\nThis regression was introduced with the following commit:\n\n  commit de103c93aff0bed0ae984274e5dc8b95899badab\n  Author: Christoph Hellwig \u003chch@lst.de\u003e\n  Date:   Tue Nov 6 12:24:09 2012 -0800\n\n      target: pass sense_reason as a return value\n\nand this patch has been tested with the following zero-length CDB:\n\n  sg_raw /dev/sdd 12 00 83 00 00 00\n  SCSI Status: Check Condition\n\n  Sense Information:\n   Fixed format, current;  Sense key: Illegal Request\n   Additional sense: Invalid field in cdb\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "617677295b53a40d0e54aac4cbbc216ffbc755dd",
      "tree": "51b9e87213243ed5efff252c8e8d8fec4eebc588",
      "parents": [
        "5c8d1b68e01a144813e38795fe6dbe7ebb506131",
        "6abb7c25775b7fb2225ad0508236d63ca710e65f"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 29 10:48:30 2013 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 29 10:48:30 2013 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tdrivers/devfreq/exynos4_bus.c\n\nSync with Linus\u0027 tree to be able to apply patches that are\nagainst newer code (mvneta).\n"
    },
    {
      "commit": "64fe4f4f181cc2fe97d4176bf6ee6e3725ae33ec",
      "tree": "5bb4a5735dcc3e253f4cd047be4347b74a387422",
      "parents": [
        "5a3b6fc0092c5f8dee7820064ee54d2631d48573"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Jan 07 11:45:16 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 21:00:37 2013 -0800"
      },
      "message": "iscsi-target: Fix CmdSN comparison (use cmd-\u003ecmd_sn instead of cmd-\u003estat_sn)\n\nCommit 64c13330a389 (\"iscsi-target: Fix bug in handling of ExpStatSN\nACK during u32 wrap-around\") introduced a bug where we compare the\nwrong SN against our ExpCmdSN.\n\nReported-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\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": "5a3b6fc0092c5f8dee7820064ee54d2631d48573",
      "tree": "acd4e983a76dbcd000a58e239d61ad50ddf90cd7",
      "parents": [
        "72b59d6ee8adaa51f70377db0a1917ed489bead8"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:47:59 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 21:00:36 2013 -0800"
      },
      "message": "target: Release se_cmd when LUN lookup fails for TMR\n\nWhen transport_lookup_tmr_lun() fails and we return a task management\nresponse from target_complete_tmr_failure(), we need to call\ntransport_cmd_check_stop_to_fabric() to release the last ref to the\ncmd after calling se_tfo-\u003equeue_tm_rsp(), or else we will never remove\nthe failed TMR from the session command list (and we\u0027ll end up waiting\nforever when trying to tear down the session).\n\n(nab: Fix minor compile breakage)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "72b59d6ee8adaa51f70377db0a1917ed489bead8",
      "tree": "fcfc00e42478a608a24ae4df9795568abc808f4c",
      "parents": [
        "e627c615553a356f6f70215ebb3933c6e057553e"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:47:58 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 21:00:35 2013 -0800"
      },
      "message": "target: Fix use-after-free in LUN RESET handling\n\nIf a backend IO takes a really long then an initiator might abort a\ncommand, and then when it gives up on the abort, send a LUN reset too,\nall before we process any of the original command or the abort.  (The\nabort will wait for the backend IO to complete too)\n\nWhen the backend IO final completes (or fails), the abort handling\nwill proceed and queue up a \"return aborted status\" operation.  Then,\nwhile that\u0027s still pending, the LUN reset might find the original\ncommand still on the LUN\u0027s list of commands and try to return aborted\nstatus again, which leads to a use-after free when the first\nse_tfo-\u003equeue_status call frees the command and then the second\nse_tfo-\u003equeue_status call runs.\n\nFix this by removing a command from the LUN state_list when we first\nare about to queue aborted status; we shouldn\u0027t do anything\nLUN-related after we\u0027ve started returning status, so this seems like\nthe correct thing to do.\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": "e627c615553a356f6f70215ebb3933c6e057553e",
      "tree": "34f476cfe326bdf5f2b3027e7c09035c2ba2bc21",
      "parents": [
        "edec8dfefa1f372b2dd8197da555352e76a10c03"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Jan 02 12:47:57 2013 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 21:00:07 2013 -0800"
      },
      "message": "target: Fix missing CMD_T_ACTIVE bit regression for pending WRITEs\n\nThis patch fixes a regression bug introduced during v3.6.x code with\nthe following commit to drop transport_add_cmd_to_queue(), which\noriginally re-set CMD_T_ACTIVE during pending WRITE I/O submission:\n\ncommit af8772926f019b7bddd7477b8de5f3b0f12bad21\nAuthor: Christoph Hellwig \u003chch@infradead.org\u003e\nDate:   Sun Jul 8 15:58:49 2012 -0400\n\n    target: replace the processing thread with a TMR work queue\n\nThe following sequence happens for write commands (or any other\ncommands with a data out phase):\n\n - The transport calls target_submit_cmd(), which sets CMD_T_ACTIVE in\n   cmd-\u003etransport_state and sets cmd-\u003et_state to TRANSPORT_NEW_CMD.\n - Things go on transport_generic_new_cmd(), which notices that the\n   command needs to transfer data, so it sets cmd-\u003et_state to\n   TRANSPORT_WRITE_PENDING and calls transport_cmd_check_stop().\n - transport_cmd_check_stop() clears CMD_T_ACTIVE in cmd-\u003etransport_state\n   and returns in the normal case.\n - Then we continue on to call -\u003ese_tfo-\u003ewrite_pending().\n - The data comes back from the initiator, and the transport calls\n   target_execute_cmd(), which sets cmd-\u003et_state to TRANSPORT_PROCESSING\n   and calls into the backend to actually write the data.\n\nAt this point, the backend might take a long time to complete the\ncommand, since it has to do real IO.  If an abort request comes in for\nthis command at this point, it will not wait for the command to finish\nsince CMD_T_ACTIVE is not set.  Then when the command does finally\nfinish, we blow up with use-after-free.\n\nAvoid this by setting CMD_T_ACTIVE in target_execute_cmd() so that\ntransport_wait_for_tasks() waits for the command to finish executing.\nThis matches the behavior from before commit 1389533ef944 (\"target:\nremove transport_generic_handle_data\"), when data was signaled via\ntransport_generic_handle_data(), which set CMD_T_ACTIVE because it\ncalled transport_add_cmd_to_queue().\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nReported-by: 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": "edec8dfefa1f372b2dd8197da555352e76a10c03",
      "tree": "dc14408bf9e8eb77c2f89a301f30fd319051c4a5",
      "parents": [
        "f2eeba214bcd0215b7f558cab6420e5fd153042b"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Fri Dec 21 10:58:19 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 20:08:58 2013 -0800"
      },
      "message": "tcm_fc: Do not report target role when target is not defined\n\nClear the target role when no target is provided for\nthe node performing a PRLI.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nReviewed-by: Bhanu Prakash Gollapudi \u003cbprakash@broadcom.com\u003e\nAcked by Robert Love \u003crobert.w.love@intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "f2eeba214bcd0215b7f558cab6420e5fd153042b",
      "tree": "a91403d50012e99a8e8972b9bd28d506e0b39253",
      "parents": [
        "a0d50f62c8b7e461f9d53124576d59bc582f3eb3"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Fri Dec 21 10:58:14 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 20:07:47 2013 -0800"
      },
      "message": "tcm_fc: Do not indicate retry capability to initiators\n\nWhen generating a PRLI response to an initiator, clear the\nFCP_SPPF_RETRY bit in the response.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nReviewed-by: Bhanu Prakash Gollapudi \u003cbprakash@broadcom.com\u003e\nAcked by Robert Love \u003crobert.w.love@intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a0d50f62c8b7e461f9d53124576d59bc582f3eb3",
      "tree": "27b1880e3fde45c905028f85a67c1d729b4cea22",
      "parents": [
        "ba829137bfd167623363548aa385be769c6b2664"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:34 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 20:07:10 2013 -0800"
      },
      "message": "target: Use TCM_NO_SENSE for initialisation\n\nThe compiler complained about uninitialized variables, so\nuse TCM_NO_SENSE here.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ba829137bfd167623363548aa385be769c6b2664",
      "tree": "27d8f1896ec608476bd7b94edfdcd5d82a72e46e",
      "parents": [
        "18a9df42d53fabfa43b78be1104838cc8b9762e1"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:33 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Jan 10 20:06:08 2013 -0800"
      },
      "message": "target: Introduce TCM_NO_SENSE\n\nIntroduce TCM_NO_SENSE, mapping to sense code\n\u0027Not ready, no additional sense information\u0027.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8a168ca7074b463d0e19a9e9c15946db1afbddc4",
      "tree": "3b3276410acd699b396cd7a8907f217bcc68efff",
      "parents": [
        "2c016dc2cbd160acf099bee8e4d5c056a8b691b1"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Sat Dec 29 02:00:09 2012 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 09 11:43:32 2013 +0100"
      },
      "message": "treewide: Fix typo in various drivers\n\nCorrect spelling typo in printk within various drivers.\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "18a9df42d53fabfa43b78be1104838cc8b9762e1",
      "tree": "f4da489740a6db3e31423b24145934b5957936cd",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Mon Dec 17 09:53:32 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Jan 08 15:49:30 2013 -0800"
      },
      "message": "target: use correct sense code for LUN communication failure\n\nThe ASC/ASCQ code for \u0027Logical Unit Communication failure\u0027 is\n0x08/0x00; 0x80/0x00 is vendor specific.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nCc: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "5bd665f28db2b04a8d6fe277342479906fc60b62",
      "tree": "4f9f63120fed3a61b44bbb7ec4ebaaa4dc4fc571",
      "parents": [
        "115b1cc2ef0f43ecb42bdbf55f06e9d2231d5a7e",
        "79e62fc3827bd437c304c1810f36896fc1e717b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 15 14:25:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 15 14:25:10 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull target updates from Nicholas Bellinger:\n \"It has been a very busy development cycle this time around in target\n  land, with the highlights including:\n\n   - Kill struct se_subsystem_dev, in favor of direct se_device usage\n     (hch)\n   - Simplify reservations code by combining SPC-3 + SCSI-2 support for\n     virtual backends only (hch)\n   - Simplify ALUA code for virtual only backends, and remove left over\n     abstractions (hch)\n   - Pass sense_reason_t as return value for I/O submission path (hch)\n   - Refactor MODE_SENSE emulation to allow for easier addition of new\n     mode pages.  (roland)\n   - Add emulation of MODE_SELECT (roland)\n   - Fix bug in handling of ExpStatSN wrap-around (steve)\n   - Fix bug in TMR ABORT_TASK lookup in qla2xxx target (steve)\n   - Add WRITE_SAME w/ UNMAP\u003d0 support for IBLOCK backends (nab)\n   - Convert ib_srpt to use modern target_submit_cmd caller + drop\n     legacy ioctx-\u003ekref usage (nab)\n   - Convert ib_srpt to use modern target_submit_tmr caller (nab)\n   - Add link_magic for fabric allow_link destination target_items for\n     symlinks within target_core_fabric_configfs.c code (nab)\n   - Allocate pointers in instead of full structs for\n     config_group-\u003edefault_groups (sebastian)\n   - Fix 32-bit highmem breakage for FILEIO (sebastian)\n\n  All told, hch was able to shave off another ~1K LOC by killing the\n  se_subsystem_dev abstraction, along with a number of PR + ALUA\n  simplifications.  Also, a nice patch by Roland is the refactoring of\n  MODE_SENSE handling, along with the addition of initial MODE_SELECT\n  emulation support for virtual backends.\n\n  Sebastian found a long-standing issue wrt to allocation of full\n  config_group instead of pointers for config_group-\u003edefault_group[]\n  setup in a number of areas, which ends up saving memory with big\n  configurations.  He also managed to fix another long-standing BUG wrt\n  to broken 32-bit highmem support within the FILEIO backend driver.\n\n  Thank you again to everyone who contributed this round!\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)\n  target/iscsi_target: Add NodeACL tags for initiator group support\n  target/tcm_fc: fix the lockdep warning due to inconsistent lock state\n  sbp-target: fix error path in sbp_make_tpg()\n  sbp-target: use simple assignment in tgt_agent_rw_agent_state()\n  iscsi-target: use kstrdup() for iscsi_param\n  target/file: merge fd_do_readv() and fd_do_writev()\n  target/file: Fix 32-bit highmem breakage for SGL -\u003e iovec mapping\n  target: Add link_magic for fabric allow_link destination target_items\n  ib_srpt: Convert TMR path to target_submit_tmr\n  ib_srpt: Convert I/O path to target_submit_cmd + drop legacy ioctx-\u003ekref\n  target: Make spc_get_write_same_sectors return sector_t\n  target/configfs: use kmalloc() instead of kzalloc() for default groups\n  target/configfs: allocate only 6 slots for dev_cg-\u003edefault_groups\n  target/configfs: allocate pointers instead of full struct for default_groups\n  target: update error handling for sbc_setup_write_same()\n  iscsit: use GFP_ATOMIC under spin lock\n  iscsi_target: Remove redundant null check before kfree\n  target/iblock: Forward declare bio helpers\n  target: Clean up flow in transport_check_aborted_status()\n  target: Clean up logic in transport_put_cmd()\n  ...\n"
    },
    {
      "commit": "79e62fc3827bd437c304c1810f36896fc1e717b1",
      "tree": "fe58b9e0bb253699f22b32412f1e0d4a42865206",
      "parents": [
        "9f4ad44b264f8bb61ffdd607148215566568430d"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "agrover@redhat.com",
        "time": "Tue Dec 11 16:30:53 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Dec 13 14:18:09 2012 -0800"
      },
      "message": "target/iscsi_target: Add NodeACL tags for initiator group support\n\nThanks for reviews, looking a lot better.\n\n---- 8\u003c ----\n\nInitiator access config could be easier. The way other storage vendors\nhave addressed this is to support initiator groups: the admin adds\ninitiator WWNs to the group, and then LUN permissions can be granted for\nthe entire group at once.\n\nInstead of changing ktarget\u0027s configfs interface, this patch keeps\nthe configfs interface per-initiator-wwn and just adds a \u0027tag\u0027 field\nfor each. This should be enough for user tools like targetcli to group\ninitiator ACLs and sync their configurations.\n\nacl_tag is not used internally, but needs to be kept in configfs so that\nall user tools can avoid dependencies on each other.\n\nCode tested to work, although userspace pieces still to be implemented.\n\nSigned-off-by: Andy Grover \u003cagrover@redhat.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a2013a13e68354e0c8f3696b69701803e13fb737",
      "tree": "a7e1da6bfad1aa2afd83f401874d606269ce90b4",
      "parents": [
        "dadfab4873256d2145640c0ce468fcbfb48977fe",
        "106f9d9337f65bd428c0c79f650e3489e458d771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial branch from Jiri Kosina:\n \"Usual stuff -- comment/printk typo fixes, documentation updates, dead\n  code elimination.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  HOWTO: fix double words typo\n  x86 mtrr: fix comment typo in mtrr_bp_init\n  propagate name change to comments in kernel source\n  doc: Update the name of profiling based on sysfs\n  treewide: Fix typos in various drivers\n  treewide: Fix typos in various Kconfig\n  wireless: mwifiex: Fix typo in wireless/mwifiex driver\n  messages: i2o: Fix typo in messages/i2o\n  scripts/kernel-doc: check that non-void fcts describe their return value\n  Kernel-doc: Convention: Use a \"Return\" section to describe return values\n  radeon: Fix typo and copy/paste error in comments\n  doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c\n  various: Fix spelling of \"asynchronous\" in comments.\n  Fix misspellings of \"whether\" in comments.\n  eisa: Fix spelling of \"asynchronous\".\n  various: Fix spelling of \"registered\" in comments.\n  doc: fix quite a few typos within Documentation\n  target: iscsi: fix comment typos in target/iscsi drivers\n  treewide: fix typo of \"suport\" in various comments and Kconfig\n  treewide: fix typo of \"suppport\" in various comments\n  ...\n"
    },
    {
      "commit": "9f4ad44b264f8bb61ffdd607148215566568430d",
      "tree": "e03e33d31558bf757b61fbfdf04fe7b54e14e307",
      "parents": [
        "e1fe2060d7e8f58a69374135e32e90f0bb79a7fd"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Mon Dec 10 17:04:00 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 12 21:18:01 2012 -0800"
      },
      "message": "target/tcm_fc: fix the lockdep warning due to inconsistent lock state\n\nThe lockdep warning below is in theory correct but it will be in really weird\nrare situation that ends up that deadlock since the tcm fc session is hashed\nbased the rport id. Nonetheless, the complaining below is about rcu callback\nthat does the transport_deregister_session() is happening in softirq, where\ntransport_register_session() that happens earlier is not. This triggers the\nlockdep warning below. So, just fix this to make lockdep happy by disabling\nthe soft irq before calling transport_register_session() in ft_prli.\n\nBTW, this was found in FCoE VN2VN over two VMs, couple of create and destroy\nwould get this triggered.\n\nv1: was enforcing register to be in softirq context which was not righ. See,\nhttp://www.spinics.net/lists/target-devel/msg03614.html\n\nv2: following comments from Roland\u0026Nick (thanks), it seems we don\u0027t have to\ndo transport_deregister_session() in rcu callback, so move it into ft_sess_free()\nbut still do kfree() of the corresponding ft_sess struct in rcu callback to\nmake sure the ft_sess is not freed till the rcu callback.\n\n...\n[ 1328.370592] scsi2 : FCoE Driver\n[ 1328.383429] fcoe: No FDMI support.\n[ 1328.384509] host2: libfc: Link up on port (000000)\n[ 1328.934229] host2: Assigned Port ID 00a292\n[ 1357.232132] host2: rport 00a393: Remove port\n[ 1357.232568] host2: rport 00a393: Port sending LOGO from Ready state\n[ 1357.233692] host2: rport 00a393: Delete port\n[ 1357.234472] host2: rport 00a393: work event 3\n[ 1357.234969] host2: rport 00a393: callback ev 3\n[ 1357.235979] host2: rport 00a393: Received a LOGO response closed\n[ 1357.236706] host2: rport 00a393: work delete\n[ 1357.237481]\n[ 1357.237631] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ 1357.238064] [ INFO: inconsistent lock state ]\n[ 1357.238450] 3.7.0-rc7-yikvm+ #3 Tainted: G           O\n[ 1357.238450] ---------------------------------\n[ 1357.238450] inconsistent {SOFTIRQ-ON-W} -\u003e {IN-SOFTIRQ-W} usage.\n[ 1357.238450] ksoftirqd/0/3 [HC0[0]:SC1[1]:HE0:SE0] takes:\n[ 1357.238450]  (\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock){+.?...}, at: [\u003cffffffffa01eacd4\u003e] transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450] {SOFTIRQ-ON-W} state was registered at:\n[ 1357.238450]   [\u003cffffffff810834f5\u003e] mark_held_locks+0x6d/0x95\n[ 1357.238450]   [\u003cffffffff8108364a\u003e] trace_hardirqs_on_caller+0x12d/0x197\n[ 1357.238450]   [\u003cffffffff810836c1\u003e] trace_hardirqs_on+0xd/0xf\n[ 1357.238450]   [\u003cffffffff8149caba\u003e] _raw_spin_unlock_irq+0x2d/0x45\n[ 1357.238450]   [\u003cffffffffa01e8d10\u003e] __transport_register_session+0xb8/0x122 [target_core_mod]\n[ 1357.238450]   [\u003cffffffffa01e8dbe\u003e] transport_register_session+0x44/0x5a [target_core_mod]\n[ 1357.238450]   [\u003cffffffffa018e32c\u003e] ft_prli+0x1e3/0x275 [tcm_fc]\n[ 1357.238450]   [\u003cffffffffa0160e8d\u003e] fc_rport_recv_req+0x95e/0xdc5 [libfc]\n[ 1357.238450]   [\u003cffffffffa015be88\u003e] fc_lport_recv_els_req+0xc4/0xd5 [libfc]\n[ 1357.238450]   [\u003cffffffffa015c778\u003e] fc_lport_recv_req+0x12f/0x18f [libfc]\n[ 1357.238450]   [\u003cffffffffa015a6d7\u003e] fc_exch_recv+0x8ba/0x981 [libfc]\n[ 1357.238450]   [\u003cffffffffa0176d7a\u003e] fcoe_percpu_receive_thread+0x47a/0x4e2 [fcoe]\n[ 1357.238450]   [\u003cffffffff810549f1\u003e] kthread+0xb1/0xb9\n[ 1357.238450]   [\u003cffffffff814a40ec\u003e] ret_from_fork+0x7c/0xb0\n[ 1357.238450] irq event stamp: 275411\n[ 1357.238450] hardirqs last  enabled at (275410): [\u003cffffffff810bb6a0\u003e] rcu_process_callbacks+0x229/0x42a\n[ 1357.238450] hardirqs last disabled at (275411): [\u003cffffffff8149c2f7\u003e] _raw_spin_lock_irqsave+0x22/0x8e\n[ 1357.238450] softirqs last  enabled at (275394): [\u003cffffffff8103d669\u003e] __do_softirq+0x246/0x26f\n[ 1357.238450] softirqs last disabled at (275399): [\u003cffffffff8103d6bb\u003e] run_ksoftirqd+0x29/0x62\n[ 1357.238450]\n[ 1357.238450] other info that might help us debug this:\n[ 1357.238450]  Possible unsafe locking scenario:\n[ 1357.238450]\n[ 1357.238450]        CPU0\n[ 1357.238450]        ----\n[ 1357.238450]   lock(\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock);\n[ 1357.238450]   \u003cInterrupt\u003e\n[ 1357.238450]     lock(\u0026(\u0026se_tpg-\u003esession_lock)-\u003erlock);\n[ 1357.238450]\n[ 1357.238450]  *** DEADLOCK ***\n[ 1357.238450]\n[ 1357.238450] no locks held by ksoftirqd/0/3.\n[ 1357.238450]\n[ 1357.238450] stack backtrace:\n[ 1357.238450] Pid: 3, comm: ksoftirqd/0 Tainted: G           O 3.7.0-rc7-yikvm+ #3\n[ 1357.238450] Call Trace:\n[ 1357.238450]  [\u003cffffffff8149399a\u003e] print_usage_bug+0x1f5/0x206\n[ 1357.238450]  [\u003cffffffff8100da59\u003e] ? save_stack_trace+0x2c/0x49\n[ 1357.238450]  [\u003cffffffff81082aae\u003e] ? print_irq_inversion_bug.part.14+0x1ae/0x1ae\n[ 1357.238450]  [\u003cffffffff81083336\u003e] mark_lock+0x106/0x258\n[ 1357.238450]  [\u003cffffffff81084e34\u003e] __lock_acquire+0x2e7/0xe53\n[ 1357.238450]  [\u003cffffffff8102903d\u003e] ? pvclock_clocksource_read+0x48/0xb4\n[ 1357.238450]  [\u003cffffffff810ba6a3\u003e] ? rcu_process_gp_end+0xc0/0xc9\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff81085ef1\u003e] lock_acquire+0x119/0x143\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff8149c329\u003e] _raw_spin_lock_irqsave+0x54/0x8e\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] ? transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffffa01eacd4\u003e] transport_deregister_session+0x41/0x148 [target_core_mod]\n[ 1357.238450]  [\u003cffffffff810bb6a0\u003e] ? rcu_process_callbacks+0x229/0x42a\n[ 1357.238450]  [\u003cffffffffa018ddc5\u003e] ft_sess_rcu_free+0x17/0x24 [tcm_fc]\n[ 1357.238450]  [\u003cffffffffa018ddae\u003e] ? ft_sess_free+0x1b/0x1b [tcm_fc]\n[ 1357.238450]  [\u003cffffffff810bb6d7\u003e] rcu_process_callbacks+0x260/0x42a\n[ 1357.238450]  [\u003cffffffff8103d55d\u003e] __do_softirq+0x13a/0x26f\n[ 1357.238450]  [\u003cffffffff8149b34e\u003e] ? __schedule+0x65f/0x68e\n[ 1357.238450]  [\u003cffffffff8103d6bb\u003e] run_ksoftirqd+0x29/0x62\n[ 1357.238450]  [\u003cffffffff8105c83c\u003e] smpboot_thread_fn+0x1a5/0x1aa\n[ 1357.238450]  [\u003cffffffff8105c697\u003e] ? smpboot_unregister_percpu_thread+0x47/0x47\n[ 1357.238450]  [\u003cffffffff810549f1\u003e] kthread+0xb1/0xb9\n[ 1357.238450]  [\u003cffffffff8149b49d\u003e] ? wait_for_common+0xbb/0x10a\n[ 1357.238450]  [\u003cffffffff81054940\u003e] ? __init_kthread_worker+0x59/0x59\n[ 1357.238450]  [\u003cffffffff814a40ec\u003e] ret_from_fork+0x7c/0xb0\n[ 1357.238450]  [\u003cffffffff81054940\u003e] ? __init_kthread_worker+0x59/0x59\n[ 1417.440099]  rport-2:0-0: blocked FC remote port time out: removing rport\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nCc: Open-FCoE \u003cdevel@open-fcoe.org\u003e\nCc: Nicholas A. Bellinger \u003cnab@risingtidesystems.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e1fe2060d7e8f58a69374135e32e90f0bb79a7fd",
      "tree": "496e995322db60717dbf31ca84f9d8753f125479",
      "parents": [
        "37419d674ca99739dbee5ada28b50aacc29c94e1"
      ],
      "author": {
        "name": "Chris Boot",
        "email": "bootc@bootc.net",
        "time": "Tue Dec 11 21:58:48 2012 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 12 21:17:25 2012 -0800"
      },
      "message": "sbp-target: fix error path in sbp_make_tpg()\n\nIf the TPG memory is allocated successfully, but we fail further along\nin the function, a dangling pointer to freed memory is left in the TPort\nstructure. This is mostly harmless, but does prevent re-trying the\noperation without first removing the TPort altogether.\n\nReported-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nSigned-off-by: Chris Boot \u003cbootc@bootc.net\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "37419d674ca99739dbee5ada28b50aacc29c94e1",
      "tree": "727a2b2faf812f9d8d3c36398a88f213f3248ed4",
      "parents": [
        "ed72a4d52add345595f09b360d6ac5f20428d361"
      ],
      "author": {
        "name": "Chris Boot",
        "email": "bootc@bootc.net",
        "time": "Tue Dec 11 21:58:47 2012 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 12 21:16:47 2012 -0800"
      },
      "message": "sbp-target: use simple assignment in tgt_agent_rw_agent_state()\n\nThere is no need to memcpy() a 32-bit integer. The data pointer is\nguaranteed to be quadlet aligned by the FireWire stack so we can replace\nthe memcpy() with an assignment.\n\nThanks to Stefan Richter.\n\nSigned-off-by: Chris Boot \u003cbootc@bootc.net\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Andy Grover \u003cagrover@redhat.com\u003e\nCc: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ed72a4d52add345595f09b360d6ac5f20428d361",
      "tree": "6ad4f0a9313fc390b7ec6799560b2a0d10207e1a",
      "parents": [
        "778229af95977a4aca8656143d457401c2bb8f96"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Nov 29 20:29:01 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Dec 07 17:55:44 2012 -0800"
      },
      "message": "iscsi-target: use kstrdup() for iscsi_param\n\nThe kmalloc() + strlen() + memcpy() block is what kstrdup() does as\nwell.  While here I also removed the \"to NULL assignment\" of pointers\nwhich are fed to kfree or thrown away anyway.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "778229af95977a4aca8656143d457401c2bb8f96",
      "tree": "7b739fabd330d5ac59150d43325a9b719d5630ec",
      "parents": [
        "40ff2c3b3da35dd3a00ac6722056a59b4b3f2caf"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Dec 05 13:09:45 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 05 13:09:45 2012 -0800"
      },
      "message": "target/file: merge fd_do_readv() and fd_do_writev()\n\nThose two functions are almost identical so merge them. Noticed this\nwhile fixing the highmem in both cases.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "40ff2c3b3da35dd3a00ac6722056a59b4b3f2caf",
      "tree": "ba5cb75ed6c6dd01b2191b35c470691e5347d35d",
      "parents": [
        "0ff8754981261a80f4b77db2536dfea92c2d4539"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Dec 05 12:08:29 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 05 13:01:44 2012 -0800"
      },
      "message": "target/file: Fix 32-bit highmem breakage for SGL -\u003e iovec mapping\n\nThis patch changes vectored file I/O to use kmap + kunmap when mapping\nincoming SGL memory -\u003e struct iovec in order to properly support 32-bit\nhighmem configurations.  This is because an extra bounce buffer may be\nrequired when processing scatterlist pages allocated with GFP_KERNEL.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0ff8754981261a80f4b77db2536dfea92c2d4539",
      "tree": "47f1e6c46a77542fabc39ec3003183a5847045cf",
      "parents": [
        "3e4f574857eebce60bb56d7524f3f9eaa2a126d0"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Dec 04 23:43:57 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Dec 05 00:11:36 2012 -0800"
      },
      "message": "target: Add link_magic for fabric allow_link destination target_items\n\nThis patch adds [dev,lun]_link_magic value assignment + checks within generic\ntarget_fabric_port_link() and target_fabric_mappedlun_link() code to ensure\ndestination config_item *target_item sent from configfs_symlink() -\u003e\nconfig_item_operations-\u003eallow_link() is the underlying se_device-\u003edev_group\nand se_lun-\u003elun_group that we expect to symlink.\n\nReported-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ffe0067544f93c0e71c793d7f17240486d091a3c",
      "tree": "d5008fdf846ed6f6575e65abe4c7bf7a267da2f1",
      "parents": [
        "13f6a91479b06133eb99f1f43be02608eb867313"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 19:07:52 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:25 2012 -0800"
      },
      "message": "target: Make spc_get_write_same_sectors return sector_t\n\nWe already expect TFO-\u003eget_blocks() to return sector_t for zero value case\nwhen doing WRITE_SAME to the end of the backend device, so go ahead and return\nsector_t from spc_get_write_same_sectors() to handle this case properly.\n\nAlso, update the single iblock_execute_write_same() caller of this code.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "13f6a91479b06133eb99f1f43be02608eb867313",
      "tree": "721d72ee5d17995c8697e3dbdab5401ba9025069",
      "parents": [
        "a5675c8a8b72efdd09ccd1b0975c4670675775ef"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Nov 27 18:54:21 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:24 2012 -0800"
      },
      "message": "target/configfs: use kmalloc() instead of kzalloc() for default groups\n\nAll elements are assigned even the NULL member at the end so there is no\nreason to allocate zeroed memory.\n\n(nab: Fix up minor apply breakage in for-next)\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a5675c8a8b72efdd09ccd1b0975c4670675775ef",
      "tree": "ac086820e4140188a84468d8cd34133b6221c268",
      "parents": [
        "1c98d2f439f3f945c5040fd648d817e86314f2fa"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Nov 27 17:49:44 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:23 2012 -0800"
      },
      "message": "target/configfs: allocate only 6 slots for dev_cg-\u003edefault_groups\n\nOnly slots 0-5 are used so 6 slots should be enough. I don\u0027t see anyone\nwritting anything else than NULL into -\u003edefault_groups[5] so a \"late\"\ninitialisation should not happen here.\n\n(nab: Fix up minor apply breakage in for-next)\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1c98d2f439f3f945c5040fd648d817e86314f2fa",
      "tree": "269e544adbc4c422e010354351a5407425a9c948",
      "parents": [
        "6b64e1fe2ba80ac3ce12a21f1200bac594fa1a1c"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Nov 27 18:54:19 2012 +0100"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:22 2012 -0800"
      },
      "message": "target/configfs: allocate pointers instead of full struct for default_groups\n\ndefault_groups is defined as struct config_group **default_groups so\nwe don\u0027t need to allocate a whole struct but only enough space for a\npointer that points there.\n\n(nab: Fix up minor apply breakage in for-next)\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6b64e1fe2ba80ac3ce12a21f1200bac594fa1a1c",
      "tree": "700d6a4076387f7e2059d70ea005f1a4209d34c7",
      "parents": [
        "3c989d7603872bf878840f7ce3ea49b73bea4c6c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Nov 27 17:27:01 2012 +0300"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:21 2012 -0800"
      },
      "message": "target: update error handling for sbc_setup_write_same()\n\nWe recently changed this to return positive subsystem error codes so the\nerror handling needs to be updated.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3c989d7603872bf878840f7ce3ea49b73bea4c6c",
      "tree": "fcebcfca5299ca7593a78df17b6f7fb3b15a4bb8",
      "parents": [
        "b07c28aab52edffb592429637fed846c48dca0a8"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Fri Nov 23 12:07:39 2012 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:21 2012 -0800"
      },
      "message": "iscsit: use GFP_ATOMIC under spin lock\n\nThe function iscsit_build_conn_drop_async_message() is called\nfrom iscsit_close_connection() with spin lock \u0027sess-\u003econn_lock\u0027\nheld, so we should use GFP_ATOMIC instead of GFP_KERNEL.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b07c28aab52edffb592429637fed846c48dca0a8",
      "tree": "b20cae3629c03407afa416b94056947eeab7cf09",
      "parents": [
        "3a41d85febdd3ab060bd8a074862280c4aea29d5"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Wed Nov 21 16:14:40 2012 +0530"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:20 2012 -0800"
      },
      "message": "iscsi_target: Remove redundant null check before kfree\n\nkfree on null pointer is a no-op.\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3a41d85febdd3ab060bd8a074862280c4aea29d5",
      "tree": "77e786c3e6985699fb66ea66a782cdb38e7e9e2f",
      "parents": [
        "c18bc7d8d34103d4bae47db180b508413f98dc36"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Nov 17 14:27:55 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:19 2012 -0800"
      },
      "message": "target/iblock: Forward declare bio helpers\n\nGo ahead and forward declare the handful of helper functions required\nfor bio submission code in order to avoid the extra function prototypes.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c18bc7d8d34103d4bae47db180b508413f98dc36",
      "tree": "f3c8e79c10e502908df0cbc4eb2f607ed5636a0d",
      "parents": [
        "d9ed69473a345d69cf15831e8db22f159b13cdd2"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Nov 16 08:06:19 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:18 2012 -0800"
      },
      "message": "target: Clean up flow in transport_check_aborted_status()\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "d9ed69473a345d69cf15831e8db22f159b13cdd2",
      "tree": "57b5dce87052c09a256242b2b56d66d603eca6fe",
      "parents": [
        "06e97b489006f28e23bb028febfa1c01c266d676"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Nov 16 08:06:18 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:49:18 2012 -0800"
      },
      "message": "target: Clean up logic in transport_put_cmd()\n\nNo need to have a goto where a return is clearer.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "fd9a11d7076e1d534a760032d2b8f3b59e10f9b5",
      "tree": "f70d8b7877bbbc6cbd069c4fc4501894cbeca665",
      "parents": [
        "f6970ad31d42fceb38b5595cbad093a4d0bfcc43"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Fri Nov 09 14:51:48 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 27 22:47:02 2012 -0800"
      },
      "message": "target: Update copyright information to 2012\n\nv2: Use correct target_core_stat.c 2006 copyright year\nv3: Drop extra unnessary legal verbage from header (hch)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "20879696b7660b6c4115a913e39f890d5bbd1f81",
      "tree": "e1afc438b51642227118385c8e45b12cf2ca9fa7",
      "parents": [
        "02582e9bcc36ed503ffede46e104a885dea222fb"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Mon Aug 27 22:46:00 2012 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 19 14:17:31 2012 +0100"
      },
      "message": "target: iscsi: fix comment typos in target/iscsi drivers\n\nCorrect spelling typo in printk and comment within target/iscsi drivers\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "3ea160b3e8f0de8161861995d9901f61192fc0b0",
      "tree": "13d24cf41697af4ca18b85789b80b6488e2b1005",
      "parents": [
        "3d70f8c617a436c7146ecb81df2265b4626dfe89"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Nov 16 08:06:16 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sat Nov 17 13:35:44 2012 -0800"
      },
      "message": "target: Fix handling of aborted commands\n\n- If we stop processing an already-aborted command in\n  target_execute_cmd(), then we need to complete t_transport_stop_comp\n  to wake up the the TMR handling thread, or else it will end up\n  waiting forever.\n\n- If we\u0027ve a already sent an \"aborted\" status for a command in\n  transport_check_aborted_status() then we should bail out of\n  transport_send_task_abort() to avoid freeing the command twice.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@risingtidesystems.com\u003e\n"
    },
    {
      "commit": "f6970ad31d42fceb38b5595cbad093a4d0bfcc43",
      "tree": "12ac358feba2529dbd5b0ab488e0fe3b353c458b",
      "parents": [
        "773cbaf7460aa58c67d4dca83c3f8bca10323bbe"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:08:38 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 12:48:45 2012 -0800"
      },
      "message": "target/iblock: Add WRITE_SAME w/ UNMAP\u003d0 emulation support\n\nThis patch adds support for emulation of WRITE_SAME w/ UNMAP\u003d0 within\niblock_execute_write_same() backend code.\n\nThe emulation uses a bio_add_page() call for each sector, and by default\nenforces a limit of max_write_same_len\u003d0xFFFF (65536) sectors following\nwhat scsi_debug reports per default for MAXIMUM WRITE SAME LENGTH.\n\nIt also sets max_write_same_len to the operational default at setup -\u003e\niblock_configure_device() time.\n\n(hch: Move unmap logic into iblock_execute_write_same_unmap + add\n      check for single sector SGLs in iblock_execute_write_same)\n(mkp: Update comment for 0xFFFF magic constant)\n(nab: drop left-over max_write_same_len check in iblock_execute_write_same)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "773cbaf7460aa58c67d4dca83c3f8bca10323bbe",
      "tree": "91e6015ade8d62c34c64861f1f3810b3c15a6a25",
      "parents": [
        "cd063bef414c51d79b9c6ea7a8ef8f9d319529bc"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 11:02:49 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 12:27:21 2012 -0800"
      },
      "message": "target: Add/check max_write_same_len device attribute + update block limits VPD\n\nThis patch adds a new max_write_same_len device attribute for use with\nWRITE_SAME w/ UNMAP\u003d0 backend emulation.  This can be useful for\nlowering the default backend value (IBLOCK uses 0xFFFF).\n\nAlso, update block limits VPD emulation code in spc_emulate_evpd_b0() to\nreport MAXIMUM WRITE SAME LENGTH, and enforce max_write_same_len during\nsbc_parse() -\u003e sbc_setup_write_same() CDB sanity checking for all emulated\nWRITE_SAME w/ UNMAP\u003d0 cases.\n\n(Robert: Move max_write_same_len check in sbc_setup_write_same() to\n         check both WRITE_SAME w/ UNMAP\u003d1 and w/ UNMAP\u003d0 cases)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Robert Elliott \u003cElliott@hp.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "cd063bef414c51d79b9c6ea7a8ef8f9d319529bc",
      "tree": "7c003f3c6e865cc0eaf4df43683a37802ce4cb5d",
      "parents": [
        "1920ed61fbbbb38919edfb2427b0b1fd4e4ad8d9"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:01:10 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 15 12:04:52 2012 -0800"
      },
      "message": "target/sbc: Seperate WRITE_SAME based on UNMAP flag in sbc_ops\n\nThis patch adds a new sbc_ops-\u003eexecute_write_same_unmap() caller for use\nwith WRITE_SAME w/ UNMAP\u003d1, and performs the -\u003eexecute_cmd() setup based\nthis bit within sbc_setup_write_same() code.\n\nAlso, makes the changes in sbc_parse_cdb() to handle a sense_reason_t\nreturn from sbc_setup_write_same() on error.\n\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1920ed61fbbbb38919edfb2427b0b1fd4e4ad8d9",
      "tree": "a9eb198ed8f04e64679236802da719a6261d090d",
      "parents": [
        "314da1aa57c3f2be8a07f3d944a541b595e8cb7d"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:59:41 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:10 2012 -0800"
      },
      "message": "target: Change sbc_emulate_noop to return sense_reason_t\n\nAs reported by Fengguang Wu + 0 day build team, the sense_reason_t conversion\nin for-next did not catch the recent sbc_emulate_noop() addition in mainline,\nproducing the following build warning in auto-next:\n\ndrivers/target/target_core_sbc.c: In function ‘sbc_parse_cdb’:\ndrivers/target/target_core_sbc.c:555: warning: assignment from incompatible pointer type\n\nGo ahead and remove duplicate sbc_emulate_verify(), and change VERIFY to\nuse sbc_emulate_noop() as well.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "314da1aa57c3f2be8a07f3d944a541b595e8cb7d",
      "tree": "47c6760650324796f6321ee84a08cba5805fe267",
      "parents": [
        "1c5c12c666fda27c7c494b34934a0a0631a48130"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Nov 05 15:04:34 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:09 2012 -0800"
      },
      "message": "sbp-target: remove depends on CONFIG_EXPERIMENTAL\n\nThe CONFIG_EXPERIMENTAL config item has not carried much meaning for a\nwhile now and is almost always enabled by default. As agreed during the\nLinux kernel summit, remove it from any \"depends on\" lines in Kconfigs.\n\nCC: Chris Boot \u003cbootc@bootc.net\u003e\nCC: \"Nicholas A. Bellinger\" \u003cnab@linux-iscsi.org\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1c5c12c666fda27c7c494b34934a0a0631a48130",
      "tree": "542756ed3af922407814faaa38d49d9f1d6c218e",
      "parents": [
        "64c13330a38935120501b19c97a3e6095747c7a1"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Nov 05 18:02:42 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:08 2012 -0800"
      },
      "message": "iscsi-target: Always send a response before terminating iSCSI connection\n\nThere are some cases, for example when the initiator sends an\nout-of-bounds ErrorRecoveryLevel value, where the iSCSI target\nterminates the connection without sending back any error.  Audit the\nlogin path and add appropriate iscsit_tx_login_rsp() calls to make\nsure this doesn\u0027t happen.\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": "64c13330a38935120501b19c97a3e6095747c7a1",
      "tree": "830b0a2bee8e3c8ba7318a978d07916e90fad34e",
      "parents": [
        "998866b0740f128fd2c107c167c8385406dadae0"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "steve@purestorage.com",
        "time": "Mon Nov 05 18:02:41 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:07 2012 -0800"
      },
      "message": "iscsi-target: Fix bug in handling of ExpStatSN ACK during u32 wrap-around\n\nThis patch fixes a bug in the hanlding of initiator provided ExpStatSN and\nindividual iscsi_cmd-\u003estat_sn comparision during iscsi_conn-\u003estat_sn\nwrap-around within iscsit_ack_from_expstatsn() code.\n\nThis bug would manifest itself as iscsi_cmd descriptors not being Acked\nby a lower ExpStatSn, causing them to be leaked until an iSCSI connection\nor session reinstatement event occurs to release all commands.\n\nAlso fix up two other uses of incorrect CmdSN SNA comparison to use wrapper\nusage from include/scsi/iscsi_proto.h.\n\nSigned-off-by: Steve Hodgson \u003csteve@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": "998866b0740f128fd2c107c167c8385406dadae0",
      "tree": "d923a10a89785c75d3fb93949bd72b4332930efb",
      "parents": [
        "bb7a8c8eb9678666fb05f3bc542581365399a161"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Mon Nov 05 18:02:40 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:07 2012 -0800"
      },
      "message": "iscsi-target: Fix potential deadlock on lock taken in timer\n\nWe need to disable BHs when taking sess_idr_lock because the\niscsit_handle_time2retain_timeout() timer function takes\nse_tpg-\u003esession_lock, and iscsit_close_session() nests sess_idr_lock\ninside se_tpg-\u003esession_lock.  So if the timer can run inside\nsess_idr_lock, we have a potential AB-BA deadlock.\n\nFix this by disabling BHs when taking sess_idr_lock.  This was found\nbecause of a lockdep warning, but it looks like a real (if highly\ntheoretical) deadlock.  In any case avoiding lockdep spew so that we can\nfind other issues is a worthy cause.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "bb7a8c8eb9678666fb05f3bc542581365399a161",
      "tree": "9b4b406da47b94b363f06039b4a42013ef10c108",
      "parents": [
        "b69c1fcf0a7cb2b7dff12ce4e8506b395431a52c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 15:46:25 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:12:06 2012 -0800"
      },
      "message": "target: Fix exception path pr_reg put regression for PR RELEASE\n\nFix a regression bug in core_scsi3_emulate_pro_release() where\nshould still be getting released via core_scsi3_put_pr_reg() during\nNo persistent reservation, with returing GOOD status.\n\nUse goto statement here to follow converted code from hch.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "b69c1fcf0a7cb2b7dff12ce4e8506b395431a52c",
      "tree": "9bd450b152ed11dee3d617a5345da78c543f23dc",
      "parents": [
        "a2e85d18146857ffddea4dfe3b245055af8e3db3"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 15:43:53 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Nov 07 20:10:56 2012 -0800"
      },
      "message": "target: Fix possible TFO-\u003ewrite_pending() sense_reason_t silent WRITE corruption\n\nThis patch fixes a possible case in transport_generic_new_cmd() where a\nfailure from TFO-\u003ewrite_pending() from a fabric module return something\nother than -EAGAIN or -ENOMEM would cause a failed WRITE to silently\nsucceed.\n\nGo ahead and return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE for this\nspecial case instead of only just making noise with WARN_ON().\n\n(v2: Fix incorrect exception return for all cases)\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "a2e85d18146857ffddea4dfe3b245055af8e3db3",
      "tree": "8a0eb525e504a55305fa39a8dd1cb88982c22a08",
      "parents": [
        "de103c93aff0bed0ae984274e5dc8b95899badab"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 12:36:12 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: Fix incorrect inversion of TPGS_EXPLICT_ALUA check\n\nFix a bug introduced with patch \"target: pass sense_reason as a return value\"\nin for-3.8 code where only target port groups with TPGS_EXPLICT_ALUA set\nneed to be allowed to perform explictly ALUA.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "de103c93aff0bed0ae984274e5dc8b95899badab",
      "tree": "7db9bba755fa95772052e8d31285a38ba48f1a84",
      "parents": [
        "fecae40abb1ae9218bdbaa8b8e30bfb5ae43f522"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 06 12:24:09 2012 -0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: pass sense_reason as a return value\n\nPass the sense reason as an explicit return value from the I/O submission\npath instead of storing it in struct se_cmd and using negative return\nvalues.  This cleans up a lot of the code pathes, and with the sparse\nannotations for the new sense_reason_t type allows for much better\nerror checking.\n\n(nab: Convert spc_emulate_modesense + spc_emulate_modeselect to use\n      sense_reason_t with Roland\u0027s MODE SELECT changes)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "fecae40abb1ae9218bdbaa8b8e30bfb5ae43f522",
      "tree": "3f804933534a773ff86664a81352ecf5bd4df868",
      "parents": [
        "3a3c5e4a672c5cd61cbdcedcd027312577f9ab7c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 01 18:43:03 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: Fix incorrect starting offset after MODE_SENSE refactoring\n\nThis patch fixes a new off-by-one bug in the hardcoded starting offset of\nspc_emulate_modesense() code that causes BLOCK DESCRIPTOR to be incorrectly\nwritten within the MEDIUM TYPE buffer area of the mode parameter header.\n\nAccording to spc4r30, Section 7.5.4, BLOCK DESCRIPTOR for MODE_SENSE_10\nstarts at byte 3, and BLOCK_DESCRIPTOR for MODE_SENSE (6) starts at byte 2.\n\n(roland: add MODE DATA LENGTH + MEDIUM TYPE offset comment)\n\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "3a3c5e4a672c5cd61cbdcedcd027312577f9ab7c",
      "tree": "9e05bfd495e4acc8e2241fe685cca166d1033acf",
      "parents": [
        "0f6d64cee9c518f5d3138a90cead62fba2031074"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:50 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: Add emulation for MODE SELECT\n\nThis is another thing that compliance tests try, and it\u0027s easy to\nimplement on top of the MODE SENSE refactoring; since we don\u0027t claim\nto support any changeable values, all we need to do is check that\nthe page contents sent by the initiator match what we would return.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0f6d64cee9c518f5d3138a90cead62fba2031074",
      "tree": "e4b0b43d31c9b1651b20549b504f917f36ae5aea",
      "parents": [
        "d4b2b867193c157f0ac8c10137e287a90ed4e5d5"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:49 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: Implement mode page 0x1c, \"Informational Exceptions\"\n\nThe Windows SCSI compliance test asks for this mode page, and it\u0027s\neasy to implement: we can just return all 0s to show we don\u0027t support\nany of these features.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d4b2b867193c157f0ac8c10137e287a90ed4e5d5",
      "tree": "f1bd32ea59f0b69ac1d1c028912d42514196d013",
      "parents": [
        "1f981de55a46777ca0da93af5faf7d3f6e7e7000"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:48 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:46 2012 -0800"
      },
      "message": "target: Refactor MODE SENSE emulation\n\nConvert spc_emulate_modesense() to use a table of mode pages, rather\nthan a switch statement.  This makes it possible to add more pages\nsanely -- in particular we no longer need to make sure we keep the\n0x3f (return all mode pages) case in sync.\n\nWhile we\u0027re touching this code, make our MODE SENSE emulation a bit\nbetter in a couple of ways:\n - When the initiator passes PC \u003d\u003d 1 asking for changeable values,\n   return all 0s to show we don\u0027t support setting anything.\n - Return a block descriptor for disk devices.\n\n(nab: fix up device attribute references to use dev-\u003edev_attrib\n      in for-next code)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "1f981de55a46777ca0da93af5faf7d3f6e7e7000",
      "tree": "e2e83a261f66d4887b8684134c9cfc1ca57e2a58",
      "parents": [
        "48c2567d1a10b5a2cab72b37775b886b08f88726"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Oct 31 09:16:47 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "iscsi-target: Use list_first_entry() where appropriate\n\nInstead of using the obfuscated pattern of\n\n\tlist_for_each_entry(var, list, ...)\n\t\tbreak;\n\nto set var to the first entry of a list, use the straightforward\n\n\tvar \u003d list_first_entry(list, ...);\n\nReported-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "48c2567d1a10b5a2cab72b37775b886b08f88726",
      "tree": "0d30560ee9db1e06cca6ed0111036a713850bae6",
      "parents": [
        "c87fbd5656f263f0fc1c37d20f402797c068232e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:17 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: remove -\u003eget_device_rev\n\nNow that the reservations and ALUA code have been cleaned up there is no need\nfor the get_device_rev method, as we only need the standards revision in the\ninquiry data, where we can hardcode it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "c87fbd5656f263f0fc1c37d20f402797c068232e",
      "tree": "af83a409d4ba234cf0f67419e48d5588423d05ad",
      "parents": [
        "d977f4377fbc396b888e12fdb3b13118b09ca7db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:16 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: simplify alua support\n\nWe always support ALUA for virtual backends, and never for physical ones.  Simplify\nthe code to just deal with these two cases and remove the superflous abstractions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d977f4377fbc396b888e12fdb3b13118b09ca7db",
      "tree": "f3de282b1df951ec599908e24590dbcbac5b9047",
      "parents": [
        "019c4ca621488739b1bfb7597a14ac7f0cbcc908"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:15 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: simplify reservations code\n\nWe do not support host-level reservations for the pscsi backend, and all\nvirtual backends are newere than SCSI-2, so just make the combined\nSPC-3 + SCSI-2 support the only supported variant and kill the switches\nfor the different implementations, given that this code handles the no-op\nversion just fine.\n\n(hch: Update DRF_SPC2_RESERVATIONS lock usage)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "019c4ca621488739b1bfb7597a14ac7f0cbcc908",
      "tree": "2717b223b7a5d1fbd8765805879b87446ea98862",
      "parents": [
        "e6c4219b54ac9d0bd348ea59e606303f9aef1784"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 17:37:14 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target: kill dev-\u003edev_task_attr_type\n\nWe can just key off ordered tag emulation of the transport_type field.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "e6c4219b54ac9d0bd348ea59e606303f9aef1784",
      "tree": "c91190da38d6f4c8e68371ff3b2d49a7bfef64c1",
      "parents": [
        "ecf0dd6642ecf7c0aff89c1be48b870586f4be4f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Oct 10 16:52:48 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "pscsi: fix REPORT LUNS handling\n\nWe need to assign spc_emulate_report_luns to the execute_cmd callback\nand not execute it directly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ecf0dd6642ecf7c0aff89c1be48b870586f4be4f",
      "tree": "87c5a2fc5189e15c30f192f7ba041d247f689e0c",
      "parents": [
        "6f23ac8a39418d6c6711f4fd73cc4519067d7f08"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Oct 10 07:30:20 2012 +0800"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:45 2012 -0800"
      },
      "message": "target/pscsi: Make pscsi_configure_device + target_release_session static\n\ndrivers/target/target_core_pscsi.c:464:5: sparse: symbol \u0027pscsi_configure_device\u0027\nwas not declared. Should it be static?\n\nFYI, there are new sparse warnings show up in\n\ntree:   git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git queue\nhead:   738b86ac5e56c645aa5b7bf49cb38e2a04c665f8\ncommit: 410aeee637c47bcf7e8dd7893347fe0811e07ab1 [47/51] target: kill struct se_subsystem_dev\n\nvim +464 drivers/target/target_core_pscsi.c\n\n410aeee6 Christoph Hellwig  2012-10-08 @464  int pscsi_configure_device(struct se_device *dev)\nc66ac9db Nicholas Bellinger 2010-12-17  465  {\n410aeee6 Christoph Hellwig  2012-10-08  466  \tstruct se_hba *hba \u003d dev-\u003ese_hba;\n410aeee6 Christoph Hellwig  2012-10-08  467  \tstruct pscsi_dev_virt *pdv \u003d PSCSI_DEV(dev);\nc66ac9db Nicholas Bellinger 2010-12-17  468  \tstruct scsi_device *sd;\n410aeee6 Christoph Hellwig  2012-10-08  469  \tstruct pscsi_hba_virt *phv \u003d dev-\u003ese_hba-\u003ehba_ptr;\nc66ac9db Nicholas Bellinger 2010-12-17  470  \tstruct Scsi_Host *sh \u003d phv-\u003ephv_lld_host;\nc66ac9db Nicholas Bellinger 2010-12-17  471  \tint legacy_mode_enable \u003d 0;\n410aeee6 Christoph Hellwig  2012-10-08  472  \tint ret;\n\nPlease consider folding the attached diff :-)\n\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "6f23ac8a39418d6c6711f4fd73cc4519067d7f08",
      "tree": "d6975dda37b047b6f9c3f5cf74cc4206a32a9e3a",
      "parents": [
        "8de530a523fd3cc46b5d8d96f3016298c5c808ac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:53 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target: provide generic sbc device type/revision helpers\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "8de530a523fd3cc46b5d8d96f3016298c5c808ac",
      "tree": "1a1fee222c4e5c834023d871363aea9ee49cc41b",
      "parents": [
        "d1b1f8053401aaf1dfe636afa6d361301e3ae8b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:52 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target/pscsi: call spc_emulate_report_luns directly\n\nNo need to indirect through spc_parse_cdb if we only ever call it for\nREPORT LUNS emulation.\n\n(nab: Add missing EXPORT_SYMBOL for spc_emulate_report_luns)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "d1b1f8053401aaf1dfe636afa6d361301e3ae8b7",
      "tree": "52a04af8a2383ce291105b4b5d01bb869802f33c",
      "parents": [
        "9e999a6c51fe74a41a76038c64ce038ff9243bfb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:51 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target: move REPORT LUNS emulation to target_core_spc.c\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "9e999a6c51fe74a41a76038c64ce038ff9243bfb",
      "tree": "eb0f9cde2fe80fb491a9376bd92983ad7f921f43",
      "parents": [
        "0fd97ccf45be26fb01b3a412f1f6c6b5044b2f16"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 07 10:55:50 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:44 2012 -0800"
      },
      "message": "target: rename spc_ops\n\nThese really are sbc_ops, so name them correctly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "0fd97ccf45be26fb01b3a412f1f6c6b5044b2f16",
      "tree": "c642e3da11e534a311a1e998ef740a3d44b9187b",
      "parents": [
        "3d70f8c617a436c7146ecb81df2265b4626dfe89"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 08 00:03:19 2012 -0400"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Tue Nov 06 20:55:43 2012 -0800"
      },
      "message": "target: kill struct se_subsystem_dev\n\nSimplify the code a lot by killing the superflous struct se_subsystem_dev.\nInstead se_device is allocated early on by the backend driver, which allocates\nit as part of its own per-device structure, borrowing the scheme that is for\nexample used for inode allocation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    },
    {
      "commit": "ab74b3d62f05192bf8fb8f169e7999d1183b2e08",
      "tree": "854a0c02ec42a9f5b84ca9eafa989b8c809ac51b",
      "parents": [
        "d5627acba9ae584cf4928af19f7ddf5f6837de32"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "steve@purestorage.com",
        "time": "Wed Oct 31 10:24:02 2012 -0700"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Thu Nov 01 00:38:45 2012 -0700"
      },
      "message": "target: Fix incorrect usage of nested IRQ spinlocks in ABORT_TASK path\n\nThis patch changes core_tmr_abort_task() to use spin_lock -\u003e spin_unlock\naround se_cmd-\u003et_state_lock while spin_lock_irqsave is held via\nse_sess-\u003esess_cmd_lock.\n\nSigned-off-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n"
    }
  ],
  "next": "d5627acba9ae584cf4928af19f7ddf5f6837de32"
}
