)]}'
{
  "log": [
    {
      "commit": "18b8ba6cfb49b201e37489ca9761730c22be80af",
      "tree": "ee150f9fe6cec142318beb1f5d91e9cff3bade52",
      "parents": [
        "37b9d1e0017b2d8384ad03d250b15fd3d69771d5"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:35:25 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:57 2012 +0100"
      },
      "message": "[SCSI] sg: constify sg_proc_leaf_arr\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "37b9d1e0017b2d8384ad03d250b15fd3d69771d5",
      "tree": "81f6cfce7563e58ca85c5f9fbb01a526e6da97e1",
      "parents": [
        "035d12e658fba287a223361bc7dd442dd6737b68"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:35:05 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:57 2012 +0100"
      },
      "message": "[SCSI] sg: remove sg_mutex\n\nWith the exception of the detached field, sg_mutex no longer adds any\nlocking.  detached handling has been broken before and is still broken\nand this patch does not seem to make things worse than they were to\nbegin with.\n\nHowever, I have observed cases of tasks being blocked for \u003e200s waiting\nfor sg_mutex.  So the removal clearly adds value for very little cost.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "035d12e658fba287a223361bc7dd442dd6737b68",
      "tree": "1017b20cd9432b9507c485098171c74ee478aeb1",
      "parents": [
        "b499e5249eb80e4a7e71cfd04c6f628abdb27498"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Wed Apr 25 11:17:29 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:56 2012 +0100"
      },
      "message": "[SCSI] sg: completely protect sfds\n\nsfds is protected by sg_index_lock - except for sg_open(), where it\nisn\u0027t.  Change that and add some documentation.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "b499e5249eb80e4a7e71cfd04c6f628abdb27498",
      "tree": "003abeec481756acce963a8c840e7f787d464c97",
      "parents": [
        "6acddc5e911bb3a4a007448371ed7317c85669da"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Tue Apr 24 16:13:11 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:55 2012 +0100"
      },
      "message": "[SCSI] sg: protect sdp-\u003eexclude\n\nChanges since v1: set_exclude now returns the new value, which gets\nrid of the comma expression and the operator precedence bug.  Thanks\nto Douglas for spotting it.\n\nsdp-\u003eexclude was previously protected by the BKL.  The sg_mutex, which\nreplaced the BKL, only semi-protected it, as it was missing from\nsg_release() and sg_proc_seq_show_debug().  Take an explicit spinlock\nfor it.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "6acddc5e911bb3a4a007448371ed7317c85669da",
      "tree": "ef5ac2ea141645723d2e898f83ed4414dc36f4bc",
      "parents": [
        "ebaf466be5afa6c6dca29005374de4534e0e6b33"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:33:58 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:54 2012 +0100"
      },
      "message": "[SCSI] sg: prevent unwoken sleep\n\nsrp-\u003edone is protected by sfp-\u003erq_list_lock everywhere, except for this\none case.  Result can be that the wake-up happens before the cacheline\nwith the changed srp-\u003edone has arrived, so the waiter can go back to\nsleep and never be woken up again.\n\nThe wait_event_interruptible() means that anyone trying to debug this\nunlikely race will likely notice everything working fine again, as the\nnext signal will unwedge things.  Evil.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "ebaf466be5afa6c6dca29005374de4534e0e6b33",
      "tree": "b6c91cb41f840c3775d17ea49e603275e40fc0f9",
      "parents": [
        "3f0c6aba0b65a68013c1e0db1b015f02e6ec24be"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:33:39 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:53 2012 +0100"
      },
      "message": "[SCSI] sg: remove closed flag\n\nAfter sg_release() has been called, noone should be able to actually use\nthat filedescriptor anymore.  So if closed ever made a difference in the\npast five years or so, it would have meant a bug.  Remove it.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\n[jejb: fix up checkpatch warnings]\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "3f0c6aba0b65a68013c1e0db1b015f02e6ec24be",
      "tree": "9af2cdcfa608b794d783674f1e68129cf6d2d31d",
      "parents": [
        "794c10fa0fa4d1781c5651c31e3d4d0b71629128"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:33:25 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:53 2012 +0100"
      },
      "message": "[SCSI] sg: use wait_event_interruptible()\n\nAfaics the use of __wait_event_interruptible() as opposed to\nwait_event_interruptible() is purely historic.  So let\u0027s follow the rest\nof the kernel and check the condition before prepare_to_wait() - and\nalso make the code a bit nicer.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "794c10fa0fa4d1781c5651c31e3d4d0b71629128",
      "tree": "a671c2930cf5ee050f50bb511bfe83ea20c07ccc",
      "parents": [
        "dddbf8d908e89afb14a49502f568d2a2b814436d"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:32:48 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 10:08:52 2012 +0100"
      },
      "message": "[SCSI] sg: remove while (1) non-loop\n\nThe while (1) construct isn\u0027t actually a loop at all.  So let\u0027s not\npretent and obfuscate the code.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "dddbf8d908e89afb14a49502f568d2a2b814436d",
      "tree": "2c2d76ed7c18ac6bbd53ced427371042dd81061a",
      "parents": [
        "a7a20d103994fd760766e6c9d494daa569cbfe06"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Thu Apr 12 17:32:17 2012 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Thu May 17 09:45:29 2012 +0100"
      },
      "message": "[SCSI] sg: remove unnecessary indentation\n\nblocking is de-facto a constant and the now-removed comment wasn\u0027t all\nthat useful either.  Without them and the resulting indentation the code\nis a bit nicer to read.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "7e95fffe080d4dbe826dfe864eb084916cdc6468",
      "tree": "afc65af7003d1d4fdb977e5a2cccda7b5c4ac32e",
      "parents": [
        "466c08c71a7dc19528e9b336c5bfa5ec41730c7c"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue Jan 10 15:42:34 2012 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Mon Jan 16 12:17:29 2012 +0400"
      },
      "message": "[SCSI] sg: convert to kstrtoul_from_user()\n\nInstead of open coding this function use kstrtoul_from_user() directly.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "d161a13f974c72fd7ff0069d39a3ae57cb5694ff",
      "tree": "0c6d6237b3eafbe362798d7727a02f509fd72ca9",
      "parents": [
        "587a1f1659e8b330b8738ef4901832a2b63f0bed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 03:36:29 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:56 2012 -0500"
      },
      "message": "switch procfs to umode_t use\n\nboth proc_dir_entry -\u003emode and populating functions\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2fe038e33c3921512f5450e113c263a772939f4c",
      "tree": "608a8aa550b54f9dbfafe6e9dc2f97ba788aa5f6",
      "parents": [
        "a28ee477e5e5e183fa0289841fd90f350a6e0415"
      ],
      "author": {
        "name": "Christian Dietrich",
        "email": "christian.dietrich@informatik.uni-erlangen.de",
        "time": "Sat Jun 04 17:36:10 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:05:25 2011 +0200"
      },
      "message": "scsi/sg: use printk_ratelimited instead of printk_ratelimit\n\nSince printk_ratelimit() shouldn\u0027t be used anymore (see comment in\ninclude/linux/printk.h), replace it with printk_ratelimited.\n\nSigned-off-by: Christian Dietrich \u003cchristian.dietrich@informatik.uni-erlangen.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
      "tree": "f42fd892495bfc4cbb740d06b016d267c9c42d00",
      "parents": [
        "4f3a29dadaf999a273f1e7fe2476595d0283eef3",
        "b4627321e18582dcbdeb45d77df29d3177107c65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block: (39 commits)\n  cfq-iosched: Fix a gcc 4.5 warning and put some comments\n  block: Turn bvec_k{un,}map_irq() into static inline functions\n  block: fix accounting bug on cross partition merges\n  block: Make the integrity mapped property a bio flag\n  block: Fix double free in blk_integrity_unregister\n  block: Ensure physical block size is unsigned int\n  blkio-throttle: Fix possible multiplication overflow in iops calculations\n  blkio-throttle: limit max iops value to UINT_MAX\n  blkio-throttle: There is no need to convert jiffies to milli seconds\n  blkio-throttle: Fix link failure failure on i386\n  blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n  blkio: Add root group to td-\u003etg_list\n  blkio: deletion of a cgroup was causes oops\n  blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING\u003dn\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: revert bad fix for memory hotplug causing bounces\n  Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: Prevent hang_check firing during long I/O\n  cfq: improve fsync performance for small files\n  ...\n\nFix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "35df83970ecdc2cffb141503cf721a740d0f0ec5",
      "tree": "29593601fac047c53a0e092a41c72796b7424968",
      "parents": [
        "27e49945ac7090b818e44cb9e8ae4b94fd711e41"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat Sep 04 18:52:46 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 23 13:43:52 2010 +0200"
      },
      "message": "drivers/scsi: Remove unnecessary casts of private_data\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2610a25406087ef797f4187e7f82dd04335056c7",
      "tree": "f9a288acf417b5610c95d8c37bb6367f372e82b5",
      "parents": [
        "b5af921ec02333e943efb59aca4f56b78fc0e100"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Sep 16 12:55:57 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 08:25:45 2010 +0200"
      },
      "message": "sg: fix a warning in blk_rq_aligned() call\n\n2nd argument of blk_rq_aligned() has changed to \u0027unsigned long\u0027 by\nthe previous commit \u0027block: fix an address space warning in blk-map.c\u0027.\nThat commit neglected to update a user of that function.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c45d15d24eb2b49bf734e1e5e7e103befb76b19b",
      "tree": "dd768c089fd3393e8fa2c4f4fb50cedb1044037d",
      "parents": [
        "49553c2ef88749dd502687f4eb9c258bb10a4f44"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jun 02 14:28:52 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Sep 15 21:00:45 2010 +0200"
      },
      "message": "scsi: autoconvert trivial BKL users to private mutex\n\nAll these files use the big kernel lock in a trivial\nway to serialize their private file operations,\ntypically resulting from an earlier semi-automatic\npushdown from VFS.\n\nNone of these drivers appears to want to lock against\nother code, and they all use the BKL as the top-level\nlock in their file operations, meaning that there\nis no lock-order inversion problem.\n\nConsequently, we can remove the BKL completely,\nreplacing it with a per-file mutex in every case.\nUsing a scripted approach means we can avoid\ntypos.\n\nfile\u003d$1\nname\u003d$2\nif grep -q lock_kernel ${file} ; then\n    if grep -q \u0027include.*linux.mutex.h\u0027 ${file} ; then\n            sed -i \u0027/include.*\u003clinux\\/smp_lock.h\u003e/d\u0027 ${file}\n    else\n            sed -i \u0027s/include.*\u003clinux\\/smp_lock.h\u003e.*$/include \u003clinux\\/mutex.h\u003e/g\u0027 ${file}\n    fi\n    sed -i ${file} \\\n        -e \"/^#include.*linux.mutex.h/,$ {\n                1,/^\\(static\\|int\\|long\\)/ {\n                     /^\\(static\\|int\\|long\\)/istatic DEFINE_MUTEX(${name}_mutex);\n\n} }\"  \\\n    -e \"s/\\(un\\)*lock_kernel\\\u003e[ ]*()/mutex_\\1lock(\\\u0026${name}_mutex)/g\" \\\n    -e \u0027/[      ]*cycle_kernel_lock();/d\u0027\nelse\n    sed -i -e \u0027/include.*\\\u003csmp_lock.h\\\u003e/d\u0027 ${file}  \\\n                -e \u0027/cycle_kernel_lock()/d\u0027\nfi\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: linux-scsi@vger.kernel.org\nCc: \"James E.J. Bottomley\" \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "3094141c6532a4f748425c21c091001f218da8ae",
      "tree": "20428f86de4fb7d6f8a57a4e9c35a6f2f2c02d37",
      "parents": [
        "a737b88df8d0b4476ae53daaa6db137df0541203"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Aug 10 18:01:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:02 2010 -0700"
      },
      "message": "drivers/scsi: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Doug Gilbert \u003cdgilbert@interlog.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\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": "bc4f24014de58f045f169742701a6598884d93db",
      "tree": "4e68ae6fa5fff179ce69b2d890b01a5fcc9c55d5",
      "parents": [
        "db5bd1e0b505c54ff492172ce4abc245cf6cd639"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jun 17 10:41:42 2010 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:07:50 2010 -0500"
      },
      "message": "[SCSI] implement runtime Power Management\n\nThis patch (as1398b) adds runtime PM support to the SCSI layer.  Only\nthe machanism is provided; use of it is up to the various high-level\ndrivers, and the patch doesn\u0027t change any of them.  Except for sg --\nthe patch expicitly prevents a device from being runtime-suspended\nwhile its sg device file is open.\n\nThe implementation is simplistic.  In general, hosts and targets are\nautomatically suspended when all their children are asleep, but for\nthem the runtime-suspend code doesn\u0027t actually do anything.  (A host\u0027s\nruntime PM status is propagated up the device tree, though, so a\nruntime-PM-aware lower-level driver could power down the host adapter\nhardware at the appropriate times.)  There are comments indicating\nwhere a transport class might be notified or some other hooks added.\n\nLUNs are runtime-suspended by calling the drivers\u0027 existing suspend\nhandlers (and likewise for runtime-resume).  Somewhat arbitrarily, the\nimplementation delays for 100 ms before suspending an eligible LUN.\nThis is because there typically are occasions during bootup when the\nsame device file is opened and closed several times in quick\nsuccession.\n\nThe way this all works is that the SCSI core increments a device\u0027s\nPM-usage count when it is registered.  If a high-level driver does\nnothing then the device will not be eligible for runtime-suspend\nbecause of the elevated usage count.  If a high-level driver wants to\nuse runtime PM then it can call scsi_autopm_put_device() in its probe\nroutine to decrement the usage count and scsi_autopm_get_device() in\nits remove routine to restore the original count.\n\nHosts, targets, and LUNs are not suspended while they are being probed\nor removed, or while the error handler is running.  In fact, a fairly\nlarge part of the patch consists of code to make sure that things\naren\u0027t suspended at such times.\n\n[jejb: fix up compile issues in PM config variations]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "caf19d38607108304cd8cc67ed21378017f69e8a",
      "tree": "ae2730729cb88b30bdd90f692b18866dc8485b7a",
      "parents": [
        "240778e821f596a6954116107c5cc3456df84f81"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 22 09:36:51 2010 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Wed Jul 28 09:06:05 2010 -0500"
      },
      "message": "[SCSI] sg: fix bio leak with a detached device\n\nAfter blk_rq_map_user is successful, if we find that a device is\nunavailable (was detached), we must call blk_end_request_all to free\nbio(s) before blk_rq_unmap_user and blk_put_request.\n\nReported-by: \"Dailey, Nate\" \u003cNate.Dailey@stratus.com\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nTested-by: \"Dailey, Nate\" \u003cNate.Dailey@stratus.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "f4927c45beda9a70e5c3bda0bd9f12b4f713c00b",
      "tree": "18256d3dd635e931838e3d83b071ca5a1e61a163",
      "parents": [
        "16ef8def80ea97c3cacdcaa765bdf62b2d94f86d"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Apr 27 00:24:01 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 17 05:27:04 2010 +0200"
      },
      "message": "scsi: Push down BKL into ioctl functions\n\nPush down the bkl into ioctl functions on the scsi layer.\n\n[jkacur: Forward declaration missing \u0027;\u0027.\nConflicting declaraction in megaraid.h changed\nFixed missing inodes declarations]\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: John Kacur \u003cjkacur@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "8a78362c4eefc1deddbefe2c7f38aabbc2429d6b",
      "tree": "c095d95af1aec0f9cee5975b1dcdc6bc1d17d401",
      "parents": [
        "086fa5ff0854c676ec333760f4c0154b3b242616"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Consolidate phys_segment and hw_segment limits\n\nExcept for SCSI no device drivers distinguish between physical and\nhardware segment limits.  Consolidate the two into a single segment\nlimit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "69585dd69e663a40729492c7b52eb82477a2027a",
      "tree": "5c179ca88b70856a7f9b56e10151ffa5480f0284",
      "parents": [
        "bd381934bf13ccb1af2813ae26c6fe00ec85d254",
        "c7922a911c42c5a8bdee6cc75eb6bd66937d4217"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:12:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:12:33 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (34 commits)\n  [SCSI] qla2xxx: Fix NULL ptr deref bug in fail path during queue create\n  [SCSI] st: fix possible memory use after free after MTSETBLK ioctl\n  [SCSI] be2iscsi: Moving to pci_pools v3\n  [SCSI] libiscsi: iscsi_session_setup to allow for private space\n  [SCSI] be2iscsi: add 10Gbps iSCSI - BladeEngine 2 driver\n  [SCSI] zfcp: Fix hang when offlining device with offline chpid\n  [SCSI] zfcp: Fix lockdep warning when offlining device with offline chpid\n  [SCSI] zfcp: Fix oops during shutdown of offline device\n  [SCSI] zfcp: Fix initial device and cfdc for delayed adapter allocation\n  [SCSI] zfcp: correctly initialize unchained requests\n  [SCSI] mpt2sas: Bump version 02.100.03.00\n  [SCSI] mpt2sas: Support dev remove when phy status is MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT\n  [SCSI] mpt2sas: Timeout occurred within the HANDSHAKE logic while waiting on firmware to ACK.\n  [SCSI] mpt2sas: Call init_completion on a per request basis.\n  [SCSI] mpt2sas: Target Reset will be issued from Interrupt context.\n  [SCSI] mpt2sas: Added SCSIIO, Internal and high priority memory pools to support multiple TM\n  [SCSI] mpt2sas: Copyright change to 2009.\n  [SCSI] mpt2sas: Added mpi2_history.txt for MPI2 headers.\n  [SCSI] mpt2sas: Update driver to MPI2 REV K headers.\n  [SCSI] bfa: Brocade BFA FC SCSI driver\n  ...\n"
    },
    {
      "commit": "e27168f8c337b12b8aa8d59c3123c79d2f83603d",
      "tree": "947d5e483ca1d4ee0bbbbdc7abf317f1f591dbd0",
      "parents": [
        "5915136d4d3954867cced8a2297bddd16caf36a1"
      ],
      "author": {
        "name": "Christof Schmitt",
        "email": "christof.schmitt@de.ibm.com",
        "time": "Thu Sep 17 09:10:14 2009 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Oct 02 09:45:58 2009 -0500"
      },
      "message": "[SCSI] sg: Free data buffers after calling blk_rq_unmap_user\n\nRunning sg_luns on s390x with CONFIG_DEBUG_PAGEALLOC enabled fails\nwith EFAULT from the SG_IO ioctl. The EFAULT is the result from\ncopy_to_user failing in this call chain:\n\nsg_ioctl\nsg_new_read\nsg_finish_rem_req\nblk_rq_unmap_user\n__blk_rq_unmap_user\nbio_uncopy_user\n__bio_copy_iov\ncopy_to_user\n\nThe sg driver calls sg_remove_scat to free the memory pages before\ncalling blk_rq_unmap_user that tries to copy the data back to\nuserspace. Change the order to first call blk_rq_unmap_user before\nfreeing the pages in sg_remove_scat.\n\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: stable@kernel.org\nSigned-off-by: Christof Schmitt \u003cchristof.schmitt@de.ibm.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e71044ee2efa4792e21d243b03d49006db66aec9",
      "tree": "56a673a82d0d5f4fe8308a858a2958600b091ba9",
      "parents": [
        "b437b95620dbf4bf7bd13af0f9d32fdac82c5d37"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Thu Sep 03 14:27:08 2009 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Sep 12 09:35:30 2009 -0500"
      },
      "message": "[SCSI] sg: fix oops in the error path in sg_build_indirect()\n\nWhen the allocation fails in sg_build_indirect(), an oops happens in\nthe error path. It\u0027s caused by an obvious typo.\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nReported-by: Bob Tracy \u003crct@gherkin.frus.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "ecb554a846f8e9d2a58f6d6c118168a63ac065aa",
      "tree": "c52b265969972d5df0fe104110bc5cbfb220f3a7",
      "parents": [
        "76da03467a1a78811777561bbb1fa56175ee4778"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 09 14:46:53 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "block: fix sg SG_DXFER_TO_FROM_DEV regression\n\nI overlooked SG_DXFER_TO_FROM_DEV support when I converted sg to use\nthe block layer mapping API (2.6.28).\n\nDouglas Gilbert explained SG_DXFER_TO_FROM_DEV:\n\nhttp://www.spinics.net/lists/linux-scsi/msg37135.html\n\n\u003d\nThe semantics of SG_DXFER_TO_FROM_DEV were:\n   - copy user space buffer to kernel (LLD) buffer\n   - do SCSI command which is assumed to be of the DATA_IN\n     (data from device) variety. This would overwrite\n     some or all of the kernel buffer\n   - copy kernel (LLD) buffer back to the user space.\n\nThe idea was to detect short reads by filling the original\nuser space buffer with some marker bytes (\"0xec\" it would\nseem in this report). The \"resid\" value is a better way\nof detecting short reads but that was only added this century\nand requires co-operation from the LLD.\n\u003d\n\nThis patch changes the block layer mapping API to support this\nsemantics. This simply adds another field to struct rq_map_data and\nenables __bio_copy_iov() to copy data from user space even with READ\nrequests.\n\nIt\u0027s better to add the flags field and kills null_mapped and the new\nfrom_user fields in struct rq_map_data but that approach makes it\ndifficult to send this patch to stable trees because st and osst\ndrivers use struct rq_map_data (they were converted to use the block\nlayer in 2.6.29 and 2.6.30). Well, I should clean up the block layer\nmapping API.\n\nzhou sf reported this regiression and tested this patch:\n\nhttp://www.spinics.net/lists/linux-scsi/msg37128.html\nhttp://www.spinics.net/lists/linux-scsi/msg37168.html\n\nReported-by: zhou sf \u003csxzzsf@gmail.com\u003e\nTested-by: zhou sf \u003csxzzsf@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad361c9884e809340f6daca80d56a9e9c871690a",
      "tree": "7ec02c9934964fecdc791a0df0fc722d3bda5c53",
      "parents": [
        "e3288775ff63900fbb7db505f2b9a1bee98f07df"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jul 06 13:05:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 10:30:03 2009 -0700"
      },
      "message": "Remove multiple KERN_ prefixes from printk formats\n\nCommit 5fd29d6ccbc98884569d6f3105aeca70858b3e0f (\"printk: clean up\nhandling of log-levels and newlines\") changed printk semantics.  printk\nlines with multiple KERN_\u003clevel\u003e prefixes are no longer emitted as\nbefore the patch.\n\n\u003clevel\u003e is now included in the output on each additional use.\n\nRemove all uses of multiple KERN_\u003clevel\u003es in formats.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "018e0446890661504783f92388ecce7138c1566d",
      "tree": "d555758047dde4a26b2489d397a5a86be53723b9",
      "parents": [
        "7878cba9f0037f5599004b03a1260b32d9050360"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 26 16:27:10 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:26 2009 +0200"
      },
      "message": "block: get rid of queue-private command filter\n\nThe initial patches to support this through sysfs export were broken\nand have been if 0\u0027ed out in any release. So lets just kill the code\nand reclaim some space in struct request_queue, if anyone would later\nlike to fixup the sysfs bits, the git history can easily restore\nthe removed bits.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "ae03bf639a5027d27270123f5f6e3ee6a412781d",
      "tree": "d705f41a188ad656b1f47f7952626a9f992e3b8f",
      "parents": [
        "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:50 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Use accessor functions for queue limits\n\nConvert all external users of queue limits to using wrapper functions\ninstead of poking the request queue variables directly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e4b636366c00738b9609cda307014d71b1225b7f",
      "tree": "760b67b3624eda62e943e48ce93635c30a5b47bf",
      "parents": [
        "b9ed7252d219c1c663944bf03846eabb515dbe75",
        "279e677faa775ad16e75c32e1bf4a37f8158bc61"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 20:25:34 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.31\n\nConflicts:\n\tdrivers/block/hd.c\n\tdrivers/block/mg_disk.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c3a4d78c580de4edc9ef0f7c59812fb02ceb037f",
      "tree": "916ca44287100707508678e2cc0eff0c43b9ca39",
      "parents": [
        "9720aef2539c10e3a872e9a92beec225030d99db"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:37 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "block: add rq-\u003eresid_len\n\nrq-\u003edata_len served two purposes - the length of data buffer on issue\nand the residual count on completion.  This duality creates some\nheadaches.\n\nFirst of all, block layer and low level drivers can\u0027t really determine\nwhat rq-\u003edata_len contains while a request is executing.  It could be\nthe total request length or it coulde be anything else one of the\nlower layers is using to keep track of residual count.  This\ncomplicates things because blk_rq_bytes() and thus\n[__]blk_end_request_all() relies on rq-\u003edata_len for PC commands.\nDrivers which want to report residual count should first cache the\ntotal request length, update rq-\u003edata_len and then complete the\nrequest with the cached data length.\n\nSecondly, it makes requests default to reporting full residual count,\nie. reporting that no data transfer occurred.  The residual count is\nan exception not the norm; however, the driver should clear\nrq-\u003edata_len to zero to signify the normal cases while leaving it\nalone means no data transfer occurred at all.  This reverse default\nbehavior complicates code unnecessarily and renders block PC on some\ndrivers (ide-tape/floppy) unuseable.\n\nThis patch adds rq-\u003eresid_len which is used only for residual count.\n\nWhile at it, remove now unnecessasry blk_rq_bytes() caching in\nide_pc_intr() as rq-\u003edata_len is not changed anymore.\n\nBoaz\t: spotted missing conversion in osd\nSergei\t: spotted too early conversion to blk_rq_bytes() in ide-tape\n\n[ Impact: cleanup residual count handling, report 0 resid by default ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Doug Gilbert \u003cdgilbert@interlog.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "44347d947f628060b92449702071bfe1d31dfb75",
      "tree": "c6ed74610d5b3295df4296659f80f5feb94b28cc",
      "parents": [
        "d94fc523f3c35bd8013f04827e94756cbc0212f4",
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:34 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on a .30-rc1 base and was missing out on\n              on a handful of tracing fixes present in .30-rc5-almost.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7ee4cc04b058d1eae9c1ac359031301b1798e3f",
      "tree": "3edc28a8f84a84b9893813e047b805e2915528c5",
      "parents": [
        "96bcc722c47d07b6fd05c9d0cb3ab8ea5574c5b1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Apr 04 00:35:42 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 27 09:38:11 2009 -0500"
      },
      "message": "[SCSI] sg: return EFAULT for an invalid user address\n\nblk_rq_unmap_user() returns EFAULT if a program passes an invalid\naddress to kernel (the kernel fails to copy data to user space). sg\nneeds to pass the returned value to user space instead of ignoring\nit. Before the block layer conversion, sg returns EFAULT\nproperly. This restores the old behavior.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d0deef5b14af7d5bbd0003a0a2a1a32326e20a6d",
      "tree": "de1d438935a4cc50dd9d7e0ccccc3cfc5c7e6c06",
      "parents": [
        "9cfe06f8cd5c8c3ad6ab323973e87dde670642b8"
      ],
      "author": {
        "name": "Shawn Du",
        "email": "duyuyang@gmail.com",
        "time": "Tue Apr 14 13:58:56 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 16 10:10:57 2009 +0200"
      },
      "message": "blktrace: support per-partition tracing\n\nThough one can specify \u0027-d /dev/sda1\u0027 when using blktrace, it still\ntraces the whole sda.\n\nTo support per-partition tracing, when we start tracing, we initialize\nbt-\u003estart_lba and bt-\u003eend_lba to the start and end sector of that\npartition.\n\nNote some actions are per device, thus we don\u0027t filter 0-sector events.\n\nThe original patch and discussion can be found here:\n\thttp://marc.info/?l\u003dlinux-btrace\u0026m\u003d122949374214540\u0026w\u003d2\n\nSigned-off-by: Shawn Du \u003cduyuyang@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nLKML-Reference: \u003c49E42620.4050701@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "015640edb1f346e0b2eda703587c4cd1c310ec1d",
      "tree": "fd7016b45278d26eac055f1f613632b40832f46e",
      "parents": [
        "1beb6fa85ca9afaee109811a3f4a984232a32a4f"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Apr 03 19:28:06 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 10:23:16 2009 -0500"
      },
      "message": "[SCSI] sg: fix q-\u003equeue_lock on scsi_error_handler path\n\nsg_rq_end_io() is called via rq-\u003eend_io. In some rare cases,\nsg_rq_end_io calls blk_put_request/blk_rq_unmap_user (when a program\nissuing a command has gone before the command completion; e.g. by\ninterrupting a program issuing a command before the command\ncompletes).\n\nWe can\u0027t call blk_put_request/blk_rq_unmap_user in interrupt so the\ncommit c96952ed7031e7c576ecf90cf95b8ec099d5295a uses\nexecute_in_process_context().\n\nThe problem is that scsi_error_handler() calls rq-\u003eend_io too. We\ncan\u0027t call blk_put_request/blk_rq_unmap_user too in this path (we hold\nq-\u003equeue_lock).\n\nTo avoid the above problem, in these rare cases, this patch always\nuses schedule_work() instead of execute_in_process_context().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nCc: Stable Tree \u003cstable@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "0fdf96b67ac2649cc1ddb29b316a0db11586c6a8",
      "tree": "e70a5d8babcae1ec25c0df0722291b31df62a7cb",
      "parents": [
        "f894e74dc1983062d30d4e1b79bdb90b8a847f52"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Apr 03 09:12:20 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 03 09:25:23 2009 -0500"
      },
      "message": "[SCSI] sg: fix iovec bugs introduced by the block layer conversion\n\n- needs to use copy_from_user for iovec before passing it to\nblk_rq_map_user_iov().\n\n- before the block layer conversion, if -\u003edxfer_len and sum of iovec\ndisagrees, the shorter one wins. However, currently sg returns\n-EINVAL. This restores the old behavior.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nCc: stable@kernel.org\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d54b3538b0bfb31351d02d1669d4a978d2abfc5f",
      "tree": "5ce539ecba525b30bbfb1c46c55487099264947e",
      "parents": [
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a",
        "af50bb993dfa673cf21ab812efe620d7e0c36319"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (119 commits)\n  [SCSI] scsi_dh_rdac: Retry for NOT_READY check condition\n  [SCSI] mpt2sas: make global symbols unique\n  [SCSI] sd: Make revalidate less chatty\n  [SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices\n  [SCSI] sd: Refactor sd_read_capacity()\n  [SCSI] mpt2sas v00.100.11.15\n  [SCSI] mpt2sas: add MPT2SAS_MINOR(221) to miscdevice.h\n  [SCSI] ch: Add scsi type modalias\n  [SCSI] 3w-9xxx: add power management support\n  [SCSI] bsg: add linux/types.h include to bsg.h\n  [SCSI] cxgb3i: fix function descriptions\n  [SCSI] libiscsi: fix possbile null ptr session command cleanup\n  [SCSI] iscsi class: remove host no argument from session creation callout\n  [SCSI] libiscsi: pass session failure a session struct\n  [SCSI] iscsi lib: remove qdepth param from iscsi host allocation\n  [SCSI] iscsi lib: have lib create work queue for transmitting IO\n  [SCSI] iscsi class: fix lock dep warning on logout\n  [SCSI] libiscsi: don\u0027t cap queue depth in iscsi modules\n  [SCSI] iscsi_tcp: replace scsi_debug/tcp_debug logging with iscsi conn logging\n  [SCSI] libiscsi_tcp: replace tcp_debug/scsi_debug logging with session/conn logging\n  ...\n"
    },
    {
      "commit": "60aa49243d09afc873f082567d2e3c16634ced84",
      "tree": "bb7c8d9668b35a3aa4e90d0a62500ac9d3e67f7f",
      "parents": [
        "76398425bb06b07cc3a3b1ce169c67dc9d6874ed"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sun Feb 01 14:52:56 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:34:35 2009 -0600"
      },
      "message": "Rationalize fasync return values\n\nMost fasync implementations do something like:\n\n     return fasync_helper(...);\n\nBut fasync_helper() will return a positive value at times - a feature used\nin at least one place.  Thus, a number of other drivers do:\n\n     err \u003d fasync_helper(...);\n     if (err \u003c 0)\n             return err;\n     return 0;\n\nIn the interests of consistency and more concise code, it makes sense to\nmap positive return values onto zero where -\u003efasync() is called.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "3442f802a8169a0c18d411d95f0e71b9205ed607",
      "tree": "80ea3057877ed78be770e9e9edcc6b51b5830649",
      "parents": [
        "b2ed6c69aa3c1a3f496e2a72f770d53069371df3"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Feb 16 13:26:53 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:14 2009 -0500"
      },
      "message": "[SCSI] sg: remove the own list management for struct sg_fd\n\nThis replaces the own list management for struct sg_fd with the\nstandard list_head structure.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b2ed6c69aa3c1a3f496e2a72f770d53069371df3",
      "tree": "8dd6fc39ab31001b16e34a81ff185a840ff8859b",
      "parents": [
        "2134bc72ddc04d412c0c2ce93a9c6f19de6cac35"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Feb 12 02:42:57 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:14 2009 -0500"
      },
      "message": "[SCSI] sg: use ALIGN macro\n\nThis changes sg_build_indirect() to use ALIGN macro instead of\ncalculating by hand.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2134bc72ddc04d412c0c2ce93a9c6f19de6cac35",
      "tree": "13015f5af2490469f875aeb8bc21464ea27db171",
      "parents": [
        "aa6cd29b72a5d8e6e5c8f536bc48693824ebfe09"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Feb 12 02:42:56 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:13 2009 -0500"
      },
      "message": "[SCSI] sg: remove unnecessary function declarations\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "c96952ed7031e7c576ecf90cf95b8ec099d5295a",
      "tree": "4217498cf82131f6c870b0f92fea7039596fa0e7",
      "parents": [
        "a3b7aeaba29e3dd995ece05ba50db9e0650c16b6"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed Feb 04 11:36:27 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:12 2009 -0500"
      },
      "message": "[SCSI] sg: avoid blk_put_request/blk_rq_unmap_user in interrupt\n\nThis fixes the following oops:\n\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d123316111415677\u0026w\u003d2\n\nYou can reproduce this bug by interrupting a program before a sg\nresponse completes. This leads to the special sg state (the orphan\nstate), then sg calls blk_put_request in interrupt (rq-\u003eend_io).\n\nThe above bug report shows the recursive lock problem because sg calls\nblk_put_request in interrupt. We could call __blk_put_request here\ninstead however we also need to handle blk_rq_unmap_user here, which\ncan\u0027t be called in interrupt too.\n\nIn the orphan state, we don\u0027t need to care about the data transfer\n(the program revoked the command) so adding \u0027just free the resource\u0027\nmode to blk_rq_unmap_user is a possible option.\n\nI prefer to avoid complicating the blk mapping API when possible. I\nchange the orphan state to call sg_finish_rem_req via\nexecute_in_process_context. We hold sg_fd-\u003ekref so sg_fd doesn\u0027t go\naway until keventd_wq finishes our work. copy_from_user/to_user fails\nso blk_rq_unmap_user just frees the resource without the data\ntransfer.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a2dd3b4cea335713b58996bb07b3abcde1175f47",
      "tree": "3097816f8abd5fb57dda669d3e776c35f1455f43",
      "parents": [
        "c6517b7942fad663cc1cf3235cbe4207cf769332"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Tue Jan 20 17:00:09 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:05 2009 -0500"
      },
      "message": "[SCSI] sg: fix races with ioctl(SG_IO)\n\nsg_io_owned needs to be set before the command is sent to the midlevel;\notherwise, a quickly-completing command may cause a different CPU\nto see \"srp-\u003edone \u003d\u003d 1 \u0026\u0026 !srp-\u003esg_io_owned\", which would lead to\nincorrect behavior.\n\nCheck srp-\u003edone and set srp-\u003eorphan while holding rq_list_lock to\nprevent races with sg_rq_end_io().\n\nThere is no need to check sfp-\u003eclosed from read/write/ioctl/poll/etc.\nsince the kernel guarantees that this won\u0027t happen.\n\nThe usefulness of sg_srp_done() was questionable before; now it is\ndefinitely not needed.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "c6517b7942fad663cc1cf3235cbe4207cf769332",
      "tree": "63af1b1aa434d756d7b7128f9e5d77bcdcbdf15e",
      "parents": [
        "bd5cd9cdc5379088b7e4e9a1757a1d101223a005"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Wed Jan 21 14:45:50 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:04 2009 -0500"
      },
      "message": "[SCSI] sg: fix races during device removal\n\nsg has the following problems related to device removal:\n\n* opening a sg fd races with removing a device\n* closing a sg fd races with removing a device\n* /proc/scsi/sg/* access races with removing a device\n* command completion races with removing a device\n* command completion races with closing a sg fd\n* can rmmod sg with active commands\n\nThese problems can cause kernel oopses, memory-use-after-free, or\ndouble-free errors.  This patch fixes these problems by using krefs\nto manage the lifetime of sg_device and sg_fd.\n\nEach command submitted to the midlevel holds a reference to sg_fd\nuntil the completion callback.  This ensures that sg_fd doesn\u0027t go\naway if the fd is closed with commands still outstanding.\n\nsg_fd gets the reference of sg_device (with scsi_device) and also\nmakes sure that the sg module doesn\u0027t go away.\n\n/proc/scsi/sg/* functions don\u0027t play nicely with krefs because they\ngive information about sg_fds which have been closed but not yet\nfreed due to still having outstanding commands and sg_devices which\nhave been removed but not yet freed due to still being referenced\nby one or more sg_fds.  To deal with this safely without removing\nfunctionality, /proc functions now access sg_device and sg_fd while\nholding a lock instead of using kref_get()/kref_put().\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "76e3a19d0691bbfcc559ce77ab3004818fab8f22",
      "tree": "6013a3ec01ea3f269280740346b98875c35a5478",
      "parents": [
        "c2f9e49f9bbfa2e111ab1e1628b96b560bae7cec"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mpeschke@linux.vnet.ibm.com",
        "time": "Fri Jan 30 15:46:23 2009 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 10 11:15:17 2009 -0500"
      },
      "message": "[SCSI] sg: fix device number in blktrace data\n\nHi,\n\nwe have run into an issue with blktrace being started for sg devices.\nPlease apply.\n\nThanks,\nMartin\n\nFrom: Martin Peschke \u003cmpeschke@linux.vnet.ibm.com\u003e\n\nThe device number denoting a generic SCSI devices (sg) in a blktrace\ntrace is broken; major and minor are always 0. It looks like\nsdp-\u003edevice-\u003esdev_gendev.devt is not initialized properly.\nThe fix below uses other data to make up a valid device number,\nsimilar to the way an sg device number is generated for sysfs output.\n\nReported-by: Stefan Raspl \u003craspl@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Peschke \u003cmpeschke@linux.vnet.ibm.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "97ae77a1cd332c7b011d71315c8faabce6840c72",
      "tree": "fc243ca28ea474eaf81729079eeb3b259cd1b81b",
      "parents": [
        "56c451f4b583ccdf80c9e676179c9cb49de86745"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 18 14:49:38 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 11:10:35 2009 -0600"
      },
      "message": "[SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE\n\nThe commit 818827669d85b84241696ffef2de485db46b0b5e (block: make\nblk_rq_map_user take a NULL user-space buffer) extended\nblk_rq_map_user to accept a NULL user-space buffer with a READ\ncommand. It was necessary to convert sg to use the block layer mapping\nAPI.\n\nThis patch extends blk_rq_map_user again for a WRITE command. It is\nnecessary to convert st and osst drivers to use the block layer\napping API.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "56c451f4b583ccdf80c9e676179c9cb49de86745",
      "tree": "7ad9daeafb88e3c4390bf7a2db0c203fe2642728",
      "parents": [
        "e623ddb4e940b266adc77ba1cc28a3554aa90e79"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Dec 18 14:49:37 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 02 11:10:08 2009 -0600"
      },
      "message": "[SCSI] block: fix the partial mappings with struct rq_map_data\n\nThis fixes bio_copy_user_iov to properly handle the partial mappings\nwith struct rq_map_data (which only sg uses for now but st and osst\nwill shortly). It adds the offset member to struct rq_map_data and\nchanges blk_rq_map_user to update it so that bio_copy_user_iov can add\nan appropriate page frame via bio_add_pc_page().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e915e872ed921d707bc32b3f2184d43abfa8c9e2",
      "tree": "698142e0a56622c3a3c0740522537dbff703732a",
      "parents": [
        "5842e51ff2e8d660756248db80ad24e4f41977d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 02 17:16:41 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:47:12 2008 -0400"
      },
      "message": "[PATCH] switch sg_scsi_ioctl() to passing fmode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d73a1a674b5383bb3b38ae3dd625504ffc623d90",
      "tree": "40c102d47d3bb2b37bb7f242f537d888b50f5a7a",
      "parents": [
        "ea9e42f627a45f979b4977009724eb114406e3c7"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 20:03:34 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:44 2008 -0700"
      },
      "message": "device create: scsi: convert device_create_drvdata to device_create\n\nNow that device_create() has been audited, rename things back to the\noriginal call to be sane.\n\nCc: James E.J. Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4677735f03f5b6b6f2182f457a921855cadfb85b",
      "tree": "a5fc6c16ccb0a2050ea714f93f1ad79a8d1f9689",
      "parents": [
        "0b6cb26c6686f1f24607c41f0a6d21ce54191710"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:08 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:16 2008 +0200"
      },
      "message": "sg: remove unnecessary blk_rq_unmap_user\n\nblk_rq_unmap_user in sg_finish_rem_req can take care of all the cases.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0b6cb26c6686f1f24607c41f0a6d21ce54191710",
      "tree": "9b941224d5d2782e484c00e27e74aa2c2436e928",
      "parents": [
        "c3919af2354fff673026dcbeac6f009d2ce5ceee"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:07 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:15 2008 +0200"
      },
      "message": "sg: remove sg_read_xfer\n\nsg_read_xfer was used to copy data to user space for READ\ncommands. blk_rq_unmap_user does the job so sg_read_xfer does nothing\nuseful.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c3919af2354fff673026dcbeac6f009d2ce5ceee",
      "tree": "8504a35a3a247ec2a40578754aff2f3128294749",
      "parents": [
        "626710c9d665ff381c7ec666b6a023f064ca5fef"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:06 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove sg_write_xfer\n\nsg_write_xfer was used to copy data from user space for WRITE\ncommands. blk_rq_map_user_iov and blk_rq_map_user do the job so\nsg_write_xfer does nothing useful.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "626710c9d665ff381c7ec666b6a023f064ca5fef",
      "tree": "011b7b58f3a5868439eab36fd3b3e90952ccbef0",
      "parents": [
        "44c7b0eaa041007066e30ab4869d5bbf8dad5989"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: incorporate sg_build_direct into sg_start_req\n\nCalling blk_rq_map_user() at a single place is better than at\ndifferent two places. It makes the code more understandable.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "44c7b0eaa041007066e30ab4869d5bbf8dad5989",
      "tree": "4c127ab80d271c86c38ea3a382667e88f00b83ca",
      "parents": [
        "fd1c1de0766844af4cfc39298e109ad273e72a9e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:04 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove __sg_start_req\n\n__sg_start_req() was used temporarily to call blk_get_request() during\nconverting sg to use the block layer.\n\nNow sg always calls blk_get_request() so we can move blk_get_request()\nto sg_start_req(). We don\u0027t need __sg_start_req anymore.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd1c1de0766844af4cfc39298e109ad273e72a9e",
      "tree": "ae4d03b3898a2ea65f99868660993b28b64a1542",
      "parents": [
        "7e56cb0f7e7a132803ffefa0a5a15fb2079afaf1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:03 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove b_malloc_len in sg_scatter_hold struct\n\nIt\u0027s not used for anything useful after the block layer conversion.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7e56cb0f7e7a132803ffefa0a5a15fb2079afaf1",
      "tree": "3747a89cca01a9ed95345981a194ee8802972df1",
      "parents": [
        "a91a3a20e06621b9931793888583efe37db4e4e8"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:02 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: remove SG_ALLOW_DIO_CODE define\n\nsg had lots of the own functions for the direct IO but now sg uses the\nblock layer functions for it. There are only five lines for the direct\nIO. SG_ALLOW_DIO_CODE define was used to compile out the direct IO\ncode but we don\u0027t need the define. If someone wants to remove the\ndirect IO code, he can do easily without the define.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a91a3a20e06621b9931793888583efe37db4e4e8",
      "tree": "af515f0e87c438218e224e959692dbe3879248fb",
      "parents": [
        "224cb3e981f1b2f9f93dbd49eaef505d17d894c2"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 22:50:01 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:14 2008 +0200"
      },
      "message": "sg: rename sg_cmd_done sg_rq_end_io\n\nold sg_rq_end_io() was used to wrap sg_cmd_done during converting sg\nto use the block layer (in order to cover the difference\nscsi_execute_async and blk_execute_rq_nowait). Now we don\u0027t need it so\nlet\u0027s remove it.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fad7f01e61bf737fe8a3740d803f000db57ecac6",
      "tree": "d72959e6b5043bf3436f122ebcddb0c8f41d1acf",
      "parents": [
        "818827669d85b84241696ffef2de485db46b0b5e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 02 16:20:20 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:12 2008 +0200"
      },
      "message": "sg: set dxferp to NULL for READ with the older SG interface\n\nWith the older SG interface, we don\u0027t know a user-space address to\ntrasfer data when executing a SCSI command. So we can\u0027t pass a\nuser-space address to blk_rq_map_user.\n\nThis patch fixes sg to pass a NULL user-space address to\nblk_rq_map_user so that it just sets up a request and bios with page\nframes propely without data transfer.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "01cfcddd98f09e05a2e36031654ed46643b76f23",
      "tree": "58bfbd3d70363e5a8d1c5822d27b29e2be93ad40",
      "parents": [
        "879040742cf09f2360a9ac41846288707e4e567c"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 15:05:59 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:11 2008 +0200"
      },
      "message": "sg: use blk_rq_aligned helper function\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "10db10d144c0248f285242f79daf6b9de6b00a62",
      "tree": "315806c8e09f6007bdc0c1dfeea1313f15815bfd",
      "parents": [
        "6e5a30cba5e7c03b2cd564e968f1dd667a0f7c42"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Aug 29 12:32:18 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the indirect IO path to use the block layer\n\nThis patch converts the indirect IO path (including mmap IO and old\nstruct sg_header) to use the block layer functions (blk_get_request,\nblk_execute_rq_nowait, blk_rq_map_user, etc) instead of\nscsi_execute_async().\n\n[Jens: fixed compile error with SCSI logging enabled]\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6e5a30cba5e7c03b2cd564e968f1dd667a0f7c42",
      "tree": "4a48fa4edc2a285a860b6f6771ae732c036143a5",
      "parents": [
        "10865dfa34e7552c4c64606edcdf1e21a110c985"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:08 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the direct IO path to use the block layer\n\nThis patch converts the direct IO path (SG_FLAG_DIRECT_IO) to use the\nblock layer functions (blk_get_request, blk_execute_rq_nowait,\nblk_rq_map_user, etc) instead of scsi_execute_async().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "10865dfa34e7552c4c64606edcdf1e21a110c985",
      "tree": "fe39b3528b667b3a0690246e7c05048dfcf8fd09",
      "parents": [
        "152e283fdfea0cd11e297d982378b55937842dde"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Aug 28 16:17:07 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:10 2008 +0200"
      },
      "message": "sg: convert the non-data path to use the block layer\n\nThis patch converts the non data path to use the block layer functions\n(blk_get_request, blk_execute_rq_nowait, etc) instead of uses\nscsi_execute_async().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "14e507b852e7dcea142b98757181bfa785cb4c05",
      "tree": "ef8cdb387c26d9ffc23354653b072818e884d9f8",
      "parents": [
        "abf5439370491dd6fbb4fe1a7939680d2a9bc9d4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 26 18:03:24 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "sg: restore command permission for TYPE_SCANNER\n\nsg allowed any command for TYPE_SCANNER. The cmd_filter patchset\ndoesn\u0027t. We can\u0027t change sg\u0027s permission since it might break the\nexisting software.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "abf5439370491dd6fbb4fe1a7939680d2a9bc9d4",
      "tree": "aa3630557fe4a4bc6313617f5770af30eec68515",
      "parents": [
        "1941246dd98089dd637f44d3bd4f6cc1c61aa9e4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Aug 16 14:10:05 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 09:50:19 2008 +0200"
      },
      "message": "block: move cmdfilter from gendisk to request_queue\n\ncmd_filter works only for the block layer SG_IO with SCSI block\ndevices. It breaks scsi/sg.c, bsg, and the block layer SG_IO with SCSI\ncharacter devices (such as st). We hit a kernel crash with them.\n\nThe problem is that cmd_filter code accesses to gendisk (having struct\nblk_scsi_cmd_filter) via inode-\u003ei_bdev-\u003ebd_disk. It works for only\nSCSI block device files. With character device files, inode-\u003ei_bdev\nleads you to struct cdev. inode-\u003ei_bdev-\u003ebd_disk-\u003eblk_scsi_cmd_filter\nisn\u0027t safe.\n\nSCSI ULDs don\u0027t expose gendisk; they keep it private. bsg needs to be\nindependent on any protocols. We shouldn\u0027t change ULDs to expose their\ngendisk.\n\nThis patch moves struct blk_scsi_cmd_filter from gendisk to\nrequest_queue, a common object, which eveyone can access to.\n\nThe user interface doesn\u0027t change; users can change the filters via\n/sys/block/. gendisk has a pointer to request_queue so the cmd_filter\ncode accesses to struct blk_scsi_cmd_filter.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce",
      "tree": "d3ae998f9876c72a83a022805103a92111852b21",
      "parents": [
        "e9ba9698187ddbc0c5bfcf41de0349a662d23d02"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:01:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:31:34 2008 -0700"
      },
      "message": "mm: rename page trylock\n\nConverting page lock to new locking bitops requires a change of page flag\noperation naming, so we might as well convert it to something nicer\n(!TestSetPageLocked_Lock \u003d\u003e trylock_page, SetPageLocked \u003d\u003e set_page_locked).\n\nThis also facilitates lockdeping of page lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a93f2f4834f8c126e8d9dd6b368d0b9e21ec3d",
      "tree": "e731456fec0cab1225ad3e806dc8d3efefa0a78b",
      "parents": [
        "260eddf4391f162a69d1d163729249635fa7a78f",
        "fe9233fb6914a0eb20166c967e3020f7f0fba2c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 18:58:04 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (102 commits)\n  [SCSI] scsi_dh: fix kconfig related build errors\n  [SCSI] sym53c8xx: Fix bogus sym_que_entry re-implementation of container_of\n  [SCSI] scsi_cmnd.h: remove double inclusion of linux/blkdev.h\n  [SCSI] make struct scsi_{host,target}_type static\n  [SCSI] fix locking in host use of blk_plug_device()\n  [SCSI] zfcp: Cleanup external header file\n  [SCSI] zfcp: Cleanup code in zfcp_erp.c\n  [SCSI] zfcp: zfcp_fsf cleanup.\n  [SCSI] zfcp: consolidate sysfs things into one file.\n  [SCSI] zfcp: Cleanup of code in zfcp_aux.c\n  [SCSI] zfcp: Cleanup of code in zfcp_scsi.c\n  [SCSI] zfcp: Move status accessors from zfcp to SCSI include file.\n  [SCSI] zfcp: Small QDIO cleanups\n  [SCSI] zfcp: Adapter reopen for large number of unsolicited status\n  [SCSI] zfcp: Fix error checking for ELS ADISC requests\n  [SCSI] zfcp: wait until adapter is finished with ERP during auto-port\n  [SCSI] ibmvfc: IBM Power Virtual Fibre Channel Adapter Client Driver\n  [SCSI] sg: Add target reset support\n  [SCSI] lib: Add support for the T10 (SCSI) Data Integrity Field CRC\n  [SCSI] sd: Move scsi_disk() accessor function to sd.h\n  ...\n"
    },
    {
      "commit": "d1794f2c5b5817eb79ccc5e00701ca748d1b073a",
      "tree": "5a4c98e694e88a8c82f342d0cc9edb2a4cbbef36",
      "parents": [
        "a41eebab7537890409ea9dfe0fcda9b5fbdb090d",
        "2fceef397f9880b212a74c418290ce69e7ac00eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:48:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:48:31 2008 -0700"
      },
      "message": "Merge branch \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6\n\n* \u0027bkl-removal\u0027 of git://git.lwn.net/linux-2.6: (146 commits)\n  IB/umad: BKL is not needed for ib_umad_open()\n  IB/uverbs: BKL is not needed for ib_uverbs_open()\n  bf561-coreb: BKL unneeded for open()\n  Call fasync() functions without the BKL\n  snd/PCM: fasync BKL pushdown\n  ipmi: fasync BKL pushdown\n  ecryptfs: fasync BKL pushdown\n  Bluetooth VHCI: fasync BKL pushdown\n  tty_io: fasync BKL pushdown\n  tun: fasync BKL pushdown\n  i2o: fasync BKL pushdown\n  mpt: fasync BKL pushdown\n  Remove BKL from remote_llseek v2\n  Make FAT users happier by not deadlocking\n  x86-mce: BKL pushdown\n  vmwatchdog: BKL pushdown\n  vmcp: BKL pushdown\n  via-pmu: BKL pushdown\n  uml-random: BKL pushdown\n  uml-mmapper: BKL pushdown\n  ...\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "39120e11705782c77d3a47d7d2927676fd8e3aaa",
      "tree": "b9f897de2a45928146d362ee01a583c1c3f2fa8a",
      "parents": [
        "f11f594edba7f689af9792a5673ed59d660ad371"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Tue Jul 01 13:03:19 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat Jul 12 08:22:32 2008 -0500"
      },
      "message": "[SCSI] sg: Add target reset support\n\nAdds support for target reset to SG_SCSI_RESET.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "06a452e5b95eb669b7ad414ccf587dfc2d91b217",
      "tree": "44675dae6a98b414dc3d7778ef8a74da00fee92a",
      "parents": [
        "2b272d4f7953a73ea1c1f7ba33d5a2d7439ce71b"
      ],
      "author": {
        "name": "Adel Gadllah",
        "email": "adel.gadllah@gmail.com",
        "time": "Fri Jun 27 09:16:17 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:14 2008 +0200"
      },
      "message": "cmdfilter: extend default read filter\n\nThis patch adds the commands that the former sg filter allowed for read\naccess to the cmdfilter to keep userspace apps that rely on them working.\n\nSigned-off-by: Adel Gadllah \u003cadel.gadllah@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2b272d4f7953a73ea1c1f7ba33d5a2d7439ce71b",
      "tree": "1a0de5752bea9c56b669a2163f80dbf5ab1b4b53",
      "parents": [
        "07359fc61bb8ed786f96a1c24cca6f94dd17e329"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 19:45:54 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:14 2008 +0200"
      },
      "message": "sg: fix odd style (extra parenthesis) introduced by cmd filter patch\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0b07de85a76e1346e675f0e98437378932473df7",
      "tree": "b86e5e0be27679c408ab525534c76162754129b9",
      "parents": [
        "6e2401ad6f33de15ff00f78b88159f00a14f3b35"
      ],
      "author": {
        "name": "Adel Gadllah",
        "email": "adel.gadllah@gmail.com",
        "time": "Thu Jun 26 13:48:27 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:14 2008 +0200"
      },
      "message": "allow userspace to modify scsi command filter on per device basis\n\nThis patch exports the per-gendisk command filter to user space through\nsysfs, so it can be changed by the system administrator.\nAll users of the old cmd filter have been converted to use the new one.\n\nOriginal patch from Peter Jones.\n\nSigned-off-by: Adel Gadllah \u003cadel.gadllah@gmail.com\u003e\nSigned-off-by: Peter Jones \u003cpjones@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eb09d3d4ee09b25876db549b6d5221610216e105",
      "tree": "6ae407c664fee1be448f03db2d75bafb9941e13a",
      "parents": [
        "04f4ac9d1bb8a9103609ce8e927f8e98826ce339"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Thu May 15 12:22:06 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:49 2008 -0600"
      },
      "message": "sg: cdev lock_kernel() pushdown\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "24b42566c3fcbb5a9011d1446783d0f5844ccd45",
      "tree": "0e1de28631d02446580adf5fbb98feb981b20b5a",
      "parents": [
        "c013d040b70bc2bff5465917ebb255a70b650396"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 16 17:55:12 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 20 13:31:56 2008 -0700"
      },
      "message": "SCSI: fix race in device_create\n\nThere is a race from when a device is created with device_create() and\nthen the drvdata is set with a call to dev_set_drvdata() in which a\nsysfs file could be open, yet the drvdata will be NULL, causing all\nsorts of bad things to happen.\n\nThis patch fixes the problem by using the new function,\ndevice_create_drvdata().  It fixes the problem in all of the scsi\ndrivers that need it.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Doug Gilbert \u003cdgilbert@interlog.com\u003e\nCc: James E.J. Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a973909fc32be90884280b7a8cd2f2e093c97890",
      "tree": "32ceca146f9a6de03bb7cf91a141d0f445da04ab",
      "parents": [
        "16e70f64a9358133a14872eb72cf39b6f38b6212"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:21 2008 -0700"
      },
      "message": "scsi: use non-racy method for proc entries creation\n\nUse proc_create() to make sure that -\u003eproc_fops be setup before gluing PDE to\nmain tree.\n\nAdd correct -\u003eowner to proc_fops to fix reading/module unloading race.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\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": "ee959b00c335d7780136c5abda37809191fe52c3",
      "tree": "7775f3b274fd8caf5e7e5154fea89e96f2babd94",
      "parents": [
        "56d110e852b0b1c85ad6c9bfe1cb4473ceb16402"
      ],
      "author": {
        "name": "Tony Jones",
        "email": "tonyj@suse.de",
        "time": "Fri Feb 22 00:13:36 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:33 2008 -0700"
      },
      "message": "SCSI: convert struct class_device to struct device\n\nIt\u0027s big, but there doesn\u0027t seem to be a way to split it up smaller...\n\nSigned-off-by: Tony Jones \u003ctonyj@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a13ff0bb3feda8b1fcffc69951320277ed7c4101",
      "tree": "e9f1179086614b5c435d7a81e19f99746da17214",
      "parents": [
        "c00f08d705e149fbfaf7a252b4d4fbb7affdcc96"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Feb 07 18:46:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:09:22 2008 -0800"
      },
      "message": "Convert SG from nopage to fault.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6da127ad0918f93ea93678dad62ce15ffed18797",
      "tree": "b2bf9ad228f18c643342ad376136d2f6b4be4137",
      "parents": [
        "91525300baf162e83e923b09ca286f9205e21522"
      ],
      "author": {
        "name": "Christof Schmitt",
        "email": "christof.schmitt@de.ibm.com",
        "time": "Fri Jan 11 10:09:43 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:04:46 2008 +0100"
      },
      "message": "blktrace: Add blktrace ioctls to SCSI generic devices\n\nSince the SCSI layer uses the request queues from the block layer, blktrace can\nalso be used to trace the requests to all SCSI devices (like SCSI tape drives),\nnot only disks. The only missing part is the ioctl interface to start and stop\ntracing.\n\nThis patch adds the SETUP, START, STOP and TEARDOWN ioctls from blktrace to the\nsg device files. With this change, blktrace can be used for SCSI devices like\nfor disks, e.g.: blktrace -d /dev/sg1 -o - | blkparse -i -\n\nSigned-off-by: Christof Schmitt \u003cchristof.schmitt@de.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53474c042c0e1be39557474c945ad4a8e653ad46",
      "tree": "52d7719a849d067d2cf837d90d5345600bbe7108",
      "parents": [
        "90c18f3c280f80e0bfbab7c1fc4b282842ccb853"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Tue Jan 22 15:25:49 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 13:40:55 2008 -0600"
      },
      "message": "[SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices\n\nThe patch \"[SCSI] sg: use idr to replace static arrays\" in 2.6.24-rc1\ncauses a bogus line to appear in /proc/scsi/sg/devices containing\n\"-1 -1 -1 -1 -1 -1 -1 -1 -1\" when there are no SCSI devices in the\nsystem.  In 2.6.23, /proc/scsi/sg/devices is empty when there are no\nSCSI devices in the system.  A similar problem exists with\n/proc/scsi/sg/device_strs.  The following patch restores the behavior\nof 2.6.23.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d07e03610ca1f4be373f32ad5b25ac00dbdb867d",
      "tree": "017f10294f9e936acd51ca2dfb847465da777dc7",
      "parents": [
        "a24484f281dda11e4fc0041a51907d3564da3d7f"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jan 15 13:18:00 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 11:29:28 2008 -0600"
      },
      "message": "[SCSI] sg: handle class_device_create failure properly\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "a24484f281dda11e4fc0041a51907d3564da3d7f",
      "tree": "4ce9a5b3f7911d417e16dddf11a9b23f863cce0b",
      "parents": [
        "d814c5173c671cf2c88d4e07db01b13312467ecd"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jan 15 13:17:47 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 11:29:28 2008 -0600"
      },
      "message": "[SCSI] sg: set class_data after success\n\nIf cdev_add fails in sg_add, sg_remove crashes since class_data is\nbogus.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "eaa3e22e8d32bf7a6176f04efad90f4a5aa67f58",
      "tree": "e07c69ade8e52ee383f3f169fcc7b7e6b88cca83",
      "parents": [
        "d496f94d22d1491ffb25f4000e85f7a4ecf7f2c4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sun Jan 13 17:41:43 2008 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 11:29:27 2008 -0600"
      },
      "message": "[SCSI] sg: Only print SCSI data direction warning once for a command\n\nWhen I use cdparanoia my logs get spammed a lot by\n\nprintk: 464 messages suppressed.\nsg_write: data in/out 30576/30576 bytes for SCSI command 0xbe--guessing data in;\n   program cdparanoia not setting count and/or reply_len properly\nprintk: 1078 messages suppressed.\n\nand many more of those. With this patch the message is only printed once\nfor a command in a row.\n\nv1-\u003ev2: Prevent rate limit messages too (pointed out by jejb)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "30fa0d0f0c0ab2aa0d4c2f88eda49eaa19ea6f8d",
      "tree": "1d6ef70f9e3b512c34c5ae7082eccf8464801f43",
      "parents": [
        "acd054a5ef401e03e0047b487e572442614f81e5"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Fri Oct 26 14:00:14 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 29 09:18:03 2007 +0100"
      },
      "message": "Initialise scatter/gather list in sg driver\n\nAfter turning on DEBUG_SG I hit a fail:\n\nkernel BUG at include/linux/scatterlist.h:50!\n\n\tsg_build_indirect\n\tsg_build_reserve\n\tsg_open\n\tchrdev_open\n\t__dentry_open\n\tdo_filp_open\n\tdo_sys_open\n\nWe should initialise the sg list when we allocate it in sg_build_sgat.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "642f149031d70415d9318b919d50b71e4724adbd",
      "tree": "e792ad29dedffc6756d55e9d63e18ada35515b4b",
      "parents": [
        "bd6dee6f30a0f6943df190b387b5f8fe98a848f3"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 24 11:20:47 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 24 11:20:47 2007 +0200"
      },
      "message": "SG: Change sg_set_page() to take length and offset argument\n\nMost drivers need to set length and offset as well, so may as well fold\nthose three lines into one.\n\nAdd sg_assign_page() for those two locations that only needed to set\nthe page, where the offset/length is set outside of the function context.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "45711f1af6eff1a6d010703b4862e0d2b9afd056",
      "tree": "3d0048f46e3df9d217d56127462ebe680348bd5a",
      "parents": [
        "78c2f0b8c285c5305b3e67b0595200541e15eb43"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 22 21:19:53 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 22 21:19:53 2007 +0200"
      },
      "message": "[SG] Update drivers to use sg helpers\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b0f655d0ef02468232b69acad1d935db921db46b",
      "tree": "cd73f2c67dada1eb274edbe40acc240f3156bb93",
      "parents": [
        "852e034de7727f91dd51995c460a04db2955f1b3"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 11 15:01:01 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:14:18 2007 +0200"
      },
      "message": "scsi generic: sg chaining support\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7c07d613d22680f1caf2bd9ee49838ec7730b9da",
      "tree": "61e8161d4ffefec526ad2cfbe0c676072407da4e",
      "parents": [
        "4390e60163979621f59e3a25a260289986eacb85"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@steeleye.com",
        "time": "Sun Aug 05 13:36:11 2007 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.localdomain",
        "time": "Fri Oct 12 14:50:59 2007 -0400"
      },
      "message": "[SCSI] sg: use idr to replace static arrays\n\nsg uses a scheme to reallocate a single contiguous array of all its\npointers for lookup and management.  This didn\u0027t matter too much when sg\ncould only attach 256 nodes, but now the maximum has been bumped up to\n32k we\u0027re starting to push the limits of the maximum allocatable\ncontiguous memory.  The solution to this is to eliminate the static\narray and do everything via idr, which this patch does.\n\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "ea312552e94883efc42cfa4651bcf964f3110564",
      "tree": "a12b5602abef524382c958fc14fd936cb66683cc",
      "parents": [
        "6b7f123f378743d739377871c0cbfbaf28c7d25a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Aug 06 00:31:24 2007 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.localdomain",
        "time": "Fri Oct 12 14:38:28 2007 -0400"
      },
      "message": "[SCSI] sg: increase sglist_len of the sg_scatter_hold structure\n\nunsigned short is too small for sizeof(struct scatterlist) *\nmin(q-\u003emax_hw_segments, q-\u003emax_phys_segments).\n\nThis fixes memory leak with 4096 segments since 16 (likely sg size\nwith x86) * 4096 sets sglist_len to zero.\n\nThis might not happen without sg chaining support.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "fb119935e11b98230f20c500e9f9125ddf0f3a4d",
      "tree": "106c15b2a5e805f91a172ac637525a1cf3bdcbda",
      "parents": [
        "deff2627cda995c926788fd9192337ec3febe7b5"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed May 23 14:41:36 2007 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Mon May 28 09:08:32 2007 -0500"
      },
      "message": "[SCSI] sg: remove unnecessary check\n\ncoverity spotted this (cid #758).  All callers dereference sfp, so we dont\nneed this check.  In addition to this, we dereference it earlier in the\nfunction.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44ec95425c1d9dce6e4638c29e4362cfb44814e7",
      "tree": "6af593dc23a2f7cdb9a0d3ecc46d37aae640c0d8",
      "parents": [
        "1079a2d251f24a7d9e7576217f5f738bc4218337"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Tue Feb 20 11:01:57 2007 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Apr 17 18:09:56 2007 -0400"
      },
      "message": "[SCSI] sg: cap reserved_size values at max_sectors\n\nThis patch (as857) modifies the SG_GET_RESERVED_SIZE and\nSG_SET_RESERVED_SIZE ioctls in the sg driver, capping the values at\nthe device\u0027s request_queue\u0027s max_sectors value.  This will permit\ncdrecord to obtain a legal value for the maximum transfer length,\nfixing Bugzilla #7026.\n\nThe patch also caps the initial reserved_size value.  There\u0027s no\nreason to have a reserved buffer larger than max_sectors, since it\nwould be impossible to use the extra space.\n\nThe corresponding ioctls in the block layer are modified similarly,\nand the initial value for the reserved_size is set as large as\npossible.  This will effectively make it default to max_sectors.\nNote that the actual value is meaningless anyway, since block devices\ndon\u0027t have a reserved buffer.\n\nFinally, the BLKSECTGET ioctl is added to sg, so that there will be a\nuniform way for users to determine the actual max_sectors value for\nany raw SCSI transport.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "7ca63cb470f23a197f187afe936d4bf806197d6e",
      "tree": "530c54ec8418fff6ebd918b486eb2dfde05a1775",
      "parents": [
        "4039c30ef5d9189ff8dc72aaf610d1c933877e20"
      ],
      "author": {
        "name": "Douglas Gilbert",
        "email": "dougg@torque.net",
        "time": "Fri Oct 27 17:47:49 2006 -0400"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Thu Nov 09 14:28:01 2006 +0900"
      },
      "message": "[SCSI] sg: fix incorrect last scatg length\n\nFor certain LLDs the sg driver can cause on oops\nwhen the transfer length is large and not a\nmultiple of PAGE_SIZE.\n\n  ChangeLog:\n    - correct the length of the last scatter gather\n      list element.\n    - fix some printk()s that have the wrong function\n      name.\n\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    }
  ],
  "next": "6460e75a104d10458817d2f5b2fbff775bf0b43a"
}
