)]}'
{
  "log": [
    {
      "commit": "f7d7b7a7a3db6526a84ea755c1c54a051e9a52de",
      "tree": "4d02c3abfca1c6175527473dff12769b09b630bb",
      "parents": [
        "8bff7c6b0f63c7ee9c5e3a076338d74125b8debb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 25 11:37:50 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "block: as/cfq ssd idle check update\n\nWe really need to know about the hardware tagging support as well,\nsince if the SSD does not do tagging then we still want to idle.\nOtherwise have the same dependent sync IO vs flooding async IO\nproblem as on rotational media.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a68bbddba486020c9c74825ce90c4c1ec463e0e8",
      "tree": "ce0acea1e609185968310316d3d1ac6f730db983",
      "parents": [
        "9e49184c82e9ec3ab4d45f9ea5a17ccaf43869f0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 24 13:03:33 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "block: add queue flag for SSD/non-rotational devices\n\nWe don\u0027t want to idle in AS/CFQ if the device doesn\u0027t have a seek\npenalty. So add a QUEUE_FLAG_NONROT to indicate a non-rotational\ndevice, low level drivers should set this flag upon discovery of\nan SSD or similar device type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "18887ad910e56066233a07fd3cfb2fa11338b782",
      "tree": "a8d14ba47f15c58e36b26c82fa4ae4ad7526c80a",
      "parents": [
        "b646fc59b332ef307895558c9cd1359dc2d25813"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jul 28 13:08:45 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:09 2008 +0200"
      },
      "message": "block: make kblockd_schedule_work() take the queue as parameter\n\nPreparatory patch for checking queuing affinity.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "12e0036818eed243c8ed6583ebf98261a2554e12",
      "tree": "2f60ad7d1c869a995faa5b73150b409705d0e8b2",
      "parents": [
        "261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in block/\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message\nbecomes part of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "863fddcb4b0caee4c2d5bd6e3b28779920516db3",
      "tree": "9170df5fb0e26d77d45017069b7756f7c80afde5",
      "parents": [
        "9a11b4ed0e7c44bca7c939aa544c3c47aae40c12"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 29 09:35:22 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:12 2008 +0200"
      },
      "message": "as-iosched: properly protect ioc_gone and ioc count\n\nIf we have multiple tasks freeing io contexts when as-iosched\nis being unloaded, we could complete() ioc_gone twice. Fix that by\nprotecting ioc_gone complete() and clearing with a spinlock for\njust that purpose. Doesn\u0027t matter from a performance perspective,\nsince it\u0027ll only enter that path when ioc_gone !\u003d NULL (when as-iosched\nis being rmmod\u0027ed).\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d585d0b9d73ed999cc7b8cf3cac4a5b01abb544e",
      "tree": "7cfb65304f92745eb7ca3e5fa9073bbba1cfa357",
      "parents": [
        "1702b52092e9a6d05398d3f9581ddc050ef00d06"
      ],
      "author": {
        "name": "Divyesh Shah",
        "email": "dpshah@google.com",
        "time": "Mon Jun 16 18:37:08 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 01 09:06:42 2008 +0200"
      },
      "message": "block: Fix the starving writes bug in the anticipatory IO scheduler\n\nAS scheduler alternates between issuing read and write batches. It does\nthe batch switch only after all requests from the previous batch are\ncompleted.\n\nWhen switching to a write batch, if there is an on-going read request,\nit waits for its completion and indicates its intention of switching by\nsetting ad-\u003echanged_batch and the new direction but does not update the\nbatch_expire_time for the new write batch which it does in the case of\nno previous pending requests.\nOn completion of the read request, it sees that we were waiting for the\nswitch and schedules work for kblockd right away and resets the\nad-\u003echanged_data flag.\nNow when kblockd enters dispatch_request where it is expected to pick\nup a write request, it in turn ends the write batch because the\nbatch_expire_timer was not updated and shows the expire timestamp for\nthe previous batch.\n\nThis results in the write starvation for all the cases where there is\nthe intention for switching to a write batch, but there is a previous\nin-flight read request and the batch gets reverted to a read_batch\nright away.\n\nThis also holds true in the reverse case (switching from a write batch\nto a read batch with an in-flight write request).\n\nI\u0027ve checked that this bug exists on 2.6.11, 2.6.18, 2.6.24 and\nlinux-2.6-block git HEAD. I\u0027ve tested the fix on x86 platforms with\nSCSI drives where the driver asks for the next request while a current\nrequest is in-flight.\n\nThis patch is based off linux-2.6-block git HEAD.\n\nBug reproduction:\nA simple scenario which reproduces this bug is:\n- dd if\u003d/dev/hda3 of\u003d/dev/null \u0026\n- lilo\n   The lilo takes forever to complete.\n\nThis can also be reproduced fairly easily with the earlier dd and\nanother test\nprogram doing msync().\n\nThe example test program below should print out a message after every\niteration\nbut it simply hangs forever. With this bugfix it makes forward progress.\n\n\u003d\u003d\u003d\u003d\nExample test program using msync() (thanks to suleiman AT google DOT\ncom)\n\ninline uint64_t\nrdtsc(void)\n{\n         int64_t tsc;\n\n         __asm __volatile(\"rdtsc\" : \"\u003dA\" (tsc));\n         return (tsc);\n}\n\nint\nmain(int argc, char **argv)\n{\n         struct stat st;\n         uint64_t e, s, t;\n         char *p, q;\n         long i;\n         int fd;\n\n         if (argc \u003c 2) {\n                 printf(\"Usage: %s \u003cfile\u003e\\n\", argv[0]);\n                 return (1);\n         }\n\n         if ((fd \u003d open(argv[1], O_RDWR | O_NOATIME)) \u003c 0)\n                 err(1, \"open\");\n\n         if (fstat(fd, \u0026st) \u003c 0)\n                 err(1, \"fstat\");\n\n         p \u003d mmap(NULL, st.st_size, PROT_READ | PROT_WRITE,\nMAP_SHARED, fd, 0);\n\n         t \u003d 0;\n         for (i \u003d 0; i \u003c 1000; i++) {\n                 *p \u003d 0;\n                 msync(p, 4096, MS_SYNC);\n                 s \u003d rdtsc();\n                *p \u003d 0;\n                 __asm __volatile(\"\"::: \"memory\");\n                 e \u003d rdtsc();\n                 if (argc \u003e 2)\n                         printf(\"%d: %lld cycles %jd %jd\\n\",\n                                i, e - s, (intmax_t)s, (intmax_t)e);\n                 t +\u003d e - s;\n         }\n         printf(\"average time: %lld cycles\\n\", t / 1000);\n         return (0);\n}\n\nCc: \u003cstable@kernel.org\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3bc217ffe6774e7971d6a7ce6350ce806ebab044",
      "tree": "b1ccad14a0c23f12248092feb867d2e311db59f0",
      "parents": [
        "8bdd3f8a6993fef2f364aca6e1a59559405773a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 01 11:34:49 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 01 11:34:49 2008 +0100"
      },
      "message": "block: kill swap_io_context()\n\nIt blindly copies everything in the io_context, including the lock.\nThat doesn\u0027t work so well for either lock ordering or lockdep.\n\nThere seems zero point in swapping io contexts on a request to request\nmerge, so the best point of action is to just remove it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8bdd3f8a6993fef2f364aca6e1a59559405773a2",
      "tree": "cbf07985c3396417932002be5cd5e4f2c47433e9",
      "parents": [
        "4f4f6c2502474f51654a699d7127d86c2f87075a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 01 09:44:28 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 01 09:44:28 2008 +0100"
      },
      "message": "as-iosched: fix inconsistent ioc-\u003elock context\n\nSince it\u0027s acquired from irq context, all locking must be of the\nirq safe variant. Most are already inside the queue lock (which\nalready disables interrupts), but the io scheduler rmmod path\nalways has irqs enabled and the put_io_context() path may legally\nbe called with irqs enabled (even if it isn\u0027t usually). So fixup\nthose two.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "149a051f82d2b3860fe32fa182dbc83a66274894",
      "tree": "4ca660bb2ee8ac25661a38587d785cd9f78b2125",
      "parents": [
        "5b10ca19ea4859d3884d10a3eb8495de92089792"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jan 29 22:25:18 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jan 30 09:11:10 2008 +0100"
      },
      "message": "as-iosched: fix double locking bug in as_merged_requests()\n\nIf the two requests belong to the same io context, we will attempt\nto lock the same lock twice. But swapping contexts is pointless in\nthat case, so just check for rioc \u003d\u003d nioc before doing the double\nlock and copy.\n\nTested-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "521f3bbdba6b92582ef8047df01b156668343542",
      "tree": "5984f76e395b10cc2463eae35c575d1b4aad13ce",
      "parents": [
        "4ac845a2e9a816ed5a7b301f56dcc0a3d0b1ba4d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 21 20:03:12 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:35 2008 +0100"
      },
      "message": "io_context sharing - anticipatory changes\n\nchanges to anticipatory io scheduler for io_context sharing\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2fdd82bd8852ec8ebad5c69c45138da25c6f9273",
      "tree": "ff701ec0a8909fa50b79763a49a4eaada5aa759e",
      "parents": [
        "49565124b13bb16607e7f8fc8fb1d9c5c355a1a3"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Dec 12 18:51:56 2007 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Dec 18 08:29:28 2007 +0100"
      },
      "message": "block: let elv_register() return void\n\nelv_register() always returns 0, and there isn\u0027t anything it does where\nit should return an error (the only error condition is so grave that\nit\u0027s handled with a BUG_ON).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "49565124b13bb16607e7f8fc8fb1d9c5c355a1a3",
      "tree": "47629c0533b9292f51cc9dc2f37d851e0913b727",
      "parents": [
        "8896f3c039b0834ba695d154299b724ee5710b97"
      ],
      "author": {
        "name": "Aaron Carroll",
        "email": "aaronc@gelato.unsw.edu.au",
        "time": "Wed Dec 05 21:07:07 2007 +1100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Dec 18 08:29:28 2007 +0100"
      },
      "message": "as-iosched: fix write batch start point\n\nNew write batches currently start from where the last one completed.\nWe have no idea where the head is after switching batches, so this\nmakes little sense.  Instead, start the next batch from the request\nwith the earliest deadline in the hope that we avoid a deadline\nexpiry later on.\n\nSigned-off-by: Aaron Carroll \u003caaronc@gelato.unsw.edu.au\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8896f3c039b0834ba695d154299b724ee5710b97",
      "tree": "d6b42262bea00350d2a2facf914542606e795ae6",
      "parents": [
        "24bb8fb99a062213424d3e88842eb07f693378be"
      ],
      "author": {
        "name": "Aaron Carroll",
        "email": "aaronc@gelato.unsw.edu.au",
        "time": "Wed Dec 05 21:06:50 2007 +1100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Dec 18 08:29:28 2007 +0100"
      },
      "message": "as-iosched: fix incorrect comments\n\nTwo comments refer to deadlines applying to reads only.  This is\nnot the case.\n\nSigned-off-by: Aaron Carroll \u003caaronc@gelato.unsw.edu.au\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "165125e1e480f9510a5ffcfbfee4e3ee38c05f23",
      "tree": "8009c8a5ff09e26dc2418d42f66ecafb055c52a2",
      "parents": [
        "f695baf2df9e0413d3521661070103711545207a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "message": "[BLOCK] Get rid of request_queue_t typedef\n\nSome of the code has been gradually transitioned to using the proper\nstruct request_queue, but there\u0027s lots left. So do a full sweet of\nthe kernel and get rid of this typedef and replace its uses with\nthe proper type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "94f6030ca792c57422f04a73e7a872d8325946d3",
      "tree": "0197f24d82b1706f1b0521f2cf68feeff64123df",
      "parents": [
        "81cda6626178cd55297831296ba8ecedbfd8b52d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Slab allocators: Replace explicit zeroing with __GFP_ZERO\n\nkmalloc_node() and kmem_cache_alloc_node() were not available in a zeroing\nvariant in the past.  But with __GFP_ZERO it is possible now to do zeroing\nwhile allocating.\n\nUse __GFP_ZERO to remove the explicit clearing of memory via memset whereever\nwe can.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19a75d83ffeab004cfcfac64024ad3997bac7220",
      "tree": "1a4c3d299527989cde6d87e18dd189cfb35749a8",
      "parents": [
        "a9df62c7585e6caa1e7d2425b2b14460ec3afc20"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "kblockd: use flush_work\n\nSwitch the kblockd flushing from a global flush to a more specific\nflush_work().\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6a632a2b610c1bc123f1d258d688e8fe5cc70dd",
      "tree": "b43e9dffcc1ad012955483f22141676f199f6930",
      "parents": [
        "e97cb3e28ce2fdd3b06a65f67d00462d86929008"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue May 08 00:26:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "as: fix antic_expire check\n\nFix units mismatch (jiffies vs msecs) in as-iosched.c, spotted by Xiaoning\nDing \u003cdingxn@cse.ohio-state.edu\u003e.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c65fb61b3c92ad8f99f16c7a2c11247bfaf0a1da",
      "tree": "7443daa73c5381eacf94e4f225a2453a867018c4",
      "parents": [
        "c4977f596c5bce4d20fbd22cdb03486112985622"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 13 13:25:18 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 13 13:25:18 2006 +0100"
      },
      "message": "[PATCH] Allow as-iosched to be unloaded\n\nWe implemented the missing bits to allow this some time ago, and\nthey are integrated in AS. So remove the __module_get() to allow\nthe module to be unloaded.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4c1ac1b49122b805adfa4efc620592f68dccf5db",
      "tree": "87557f4bc2fd4fe65b7570489c2f610c45c0adcd",
      "parents": [
        "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
        "d916faace3efc0bf19fe9a615a1ab8fa1a24cd93"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/infiniband/core/iwcm.c\n\tdrivers/net/chelsio/cxgb2.c\n\tdrivers/net/wireless/bcm43xx/bcm43xx_main.c\n\tdrivers/net/wireless/prism54/islpci_eth.c\n\tdrivers/usb/core/hub.h\n\tdrivers/usb/input/hid-core.c\n\tnet/core/netpoll.c\n\nFix up merge failures with Linus\u0027s head and fix new compilation failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "bb37b94c68e7b37eecea8576039ae9396ca07839",
      "tree": "0b5dcbb3abb7710789d401126431f6f4dfe89e3a",
      "parents": [
        "0e75f9063f5c55fb0b0b546a7c356f8ec186825e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 01 10:42:33 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 01 10:42:33 2006 +0100"
      },
      "message": "[BLOCK] Cleanup unused variable passing\n\n- -\u003einit_queue() does not need the elevator passed in\n- -\u003eput_request() is a hot path and need not have the queue passed in\n- cfq_update_io_seektime() does not need cfqd passed in\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6e9a4738c9fadb7cbdcabc1e3b415159f3741ed9",
      "tree": "0e470bb8cd431d59698da5a6999ff35a347619a3",
      "parents": [
        "397d6140e93156ecb9cafcd9be0db10ff3c12ab3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Sep 30 23:28:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:24 2006 -0700"
      },
      "message": "[PATCH] completions: lockdep annotate on stack completions\n\nAll on stack DECLARE_COMPLETIONs should be replaced by:\nDECLARE_COMPLETION_ONSTACK\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0fe23479577124bd2687e6783e39fa0fa4c28005",
      "tree": "954ae8c079fd10cd52bf212ca5cd2530ec5c2315",
      "parents": [
        "50be345560f1ffdcb15cc0e146416b80529a2ef2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Sep 04 15:41:16 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:34 2006 +0200"
      },
      "message": "[PATCH] Update axboe@suse.de email address\n\nAs people often look for the copyright in files to see who to mail,\nupdate the link to a neutral one.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "dc72ef4ae35c2016fb594bcc85ce871376682174",
      "tree": "c0c78879addf0d65adcc8f8cce01165fa2502dac",
      "parents": [
        "981a79730d586335ef8f942c83bdf2b1de6d4e3d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Jul 20 14:54:05 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:40 2006 +0200"
      },
      "message": "[PATCH] Add blk_start_queueing() helper\n\nCFQ implements this on its own now, but it\u0027s really block layer\nknowledge. Tells a device queue to start dispatching requests to\nthe driver, taking care to unplug if needed. Also fixes the issue\nwhere as/cfq will invoke a stopped queue, which we really don\u0027t\nwant.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b5deef901282628d88c784f4c9d2f0583ec3b355",
      "tree": "1d3be92f18c9afd9426b06739c8f76931acbf03f",
      "parents": [
        "a3b05e8f58c95dfccbf2c824d0c68e5990571f24"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Jul 19 23:39:40 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:39 2006 +0200"
      },
      "message": "[PATCH] Make sure all block/io scheduler setups are node aware\n\nSome were kmalloc_node(), some were still kmalloc(). Change them all to\nkmalloc_node().\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "e4313dd423148fa729571b50c06cbc0bedf5c494",
      "tree": "7524020d6d822b06aa433c1252a4926b91a8b328",
      "parents": [
        "4a893e837bb470867d74c05d6c6b97bba5a96185"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Jul 19 05:10:01 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:37 2006 +0200"
      },
      "message": "[PATCH] as-iosched: use new io context counting mechanism\n\nIt\u0027s ok if the read path is a lot more costly, as long as inc/dec is\nreally cheap. The inc/dec will happen for each created/freed io context,\nwhile the reading only happens when a disk queue exits.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "cb78b285c8f9d59b0d4e4f6a54c2977ce1d9b880",
      "tree": "fec08d228e25103962c56f8cd43727d9d6af23c8",
      "parents": [
        "cdd6026217c0e4cda2efce1bdc318661bef1f66f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Jul 28 09:32:57 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:23 2006 +0200"
      },
      "message": "[PATCH] Drop useless bio passing in may_queue/set_request API\n\nIt\u0027s not needed for anything, so kill the bio passing.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "8a8e674cb1dafc818ffea93d97e4c1c1f01fdbb6",
      "tree": "98716fa9974c79928113c887c57fb5d8f7b6cc42",
      "parents": [
        "5e705374796e72b36e7bb9c59c8d46d2dc5db36a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Jul 18 21:07:29 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:27:02 2006 +0200"
      },
      "message": "[PATCH] as-iosched: kill arq\n\nGet rid of the as_rq request type. With the added elevator_private2, we\nhave enough room in struct request to get rid of any arq allocation/free\nfor each request.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "9e2585a8a23f3a42f815b2a638725d85a921cd65",
      "tree": "6c318a746596ea8523ccf07aaa270cf4295cf50e",
      "parents": [
        "d4f2f4629ea6a003cd021a9ea1a8a23ec0cd70ac"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Jul 28 09:26:13 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:27:00 2006 +0200"
      },
      "message": "[PATCH] as-iosched: remove arq-\u003eis_sync member\n\nWe can track this in struct request.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "d4f2f4629ea6a003cd021a9ea1a8a23ec0cd70ac",
      "tree": "d3ed19dd78e26c71245d4111d2b1698a1297ff87",
      "parents": [
        "95e8810b283cfac50789126de4207f9909299de9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Jul 13 09:12:14 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:27:00 2006 +0200"
      },
      "message": "[PATCH] as-iosched: reuse rq for fifo\n\nSaves some space in arq.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "e37f346e347e5035c80760df2be0fcb2824f6c16",
      "tree": "9bd354f831005f04c1c33182607cf61e8fcc09a0",
      "parents": [
        "2e662b65f05d550b6799ed6bfa9963b82279e6b7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Jul 18 21:06:01 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:26:57 2006 +0200"
      },
      "message": "[PATCH] as-iosched: migrate to using the elevator rb functions\n\nThis removes the rbtree handling from AS.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "10fd48f2376db52f08bf0420d2c4f580e39269e1",
      "tree": "89de18dcda9c8a09937187a0e8d138cfe3cb4089",
      "parents": [
        "9817064b68fef7e4580c6df1ea597e106b9ff88b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Jul 11 21:15:52 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:26:56 2006 +0200"
      },
      "message": "[PATCH] rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev\n\nThe conditions got reserved. Also make rb_next() and rb_prev() check\nfor the empty condition.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "9817064b68fef7e4580c6df1ea597e106b9ff88b",
      "tree": "76c27990626247613e9efa45b792d51ad79635d7",
      "parents": [
        "4aff5e2333c9a1609662f2091f55c3f6fffdad36"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Jul 28 09:23:08 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:26:56 2006 +0200"
      },
      "message": "[PATCH] elevator: move the backmerging logic into the elevator core\n\nRight now, every IO scheduler implements its own backmerging (except for\nnoop, which does no merging). That results in duplicated code for\nessentially the same operation, which is never a good thing. This patch\nmoves the backmerging out of the io schedulers and into the elevator\ncore. We save 1.6kb of text and as a bonus get backmerging for noop as\nwell. Win-win!\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "4aff5e2333c9a1609662f2091f55c3f6fffdad36",
      "tree": "b73d8c2b7c1bdc03d3313c108da7dfc95ee95525",
      "parents": [
        "77ed74da26f50fa28471571ee7a2251b77526d84"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Aug 10 08:44:47 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:23:37 2006 +0200"
      },
      "message": "[PATCH] Split struct request -\u003eflags into two parts\n\nRight now -\u003eflags is a bit of a mess: some are request types, and\nothers are just modifiers. Clean this up by splitting it into\n-\u003ecmd_type and -\u003ecmd_flags. This allows introduction of generic\nLinux block message types, useful for sending generic Linux commands\nto block devices.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "d6e05edc59ecd79e8badf440c0d295a979bdfa3e",
      "tree": "50362161f69317242ab603c51a18a818a4c93285",
      "parents": [
        "f18190bd3407554ba6df30a1927e07e6cba93e56"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@lisas.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "message": "spelling fixes\n\nacquired (aquired)\ncontiguous (contigious)\nsuccessful (succesful, succesfull)\nsurprise (suprise)\nwhether (weather)\nsome other misspellings\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "dd67d051529387f6e44d22d1d5540ef281965fdd",
      "tree": "80457f9a2ad3e562b179e40f5c8d51b4f24d6d9e",
      "parents": [
        "9e94cd4fd1812bab45237f998b3c6fa1b24023fd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Jun 21 09:36:18 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Jun 23 17:10:39 2006 +0200"
      },
      "message": "[PATCH] rbtree: support functions used by the io schedulers\n\nThey all duplicate macros to check for empty root and/or node, and\nclearing a node. So put those in rbtree.h.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b31dc66a54ad986b6b73bdc49c8efc17cbad1833",
      "tree": "5591383c1cbffe11512da889c971f899333f1a44",
      "parents": [
        "271f18f102c789f59644bb6c53a69da1df72b2f4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Jun 13 08:26:10 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Jun 23 17:10:39 2006 +0200"
      },
      "message": "[PATCH] Kill PF_SYNCWRITE flag\n\nA process flag to indicate whether we are doing sync io is incredibly\nugly. It also causes performance problems when one does a lot of async\nio and then proceeds to sync it. Part of the io will go out as async,\nand the other part as sync. This causes a disconnect between the\npreviously submitted io and the synced io. For io schedulers such as CFQ,\nthis will cause us lost merges and suboptimal behaviour in scheduling.\n\nRemove PF_SYNCWRITE completely from the fsync/msync paths, and let\nthe O_DIRECT path just directly indicate that the writes are sync\nby using WRITE_SYNC instead.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "bae386f7884aa3720cc7880b36a41a1d2b9c327b",
      "tree": "e6ea0627160dc009cd825e44489583028c83791f",
      "parents": [
        "199f4c9f76fd8b030405abddf294e771f888de03"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Apr 24 21:12:59 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Jun 23 17:10:38 2006 +0200"
      },
      "message": "[PATCH] iosched: use hlist for request hashtable\n\nUse hlist instead of list_head for request hashtable in deadline-iosched\nand as-iosched. It also can remove the flag to know hashed or unhashed.\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n\n block/as-iosched.c       |   45 +++++++++++++++++++--------------------------\n block/deadline-iosched.c |   39 ++++++++++++++++-----------------------\n 2 files changed, 35 insertions(+), 49 deletions(-)\n"
    },
    {
      "commit": "2edc322d420a4cec8dbc184a1220ecd7fa9f8ae6",
      "tree": "e7be2cf442626316b6b6fb212960fe1f77ff2725",
      "parents": [
        "be967b7e2f7747a5ebf2a07ee627d9338491e784",
        "2f3243aebd8df4d9eecaeca04bbff6c7dbfb2142"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 14:51:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 20 14:51:22 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/~dwmw2/rbtree-2.6\n\n* git://git.infradead.org/~dwmw2/rbtree-2.6:\n  [RBTREE] Switch rb_colour() et al to en_US spelling of \u0027color\u0027 for consistency\n  Update UML kernel/physmem.c to use rb_parent() accessor macro\n  [RBTREE] Update hrtimers to use rb_parent() accessor macro.\n  [RBTREE] Add explicit alignment to sizeof(long) for struct rb_node.\n  [RBTREE] Merge colour and parent fields of struct rb_node.\n  [RBTREE] Remove dead code in rb_erase()\n  [RBTREE] Update JFFS2 to use rb_parent() accessor macro.\n  [RBTREE] Update eventpoll.c to use rb_parent() accessor macro.\n  [RBTREE] Update key.c to use rb_parent() accessor macro.\n  [RBTREE] Update ext3 to use rb_parent() accessor macro.\n  [RBTREE] Change rbtree off-tree marking in I/O schedulers.\n  [RBTREE] Add accessor macros for colour and parent fields of rb_node\n"
    },
    {
      "commit": "bc1c116974a5c3f498112a6f175d3e4a8cd5bdbc",
      "tree": "69ea68db91fb871cd24a0a5c5045abbe9c77bd3a",
      "parents": [
        "26e780e8ef1cc3ef581a07aafe2346bb5a07b4f9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Jun 08 08:49:06 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 08 15:14:23 2006 -0700"
      },
      "message": "[PATCH] elevator switching race\n\nThere\u0027s a race between shutting down one io scheduler and firing up the\nnext, in which a new io could enter and cause the io scheduler to be\ninvoked with bad or NULL data.\n\nTo fix this, we need to maintain the queue lock for a bit longer.\nUnfortunately we cannot do that, since the elevator init requires to be\nrun without the lock held.  This isn\u0027t easily fixable, without also\nchanging the mempool API.  So split the initialization into two parts,\nand alloc-init operation and an attach operation.  Then we can\npreallocate the io scheduler and related structures, and run the attach\ninside the lock after we detach the old one.\n\nThis patch has survived 30 minutes of 1 second io scheduler switching\nwith a very busy io load.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3db3a445308b3cee9bbbd8baa6d05081c9532da0",
      "tree": "768e3a190df58b0f5f5d4a5c5ade925649e757dd",
      "parents": [
        "7fe1e133bf45b0fe70491ed3d4c5b491feff7aa8"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Fri Apr 21 13:15:17 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Fri Apr 21 13:15:17 2006 +0100"
      },
      "message": "[RBTREE] Change rbtree off-tree marking in I/O schedulers.\n\nThey were abusing the rb_color field to mark nodes which weren\u0027t currently\non the tree. Fix that to use the same method as eventpoll did -- setting\nthe parent pointer to point back to itself. And use the appropriate\naccessor macros for setting and reading the parent.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "fba822722e3f9d438fca8fd9541d7ddd447d7a48",
      "tree": "05fc35428f61fb6b66726e3aae03ce9187212c21",
      "parents": [
        "a9a5cd5d2a57fb76dbae2115450f777b69beccf7"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue Apr 18 09:44:06 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 18 09:44:06 2006 +0200"
      },
      "message": "[PATCH 1/2] iosched: fix typo and barrier()\n\nOn rmmod path, cfq/as waits to make sure all io-contexts was\nfreed. However, it\u0027s using complete(), not wait_for_completion().\n\nI think barrier() is not enough in here. To avoid the following case,\nthis patch replaces barrier() with smb_wmb().\n\n\tcpu0\t\t\tvisibility\t\t\tcpu1\n\t                [ioc_gnone\u003dNULL,ioc_count\u003d1]\n\nioc_gnone \u003d \u0026all_gone\t\tNULL,ioc_count\u003d1\natomic_read(\u0026ioc_count)\t\tNULL,ioc_count\u003d1\nwait_for_completion()\t\tNULL,ioc_count\u003d0\tatomic_sub_and_test()\n\t\t\t\tNULL,ioc_count\u003d0\tif ( \u0026\u0026 ioc_gone)\n\t\t\t\t\t\t    [ioc_gone\u003d\u003dNULL,\n\t\t\t\t\t\t    so doesn\u0027t call complete()]\n\t\t\t   \u0026all_gone,ioc_count\u003d0\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "e572ec7e4e432de7ecf7bd2e62117646fa64e518",
      "tree": "56b4b738fb566128d2db6d62aed28cfd41b5398a",
      "parents": [
        "3d1ab40f4c20767afbd361b258a531d73e3e6fc2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 22:27:18 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 22:27:18 2006 -0500"
      },
      "message": "[PATCH] fix rmmod problems with elevator attributes, clean them up\n"
    },
    {
      "commit": "3d1ab40f4c20767afbd361b258a531d73e3e6fc2",
      "tree": "2da79cc8b47a98b0496b6e762fa790a8d547977b",
      "parents": [
        "1cc9be68ebcc1de9904bf225441613878da9c0d8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 18:35:43 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 18:35:43 2006 -0500"
      },
      "message": "[PATCH] elevator_t lifetime rules and sysfs fixes\n"
    },
    {
      "commit": "334e94de9bea353156abd6f2242d3cc4a24562b0",
      "tree": "ff4a253e9e3bf487be03bf58727a7ea40a34ba87",
      "parents": [
        "e17a9489b4a686bb5e9615e1d375c67619cb99c5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 15:05:53 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 18:34:15 2006 -0500"
      },
      "message": "[PATCH] deal with rmmod/put_io_context() races\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e17a9489b4a686bb5e9615e1d375c67619cb99c5",
      "tree": "e6574d24ad8f16fefe7663c91cf19109e48f8c6c",
      "parents": [
        "25975f863b0fd42c58109e253e7a4c65d9fdaf48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 13:21:20 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 18 18:34:12 2006 -0500"
      },
      "message": "[PATCH] stop elv_unregister() from rogering other iosched\u0027s data, fix locking\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ef9be1d336378de279d4e37779f1b83cebadbcc0",
      "tree": "decd8ee4c74ea8c30de9eca3a591bb0962ccd15f",
      "parents": [
        "9f155b9802bb7049cd0f216c3fe903b58620df11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 11 14:27:09 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Jan 06 09:39:03 2006 +0100"
      },
      "message": "[BLOCK] as-iosched: update alias handling\n\nUnlike other ioscheds, as-iosched handles alias by chaing them using\nrq-\u003equeuelist.  As aliased requests are very rare in the first place,\nthis complicates merge/dispatch handling without meaningful\nperformance improvement.  This patch updates as-iosched to dump\naliased requests into dispatch queue as other ioscheds do.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "8ad9ebb391e4cd75837ee608b9c33fcaceda0bc2",
      "tree": "bac5dc39477176652b07dea14052d6febc2708bc",
      "parents": [
        "f9e6bfa141c5bcf3402d98204b7b23b310be9ddb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Nov 21 19:49:41 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 21 11:04:52 2005 -0800"
      },
      "message": "[PATCH] as-iosched: remove state assertion in as_add_request()\n\nKill the arq-\u003estate poison statement in as_add_request(), it can trigger\nfor perfectly valid code that just reuses a request after io completion\ninstead of freeing it and allocating a new one. We probably should\nintroduce a blk_init_request() to start from scratch, but for now just\nkill it as we will be removing the as specific poisoning soon.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eb97b73d75d5c9af7c78c05106de9e3fdc4455ab",
      "tree": "b5e87f732a72cb3cdff96f7116906ed6a2f9643e",
      "parents": [
        "811803c5572b296e0031e0099203de90d77c7bcf"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "qiyong@fc-cn.com",
        "time": "Wed Nov 16 15:27:24 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Nov 18 21:59:31 2005 +0100"
      },
      "message": "[BLOCK] new block/ directory comment tidy\n\nSome leftover comments referring to drivers/block that are now block/.\nThey don\u0027t add any information we don\u0027t already have, so kill them.\n\nSigned-off-by: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "333c47c847c90aaefde8b593054d9344106333b5",
      "tree": "a4aec7b18ffe8d8dd88e027e5e4d84b2d838fe8a",
      "parents": [
        "8f0cb147b2fb12427bf6abef7fed2b604557a41e",
        "c6ea2ba7b8acdb6c4a883b2d38607c8078dff4ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 08:32:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 08:32:39 2005 -0800"
      },
      "message": "Merge branch \u0027block-dir\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n"
    },
    {
      "commit": "3a65dfe8c088143c7155cfd36a72f4b0ad2fc4b2",
      "tree": "db930c9f71f94d3ee674f65e38c38e95ca97227e",
      "parents": [
        "0f3278d14f0255e4cd9e07ccefc33ff12d8bb59c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Nov 04 08:43:35 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Nov 04 08:43:35 2005 +0100"
      },
      "message": "[BLOCK] Move all core block layer code to new block/ directory\n\ndrivers/block/ is right now a mix of core and driver parts. Lets move\nthe core parts to a new top level directory. Al will move the fs/\nrelated block parts to block/ next.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "83521d3eb8dd2dfb04dd78b4733e9766f61bb47e",
      "tree": "e372f6bef5205c12024512f3b1df5a76df7f0fba",
      "parents": [
        "a8db2db1e6a8d323d87a67c5391d48fe2b97faf5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Oct 30 15:01:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] cfq-iosched: move tasklist walk to elevator.c\n\nWe\u0027re trying to get rid of as much as possible tasklist walks, or at\nleast moving them to core code.  This patch falls into the second\ncategory.\n\nInstead of walking the tasklist in cfq-iosched move that into\nelv_unregister.  The added benefit is that with this change the as\nioscheduler might be might unloadable more easily aswell.\n\nThe new code uses read_lock instead of read_lock_irq because the\ntasklist_lock only needs irq disabling for writers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47e627ce83b6df9f4bb8e4b0a4dde1c5d7a4c929",
      "tree": "e41ee81ad1c584fd93184cf43acbcbd986ad858d",
      "parents": [
        "fc228a04a4c01bbb2f898e180a14f9a976001f79"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Oct 29 18:18:42 2005 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:28:13 2005 -0700"
      },
      "message": "[PATCH] blk: fix merge bug in as-iosched\n\nas-iosched deals with aliased requests differently from other ioscheds.\n\nIt links together aliased requests using rq-\u003equeuelist instead of\nspilling alises to dispatch queue like other ioscheds do.  Requests\nlinked in this way cannot be merged.\n\nUnfortunately, generic q-\u003elast_merge handling patch didn\u0027t take this\ninto account and q-\u003elast_merge could be set to an aliased request\nresulting in Badness, corrupt list and eventually panic.\n\nThis explicitly marks aliased requests to be unmergeable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28d721e24c88496ff8e9c4a0959bdc1415c0658e",
      "tree": "0652161bbbcbfddf47c7ddb25d2db8ecd4cbec89",
      "parents": [
        "0ee40c6628434f0535da31deeacc28b61e80d810",
        "cb19833dccb32f97cacbfff834b53523915f13f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:53:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:53:49 2005 -0700"
      },
      "message": "Merge branch \u0027generic-dispatch\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n"
    },
    {
      "commit": "8267e268e0914ac9371d07f711fcf20cc572993c",
      "tree": "6f83cbcb95187544ed9075470c14cc12128272c8",
      "parents": [
        "27496a8c67bef4d789d8e3c8317ca35813a507ae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:53 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: block layer core\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "98b11471d72a374f346bec50a00d0887719b85b3",
      "tree": "875feb99eacd983fdc9107eb1c3b68f24e641aa4",
      "parents": [
        "06b86245c052963029bfd9020ca1f08ceb66f85a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Oct 20 16:46:54 2005 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Oct 28 08:45:35 2005 +0200"
      },
      "message": "[PATCH] 04/05 remove last_merge handling from ioscheds\n\nRemove last_merge handling from all ioscheds.  This patch\nremoves merging capability of noop iosched.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "b4878f245ec8e168cdd1f170f823a750b7dd4af5",
      "tree": "de784c2a7e1174e4843807998f0356bf92ee78be",
      "parents": [
        "d9ebb192aa13a026edc6faff137dcb14f2c91731"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Oct 20 16:42:29 2005 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Fri Oct 28 08:45:08 2005 +0200"
      },
      "message": "[PATCH] 02/05: update ioscheds to use generic dispatch queue\n\nThis patch updates all four ioscheds to use generic dispatch\nqueue.  There\u0027s one behavior change in as-iosched.\n\n* In as-iosched, when force dispatching\n  (ELEVATOR_INSERT_BACK), batch_data_dir is reset to REQ_SYNC\n  and changed_batch and new_batch are cleared to zero.  This\n  prevernts AS from doing incorrect update_write_batch after\n  the forced dispatched requests are finished.\n\n* In cfq-iosched, cfqd-\u003erq_in_driver currently counts the\n  number of activated (removed) requests to determine\n  whether queue-kicking is needed and cfq_max_depth has been\n  reached.  With generic dispatch queue, I think counting\n  the number of dispatched requests would be more appropriate.\n\n* cfq_max_depth can be lowered to 1 again.\n\nOriginal from Tejun Heo, modified version applied.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "c9b3ad673460fc997a652cd58aa3a345d40e5218",
      "tree": "a91d0f452ccfe72fb2cb4c2db75cddc36a2ef21d",
      "parents": [
        "ef2a701d444a4ea9790146e92756b0dde5070a15"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Jul 27 11:43:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:25:50 2005 -0700"
      },
      "message": "[PATCH] as-iosched tunable encoding fix\n\nAS is doing internal msec\u003c-\u003ejiffies conversions twice, so the sysfs tunables\nwhich represent time are coming out wrong.  The switch from HZ\u003d1000 exposed\nthis.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1946089a109251655c5438d92c539bd2930e71ea",
      "tree": "819a492d5a7c4e6e695b150a86abeb99d5ac46eb",
      "parents": [
        "8c5a09082f4e61a176382e96a831a0636b918602"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:08:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:09 2005 -0700"
      },
      "message": "[PATCH] NUMA aware block device control structure allocation\n\nPatch to allocate the control structures for for ide devices on the node of\nthe device itself (for NUMA systems).  The patch depends on the Slab API\nchange patch by Manfred and me (in mm) and the pcidev_to_node patch that I\nposted today.\n\nDoes some realignment too.\n\nSigned-off-by: Justin M. Forbes \u003cjmforbes@linuxtx.org\u003e\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Pravin Shelar \u003cpravin@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhit@calsoftinc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c1852a08e444a2e66367352a99c0e93c8bf3e97",
      "tree": "ffa075f75b7eb0e5b1399aeb8e34e6cf9a631a10",
      "parents": [
        "fc7e4828995d8c9e4c9597f8a19179e4ab53f73e"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Fri Apr 29 01:26:06 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:03 2005 -0700"
      },
      "message": "[PATCH] sysfs: (driver/block) if show/store is missing return -EIO\n\nsysfs: fix drivers/block so if an attribute doesn\u0027t implement\n       show or store method read/write will return -EIO\n       instead of 0 or -EINVAL.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
