)]}'
{
  "log": [
    {
      "commit": "d8733c2956968a01394a4d2a9e97a8b431a78776",
      "tree": "9743c9020eb5193efa4a0f102b3a7eb1d999c4fd",
      "parents": [
        "b8e31edc10d160a8bf2159541d9d12f2079a0887"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Mar 23 03:00:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:09 2006 -0800"
      },
      "message": "[PATCH] ext3_readdir: use generic readahead\n\nLinus points out that ext3_readdir\u0027s readahead only cuts in when\next3_readdir() is operating at the very start of the directory.  So for large\ndirectories we end up performing no readahead at all and we suck.\n\nSo take it all out and use the core VM\u0027s page_cache_readahead().  This means\nthat ext3 directory reads will use all of readahead\u0027s dynamic sizing goop.\n\nNote that we\u0027re using the directory\u0027s filp-\u003ef_ra to hold the readahead state,\nbut readahead is actually being performed against the underlying blockdev\u0027s\naddress_space.  Fortunately the readahead code is all set up to handle this.\n\nTested with printk.  It works.  I was struggling to find a real workload which\nactually cared.\n\n(The patch also exports page_cache_readahead() to GPL modules)\n\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aed75ff3caafce404d9be7f0c088716375be5279",
      "tree": "15e7165969ff533b73e29a4ee0d4b7c889ef1d29",
      "parents": [
        "a564da3964db3256069190c2ae95069143ac37fb"
      ],
      "author": {
        "name": "Steven Pratt",
        "email": "slpratt@austin.ibm.com",
        "time": "Wed Mar 22 00:08:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:03 2006 -0800"
      },
      "message": "[PATCH] readahead: fix initial window size calculation\n\nThe current current get_init_ra_size is not optimal across different IO\nsizes and max_readahead values.  Here is a quick summary of sizes computed\nunder current design and under the attached patch.  All of these assume 1st\nIO at offset 0, or 1st detected sequential IO.\n\n\t32k max, 4k request\n\n\told         new\n\t-----------------\n\t 8k        8k\n\t16k       16k\n\t32k       32k\n\n\t128k max, 4k request\n\told         new\n\t-----------------\n\t32k         16k\n\t64k         32k\n\t128k        64k\n\t128k       128k\n\n\t128k max, 32k request\n\told         new\n\t-----------------\n\t32k         64k    \u003c-----\n\t64k        128k\n\t128k       128k\n\n\t512k max, 4k request\n\told         new\n\t-----------------\n\t4k         32k     \u003c----\n\t16k        64k\n\t64k       128k\n\t128k      256k\n\t512k      512k\n\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a564da3964db3256069190c2ae95069143ac37fb",
      "tree": "b7b9d66c1d6dde82db23222b16b0296013b1c3db",
      "parents": [
        "d15c023b44e5d323f1f4130b85d29f08e43433b1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Mar 22 00:08:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:03 2006 -0800"
      },
      "message": "[PATCH] readahead: -\u003eprev_page can overrun the ahead window\n\nIf get_next_ra_size() does not grow fast enough, -\u003eprev_page can overrun\nthe ahead window.  This means the caller will read the pages from\n-\u003eahead_start + -\u003eahead_size to -\u003eprev_page synchronously.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "994fc28c7b1e697ac56befe4aecabf23f0689f46",
      "tree": "da36d162e9bd077e9b5be385b28e2db90475c263",
      "parents": [
        "7063fbf2261194f72ee75afca67b3b38b554b5fa"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Thu Dec 15 14:28:17 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:42 2006 -0800"
      },
      "message": "[PATCH] add AOP_TRUNCATED_PAGE, prepend AOP_ to WRITEPAGE_ACTIVATE\n\nreadpage(), prepare_write(), and commit_write() callers are updated to\nunderstand the special return code AOP_TRUNCATED_PAGE in the style of\nwritepage() and WRITEPAGE_ACTIVATE.  AOP_TRUNCATED_PAGE tells the caller that\nthe callee has unlocked the page and that the operation should be tried again\nwith a new page.  OCFS2 uses this to detect and work around a lock inversion in\nits aop methods.  There should be no change in behaviour for methods that don\u0027t\nreturn AOP_TRUNCATED_PAGE.\n\nWRITEPAGE_ACTIVATE is also prepended with AOP_ for consistency and they are\nmade enums so that kerneldoc can be used to document their semantics.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "7361f4d8ca65d23a18ba009b4484612183332c2f",
      "tree": "7e3dcf22f7d191bcbeb78eb633ae067a76163124",
      "parents": [
        "bf8f972d3a1daf969cf44f64cc36d53bfd76441f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:59:28 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:37 2005 -0800"
      },
      "message": "[PATCH] readahead commentary\n\nAdd a few comments surrounding the generic readahead API.\n\nAlso convert some ulongs into pgoff_t: the identifier for PAGE_CACHE_SIZE\noffsets into pagecache.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b30bbd963ac2606b0377b39c9d148d6eeef7dce",
      "tree": "40365e8055cf698f39c2e5891fbca375dea7ce76",
      "parents": [
        "e139aa595c5d3bd01699530cbe017dec75fdb07f"
      ],
      "author": {
        "name": "Steven Pratt",
        "email": "slpratt@austin.ibm.com",
        "time": "Tue Sep 06 15:17:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:25 2005 -0700"
      },
      "message": "[PATCH] readahead: reset cache_hit earlier\n\nWe don\u0027t reset the cache hit count until after readahead does a successful\nreadahead.  This seems to leave a corner case open where we miss in cache,\nbut don\u0027t restart the readhead right away.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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"
    }
  ]
}
