)]}'
{
  "log": [
    {
      "commit": "e454cea20bdcff10ee698d11b8882662a0153a47",
      "tree": "f44581fe57787aef0a4f4dc00993a90ea8e688f6",
      "parents": [
        "78f28b7c555359c67c2a0d23f7436e915329421e"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Sep 18 23:01:12 2009 +0200"
      },
      "committer": {
        "name": "Live-CD User",
        "email": "linux@linux.site",
        "time": "Sat Sep 19 12:50:38 2009 -0700"
      },
      "message": "Driver-Core: extend devnode callbacks to provide permissions\n\nThis allows subsytems to provide devtmpfs with non-default permissions\nfor the device node. Instead of the default mode of 0600, null, zero,\nrandom, urandom, full, tty, ptmx now have a mode of 0666, which allows\nnon-privileged processes to access standard device nodes in case no\nother userspace process applies the expected permissions.\n\nThis also fixes a wrong assignment in pktcdvd and a checkpatch.pl complain.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ab86e5765d41a5eb4239a1c04d613db87bea5ed8",
      "tree": "a41224d4874c2f90e0b423786f00bedf6f3e8bfa",
      "parents": [
        "7ea61767e41e2baedd6a968d13f56026522e1207",
        "2b2af54a5bb6f7e80ccf78f20084b93c398c3a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 16 08:27:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 16 08:27:10 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  Driver Core: devtmpfs - kernel-maintained tmpfs-based /dev\n  debugfs: Modify default debugfs directory for debugging pktcdvd.\n  debugfs: Modified default dir of debugfs for debugging UHCI.\n  debugfs: Change debugfs directory of IWMC3200\n  debugfs: Change debuhgfs directory of trace-events-sample.h\n  debugfs: Fix mount directory of debugfs by default in events.txt\n  hpilo: add poll f_op\n  hpilo: add interrupt handler\n  hpilo: staging for interrupt handling\n  driver core: platform_device_add_data(): use kmemdup()\n  Driver core: Add support for compatibility classes\n  uio: add generic driver for PCI 2.3 devices\n  driver-core: move dma-coherent.c from kernel to driver/base\n  mem_class: fix bug\n  mem_class: use minor as index instead of searching the array\n  driver model: constify attribute groups\n  UIO: remove \u0027default n\u0027 from Kconfig\n  Driver core: Add accessor for device platform data\n  Driver core: move dev_get/set_drvdata to drivers/base/dd.c\n  Driver core: add new device to bus\u0027s list before probing\n"
    },
    {
      "commit": "a4dbd6740df0872cdf0a86841f75beec8381964d",
      "tree": "1093687845d89f8397d61e7df1ad8546a5a25225",
      "parents": [
        "5b2ea2f10dbb2fa91d8033993000f8664309395f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Jun 24 10:06:31 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Sep 15 09:50:47 2009 -0700"
      },
      "message": "driver model: constify attribute groups\n\nLet attribute group vectors be declared \"const\".  We\u0027d\nlike to let most attribute metadata live in read-only\nsections... this is a start.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ada3fa15057205b7d3f727bba5cd26b5912e350f",
      "tree": "60962fc9e4021b92f484d1a58e72cd3906d4f3db",
      "parents": [
        "2f82af08fcc7dc01a7e98a49a5995a77e32a2925",
        "5579fd7e6aed8860ea0c8e3f11897493153b10ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (46 commits)\n  powerpc64: convert to dynamic percpu allocator\n  sparc64: use embedding percpu first chunk allocator\n  percpu: kill lpage first chunk allocator\n  x86,percpu: use embedding for 64bit NUMA and page for 32bit NUMA\n  percpu: update embedding first chunk allocator to handle sparse units\n  percpu: use group information to allocate vmap areas sparsely\n  vmalloc: implement pcpu_get_vm_areas()\n  vmalloc: separate out insert_vmalloc_vm()\n  percpu: add chunk-\u003ebase_addr\n  percpu: add pcpu_unit_offsets[]\n  percpu: introduce pcpu_alloc_info and pcpu_group_info\n  percpu: move pcpu_lpage_build_unit_map() and pcpul_lpage_dump_cfg() upward\n  percpu: add @align to pcpu_fc_alloc_fn_t\n  percpu: make @dyn_size mandatory for pcpu_setup_first_chunk()\n  percpu: drop @static_size from first chunk allocators\n  percpu: generalize first chunk allocator selection\n  percpu: build first chunk allocators selectively\n  percpu: rename 4k first chunk allocator to page\n  percpu: improve boot messages\n  percpu: fix pcpu_reclaim() locking\n  ...\n\nFix trivial conflict as by Tejun Heo in kernel/sched.c\n"
    },
    {
      "commit": "355bbd8cb82e60a592f6cd86ce6dbe5677615cf4",
      "tree": "23678e50ad4687f1656edc972388ee8014e7b89d",
      "parents": [
        "39695224bd84dc4be29abad93a0ec232a16fc519",
        "746cd1e7e4a555ddaee53b19a46e05c9c61eaf09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 17:55:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 14 17:55:15 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.32\u0027 of git://git.kernel.dk/linux-2.6-block: (29 commits)\n  block: use blkdev_issue_discard in blk_ioctl_discard\n  Make DISCARD_BARRIER and DISCARD_NOBARRIER writes instead of reads\n  block: don\u0027t assume device has a request list backing in nr_requests store\n  block: Optimal I/O limit wrapper\n  cfq: choose a new next_req when a request is dispatched\n  Seperate read and write statistics of in_flight requests\n  aoe: end barrier bios with EOPNOTSUPP\n  block: trace bio queueing trial only when it occurs\n  block: enable rq CPU completion affinity by default\n  cfq: fix the log message after dispatched a request\n  block: use printk_once\n  cciss: memory leak in cciss_init_one()\n  splice: update mtime and atime on files\n  block: make blk_iopoll_prep_sched() follow normal 0/1 return convention\n  cfq-iosched: get rid of must_alloc flag\n  block: use interrupts disabled version of raise_softirq_irqoff()\n  block: fix comment in blk-iopoll.c\n  block: adjust default budget for blk-iopoll\n  block: fix long lines in block/blk-iopoll.c\n  block: add blk-iopoll, a NAPI like approach for block devices\n  ...\n"
    },
    {
      "commit": "746cd1e7e4a555ddaee53b19a46e05c9c61eaf09",
      "tree": "d129194669e0122113a5cc86003a4a7711450284",
      "parents": [
        "3d2257f157c2324acbc0fa0fa54e8626a987edd2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Sep 12 07:35:43 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:53 2009 +0200"
      },
      "message": "block: use blkdev_issue_discard in blk_ioctl_discard\n\nblk_ioctl_discard duplicates large amounts of code from blkdev_issue_discard,\nthe only difference between the two is that blkdev_issue_discard needs to\nsend a barrier discard request and blk_ioctl_discard a non-barrier one,\nand blk_ioctl_discard needs to wait on the request.  To facilitates this\nadd a flags argument to blkdev_issue_discard to control both aspects of the\nbehaviour.  This will be very useful later on for using the waiting\nfuncitonality for other callers.\n\nBased on an earlier patch from Matthew Wilcox \u003cmatthew@wil.cx\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b8a9ae779f2c7049071034661e09cb7e1e82250c",
      "tree": "e7063b668cc68f4337f1d6545e71d1f881d57e21",
      "parents": [
        "3c5820c743479285ce2678fd3c12b1fd39fe998f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 22:44:29 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:53 2009 +0200"
      },
      "message": "block: don\u0027t assume device has a request list backing in nr_requests store\n\nStacked devices do not. For now, just error out with -EINVAL. Later\nwe could make the limit apply on stacked devices too, for throttling\nreasons.\n\nThis fixes\n\n5a54cd13353bb3b88887604e2c980aa01e314309\n\nand should go into 2.6.31 stable as well.\n\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3c5820c743479285ce2678fd3c12b1fd39fe998f",
      "tree": "8f6b3980f5e8da4912b44eee4688d51ce12c97a3",
      "parents": [
        "06d2188644c85c56d243efab914f368d1d23c4a3"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Sep 11 21:54:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:52 2009 +0200"
      },
      "message": "block: Optimal I/O limit wrapper\n\nImplement blk_limits_io_opt() and make blk_queue_io_opt() a wrapper\naround it. DM needs this to avoid poking at the queue_limits directly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "06d2188644c85c56d243efab914f368d1d23c4a3",
      "tree": "5ee4a4c5b6343a33573fac6a3a66015238e5b1d6",
      "parents": [
        "a9327cac440be4d8333bba975cbbf76045096275"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Sep 11 17:08:59 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:52 2009 +0200"
      },
      "message": "cfq: choose a new next_req when a request is dispatched\n\nThis patch addresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d13401, a\nregression introduced in 2.6.30.\n\nFrom the bug report:\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a9327cac440be4d8333bba975cbbf76045096275",
      "tree": "83fd5dc45dc925c5b4eb0264c3add96cfaa4cae6",
      "parents": [
        "18d8217bc441630c3c5ec7416c5a65c69e8a0979"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Fri Sep 11 09:18:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:52 2009 +0200"
      },
      "message": "Seperate read and write statistics of in_flight requests\n\nCurrently, there is a single in_flight counter measuring the number of\nrequests in the request_queue. But some monitoring tools would like to\nknow how many read requests and write requests are in progress. Split the\ncurrent in_flight counter into two seperate counters for read and write.\n\nThis information is exported as a sysfs attribute, as changing the\ncurrently available stat files would break the existing tools.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "01edede41e352e4879a89cdc5468f72ffc89b713",
      "tree": "5467323ee7ed8ff6178fcdae44e9f3ddab078308",
      "parents": [
        "01e97f6b897bf06ec83375d691f2f4d57f5b3a09"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Sep 08 21:56:38 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:34:34 2009 +0200"
      },
      "message": "block: trace bio queueing trial only when it occurs\n\nIf BIO is discarded or cross over end of device,\nBIO queueing trial doesn\u0027t occur.\n\nActually the trace was called just before make_request at first:\n[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n      2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4\n\nAnd then 2 patches added some checks between them:\n[PATCH] md: check bio address after mapping through partitions\n        5ddfe9691c91a244e8d1be597b6428fcefd58103,\n[BLOCK] Don\u0027t allow empty barriers to be passed down to\nqueues that don\u0027t grok them\n        51fd77bd9f512ab6cc9df0733ba1caaab89eb957\n\nIt breaks original goal.\nLet\u0027s trace it only when it happens.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b217a903ab6581cba04f88c44284dcdd2a752561",
      "tree": "4cb565ead13823c45ed325b20b83ecd78f52a565",
      "parents": [
        "49b3a3cbc0311f8f809183696b1f2ab824b18a51"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Tue Sep 01 10:06:42 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:34:33 2009 +0200"
      },
      "message": "cfq: fix the log message after dispatched a request\n\nThe blktrace tools can show process id when cfq dispatched a request,\nusing cfq_log_cfqq() instead of cfq_log().\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1b379d8daf4e981b2220f057683e35af022d45bc",
      "tree": "cc8e704bc9248c750375b23576d4659bbdc1322d",
      "parents": [
        "a33dac26d42d6f156b3b05a929961bd8d904f6e2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Aug 11 08:26:11 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:32 2009 +0200"
      },
      "message": "cfq-iosched: get rid of must_alloc flag\n\nIt\u0027s not currently used, as pointed out by\nGui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e. We already check the\nwait_request flag to allow an idling queue priority allocation access,\nso we don\u0027t need this extra flag.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a33dac26d42d6f156b3b05a929961bd8d904f6e2",
      "tree": "568bd7422522fa261f4894e68c52ab04c7d74ec2",
      "parents": [
        "fca51d64c5baf64604bc1edc5c5f0e7ed176322f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Aug 06 20:53:45 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:32 2009 +0200"
      },
      "message": "block: use interrupts disabled version of raise_softirq_irqoff()\n\nWe already have interrupts disabled at that point, so use the\n__raise_softirq_irqoff() variant.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fca51d64c5baf64604bc1edc5c5f0e7ed176322f",
      "tree": "d9662eea84a8be4555bad3f12f5dd2cb26305302",
      "parents": [
        "37867ae7c549c58d44337e27738577ed8b7cd753"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Aug 06 20:53:23 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:32 2009 +0200"
      },
      "message": "block: fix comment in blk-iopoll.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "37867ae7c549c58d44337e27738577ed8b7cd753",
      "tree": "3e954d226c876369eddcfe3363ff5f872caa9451",
      "parents": [
        "1badcfbd7febd33f71fc02bda9112bd25e9c294b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Aug 06 20:50:48 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "block: adjust default budget for blk-iopoll\n\nIt\u0027s not exported, I doubt we\u0027ll have a reason to change this...\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1badcfbd7febd33f71fc02bda9112bd25e9c294b",
      "tree": "b0c769f072f92a0dd197d2dac7512057397fe137",
      "parents": [
        "5e605b64a183a6c0e84cdb99a6f8acb1f8200437"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Aug 06 20:49:14 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "block: fix long lines in block/blk-iopoll.c\n\nNote sure why they happened in the first place, probably some bad\nterminal setting.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5e605b64a183a6c0e84cdb99a6f8acb1f8200437",
      "tree": "1133a343bea602cb1bd8ee744c5997ce42a69b54",
      "parents": [
        "fb1e75389bd06fd5987e9cda1b4e0305c782f854"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 05 09:07:21 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "block: add blk-iopoll, a NAPI like approach for block devices\n\nThis borrows some code from NAPI and implements a polled completion\nmode for block devices. The idea is the same as NAPI - instead of\ndoing the command completion when the irq occurs, schedule a dedicated\nsoftirq in the hopes that we will complete more IO when the iopoll\nhandler is invoked. Devices have a budget of commands assigned, and will\nstay in polled mode as long as they continue to consume their budget\nfrom the iopoll softirq handler. If they do not, the device is set back\nto interrupt completion mode.\n\nThis patch holds the core bits for blk-iopoll, device driver support\nsold separately.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fb1e75389bd06fd5987e9cda1b4e0305c782f854",
      "tree": "6658e13f80d4f6450f5a69c82d3bf1b590ecf234",
      "parents": [
        "1f98a13f623e0ef666690a18c1250335fc6d7ef1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 30 08:18:24 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "block: improve queue_should_plug() by looking at IO depths\n\nInstead of just checking whether this device uses block layer\ntagging, we can improve the detection by looking at the maximum\nqueue depth it has reached. If that crosses 4, then deem it a\nqueuing device.\n\nThis is important on high IOPS devices, since plugging hurts\nthe performance there (it can be as much as 10-15% of the sys\ntime).\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1f98a13f623e0ef666690a18c1250335fc6d7ef1",
      "tree": "15ca2dddffaa18a0d1844957f4f8cc707cbb8117",
      "parents": [
        "e7e503aedb1f4d165081cb8d47a58c38f80f0cb4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:32:04 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "bio: first step in sanitizing the bio-\u003ebi_rw flag testing\n\nGet rid of any functions that test for these bits and make callers\nuse bio_rw_flagged() directly. Then it is at least directly apparent\nwhat variable and flag they check.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e3264a4d7de147677f1995f119eba05c9abe9c1c",
      "tree": "151047f3598583556194262a5b07c75ca3b4781d",
      "parents": [
        "d58b85e1e891cd842d6e183f5d94d06a4fd0122c"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Jul 28 09:13:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "Send uevents for write_protect changes\n\nWhenever a block device changes it\u0027s read-only attribute\nnotify the userspace about it.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d58b85e1e891cd842d6e183f5d94d06a4fd0122c",
      "tree": "32a77721594c79610b8dba9026ff9f9928545d17",
      "parents": [
        "5ad531db6e0f3c3c985666e83d3c1c4d53acccf9"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Jul 10 10:20:30 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:30 2009 +0200"
      },
      "message": "cfq-iosched: no need to keep track of busy_rt_queues\n\no Get rid of busy_rt_queues infrastructure. Looks like it is redundant.\n\no Once an RT queue gets request it will preempt any of the BE or IDLE queues\n  immediately. Otherwise this queue will be put on service tree and scheduler\n  will anyway select this queue before any of the BE or IDLE queue. Hence\n  looks like there is no need to keep track of how many busy RT queues are\n  currently on service tree.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5ad531db6e0f3c3c985666e83d3c1c4d53acccf9",
      "tree": "f5bd394c493f425e12fc6991d2b7adf2121ba506",
      "parents": [
        "da6c5c720c52cc717124f8f0830b710ea6a092fd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jul 03 12:57:48 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:30 2009 +0200"
      },
      "message": "cfq-iosched: drain device queue before switching to a sync queue\n\nTo lessen the impact of async IO on sync IO, let the device drain of\nany async IO in progress when switching to a sync cfqq that has idling\nenabled.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "da6c5c720c52cc717124f8f0830b710ea6a092fd",
      "tree": "f54c880aec9289895721e707d4b22e456b277127",
      "parents": [
        "80a761fd33cf812f771e212139157bf8f58d4b3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 11 14:26:40 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:30 2009 +0200"
      },
      "message": "scsi,block: update SCSI to handle mixed merge failures\n\nUpdate scsi_io_completion() such that it only fails requests till the\nnext error boundary and retry the leftover.  This enables block layer\nto merge requests with different failfast settings and still behave\ncorrectly on errors.  Allow merge of requests of different failfast\nsettings.\n\nAs SCSI is currently the only subsystem which follows failfast status,\nthere\u0027s no need to worry about other block drivers for now.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Niel Lambrechts \u003cniel.lambrechts@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "80a761fd33cf812f771e212139157bf8f58d4b3f",
      "tree": "21ea67ad749c15f25cb8a9278fe9bd7643c0ba31",
      "parents": [
        "a82afdfcb8c0df09776b6458af6b68fc58b2e87b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 03 17:48:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:30 2009 +0200"
      },
      "message": "block: implement mixed merge of different failfast requests\n\nFailfast has characteristics from other attributes.  When issuing,\nexecuting and successuflly completing requests, failfast doesn\u0027t make\nany difference.  It only affects how a request is handled on failure.\nAllowing requests with different failfast settings to be merged cause\nnormal IOs to fail prematurely while not allowing has performance\npenalties as failfast is used for read aheads which are likely to be\nlocated near in-flight or to-be-issued normal IOs.\n\nThis patch introduces the concept of \u0027mixed merge\u0027.  A request is a\nmixed merge if it is merge of segments which require different\nhandling on failure.  Currently the only mixable attributes are\nfailfast ones (or lack thereof).\n\nWhen a bio with different failfast settings is added to an existing\nrequest or requests of different failfast settings are merged, the\nmerged request is marked mixed.  Each bio carries failfast settings\nand the request always tracks failfast state of the first bio.  When\nthe request fails, blk_rq_err_bytes() can be used to determine how\nmany bytes can be safely failed without crossing into an area which\nrequires further retrials.\n\nThis allows request merging regardless of failfast settings while\nkeeping the failure handling correct.\n\nThis patch only implements mixed merge but doesn\u0027t enable it.  The\nnext one will update SCSI to make use of mixed merge.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Niel Lambrechts \u003cniel.lambrechts@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a82afdfcb8c0df09776b6458af6b68fc58b2e87b",
      "tree": "d53910e4c2e9d1502cf2a7ce67a67cc54decb7fa",
      "parents": [
        "0d03d59d9b31cd1e33b7e46a80b6fef66244b1f2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 03 17:48:16 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:27 2009 +0200"
      },
      "message": "block: use the same failfast bits for bio and request\n\nbio and request use the same set of failfast bits.  This patch makes\nthe following changes to simplify things.\n\n* enumify BIO_RW* bits and reorder bits such that BIOS_RW_FAILFAST_*\n  bits coincide with __REQ_FAILFAST_* bits.\n\n* The above pushes BIO_RW_AHEAD out of sync with __REQ_FAILFAST_DEV\n  but the matching is useless anyway.  init_request_from_bio() is\n  responsible for setting FAILFAST bits on FS requests and non-FS\n  requests never use BIO_RW_AHEAD.  Drop the code and comment from\n  blk_rq_bio_prep().\n\n* Define REQ_FAILFAST_MASK which is OR of all FAILFAST bits and\n  simplify FAILFAST flags handling in init_request_from_bio().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c295fc05789653ef24f296299df7c5f92fe74dce",
      "tree": "f1b14e69ba862d41baafbb30212e918e35ba626a",
      "parents": [
        "adda766193ea1cf3137484a9521972d080d0b7af"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Tue Sep 01 22:40:15 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 01 22:40:15 2009 +0200"
      },
      "message": "block: Allow changing max_sectors_kb above the default 512\n\nThe patch \"block: Use accessor functions for queue limits\"\n(ae03bf639a5027d27270123f5f6e3ee6a412781d) changed queue_max_sectors_store()\nto use blk_queue_max_sectors() instead of directly assigning the value.\n\nBut blk_queue_max_sectors() differs a bit\n1. It sets both max_sectors_kb, and max_hw_sectors_kb\n2. Never allows one to change max_sectors_kb above BLK_DEF_MAX_SECTORS. If one\nspecifies a value greater then max_hw_sectors is set to that value but\nmax_sectors is set to BLK_DEF_MAX_SECTORS\n\nI am not sure whether blk_queue_max_sectors() should be changed, as it seems\nto be that way for a long time. And there may be callers dependent on that\nbehaviour.\n\nThis patch simply reverts to the older way of directly assigning the value to\nmax_sectors as it was before.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "384be2b18a5f9475eab9ca2bdfa95cc1a04ef59c",
      "tree": "04c93f391a1b65c8bf8d7ba8643c07d26c26590a",
      "parents": [
        "a76761b621bcd8336065c4fe3a74f046858bc34c",
        "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:41:02 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:45:31 2009 +0900"
      },
      "message": "Merge branch \u0027percpu-for-linus\u0027 into percpu-for-next\n\nConflicts:\n\tarch/sparc/kernel/smp_64.c\n\tarch/x86/kernel/cpu/perf_counter.c\n\tarch/x86/kernel/setup_percpu.c\n\tdrivers/cpufreq/cpufreq_ondemand.c\n\tmm/percpu.c\n\nConflicts in core and arch percpu codes are mostly from commit\ned78e1e078dd44249f88b1dd8c76dafb39567161 which substituted many\nnum_possible_cpus() with nr_cpu_ids.  As for-next branch has moved all\nthe first chunk allocators into mm/percpu.c, the changes are moved\nfrom arch code to mm/percpu.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "14d9fa352592582e457cf75022202766baac1348",
      "tree": "a2944427d12a45f3d294f52ee350bd32f315d2bb",
      "parents": [
        "7e5f5fb09e6fc657f21816b5a18ba645a913368e"
      ],
      "author": {
        "name": "John Stoffel",
        "email": "john@stoffel.org",
        "time": "Tue Aug 04 22:10:17 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Aug 04 22:10:17 2009 +0200"
      },
      "message": "Make SCSI SG v4 driver enabled by default and remove EXPERIMENTAL dependency, since udev depends on BSG\n\nMake Block Layer SG support v4 the default, since recent udev versions\ndepend on this to access serial numbers and other low level info properly.\n\nThis should be backported to older kernels as well, since most distros have\nenabled this for a long time.\n\nSigned-off-by: John Stoffel \u003cjohn@stoffel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7e5f5fb09e6fc657f21816b5a18ba645a913368e",
      "tree": "90a60c56f3bdc8f40969bda9d87eb3d31a066b8e",
      "parents": [
        "70dd5bf3b99964d52862ad2810c24cc32a553535"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jul 31 11:49:13 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 01 10:24:35 2009 +0200"
      },
      "message": "block: Update topology documentation\n\nUpdate topology comments and sysfs documentation based upon discussions\nwith Neil Brown.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "70dd5bf3b99964d52862ad2810c24cc32a553535",
      "tree": "912cef9cf7545b9019ad4c54def7f651213f2725",
      "parents": [
        "7c958e32649e0c35801762878fb0b6da8c55a515"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jul 31 11:49:12 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 01 10:24:35 2009 +0200"
      },
      "message": "block: Stack optimal I/O size\n\nWhen stacking block devices ensure that optimal I/O size is scaled\naccordingly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7c958e32649e0c35801762878fb0b6da8c55a515",
      "tree": "610b1e685b5f634ca591865cc9f5ce22f1e3e6c1",
      "parents": [
        "fef246672b009cf3f7a74e2fc9a76932ef2eeed2"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jul 31 11:49:11 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 01 10:24:35 2009 +0200"
      },
      "message": "block: Add a wrapper for setting minimum request size without a queue\n\nIntroduce blk_limits_io_min() and make blk_queue_io_min() call it.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fef246672b009cf3f7a74e2fc9a76932ef2eeed2",
      "tree": "41d7dcf1ece710d6e4bf387dee140e47f66e9011",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jul 31 11:49:10 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 01 10:24:35 2009 +0200"
      },
      "message": "block: Make blk_queue_stack_limits use the new stacking interface\n\nblk_queue_stack_limits() has been superceded by blk_stack_limits() and\ndisk_stack_limits().  Wrap the function call for now, we\u0027ll deprecate it\nlater.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "56ad1740d9a8dc271e71fee234be662638c64458",
      "tree": "bf060081bde4063a4d02d1da63f79e412cca329c",
      "parents": [
        "3839e4b29b4385e4b31075e7805683e2aa2a8103"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 28 22:11:24 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 28 22:11:24 2009 +0200"
      },
      "message": "block: make the end_io functions be non-GPL exports\n\nPrior to the change for more sane end_io functions, we exported\nthe helpers with the normal EXPORT_SYMBOL(). That got changed\nto _GPL() for the new interface. Revert that particular change,\non the basis that this is basic functionality and doesn\u0027t dip\ninto internal structures. If these exports can\u0027t be non-GPL,\nthen we may as well make EXPORT_SYMBOL() imply GPL for\neverything.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3839e4b29b4385e4b31075e7805683e2aa2a8103",
      "tree": "48481cbd67b72e2a62f304daff2a7d3cf86bd1f4",
      "parents": [
        "a4e7d46407d73f35d217013b363b79a8f8eafcaa"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Tue Jul 28 09:11:14 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 28 09:11:14 2009 +0200"
      },
      "message": "block: fix improper kobject release in blk_integrity_unregister\n\nblk_integrity_unregister should use kobject_put to release the kobject,\notherwise after bi is freed, memory of bi-\u003ekobj-\u003ename is leaked.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a4e7d46407d73f35d217013b363b79a8f8eafcaa",
      "tree": "109996edac0c6382e7a7cfb99736e75ea5398b49",
      "parents": [
        "a85a00a699740f6f9863f88aef22060fe1534681"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 28 09:07:29 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 28 09:07:29 2009 +0200"
      },
      "message": "block: always assign default lock to queues\n\nMove the assignment of a default lock below blk_init_queue() to\nblk_queue_make_request(), so we also get to set the default lock\nfor -\u003emake_request_fn() based drivers. This is important since the\nqueue flag locking requires a lock to be in place.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9cb308ce8d32a1fb3600acab6034e19a90228743",
      "tree": "774c9b00be1b417cc805895b4da83dd59ea144c9",
      "parents": [
        "8f47428704c2fd6f787a6f340071b9c338b65803"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Fri Jul 17 15:26:26 2009 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 17 16:54:15 2009 +0900"
      },
      "message": "block: sysfs fix mismatched queue_var_{store,show} in 64bit kernel\n\nIn blk-sysfs.c, queue_var_store uses unsigned long to store data,\nbut queue_var_show uses unsigned int to show data.  This causes,\n\n\t# echo 70000000000 \u003e /sys/block/\u003cdev\u003e/queue/read_ahead_kb\n\t# cat /sys/block/\u003cdev\u003e/queue/read_ahead_kb \u003d\u003e get wrong value\n\nFix it by using unsigned long.\n\nWhile at it, convert queue_rq_affinity_show() such that it uses bool\nvariable instead of explicit !\u003d 0 testing.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0a09f4319c6d88c732ed46735f8584bbb95cac65",
      "tree": "4bb79b77f020c340c6873d760b9de444fbbd5ffe",
      "parents": [
        "c9d4bc289cd1cd43c3cff97b73efe2b0b5098a92"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 16 15:26:55 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 17 14:50:43 2009 +0900"
      },
      "message": "block: fix failfast merge testing in elv_rq_merge_ok()\n\nCommit ab0fd1debe730ec9998678a0c53caefbd121ed10 tries to prevent merge\nof requests with different failfast settings.  In elv_rq_merge_ok(),\nit compares new bio\u0027s failfast flags against the merge target\nrequest\u0027s.  However, the flag testing accessors for bio and blk don\u0027t\nreturn boolean but the tested bit value directly and FAILFAST on bio\nand blk don\u0027t match, so directly comparing them with \u003d\u003d results in\nfalse negative unnecessary preventing merge of readahead requests.\n\nThis patch convert the results to boolean by negating them before\ncomparison.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "32f2e807a3938b24d0831211e6094f9e44b2fc83",
      "tree": "80baac86022bc36bc07a787008642149fa205642",
      "parents": [
        "ecb554a846f8e9d2a58f6d6c118168a63ac065aa"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Jul 09 22:13:16 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:54 2009 +0200"
      },
      "message": "cfq-iosched: reset oom_cfqq in cfq_set_request()\n\nIn case memory is scarce, we now default to oom_cfqq. Once memory is\navailable again, we should allocate a new cfqq and stop using oom_cfqq for\na particular io context.\n\nOnce a new request comes in, check if we are using oom_cfqq, and if yes,\ntry to allocate a new cfqq.\n\nTested the patch by forcing the use of oom_cfqq and upon next request thread\nrealized that it was using oom_cfqq and it allocated a new cfqq.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "76da03467a1a78811777561bbb1fa56175ee4778",
      "tree": "fb4a6f2b7a42213ee76aba136f74f161fefd9618",
      "parents": [
        "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 09 09:48:28 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "block: call blk_scsi_ioctl_init()\n\nCurrently, blk_scsi_ioctl_init() is not called since it lacks\nan initcall marking. This causes the command table to be\nunitialized, hence somce commands are block when they should\nnot have been.\n\nThis fixes a regression introduced by commit\n018e0446890661504783f92388ecce7138c1566d\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": "c43768cbb7655ea5ff782ae250f6e2ef4297cf98",
      "tree": "3982e41dde3eecaa3739a5d1a8ed18d04bd74f01",
      "parents": [
        "1a8dd307cc0a2119be4e578c517795464e6dabba",
        "746a99a5af60ee676afa2ba469ccd1373493c7e7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Jul 04 07:13:18 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Jul 04 07:13:18 2009 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nPull linus#master to merge PER_CPU_DEF_ATTRIBUTES and alpha build fix\nchanges.  As alpha in percpu tree uses \u0027weak\u0027 attribute instead of\ninline assembly, there\u0027s no need for __used attribute.\n\nConflicts:\n\tarch/alpha/include/asm/percpu.h\n\tarch/mn10300/kernel/vmlinux.lds.S\n\tinclude/linux/percpu-defs.h\n"
    },
    {
      "commit": "ab0fd1debe730ec9998678a0c53caefbd121ed10",
      "tree": "c44de6ef7d876a32c4f733fdc26d40cdcbf7d374",
      "parents": [
        "b59e64d0ddb756af57ea032383bfd393a286a8e8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 03 12:56:18 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 03 21:06:45 2009 +0200"
      },
      "message": "block: don\u0027t merge requests of different failfast settings\n\nBlock layer used to merge requests and bios with different failfast\nsettings.  This caused regular IOs to fail prematurely when they were\nmerged into failfast requests for readahead.\n\nNiel Lambrechts could trigger the problem semi-reliably on ext4 when\nresuming from STR.  ext4 uses readahead when reading inodes and\ncombined with the deterministic extra SATA PHY exception cycle during\nresume on the specific configuration, non-readahead inode read would\nfail causing ext4 errors.  Please read the following thread for\ndetails.\n\n  http://lkml.org/lkml/2009/5/23/21\n\nThis patch makes block layer reject merging if the failfast settings\ndon\u0027t match.  This is correct but likely to lower IO performance by\npreventing regular IOs from mingling into surrounding readahead\nrequests.  Changes to allow such mixed merges and handle errors\ncorrectly will be added later.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Niel Lambrechts \u003cniel.lambrechts@gmail.com\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.(none)\u003e\n"
    },
    {
      "commit": "b706f64281b24d8b1fdc8ae883700131d365c412",
      "tree": "3eed31b51cdcb2787ff2d90eaf39b19fba242a9f",
      "parents": [
        "db64f680ba4b5c56c4be59f0698000df89ff0281"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Jul 01 12:41:14 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 12:41:14 2009 +0200"
      },
      "message": "cfq-iosched: remove redundant check for NULL cfqq in cfq_set_request()\n\nWith the changes for falling back to an oom_cfqq, we never fail\nto find/allocate a queue in cfq_get_queue(). So remove the check.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "db64f680ba4b5c56c4be59f0698000df89ff0281",
      "tree": "f094e64952ba746525e4695256a70e0d32553065",
      "parents": [
        "018e0446890661504783f92388ecce7138c1566d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 30 09:35:44 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:26 2009 +0200"
      },
      "message": "blocK: Restore barrier support for md and probably other virtual devices.\n\nThe next_ordered flag is only meaningful for devices that use __make_request.\nSo move the test against next_ordered out of generic code and in to\n__make_request\n\nSince this test was added, barriers have not worked on md or any\ndevices that don\u0027t use __make_request and so don\u0027t bother to set\nnext_ordered.  (dm explicitly sets something other than\nQUEUE_ORDERED_NONE since\n  commit 99360b4c18f7675b50d283301d46d755affe75fd\nbut notes in the comments that it is otherwise meaningless).\n\nCc: Ken Milmore \u003cken.milmore@googlemail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "7878cba9f0037f5599004b03a1260b32d9050360",
      "tree": "bff5e1a47b6e64e45df0428925cc6db8542cad62",
      "parents": [
        "6118b70b3a0b4c583439bb77600194c82f220ce3"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Jun 26 15:37:49 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:25 2009 +0200"
      },
      "message": "block: Create bip slabs with embedded integrity vectors\n\nThis patch restores stacking ability to the block layer integrity\ninfrastructure by creating a set of dedicated bip slabs.  Each bip slab\nhas an embedded bio_vec array at the end.  This cuts down on memory\nallocations and also simplifies the code compared to the original bvec\nversion.  Only the largest bip slab is backed by a mempool.  The pool is\ncontained in the bio_set so stacking drivers can ensure forward\nprogress.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.(none)\u003e\n"
    },
    {
      "commit": "6118b70b3a0b4c583439bb77600194c82f220ce3",
      "tree": "6966f1b059f1bdadc0d679067796d9b4bf9a22c3",
      "parents": [
        "d5036d770f871bd34c9cfd955e6dee692e1e8e81"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 30 09:34:12 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:25 2009 +0200"
      },
      "message": "cfq-iosched: get rid of the need for __GFP_NOFAIL in cfq_find_alloc_queue()\n\nSetup an emergency fallback cfqq that we allocate at IO scheduler init\ntime. If the slab allocation fails in cfq_find_alloc_queue(), we\u0027ll just\npunt IO to that cfqq instead. This ensures that cfq_find_alloc_queue()\nnever fails without having to ensure free memory.\n\nOn cfqq lookup, always try to allocate a new cfqq if the given cfq io\ncontext has the oom_cfqq assigned. This ensures that we only temporarily\npunt to this shared queue.\n\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d5036d770f871bd34c9cfd955e6dee692e1e8e81",
      "tree": "d0718922511121e96bdd385d6c28a254cfc93519",
      "parents": [
        "61fd21670d048017c81e62f60894ef1b04b481db"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 26 10:44:34 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jul 01 10:56:25 2009 +0200"
      },
      "message": "cfq-iosched: move cfqq initialization out of cfq_find_alloc_queue()\n\nWe\u0027re going to be needing that init code outside of that function\nto get rid of the __GFP_NOFAIL in cfqq allocation.\n\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "245b2e70eabd797932adb263a65da0bab3711753",
      "tree": "30f0b790dadd2b70bf06e534abcf66a76e97b05a",
      "parents": [
        "b9bf3121af348d9255f1c917830fe8c2df52efcb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 24 15:13:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 24 15:13:48 2009 +0900"
      },
      "message": "percpu: clean up percpu variable definitions\n\nPercpu variable definition is about to be updated such that all percpu\nsymbols including the static ones must be unique.  Update percpu\nvariable definitions accordingly.\n\n* as,cfq: rename ioc_count uniquely\n\n* cpufreq: rename cpu_dbs_info uniquely\n\n* xen: move nesting_count out of xen_evtchn_do_upcall() and rename it\n\n* mm: move ratelimits out of balance_dirty_pages_ratelimited_nr() and\n  rename it\n\n* ipv4,6: rename cookie_scratch uniquely\n\n* x86 perf_counter: rename prev_left to pmc_prev_left, irq_entry to\n  pmc_irq_entry and nmi_entry to pmc_nmi_entry\n\n* perf_counter: rename disable_count to perf_disable_count\n\n* ftrace: rename test_event_disable to ftrace_test_event_disable\n\n* kmemleak: rename test_pointer to kmemleak_test_pointer\n\n* mce: rename next_interval to mce_next_interval\n\n[ Impact: percpu usage cleanups, no duplicate static percpu var names ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: linux-mm \u003clinux-mm@kvack.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\n"
    },
    {
      "commit": "111986593561fc4c94a1fba3f3cd84476fb40b22",
      "tree": "8af40a65c9d4a7abf0b6eaa461562b5a54f15dd2",
      "parents": [
        "93bdcba5a7e55307e27671594c3cd8b4669b9e7a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed Jun 17 15:10:11 2009 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Jun 21 10:52:42 2009 -0500"
      },
      "message": "block: revert \"bsg: setting rq-\u003ebio to NULL\"\n\nThe SMP handler (sas_smp_request) was fixed to use the block API\nproperly, so we don\u0027t need this workaround to avoid blk_put_request()\nwarning.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f740f5ca056f0a4eff3abdf272a8a4ba3965d57d",
      "tree": "6340ea4b20227733b380816d0552127de110905c",
      "parents": [
        "90c699a9ee4be165966d40f1837909ccb8890a68"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Jun 19 09:18:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 09:18:32 2009 +0200"
      },
      "message": "Fix kernel-doc parameter name typo in blk-settings.c:\n\nWarning(block/blk-settings.c:108): No description found for parameter \u0027lim\u0027\nWarning(block/blk-settings.c:108): Excess function parameter \u0027limits\u0027 description in \u0027blk_set_default_limits\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e",
      "tree": "7485ad50ba3b773d186119d48cba2a124e667125",
      "parents": [
        "ddeb9c3e949751992628628d000915a317df52c4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Jun 18 09:56:03 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 18 09:56:20 2009 +0200"
      },
      "message": "block: Fix bounce_pfn setting\n\nCorrect stacking bounce_pfn limit setting and prevent warnings on\n32-bit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6fd03301d76bc439382710e449f58efbb233df1b",
      "tree": "3c8a3217aed67319683ffc1debccdb5b3245b16c",
      "parents": [
        "cd5232bd6be2d215a800f3d88c287ca791debfbe",
        "e4792aa30f9d33584d7192685ed149cc5fee737f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:57:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:57:37 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (64 commits)\n  debugfs: use specified mode to possibly mark files read/write only\n  debugfs: Fix terminology inconsistency of dir name to mount debugfs filesystem.\n  xen: remove driver_data direct access of struct device from more drivers\n  usb: gadget: at91_udc: remove driver_data direct access of struct device\n  uml: remove driver_data direct access of struct device\n  block/ps3: remove driver_data direct access of struct device\n  s390: remove driver_data direct access of struct device\n  parport: remove driver_data direct access of struct device\n  parisc: remove driver_data direct access of struct device\n  of_serial: remove driver_data direct access of struct device\n  mips: remove driver_data direct access of struct device\n  ipmi: remove driver_data direct access of struct device\n  infiniband: ehca: remove driver_data direct access of struct device\n  ibmvscsi: gadget: at91_udc: remove driver_data direct access of struct device\n  hvcs: remove driver_data direct access of struct device\n  xen block: remove driver_data direct access of struct device\n  thermal: remove driver_data direct access of struct device\n  scsi: remove driver_data direct access of struct device\n  pcmcia: remove driver_data direct access of struct device\n  PCIE: remove driver_data direct access of struct device\n  ...\n\nManually fix up trivial conflicts due to different direct driver_data\ndirect access fixups in drivers/block/{ps3disk.c,ps3vram.c}\n"
    },
    {
      "commit": "e212d6f25084e8e9b02a04ba514d7bb1e4a4924a",
      "tree": "a94638953a7aa7f0bbd6f5d08fa3c649ce0ef8ce",
      "parents": [
        "5ced504b1bd1979378de35c56aa5d3d79fb5033f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 11:19:36 2009 +0200"
      },
      "message": "block: remove some includings of blktrace_api.h\n\nWhen porting blktrace to tracepoints, we changed to trace/block.h\nfor trace prober declarations.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e475bba2fdee9c3dbfe25f026f8fb8de69508ad2",
      "tree": "cb2a050b58fbd8cd7a4d82349164622fedc2c6d0",
      "parents": [
        "6923715ae39ed39ac2fc1993e5061668f4f71ad0"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Jun 16 08:23:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:23:52 2009 +0200"
      },
      "message": "block: Introduce helper to reset queue limits to default values\n\nDM reuses the request queue when swapping in a new device table\nIntroduce blk_set_default_limits() which can be used to reset the the\nqueue_limits prior to stacking devices.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6923715ae39ed39ac2fc1993e5061668f4f71ad0",
      "tree": "98810062c76a07bf6914a192806ba2f927b3cb41",
      "parents": [
        "a979eff1811a07f5fd331c5f6f727370747b42ad"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Jun 12 15:29:30 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:04 2009 +0200"
      },
      "message": "cfq: remove extraneous \u0027\\n\u0027 in blktrace output\n\nI noticed a blank line in blktrace output.  This patch fixes that.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0989a025d2f4f9f51ea641bd26c563c53dc63f55",
      "tree": "5b4f29d3b1a3d09d3052e0c18d63dba8a946da86",
      "parents": [
        "81be834713a7d6b9463663145d493fe9daee2d61"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:42:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:03 2009 +0200"
      },
      "message": "block: don\u0027t overwrite bdi-\u003estate after bdi_init() has been run\n\nMove the defaults to where we do the init of the backing_dev_info.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "81be834713a7d6b9463663145d493fe9daee2d61",
      "tree": "1f70583e9148554abaf4b6128bdb7d9bd8bacb6c",
      "parents": [
        "03347e2592078a90df818670fddf97a33eec70fb"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Fri Jun 12 15:27:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:03 2009 +0200"
      },
      "message": "cfq: cleanup for last_end_request in cfq_data\n\nActually, last_end_request in cfq_data isn\u0027t used now. So lets\njust remove it.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2bdf914915e98fe82495d05741a57e37f4b604e8",
      "tree": "6d598776789ff0ccd29b46fb6d08d183896e982f",
      "parents": [
        "1ce8a0d396288f28070483a8190843c23b8282f4"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Apr 30 15:23:42 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:26 2009 -0700"
      },
      "message": "Driver Core: bsg: add nodename for bsg driver\n\nThis adds support to the BSG driver to report the proper device name to\nuserspace for the bsg devices.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "b03f38b685e2e1db174fb8982930e789a516f414",
      "tree": "8ad84738e433409647a1450a991dba1ba90d7921",
      "parents": [
        "f7a386c5b8ff34cd84ae922603d1c6f9d234edee"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Apr 30 15:23:42 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:25 2009 -0700"
      },
      "message": "Driver Core: block: add nodename support for block drivers.\n\nThis adds support for block drivers to report their requested nodename\nto userspace.  It also updates a number of block drivers to provide the\nneeded subdirectory and device name to be used for them.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8ebf975608aaebd7feb33d77f07ba21a6380e086",
      "tree": "6de4ee1dd3ede890169644ea586ed7c8c9d8f7b2",
      "parents": [
        "4b4f1d017815f96737ca4a62f90e5a1f0b9f02d6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jun 11 20:00:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 20:14:23 2009 -0700"
      },
      "message": "block: fix kernel-doc in recent block/ changes\n\nFix kernel-doc warnings in recently changed block/ source code.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "27951daa71f1c91300ae4de9441916d1ffe2b078",
      "tree": "72d9ecde8c784c0837b7caf64b97fac5ffd5a424",
      "parents": [
        "59c288ffb6dfb55bdd6bfe6826ab6203ff791930",
        "e8e7526c3c0863be25ab03a0871ee0978de5ba50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:00:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:00:03 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (28 commits)\n  ide-tape: fix debug call\n  alim15x3: Remove historical hacks, re-enable init_hwif for PowerPC\n  ide-dma: don\u0027t reset request fields on dma_timeout_retry()\n  ide: drop rq-\u003edata handling from ide_map_sg()\n  ide-atapi: kill unused fields and callbacks\n  ide-tape: simplify read/write functions\n  ide-tape: use byte size instead of sectors on rw issue functions\n  ide-tape: unify r/w init paths\n  ide-tape: kill idetape_bh\n  ide-tape: use standard data transfer mechanism\n  ide-tape: use single continuous buffer\n  ide-atapi,tape,floppy: allow -\u003epc_callback() to change rq-\u003edata_len\n  ide-tape,floppy: fix failed command completion after request sense\n  ide-pm: don\u0027t abuse rq-\u003edata\n  ide-cd,atapi: use bio for internal commands\n  ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer\n  ide-cd: convert to using generic sense request\n  ide: add helpers for preparing sense requests\n  ide-cd: don\u0027t abuse rq-\u003ebuffer\n  ide-atapi: don\u0027t abuse rq-\u003ebuffer\n  ...\n"
    },
    {
      "commit": "b0fd271d5fba0b2d00888363f3869e3f9b26caa9",
      "tree": "0ffd49c013476e3dc96c8bcb2ddc4c1828797be5",
      "parents": [
        "5e50b9ef975219304cc91d601530994861585bfe"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Jun 11 13:10:16 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 11 13:11:05 2009 +0200"
      },
      "message": "block: add request clone interface (v2)\n\nThis patch adds the following 2 interfaces for request-stacking drivers:\n\n  - blk_rq_prep_clone(struct request *clone, struct request *orig,\n\t\t      struct bio_set *bs, gfp_t gfp_mask,\n\t\t      int (*bio_ctr)(struct bio *, struct bio*, void *),\n\t\t      void *data)\n      * Clones bios in the original request to the clone request\n        (bio_ctr is called for each cloned bios.)\n      * Copies attributes of the original request to the clone request.\n        The actual data parts (e.g. -\u003ecmd, -\u003ebuffer, -\u003esense) are not\n        copied.\n\n  - blk_rq_unprep_clone(struct request *clone)\n      * Frees cloned bios from the clone request.\n\nRequest stacking drivers (e.g. request-based dm) need to make a clone\nrequest for a submitted request and dispatch it to other devices.\n\nTo allocate request for the clone, request stacking drivers may not\nbe able to use blk_get_request() because the allocation may be done\nin an irq-disabled context.\nSo blk_rq_prep_clone() takes a request allocated by the caller\nas an argument.\n\nFor each clone bio in the clone request, request stacking drivers\nshould be able to set up their own completion handler.\nSo blk_rq_prep_clone() takes a callback function which is called\nfor each clone bio, and a pointer for private data which is passed\nto the callback.\n\nNOTE:\nblk_rq_prep_clone() doesn\u0027t copy any actual data of the original\nrequest.  Pages are shared between original bios and cloned bios.\nSo caller must not complete the original request before the clone\nrequest.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "d9c7d394a8ebacb60097b192939ae9f15235225e",
      "tree": "4fbf9c7677acb03c23d05faba1a4b0bcfb6702b4",
      "parents": [
        "1d589bb16b825b3a7b4edd34d997f1f1f953033d"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@novell.com",
        "time": "Wed Jun 10 12:57:06 2009 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jun 10 23:07:15 2009 +0200"
      },
      "message": "block: prevent possible io_context-\u003erefcount overflow\n\nCurrently io_context has an atomic_t(32-bit) as refcount.  In the case of\ncfq, for each device against whcih a task does I/O, a reference to the\nio_context would be taken.  And when there are multiple process sharing\nio_contexts(CLONE_IO) would also have a reference to the same io_context.\n\nTheoretically the possible maximum number of processes sharing the same\nio_context + the number of disks/cfq_data referring to the same io_context\ncan overflow the 32-bit counter on a very high-end machine.\n\nEven though it is an improbable case, let us make it atomic_long_t.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "55782138e47d9baf2f7d3a7af9e7cf42adf72c56",
      "tree": "c7ccabae20e27bbeb08b69a358e8b86c98d1d9f3",
      "parents": [
        "f57a8a1911342265e7acdc190333c4e9235a6632"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 09 13:43:05 2009 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 09 12:34:23 2009 -0400"
      },
      "message": "tracing/events: convert block trace points to TRACE_EVENT()\n\nTRACE_EVENT is a more generic way to define tracepoints. Doing so adds\nthese new capabilities to this tracepoint:\n\n  - zero-copy and per-cpu splice() tracing\n  - binary tracing without printf overhead\n  - structured logging records exposed under /debug/tracing/events\n  - trace events embedded in function tracer output and other plugins\n  - user-defined, per tracepoint filter expressions\n  ...\n\nCons:\n\n  - no dev_t info for the output of plug, unplug_timer and unplug_io events.\n    no dev_t info for getrq and sleeprq events if bio \u003d\u003d NULL.\n    no dev_t info for rq_abort,...,rq_requeue events if rq-\u003erq_disk \u003d\u003d NULL.\n\n    This is mainly because we can\u0027t get the deivce from a request queue.\n    But this may change in the future.\n\n  - A packet command is converted to a string in TP_assign, not TP_print.\n    While blktrace do the convertion just before output.\n\n    Since pc requests should be rather rare, this is not a big issue.\n\n  - In blktrace, an event can have 2 different print formats, but a TRACE_EVENT\n    has a unique format, which means we have some unused data in a trace entry.\n\n    The overhead is minimized by using __dynamic_array() instead of __array().\n\nI\u0027ve benchmarked the ioctl blktrace vs the splice based TRACE_EVENT tracing:\n\n      dd                   dd + ioctl blktrace       dd + TRACE_EVENT (splice)\n1     7.36s, 42.7 MB/s     7.50s, 42.0 MB/s          7.41s, 42.5 MB/s\n2     7.43s, 42.3 MB/s     7.48s, 42.1 MB/s          7.43s, 42.4 MB/s\n3     7.38s, 42.6 MB/s     7.45s, 42.2 MB/s          7.41s, 42.5 MB/s\n\nSo the overhead of tracing is very small, and no regression when using\nthose trace events vs blktrace.\n\nAnd the binary output of TRACE_EVENT is much smaller than blktrace:\n\n # ls -l -h\n -rw-r--r-- 1 root root 8.8M 06-09 13:24 sda.blktrace.0\n -rw-r--r-- 1 root root 195K 06-09 13:24 sda.blktrace.1\n -rw-r--r-- 1 root root 2.7M 06-09 13:25 trace_splice.out\n\nFollowing are some comparisons between TRACE_EVENT and blktrace:\n\nplug:\n  kjournald-480   [000]   303.084981: block_plug: [kjournald]\n  kjournald-480   [000]   303.084981:   8,0    P   N [kjournald]\n\nunplug_io:\n  kblockd/0-118   [000]   300.052973: block_unplug_io: [kblockd/0] 1\n  kblockd/0-118   [000]   300.052974:   8,0    U   N [kblockd/0] 1\n\nremap:\n  kjournald-480   [000]   303.085042: block_remap: 8,0 W 102736992 + 8 \u003c- (8,8) 33384\n  kjournald-480   [000]   303.085043:   8,0    A   W 102736992 + 8 \u003c- (8,8) 33384\n\nbio_backmerge:\n  kjournald-480   [000]   303.085086: block_bio_backmerge: 8,0 W 102737032 + 8 [kjournald]\n  kjournald-480   [000]   303.085086:   8,0    M   W 102737032 + 8 [kjournald]\n\ngetrq:\n  kjournald-480   [000]   303.084974: block_getrq: 8,0 W 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084975:   8,0    G   W 102736984 + 8 [kjournald]\n\n  bash-2066  [001]  1072.953770:   8,0    G   N [bash]\n  bash-2066  [001]  1072.953773: block_getrq: 0,0 N 0 + 0 [bash]\n\nrq_complete:\n  konsole-2065  [001]   300.053184: block_rq_complete: 8,0 W () 103669040 + 16 [0]\n  konsole-2065  [001]   300.053191:   8,0    C   W 103669040 + 16 [0]\n\n  ksoftirqd/1-7   [001]  1072.953811:   8,0    C   N (5a 00 08 00 00 00 00 00 24 00) [0]\n  ksoftirqd/1-7   [001]  1072.953813: block_rq_complete: 0,0 N (5a 00 08 00 00 00 00 00 24 00) 0 + 0 [0]\n\nrq_insert:\n  kjournald-480   [000]   303.084985: block_rq_insert: 8,0 W 0 () 102736984 + 8 [kjournald]\n  kjournald-480   [000]   303.084986:   8,0    I   W 102736984 + 8 [kjournald]\n\nChangelog from v2 -\u003e v3:\n\n- use the newly introduced __dynamic_array().\n\nChangelog from v1 -\u003e v2:\n\n- use __string() instead of __array() to minimize the memory required\n  to store hex dump of rq-\u003ecmd().\n\n- support large pc requests.\n\n- add missing blk_fill_rwbs_rq() in block_rq_requeue TRACE_EVENT.\n\n- some cleanups.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2DF669.5070905@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c1d4c41f2fdfe66dea957b76d005affba3e56b26",
      "tree": "9436a0f4417c1f938103a55c739c6c6e1fdbf94b",
      "parents": [
        "3af968e066d593bc4dacc021715f3e95ddf0996f"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jun 09 15:17:37 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 09 15:17:37 2009 +0200"
      },
      "message": "bsg: setting rq-\u003ebio to NULL\n\nDue to commit 1cd96c242a829d52f7a5ae98f554ca9775429685 (\"block: WARN\nin __blk_put_request() for potential bio leak\"), BSG SMP requests get\nthe false warnings:\n\nWARNING: at block/blk-core.c:1068 __blk_put_request+0x52/0xc0()\n\nThis sets rq-\u003ebio to NULL to avoid that false warnings.\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": "77634f33d4078542cf1087995cced0ffdae25aa2",
      "tree": "43d15cfb43bcfb6af567e1203419ad60ef2cb160",
      "parents": [
        "9df1bb9b516daeece159ab7fb262d01a0359247c"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Jun 09 06:23:22 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 09 06:23:22 2009 +0200"
      },
      "message": "block: Add missing bounce_pfn stacking and fix comments\n\nDM no longer needs to set limits explicitly when calling blk_stack_limits.\nLet the latter automatically deal with bounce_pfn scaling.\n\nFix kerneldoc variable names.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9df1bb9b516daeece159ab7fb262d01a0359247c",
      "tree": "602c7b02e85b031d0269a1f70ece81bac524c0ac",
      "parents": [
        "3969251b80a7b143d01576780073fe0cc9ef6253"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 09 06:22:57 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 09 06:22:57 2009 +0200"
      },
      "message": "Revert \"block: Fix bounce limit setting in DM\"\n\nThis reverts commit a05c0205ba031c01bba33a21bf0a35920eb64833.\n\nDM doesn\u0027t need to access the bounce_pfn directly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dbb66c4be020b01dc2f3d7c609ddb0e09d2c0af7",
      "tree": "b80ec96749fdc8f26a33496ee4593ddbcc58f6ed",
      "parents": [
        "172124e220f1854acc99ee394671781b8b5e2120"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jun 09 05:47:10 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 09 05:47:10 2009 +0200"
      },
      "message": "block: needs to set the residual length of a bidi request\n\nTejun\u0027s \"block: set rq-\u003eresid_len to blk_rq_bytes() on issue\" patch\nseems to be incomplete; It doesn\u0027t set rq-\u003eresid_len to blk_rq_bytes()\nfor a bidi request (req-\u003enext_rq). As a result, all bidi users are\nbroken.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a05c0205ba031c01bba33a21bf0a35920eb64833",
      "tree": "517c7682fc415cdb122ee7fcfc75eff674cc7b78",
      "parents": [
        "dbdc9dd342f0a7e32f40f0d4ade662bdfe057484"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Jun 03 09:33:18 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jun 03 09:33:18 2009 +0200"
      },
      "message": "block: Fix bounce limit setting in DM\n\nblk_queue_bounce_limit() is more than a wrapper about the request queue\nlimits.bounce_pfn variable.  Introduce blk_queue_bounce_pfn() which can\nbe called by stacking drivers that wish to set the bounce limit\nexplicitly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53c663ce0f39ba8e8ef652e400b317bc60ac7f19",
      "tree": "5d72723bbc35e4b35734fe770b5022192c4f92c9",
      "parents": [
        "c143dc903d7c0b15f5052e00b2c7de33a8b4299c"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jun 02 08:44:01 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 02 08:44:01 2009 +0200"
      },
      "message": "block: fix a possible oops on elv_abort_queue()\n\nI found one more mis-conversion to the \u0027request is always dequeued\nwhen completing\u0027 model in elv_abort_queue() during code inspection.\nAlthough I haven\u0027t hit any problem caused by this mis-conversion yet\nand just done compile/boot test, please apply if you have no problem.\n\nRequest must be dequeued when it completes.\nHowever, elv_abort_queue() completes requests without dequeueing.\nThis will cause oops in the __blk_end_request_all().\nThis patch fixes the oops.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c143dc903d7c0b15f5052e00b2c7de33a8b4299c",
      "tree": "6c7d82a398d92e48ee01563a0fc6f9a13ec442e4",
      "parents": [
        "5d85d3247cc3555215d7d11c78576a396c98e4d9"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sat May 30 06:43:49 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat May 30 06:43:49 2009 +0200"
      },
      "message": "block: fix an oops on BLKPREP_KILL\n\nDoing a bit of torture testing, I ran across a BUG in the block\nsubsystem (at blk-core.c:2048): the test for if the request is queued.\n\nIt turns out the trigger was a BLKPREP_KILL coming out of the SCSI prep\nfunction.  Currently for BLKPREP_KILL requests, we send them straight\ninto __blk_end_request_all() with an error, but they\u0027ve never been\ndequeued, so they trip the bug.  Fix this by starting requests before\nkilling them.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5d85d3247cc3555215d7d11c78576a396c98e4d9",
      "tree": "4db90509907b51425706add2239ad02d57cbef4a",
      "parents": [
        "3c4198e874cde694f5ea1463706873e7907bdb18"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu May 28 11:04:53 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 28 11:04:53 2009 +0200"
      },
      "message": "block: export blk_stack_limits()\n\nDM needs to use blk_stack_limits(), so it needs to be exported.\n\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3c4198e874cde694f5ea1463706873e7907bdb18",
      "tree": "2315e8e86996c98ddfa74059dc61255317bef0eb",
      "parents": [
        "ba396a6c104682dfe5c8b4fbbf5974d5ac9f3687"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Wed May 27 14:50:02 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 27 14:50:02 2009 +0200"
      },
      "message": "block: fix no diskstat problem\n\nThe commit below in 2.6-block/for-2.6.31 causes no diskstat problem\nbecause the blk_discard_rq() check was added with \u0027\u0026\u0026\u0027.\nIt should be \u0027blk_fs_request() || blk_discard_rq()\u0027.\nThis patch does it and fixes the no diskstat problem.\nPlease review and apply.\n\n------ /proc/diskstat without this patch -------------------------------------\n   8       0 sda 0 0 0 0 0 0 0 0 0 0 0\n------------------------------------------------------------------------------\n\n----- /proc/diskstat with this patch applied ---------------------------------\n   8       0 sda 4186 303 373621 61600 9578 3859 107468 169479 2 89755 231059\n------------------------------------------------------------------------------\n\n--------------------------------------------------------------------------\ncommit c69d48540c201394d08cb4d48b905e001313d9b8\nAuthor: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nDate:   Fri Apr 24 08:12:19 2009 +0200\n\n    block: include discard requests in IO accounting\n\n    We currently don\u0027t do merging on discard requests, but we potentially\n    could. If we do, then we need to include discard requests in the IO\n    accounting, or merging would end up decrementing in_flight IO counters\n    for an IO which never incremented them.\n\n    So enable accounting for discard requests.\n\n\u003csnip\u003e\n\n static inline int blk_do_io_stat(struct request *rq)\n {\n-       return rq-\u003erq_disk \u0026\u0026 blk_rq_io_stat(rq) \u0026\u0026 blk_fs_request(rq);\n+       return rq-\u003erq_disk \u0026\u0026 blk_rq_io_stat(rq) \u0026\u0026 blk_fs_request(rq) \u0026\u0026\n+               blk_discard_rq(rq);\n }\n--------------------------------------------------------------------------\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ba396a6c104682dfe5c8b4fbbf5974d5ac9f3687",
      "tree": "ba8bf30382d1891c7f540264b6229db1bc1eb797",
      "parents": [
        "3b77f777b8f1c001b63e317c4ce317292ff0ff94"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed May 27 14:17:08 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 27 14:17:08 2009 +0200"
      },
      "message": "block: fix oops with block tag queueing\n\ncommit e8939a50466fd963eb1ba9118c34b9ffb7ff6aa6\nAuthor: Tejun Heo \u003ctj@kernel.org\u003e\nDate:   Fri May 8 11:54:16 2009 +0900\n\n    block: implement and enforce request peek/start/fetch\n\nAdded a BUG_ON(blk_queued_rq(req)) to the top of blk_finish_req().\nUnfortunately, this checks whether req-\u003equeuelist is empty.  This list\nis doing double duty both as the queue list and the tag list, so tagged\nrequests come in here with this not empty and boom (the tag list is\nemptied by blk_queue_end_tag() lower down).\n\nFix this by moving the BUG_ON to below the end tag we also seem\nvulnerable to this in blk_requeue_request() as well.  I think all uses\nof blk_queued_rq() need auditing because the check is clearly wrong in\nthe tagged case.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c72758f33784e5e2a1a4bb9421ef3e6de8f9fcf3",
      "tree": "a83f7540cc894caafe74db911cba3998d6a9a164",
      "parents": [
        "cd43e26f071524647e660706b784ebcbefbd2e44"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:53 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:55 2009 +0200"
      },
      "message": "block: Export I/O topology for block devices and partitions\n\nTo support devices with physical block sizes bigger than 512 bytes we\nneed to ensure proper alignment.  This patch adds support for exposing\nI/O topology characteristics as devices are stacked.\n\n  logical_block_size is the smallest unit the device can address.\n\n  physical_block_size indicates the smallest I/O the device can write\n  without incurring a read-modify-write penalty.\n\n  The io_min parameter is the smallest preferred I/O size reported by\n  the device.  In many cases this is the same as the physical block\n  size.  However, the io_min parameter can be scaled up when stacking\n  (RAID5 chunk size \u003e physical block size).\n\n  The io_opt characteristic indicates the optimal I/O size reported by\n  the device.  This is usually the stripe width for arrays.\n\n  The alignment_offset parameter indicates the number of bytes the start\n  of the device/partition is offset from the device\u0027s natural alignment.\n  Partition tools and MD/DM utilities can use this to pad their offsets\n  so filesystems start on proper boundaries.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cd43e26f071524647e660706b784ebcbefbd2e44",
      "tree": "11625a25ba8a7c5cd4fe41b54d53506a7982433b",
      "parents": [
        "025146e13b63483add912706c101fb0fb6f015cc"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:52 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:55 2009 +0200"
      },
      "message": "block: Expose stacked device queues in sysfs\n\nCurrently stacking devices do not have a queue directory in sysfs.\nHowever, many of the I/O characteristics like sector size, maximum\nrequest size, etc. are queue properties.\n\nThis patch enables the queue directory for MD/DM devices.  The elevator\ncode has been modified to deal with queues that do not have an I/O\nscheduler.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "025146e13b63483add912706c101fb0fb6f015cc",
      "tree": "42d2d42e2222f0a2d6373a0ddf0cbf733f75dcba",
      "parents": [
        "ae03bf639a5027d27270123f5f6e3ee6a412781d"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:51 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:55 2009 +0200"
      },
      "message": "block: Move queue limits to an embedded struct\n\nTo accommodate stacking drivers that do not have an associated request\nqueue we\u0027re moving the limits to a separate, embedded structure.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\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": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\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": "0a7ae2ff0d29bb3b327edff4c8ab67b3834fa811",
      "tree": "88309ac99a39e15b9b23525a00a15b1564957b32",
      "parents": [
        "ac36552a52a6ec8563ac0a109e2a0935673f4abb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 20 08:54:31 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed May 20 08:54:31 2009 +0200"
      },
      "message": "block: change the tag sync vs async restriction logic\n\nMake them fully share the tag space, but disallow async requests using\nthe last any two slots.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53674ac5a997a8eedbb2dfdc308b895170746c8b",
      "tree": "69fb2c7c2d9726e0ff3a8bc491b5bf1fc5e2d1d4",
      "parents": [
        "a411f4bbb89f1f08687b344064d6775bce1e4658"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 19:52:35 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 19:52:35 2009 +0200"
      },
      "message": "block: add warning to blk_make_request()\n\nAdd a note about how one needs to be careful when setting up these bio\nchains.\n\nExtracted from Boaz\u0027s updated patch.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a411f4bbb89f1f08687b344064d6775bce1e4658",
      "tree": "8898f98285e712f8b5bb99db184bc1a21b1a643c",
      "parents": [
        "c29b70f6ee4f2fa3ef07f55bc9082945861e5391"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 17 19:00:01 2009 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 12:14:56 2009 +0200"
      },
      "message": "block: Un-export blk_rq_append_bio\n\nOSD was the last in-tree user of blk_rq_append_bio(). Now\nthat it is fixed blk_rq_append_bio is un-exported and\nis only used internally by block layer.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "79eb63e9e5875b84341a3a05f8e6ae9cdb4bb6f6",
      "tree": "bdadc2037c1d0f24c6c73b71ae82fdd7b907e610",
      "parents": [
        "bc38bf106c967389a465d926be22c7371abba69d"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 17 18:57:15 2009 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 12:14:56 2009 +0200"
      },
      "message": "block: Add blk_make_request(), takes bio, returns a request\n\nNew block API:\ngiven a struct bio allocates a new request. This is the parallel of\ngeneric_make_request for BLOCK_PC commands users.\n\nThe passed bio may be a chained-bio. The bio is bounced if needed\ninside the call to this member.\n\nThis is in the effort of un-exporting blk_rq_append_bio().\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCC: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3a5a39276d2a32b05b1ee25b384516805b17cf87",
      "tree": "8a52a4a158ed341b7c3049826c549c2a210386e3",
      "parents": [
        "b2858d7d1639c04ca3c54988d76c5f7300b76f1c"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun May 17 18:55:18 2009 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 12:14:55 2009 +0200"
      },
      "message": "block: allow blk_rq_map_kern to append to requests\n\nUse blk_rq_append_bio() internally instead of blk_rq_bio_prep()\nso blk_rq_map_kern can be called multiple times, to map multiple\nbuffers.\n\nThis is in the effort to un-export blk_rq_append_bio()\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5f49f63178360b07a095bd33b0d850d60edf7590",
      "tree": "23764399405214c115543eb5dec59982cf0baa26",
      "parents": [
        "3755100dd5f66761aaaa7ae44c70b319a7c78a56"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 19 18:33:05 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 19 11:36:08 2009 +0200"
      },
      "message": "block: set rq-\u003eresid_len to blk_rq_bytes() on issue\n\nIn commit c3a4d78c580de4edc9ef0f7c59812fb02ceb037f, while introducing\nrq-\u003eresid_len, the default value of residue count was changed from\nfull count to zero.  The conversion was done under the assumption that\nwhen a request fails residue count wasn\u0027t defined.  However, Boaz and\nJames pointed out that this wasn\u0027t true and the residue count should\nbe preserved for failed requests too.\n\nThis patchset restores the original behavior by setting rq-\u003eresid_len\nto blk_rq_bytes(rq) on request start and restoring explicit clearing\nin affected drivers.  While at it, take advantage of the fact that\nrq-\u003eresid_len is set to full count where applicable.\n\n* ide-cd: rq-\u003eresid_len cleared on pc success\n\n* mptsas: req-\u003eresid_len cleared on success\n\n* sas_expander: rsp/req-\u003eresid_len cleared on success\n\n* mpt2sas_transport: req-\u003eresid_len cleared on success\n\n* ide-cd, ide-tape, mptsas, sas_host_smp, mpt2sas_transport, ub: take\n  advantage of initial full count to simplify code\n\nBoaz Harrosh spotted bug in resid_len initialization.  Fixed as\nsuggested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nCc: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1079cac0f4eb7d968395378b1625979d4c818dd6",
      "tree": "d261058d95d27fe7250511d5fad69db30dc17731",
      "parents": [
        "5872144f64b34a5942f6b4acedc90b02de72c58b",
        "1406de8e11eb043681297adf86d6892ff8efc27a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 10:15:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 10:15:35 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc6\u0027 into tracing/core\n\nMerge reason: we were on an -rc4 base, sync up to -rc6\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "af498d7fa3e786f52650819a56e117ed9a40920c",
      "tree": "4170275db90f306935e35be1c2cd2cbd6a1a27a8",
      "parents": [
        "a4d7749be5de4a7261bcbe3c7d96c748792ec455"
      ],
      "author": {
        "name": "Kazuhisa Ichikawa",
        "email": "ki@epsilou.com",
        "time": "Tue May 12 13:27:45 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 12 13:27:45 2009 +0200"
      },
      "message": "block: fix the bio_vec array index out-of-bounds test\n\nCurrent bio_vec array index out-of-bounds test within\n__end_that_request_first() does not seem correct.\nIt checks bio-\u003ebi_idx against bio-\u003ebi_vcnt, but the subsequent code\nuses idx (which is, bio-\u003ebi_idx + next_idx) as the array index into\nbio_vec array. This means that the test really make sense only at\nthe first iteration of !(nr_bytes \u003e\u003dbio-\u003ebi_size) case (when next_idx\n\u003d\u003d zero). Fix this by replacing bio-\u003ebi_idx with idx.\n(This patch applies to 2.6.30-rc4.)\n\nSigned-off-by: Kazuhisa Ichikawa \u003cki@epsilou.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b1f744937f1be3e6d3009382a755679133cf782d",
      "tree": "0e90e43589ecfe28199030e8e396c0193199da7e",
      "parents": [
        "e6bb7a96c2c36f20c05ef648f15bd3c2b1834c78"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 11 17:56:09 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 11:06:48 2009 +0200"
      },
      "message": "block: move completion related functions back to blk-core.c\n\nLet\u0027s put the completion related functions back to block/blk-core.c\nwhere they have lived. We can also unexport blk_end_bidi_request() and\n__blk_end_bidi_request(), which nobody uses.\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": "9934c8c04561413609d2bc38c6b9f268cba774a4",
      "tree": "30dd8f7be54f9b2e03094de9cd03b6a9ee2909cd",
      "parents": [
        "2343046826a8ca426b07601d9593ee046c298b68"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 08 11:54:16 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:52:18 2009 +0200"
      },
      "message": "block: implement and enforce request peek/start/fetch\n\nTill now block layer allowed two separate modes of request execution.\nA request is always acquired from the request queue via\nelv_next_request().  After that, drivers are free to either dequeue it\nor process it without dequeueing.  Dequeue allows elv_next_request()\nto return the next request so that multiple requests can be in flight.\n\nExecuting requests without dequeueing has its merits mostly in\nallowing drivers for simpler devices which can\u0027t do sg to deal with\nsegments only without considering request boundary.  However, the\nbenefit this brings is dubious and declining while the cost of the API\nambiguity is increasing.  Segment based drivers are usually for very\nold or limited devices and as converting to dequeueing model isn\u0027t\ndifficult, it doesn\u0027t justify the API overhead it puts on block layer\nand its more modern users.\n\nPrevious patches converted all block low level drivers to dequeueing\nmodel.  This patch completes the API transition by...\n\n* renaming elv_next_request() to blk_peek_request()\n\n* renaming blkdev_dequeue_request() to blk_start_request()\n\n* adding blk_fetch_request() which is combination of peek and start\n\n* disallowing completion of queued (not started) requests\n\n* applying new API to all LLDs\n\nRenamings are for consistency and to break out of tree code so that\nit\u0027s apparent that out of tree drivers need updating.\n\n[ Impact: block request issue API cleanup, no functional change ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nCc: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nCc: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a2dec7b36364a5cc564c4d76cf16d2e7d33f5c05",
      "tree": "76dfb84ba5fa097a929ab81cf5718c6fcbc9d720",
      "parents": [
        "34b7d2c957199834c474c9d46739265643f4d9c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:44 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:55 2009 +0200"
      },
      "message": "block: hide request sector and data_len\n\nBlock low level drivers for some reason have been pretty good at\nabusing block layer API.  Especially struct request\u0027s fields tend to\nget violated in all possible ways.  Make it clear that low level\ndrivers MUST NOT access or manipulate rq-\u003esector and rq-\u003edata_len\ndirectly by prefixing them with double underscores.\n\nThis change is also necessary to break build of out-of-tree codes\nwhich assume the previous block API where internal fields can be\nmanipulated and rq-\u003edata_len carries residual count on completion.\n\n[ Impact: hide internal fields, block API change ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2e46e8b27aa57c6bd34b3102b40ee4d0144b4fab",
      "tree": "134f560f66c2af277f0f25e5b85f6c1acaddfc06",
      "parents": [
        "9780e2dd8254351f6cbe11304849126b51dbd561"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "block: drop request-\u003ehard_* and *nr_sectors\n\nstruct request has had a few different ways to represent some\nproperties of a request.  -\u003ehard_* represent block layer\u0027s view of the\nrequest progress (completion cursor) and the ones without the prefix\nare supposed to represent the issue cursor and allowed to be updated\nas necessary by the low level drivers.  The thing is that as block\nlayer supports partial completion, the two cursors really aren\u0027t\nnecessary and only cause confusion.  In addition, manual management of\nrequest detail from low level drivers is cumbersome and error-prone at\nthe very least.\n\nAnother interesting duplicate fields are rq-\u003e[hard_]nr_sectors and\nrq-\u003e{hard_cur|current}_nr_sectors against rq-\u003edata_len and\nrq-\u003ebio-\u003ebi_size.  This is more convoluted than the hard_ case.\n\nrq-\u003e[hard_]nr_sectors are initialized for requests with bio but\nblk_rq_bytes() uses it only for !pc requests.  rq-\u003edata_len is\ninitialized for all request but blk_rq_bytes() uses it only for pc\nrequests.  This causes good amount of confusion throughout block layer\nand its drivers and determining the request length has been a bit of\nblack magic which may or may not work depending on circumstances and\nwhat the specific LLD is actually doing.\n\nrq-\u003e{hard_cur|current}_nr_sectors represent the number of sectors in\nthe contiguous data area at the front.  This is mainly used by drivers\nwhich transfers data by walking request segment-by-segment.  This\nvalue always equals rq-\u003ebio-\u003ebi_size \u003e\u003e 9.  However, data length for\npc requests may not be multiple of 512 bytes and using this field\nbecomes a bit confusing.\n\nIn general, having multiple fields to represent the same property\nleads only to confusion and subtle bugs.  With recent block low level\ndriver cleanups, no driver is accessing or manipulating these\nduplicate fields directly.  Drop all the duplicates.  Now rq-\u003esector\nmeans the current sector, rq-\u003edata_len the current total length and\nrq-\u003ebio-\u003ebi_size the current segment length.  Everything else is\ndefined in terms of these three and available only through accessors.\n\n* blk_recalc_rq_sectors() is collapsed into blk_update_request() and\n  now handles pc and fs requests equally other than rq-\u003esector update.\n  This means that now pc requests can use partial completion too (no\n  in-kernel user yet tho).\n\n* bio_cur_sectors() is replaced with bio_cur_bytes() as block layer\n  now uses byte count as the primary data length.\n\n* blk_rq_pos() is now guranteed to be always correct.  In-block users\n  converted.\n\n* blk_rq_bytes() is now guaranteed to be always valid as is\n  blk_rq_sectors().  In-block users converted.\n\n* blk_rq_sectors() is now guaranteed to equal blk_rq_bytes() \u003e\u003e 9.\n  More convenient one is used.\n\n* blk_rq_bytes() and blk_rq_cur_bytes() are now inlined and take const\n  pointer to request.\n\n[ Impact: API cleanup, single way to represent one property of a request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "83096ebf1263b2c1ee5e653ba37d993d02e3eb7b",
      "tree": "2226b71a616ec1cb2d37511c6a09ba9507a1cd69",
      "parents": [
        "5b93629b4509c03ffa87a9316412fedf6f58cb37"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:39 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:54 2009 +0200"
      },
      "message": "block: convert to pos and nr_sectors accessors\n\nWith recent cleanups, there is no place where low level driver\ndirectly manipulates request fields.  This means that the \u0027hard\u0027\nrequest fields always equal the !hard fields.  Convert all\nrq-\u003esectors, nr_sectors and current_nr_sectors references to\naccessors.\n\nWhile at it, drop superflous blk_rq_pos() \u003c 0 test in swim.c.\n\n[ Impact: use pos and nr_sectors accessors ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nTested-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nTested-by: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nAcked-by: Adrian McMenamin \u003cadrian@mcmen.demon.co.uk\u003e\nAcked-by: Mike Miller \u003cmike.miller@hp.com\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: 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: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Tim Waugh \u003ctim@cyberelk.net\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Dario Ballabio \u003cballabio_dario@emc.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: unsik Kim \u003cdonari75@gmail.com\u003e\nCc: Laurent Vivier \u003cLaurent@lvivier.info\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5b93629b4509c03ffa87a9316412fedf6f58cb37",
      "tree": "ad5ceda3f718361b8df3057b4f9edcc79aa4cd9d",
      "parents": [
        "c3a4d78c580de4edc9ef0f7c59812fb02ceb037f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 07 22:24:38 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 11 09:50:53 2009 +0200"
      },
      "message": "block: implement blk_rq_pos/[cur_]sectors() and convert obvious ones\n\nImplement accessors - blk_rq_pos(), blk_rq_sectors() and\nblk_rq_cur_sectors() which return rq-\u003ehard_sector, rq-\u003ehard_nr_sectors\nand rq-\u003ehard_cur_sectors respectively and convert direct references of\nthe said fields to the accessors.\n\nThis is in preparation of request data length handling cleanup.\n\nGeert\t: suggested adding const to struct request * parameter to accessors\nSergei\t: spotted error in patch description\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nTested-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAckec-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Borislav Petkov \u003cpetkovbb@googlemail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\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"
    }
  ],
  "next": "44347d947f628060b92449702071bfe1d31dfb75"
}
