)]}'
{
  "log": [
    {
      "commit": "efdc31319d43050a5742fb690b1a4beb68092a94",
      "tree": "697e9db6db5675c46d559d8982e34a1f8df4f3d1",
      "parents": [
        "cfa76f024f7c9e65169425804e5b32e71f66d0ee"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Oct 21 06:57:41 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Oct 21 08:54:05 2007 -0700"
      },
      "message": "nobh: nobh_write_end fix\n\nThis path mustn\u0027t have been tested :( I did attempt to exercise it\nby injecting failures here, but I suspect PageMappedToDisk may have\nbeen getting in the way. Will need more of a look, although I think\nnobh mode is OK for an -rc1 (it shouldn\u0027t eat anyone\u0027s data).\n\nCommit 03158cd7eb3374843de68421142ca5900df845d9 (\"fs: restore nobh\")\nintrocduced a NULL deref.  Spotted by the Coverity checker.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f7decf6d9f06dac008b8d66935c0c3b18e564f9",
      "tree": "e0f8430bd4e3ed5425aa55b7fa28483341bbfe87",
      "parents": [
        "08d8e9749e7f0435ba4683b620e8d30d59276b4c"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 23:30:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:02 2007 -0700"
      },
      "message": "writeback: remove pages_skipped accounting in __block_write_full_page()\n\nMiklos Szeredi \u003cmiklos@szeredi.hu\u003e and me identified a writeback bug:\n\n\u003e The following strange behavior can be observed:\n\u003e\n\u003e 1. large file is written\n\u003e 2. after 30 seconds, nr_dirty goes down by 1024\n\u003e 3. then for some time (\u003c 30 sec) nothing happens (disk idle)\n\u003e 4. then nr_dirty again goes down by 1024\n\u003e 5. repeat from 3. until whole file is written\n\u003e\n\u003e So basically a 4Mbyte chunk of the file is written every 30 seconds.\n\u003e I\u0027m quite sure this is not the intended behavior.\n\nIt can be produced by the following test scheme:\n\n# cat bin/test-writeback.sh\ngrep nr_dirty /proc/vmstat\necho 1 \u003e /proc/sys/fs/inode_debug\ndd if\u003d/dev/zero of\u003d/var/x bs\u003d1K count\u003d204800\u0026\nwhile true; do grep nr_dirty /proc/vmstat; sleep 1; done\n\n# bin/test-writeback.sh\nnr_dirty 19207\nnr_dirty 19207\nnr_dirty 30924\n204800+0 records in\n204800+0 records out\n209715200 bytes (210 MB) copied, 1.58363 seconds, 132 MB/s\nnr_dirty 47150\nnr_dirty 47141\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47205\nnr_dirty 47214\nnr_dirty 47214\nnr_dirty 47214\nnr_dirty 47214\nnr_dirty 47214\nnr_dirty 47215\nnr_dirty 47216\nnr_dirty 47216\nnr_dirty 47216\nnr_dirty 47154\nnr_dirty 47143\nnr_dirty 47143\nnr_dirty 47143\nnr_dirty 47143\nnr_dirty 47143\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47142\nnr_dirty 47134\nnr_dirty 47134\nnr_dirty 47135\nnr_dirty 47135\nnr_dirty 47135\nnr_dirty 46097 \u003c\u003d\u003d -1038\nnr_dirty 46098\nnr_dirty 46098\nnr_dirty 46098\n[...]\nnr_dirty 46091\nnr_dirty 46092\nnr_dirty 46092\nnr_dirty 45069 \u003c\u003d\u003d -1023\nnr_dirty 45056\nnr_dirty 45056\nnr_dirty 45056\n[...]\nnr_dirty 37822\nnr_dirty 36799 \u003c\u003d\u003d -1023\n[...]\nnr_dirty 36781\nnr_dirty 35758 \u003c\u003d\u003d -1023\n[...]\nnr_dirty 34708\nnr_dirty 33672 \u003c\u003d\u003d -1024\n[...]\nnr_dirty 33692\nnr_dirty 32669 \u003c\u003d\u003d -1023\n\n% ls -li /var/x\n847824 -rw-r--r-- 1 root root 200M 2007-08-12 04:12 /var/x\n\n% dmesg|grep 847824  # generated by a debug printk\n[  529.263184] redirtied inode 847824 line 548\n[  564.250872] redirtied inode 847824 line 548\n[  594.272797] redirtied inode 847824 line 548\n[  629.231330] redirtied inode 847824 line 548\n[  659.224674] redirtied inode 847824 line 548\n[  689.219890] redirtied inode 847824 line 548\n[  724.226655] redirtied inode 847824 line 548\n[  759.198568] redirtied inode 847824 line 548\n\n# line 548 in fs/fs-writeback.c:\n543                 if (wbc-\u003epages_skipped !\u003d pages_skipped) {\n544                         /*\n545                          * writeback is not making progress due to locked\n546                          * buffers.  Skip this inode for now.\n547                          */\n548                         redirty_tail(inode);\n549                 }\n\nMore debug efforts show that __block_write_full_page()\nnever has the chance to call submit_bh() for that big dirty file:\nthe buffer head is *clean*. So basicly no page io is issued by\n__block_write_full_page(), hence pages_skipped goes up.\n\nAlso the comment in generic_sync_sb_inodes():\n\n544                         /*\n545                          * writeback is not making progress due to locked\n546                          * buffers.  Skip this inode for now.\n547                          */\n\nand the comment in __block_write_full_page():\n\n1713                 /*\n1714                  * The page was marked dirty, but the buffers were\n1715                  * clean.  Someone wrote them back by hand with\n1716                  * ll_rw_block/submit_bh.  A rare case.\n1717                  */\n\ndo not quite agree with each other. The page writeback should be skipped for\n\u0027locked buffer\u0027, but here it is \u0027clean buffer\u0027!\n\nThis patch fixes this bug. Though I\u0027m not sure why __block_write_full_page()\nis called only to do nothing and who actually issued the writeback for us.\n\nThis is the two possible new behaviors after the patch:\n\n1) pretty nice: wait 30s and write ALL:)\n2) not so good:\n\t- during the dd: ~16M\n\t- after 30s:      ~4M\n\t- after 5s:       ~4M\n\t- after 5s:     ~176M\n\nThe next patch will fix case (2).\n\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: David Chinner \u003cdgc@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": "c9e51e4180696aa67915ec5665e4ec74125565de",
      "tree": "d66e1427b16e56bc7da0dfb583a6d8edb55a2c3e",
      "parents": [
        "b2e8fb6efa209c82203c79b491b5bc952d44aa57"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "mm: count reclaimable pages per BDI\n\nCount per BDI reclaimable pages; nr_reclaimable \u003d nr_dirty + nr_unstable.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e12ba74d8ff3e2f73a583500d7095e406df4d093",
      "tree": "a0d3385b65f0b3e1e00b0bbf11b75e7538a93edb",
      "parents": [
        "c361be55b3128474aa66d31092db330b07539103"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:00 2007 -0700"
      },
      "message": "Group short-lived and reclaimable kernel allocations\n\nThis patch marks a number of allocations that are either short-lived such as\nnetwork buffers or are reclaimable such as inode allocations.  When something\nlike updatedb is called, long-lived and unmovable kernel allocations tend to\nbe spread throughout the address space which increases fragmentation.\n\nThis patch groups these allocations together as much as possible by adding a\nnew MIGRATE_TYPE.  The MIGRATE_RECLAIMABLE type is for allocations that can be\nreclaimed on demand, but not moved.  i.e.  they can be migrated by deleting\nthem and re-reading the information from elsewhere.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: 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": "03158cd7eb3374843de68421142ca5900df845d9",
      "tree": "5e1bfc1f981651e7f7d7cf30afd15d7bd96b2a57",
      "parents": [
        "b6af1bcd8720cb3062c8c4d4c8ba02bee10ff03f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:58 2007 -0700"
      },
      "message": "fs: restore nobh\n\nImplement nobh in new aops.  This is a bit tricky.  FWIW, nobh_truncate is\nnow implemented in a way that does not create blocks in sparse regions,\nwhich is a silly thing for it to have been doing (isn\u0027t it?)\n\next2 survives fsx and fsstress. jfs is converted as well... ext3\nshould be easy to do (but not done yet).\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a20fa20c549ed569885d871f689a59cfd2f6ff77",
      "tree": "bc6f7119cec83032eb43c27d6ec7bbbebd2fdddb",
      "parents": [
        "f7557e8f7ff785d6c2b5bc914cd1675314ff0fcf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "With reiserfs no longer using the weird generic_cont_expand, remove it completely.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89e107877b65bf6eff1d63a1302dee9a091586f5",
      "tree": "8a120a04c46f19229d1cf9b9c546f1818cf84c44",
      "parents": [
        "7765ec26ae1c01bb29bedf910e4efcced8cc81d2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: new cont helpers\n\nRework the generic block \"cont\" routines to handle the new aops.  Supporting\ncont_prepare_write would take quite a lot of code to support, so remove it\ninstead (and we later convert all filesystems to use it).\n\nwrite_begin gets passed AOP_FLAG_CONT_EXPAND when called from\ngeneric_cont_expand, so filesystems can avoid the old hacks they used.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afddba49d18f346e5cc2938b6ed7c512db18ca68",
      "tree": "4726e3d3b0e9e8e5b5d3b2b0cccb36446bbdf3ca",
      "parents": [
        "637aff46f94a754207c80c8c64bf1b74f24b967d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: introduce write_begin, write_end, and perform_write aops\n\nThese are intended to replace prepare_write and commit_write with more\nflexible alternatives that are also able to avoid the buffered write\ndeadlock problems efficiently (which prepare_write is unable to do).\n\n[mark.fasheh@oracle.com: API design contributions, code review and fixes]\n[akpm@linux-foundation.org: various fixes]\n[dmonakhov@sw.ru: new aop block_write_begin fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "637aff46f94a754207c80c8c64bf1b74f24b967d",
      "tree": "837fb3196236998c3c3ae44762ed3167ef0256f4",
      "parents": [
        "2f718ffc16c43a435d12919c75dbfad518abd056"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "fs: fix data-loss on error\n\nNew buffers against uptodate pages are simply be marked uptodate, while the\nbuffer_new bit remains set.  This causes error-case code to zero out parts of\nthose buffers because it thinks they contain stale data: wrong, they are\nactually uptodate so this is a data loss situation.\n\nFix this by actually clearning buffer_new and marking the buffer dirty.  It\nmakes sense to always clear buffer_new before setting a buffer uptodate.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4b0672db3a698d0684ee6e54f44e2e162a3da1b",
      "tree": "d53c52b251856520b0fd02969bfcdd4b5d332da6",
      "parents": [
        "68671f35fe8d785277118a333c88768a4f894917"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "fs: fix nobh error handling\n\nnobh mode error handling is not just pretty slack, it\u0027s wrong.\n\nOne cannot zero out the whole page to ensure new blocks are zeroed, because\nit just brings the whole page \"uptodate\" with zeroes even if that may not\nbe the correct uptodate data.  Also, other parts of the page may already\ncontain dirty data which would get lost by zeroing it out.  Thirdly, the\nwriteback of zeroes to the new blocks will also erase existing blocks.  All\nthese conditions are pagecache and/or filesystem corruption.\n\nThe problem comes about because we didn\u0027t keep track of which buffers\nactually are new or old.  However it is not enough just to keep only this\nstate, because at the point we start dirtying parts of the page (new\nblocks, with zeroes), the handling of IO errors becomes impossible without\nbuffers because the page may only be partially uptodate, in which case the\npage flags allone cannot capture the state of the parts of the page.\n\nSo allocate all buffers for the page upfront, but leave them unattached so\nthat they don\u0027t pick up any other references and can be freed when we\u0027re\ndone.  If the error path is hit, then zero the new buffers as the regular\nbuffer path does, then attach the buffers to the page so that it can\nactually be written out correctly and be subject to the normal IO error\nhandling paths.\n\nAs an upshot, we save 1K of kernel stack on ia64 or powerpc 64K page\nsystems.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68671f35fe8d785277118a333c88768a4f894917",
      "tree": "50cb5a378db1b021c2ec3573388af3480df49791",
      "parents": [
        "ef8b4520bd9f8294ffce9abd6158085bde5dc902"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 16 01:24:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "mm: add end_buffer_read helper function\n\nMove duplicated code from end_buffer_read_XXX methods to separate helper\nfunction.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1833633803c7ef4d8f09877d3f1549cbd252f477",
      "tree": "ce69505de705701f838bd77c6b6b6bc18529bed0",
      "parents": [
        "e228929bc257b963523ed75aa60d2ad77ece2189"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 20 00:31:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 08:44:19 2007 -0700"
      },
      "message": "fix some conversion overflows\n\nFix page index to offset conversion overflows in buffer layer, ecryptfs,\nand ocfs2.\n\nIt would be nice to convert the whole tree to page_offset, but for now\njust fix the bugs.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@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": "5417169026c3df151adf5a65eb061278b0a72e69",
      "tree": "e4872a4243e12fe931ff6ac789df181b579b884c",
      "parents": [
        "589f1e81bde732dd0b1bc5d01b6bddd4bcb4527b"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Thu Jul 19 17:39:55 2007 +1000"
      },
      "committer": {
        "name": "Tim Shimmin",
        "email": "tes@chook.melbourne.sgi.com",
        "time": "Thu Jul 19 19:50:50 2007 +1000"
      },
      "message": "[FS] Implement block_page_mkwrite.\n\nMany filesystems need a -\u003epage-mkwrite callout to correctly\nset up pages that have been written to by mmap. This is especially\nimportant when mmap is writing into holes as it allows filesystems\nto correctly account for and allocate space before the mmap\nwrite is allowed to proceed.\n\nProtection against truncate races is provided by locking the page\nand checking to see whether the page mapping is correct and whether\nit is beyond EOF so we don\u0027t end up allowing allocations beyond\nthe current EOF or changing EOF as a result of a mmap write.\n\nSGI-PV: 940392\nSGI-Modid: 2.6.x-xfs-melb:linux:29146a\n\nSigned-off-by: David Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Tim Shimmin \u003ctes@sgi.com\u003e\n"
    },
    {
      "commit": "787d2214c19bcc9b6ac48af0ce098277a801eded",
      "tree": "a040604fdf9620a66dc83a0cde4f2140e2ec25b3",
      "parents": [
        "a1ed3dda0ad181532f1e0f0d548067fb9fdddac4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jul 17 04:03:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "fs: introduce some page/buffer invariants\n\nIt is a bug to set a page dirty if it is not uptodate unless it has\nbuffers.  If the page has buffers, then the page may be dirty (some buffers\ndirty) but not uptodate (some buffers not uptodate).  The exception to this\nrule is if the set_page_dirty caller is racing with truncate or invalidate.\n\nA buffer can not be set dirty if it is not uptodate.\n\nIf either of these situations occurs, it indicates there could be some data\nloss problem.  Some of these warnings could be a harmless one where the\npage or buffer is set uptodate immediately after it is dirtied, however we\nshould fix those up, and enforce this ordering.\n\nBring the order of operations for truncate into line with those of\ninvalidate.  This will prevent a page from being able to go !uptodate while\nwe\u0027re holding the tree_lock, which is probably a good thing anyway.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ad333eb66ff1e52a87639822ae088577669dcf9",
      "tree": "addae6bbd19585f19328f309924d06d647e8f2b7",
      "parents": [
        "7e63efef857575320fb413fbc3d0ee704b72845f"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jul 17 04:03:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "Lumpy Reclaim V4\n\nWhen we are out of memory of a suitable size we enter reclaim.  The current\nreclaim algorithm targets pages in LRU order, which is great for fairness at\norder-0 but highly unsuitable if you desire pages at higher orders.  To get\npages of higher order we must shoot down a very high proportion of memory;\n\u003e95% in a lot of cases.\n\nThis patch set adds a lumpy reclaim algorithm to the allocator.  It targets\ngroups of pages at the specified order anchored at the end of the active and\ninactive lists.  This encourages groups of pages at the requested orders to\nmove from active to inactive, and active to free lists.  This behaviour is\nonly triggered out of direct reclaim when higher order pages have been\nrequested.\n\nThis patch set is particularly effective when utilised with an\nanti-fragmentation scheme which groups pages of similar reclaimability\ntogether.\n\nThis patch set is based on Peter Zijlstra\u0027s lumpy reclaim V2 patch which forms\nthe foundation.  Credit to Mel Gorman for sanitity checking.\n\nMel said:\n\n  The patches have an application with hugepage pool resizing.\n\n  When lumpy-reclaim is used used with ZONE_MOVABLE, the hugepages pool can\n  be resized with greater reliability.  Testing on a desktop machine with 2GB\n  of RAM showed that growing the hugepage pool with ZONE_MOVABLE on it\u0027s own\n  was very slow as the success rate was quite low.  Without lumpy-reclaim,\n  each attempt to grow the pool by 100 pages would yield 1 or 2 hugepages.\n  With lumpy-reclaim, getting 40 to 70 hugepages on each attempt was typical.\n\n[akpm@osdl.org: ia64 pfn_to_nid fixes and loop cleanup]\n[bunk@stusta.de: static declarations for internal functions]\n[a.p.zijlstra@chello.nl: initial lumpy V2 implementation]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "769848c03895b63e5662eb7e4ec8c4866f7d0183",
      "tree": "8911c7c312c8b8b172795fa2874c8162e1d3d15a",
      "parents": [
        "a32ea1e1f925399e0d81ca3f7394a44a6dafa12c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jul 17 04:03:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated\n\nIt is often known at allocation time whether a page may be migrated or not.\nThis patch adds a flag called __GFP_MOVABLE and a new mask called\nGFP_HIGH_MOVABLE.  Allocations using the __GFP_MOVABLE can be either migrated\nusing the page migration mechanism or reclaimed by syncing with backing\nstorage and discarding.\n\nAn API function very similar to alloc_zeroed_user_highpage() is added for\n__GFP_MOVABLE allocations called alloc_zeroed_user_highpage_movable().  The\nflags used by alloc_zeroed_user_highpage() are not changed because it would\nchange the semantics of an existing API.  After this patch is applied there\nare no in-kernel users of alloc_zeroed_user_highpage() so it probably should\nbe marked deprecated if this patch is merged.\n\nNote that this patch includes a minor cleanup to the use of __GFP_ZERO in\nshmem.c to keep all flag modifications to inode-\u003emapping in the\nshmem_dir_alloc() helper function.  This clean-up suggestion is courtesy of\nHugh Dickens.\n\nAdditional credit goes to Christoph Lameter and Linus Torvalds for shaping the\nconcept.  Credit to Hugh Dickens for catching issues with shmem swap vector\nand ramfs allocations.\n\n[akpm@linux-foundation.org: build fix]\n[hugh@veritas.com: __GFP_ZERO cleanup]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: 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": "4a2d44590a603be292addce9c263982043416666",
      "tree": "93b15a75398334c1632c9d8aadd2aadfc3256e18",
      "parents": [
        "c5c061b8f9726bc2c25e19dec227933a13d1e6b7"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Jul 15 23:40:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "buffer: kill old incorrect comment\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c",
      "tree": "ce6f85896cf04d26e027ef6b24c60e7b28508faf",
      "parents": [
        "5f663404b27fa72546a592c5c932b0605b9c93a6"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun May 20 23:39:40 2007 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:15:32 2007 -0700"
      },
      "message": "Fix \"fs: convert core functions to zero_user_page\"\n\nThe bug was introduced by 01f2705daf5a36208e69d7cf95db9c330f843af6.\nIt misses to convert the first argument, it should be \"new_page\".\n\nThis became a cause of fatfs corruption.\n\nCc: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea125892a17f43919c726777ed1e4929d41e7984",
      "tree": "4d349a456bca4005d021d10c063ecb79c42ff4bc",
      "parents": [
        "8d98a690f58e0d6ecf424b7ca84488475cf87bd9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:11:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:06 2007 -0700"
      },
      "message": "Fix page allocation flags in grow_dev_page()\n\ngrow_dev_page() simply passes GFP_NOFS to find_or_create_page.  This means\nthe allocation of radix tree nodes is done with GFP_NOFS and the allocation\nof a new page is done using GFP_NOFS.\n\nThe mapping has a flags field that contains the necessary allocation flags\nfor the page cache allocation.  These need to be consulted in order to get\nDMA and HIGHMEM allocations etc right.  And yes a blockdev could be\nallowing Highmem allocations if its a ramdisk.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\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": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: 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": "01f2705daf5a36208e69d7cf95db9c330f843af6",
      "tree": "2d2c7a042c2466ed985f6e0950450c099f02725f",
      "parents": [
        "38a23e311b6cd389b9d8af2ea6c28c8cffbe581c"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "fs: convert core functions to zero_user_page\n\nIt\u0027s very common for file systems to need to zero part or all of a page,\nthe simplist way is just to use kmap_atomic() and memset().  There\u0027s\nactually a library function in include/linux/highmem.h that does exactly\nthat, but it\u0027s confusingly named memclear_highpage_flush(), which is\ndescriptive of *how* it does the work rather than what the *purpose* is.\nSo this patchset renames the function to zero_user_page(), and calls it\nfrom the various places that currently open code it.\n\nThis first patch introduces the new function call, and converts all the\ncore kernel callsites, both the open-coded ones and the old\nmemclear_highpage_flush() ones.  Following this patch is a series of\nconversions for each file system individually, per AKPM, and finally a\npatch deprecating the old call.  The diffstat below shows the entire\npatchset.\n\n[akpm@linux-foundation.org: fix a few things]\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e4c3690b07f04b1942c39db358a5c8a72831daa",
      "tree": "70d8773f612ed3df02c738b678edef64dd5ddaf7",
      "parents": [
        "3e9f45bd18191bbd05468b19b7064b8da8262aba"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue May 08 00:23:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "block_write_full_page(): report ENOSPC\n\nblock_write_full_page() forgot to propagate ENPSOC into the address_space.\n\nCc: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\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": "f9a14399aea13830d8af6798a53207bb0a900945",
      "tree": "b2501f1ce1d2a4564cd9a29c55705e524f594ad1",
      "parents": [
        "f98393a64ca1392130724c3acb4e3f325801d2b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: optimize kill_bdev()\n\nRemove duplicate work in kill_bdev().\n\nIt currently invalidates and then truncates the bdev\u0027s mapping.\ninvalidate_mapping_pages() will opportunistically remove pages from the\nmapping.  And truncate_inode_pages() will forcefully remove all pages.\n\nThe only thing truncate doesn\u0027t do is flush the bh lrus.  So do that\nexplicitly.  This avoids (very unlikely) but possible invalid lookup\nresults if the same bdev is quickly re-issued.\n\nIt also will prevent extreme kernel latencies which are observed when\nblockdevs which have a large amount of pagecache are unmounted, by avoiding\ninvalidate_mapping_pages() on that path.  invalidate_mapping_pages() has no\ncond_resched (it can be called under spinlock), whereas truncate_inode_pages()\nhas one.\n\n[akpm@linux-foundation.org: restore nrpages\u003d\u003d0 optimisation]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f98393a64ca1392130724c3acb4e3f325801d2b6",
      "tree": "b02838bdf84156ac923bb37b6cf5f5ed6aaa3d48",
      "parents": [
        "0a27a14a62921b438bb6f33772690d345a089be6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: remove destroy_dirty_buffers from invalidate_bdev()\n\nRemove the destroy_dirty_buffers argument from invalidate_bdev(), it hasn\u0027t\nbeen used in 6 years (so akpm says).\n\nfind * -name \\*.[ch] | xargs grep -l invalidate_bdev |\nwhile read file; do\n\tquilt add $file;\n\tsed -ie \u0027s/invalidate_bdev(\\([^,]*\\),[^)]*)/invalidate_bdev(\\1)/g\u0027 $file;\ndone\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d67f2d7c0fb28b0eb6a6aa100b190526a971ad9",
      "tree": "eea6afc9610ba15218c9f03aa6091ec687a39577",
      "parents": [
        "6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "fs: buffer don\u0027t PageUptodate without page locked\n\n__block_write_full_page is calling SetPageUptodate without the page locked.\nThis is unusual, but not incorrect, as PG_writeback is still set.\n\nHowever the next patch will require that SetPageUptodate always be called with\nthe page locked.  Simply don\u0027t bother setting the page uptodate in this case\n(it is unusual that the write path does such a thing anyway).  Instead just\nleave it to the read side to bring the page uptodate when it notices that all\nbuffers are uptodate.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57bf63d69cb6b7064e6fec5e83da4e1918168282",
      "tree": "506c623d4f756afb91af4ca150f6759d229d3b9f",
      "parents": [
        "90675a27fa3eb0e97f1d040b183cceb44316e669"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Tue Mar 06 01:42:12 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 06 09:30:25 2007 -0800"
      },
      "message": "[PATCH] fs: nobh_truncate_page() fix\n\nThis fixes a regression caused by 22c8ca78f20724676b6006232bf06cc3e9299539.\n\nnobh_prepare_write() no longer marks the page uptodate, so\nnobh_truncate_page() needs to do it.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22c8ca78f20724676b6006232bf06cc3e9299539",
      "tree": "2e92d122733505590c5df7906ac2590477b5806b",
      "parents": [
        "955eff5acc8b8cd1c7d4eec0229c35eaabe013db"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Feb 20 13:58:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:15 2007 -0800"
      },
      "message": "[PATCH] fs: fix nobh data leak\n\nnobh_prepare_write leaks data similarly to how simple_prepare_write did. Fix\nby not marking the page uptodate until nobh_commit_write time. Again, this\ncould break weird use-cases, but none appear to exist in the tree.\n\nWe can safely remove the set_page_dirty, because as the comment says,\nnobh_commit_write does set_page_dirty. If a filesystem wants to allocate\nbacking store for a page dirtied via mmap, page_mkwrite is the suggested\napproach.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ffda9d302267dbb7fc9bc38f6e4c1b3d61a536a9",
      "tree": "d3b95c0b7dc2edc602e71e2ff8389de79ea243ac",
      "parents": [
        "bc56bba8f31bd99f350a5ebfd43d50f411b620c7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Feb 20 13:57:54 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 20 17:10:13 2007 -0800"
      },
      "message": "[PATCH] fs: fix __block_write_full_page error case buffer submission\n\nAndrew noticed that unlocking the page before submitting all buffers for\nwriteout could cause problems if the IO completes before we\u0027ve finished\nmessing around with the page buffers, and they subsequently get freed.\n\nEven if there were no bug, it is a good idea to bring the error case\ninto line with the common case here.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3991d3bd1506391d8feec209b1d22ccb1c03a0bf",
      "tree": "b9a691fe6b0bc2bf3c98e64348472fa81de7ddab",
      "parents": [
        "bc1fc6d88c646ea071de34250552051a63000d70"
      ],
      "author": {
        "name": "Tomasz Kvarsin",
        "email": "kvarsin@gmail.com",
        "time": "Mon Feb 12 00:52:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:29 2007 -0800"
      },
      "message": "[PATCH] warning fix: unsigned-\u003esigned\n\nWhile compiling my code with -Wconversion using gcc-trunk, I always get a\nbunch of warrning from headers, here is fix for them:\n\n__getblk is alawys called with unsigned argument,\nbut it takes signed, the same story with __bread,__breadahead and so on.\n\nSigned-off-by: Tomasz Kvarsin\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33a266dda9fbbe72dd978a451a8ee33c59da5e9c",
      "tree": "7e3fa4100e436f12b4c0ed562dd1f6dc9ec84fd4",
      "parents": [
        "42da9cbd3eedde33a42acc2cb06f454814cf5de0"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Mon Feb 12 00:51:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:27 2007 -0800"
      },
      "message": "[PATCH] Make BH_Unwritten a first class bufferhead flag V2\n\nCurrently, XFS uses BH_PrivateStart for flagging unwritten extent state in a\nbufferhead.  Recently, I found the long standing mmap/unwritten extent\nconversion bug, and it was to do with partial page invalidation not clearing\nthe unwritten flag from bufferheads attached to the page but beyond EOF.  See\nhere for a full explaination:\n\nhttp://oss.sgi.com/archives/xfs/2006-12/msg00196.html\n\nThe solution I have checked into the XFS dev tree involves duplicating code\nfrom block_invalidatepage to clear the unwritten flag from the bufferhead(s),\nand then calling block_invalidatepage() to do the rest.\n\nChristoph suggested that this would be better solved by pushing the unwritten\nflag into the common buffer head flags and just adding the call to\ndiscard_buffer():\n\nhttp://oss.sgi.com/archives/xfs/2006-12/msg00239.html\n\nThe following patch makes BH_Unwritten a first class citizen.\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72ed3d035855841ad611ee48b20909e9619d4a79",
      "tree": "70a093fdc61bd93fed09f54ec41c05bbdaf902c6",
      "parents": [
        "c742b53114f8d1535608dafb6a5690103a0748b5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Feb 10 01:46:22 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 11:15:24 2007 -0800"
      },
      "message": "[PATCH] buffer: memorder fix\n\nunlock_buffer(), like unlock_page(), must not clear the lock without\nensuring that the critical section is closed.\n\nMingming later sent the same patch, saying:\n\n  We are running SDET benchmark and saw double free issue for ext3 extended\n  attributes block, which complains the same xattr block already being freed (in\n  ext3_xattr_release_block()).  The problem could also been triggered by\n  multiple threads loop untar/rm a kernel tree.\n\n  The race is caused by missing a memory barrier at unlock_buffer() before the\n  lock bit being cleared, resulting in possible concurrent h_refcounter update.\n  That causes a reference counter leak, then later leads to the double free that\n  we have seen.\n\n  Inside unlock_buffer(), there is a memory barrier is placed *after* the lock\n  bit is being cleared, however, there is no memory barrier *before* the bit is\n  cleared.  On some arch the h_refcount update instruction and the clear bit\n  instruction could be reordered, thus leave the critical section re-entered.\n\n  The race is like this: For example, if the h_refcount is initialized as 1,\n\n  cpu 0:                                   cpu1\n  --------------------------------------   -----------------------------------\n  lock_buffer() /* test_and_set_bit */\n  clear_buffer_locked(bh);\n                                          lock_buffer() /* test_and_set_bit */\n  h_refcount \u003d h_refcount+1; /* \u003d 2*/     h_refcount \u003d h_refcount + 1; /*\u003d 2 */\n                                          clear_buffer_locked(bh);\n  ....                                    ......\n\n  We lost a h_refcount here. We need a memory barrier before the buffer head lock\n  bit being cleared to force the order of the two writes.  Please apply.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc0ecff698165ae8e178efa086e0dd1f385206b1",
      "tree": "fc6274f0862bdd6749172201170b2f6a7ce4c4ff",
      "parents": [
        "54bc485522afdac33de5504da2ea8cdcc690674e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 10 01:45:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:31 2007 -0800"
      },
      "message": "[PATCH] remove invalidate_inode_pages()\n\nConvert all calls to invalidate_inode_pages() into open-coded calls to\ninvalidate_mapping_pages().\n\nLeave the invalidate_inode_pages() wrapper in place for now, marked as\ndeprecated.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87df7241bd547da5d4d4a4e5397866dfe422e439",
      "tree": "ffe1e90a761aa358ef95e351e0718cb3c377ad37",
      "parents": [
        "4cbf2aa35e1c189db234190fefc6c83b139ef963"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Jan 30 14:36:27 2007 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 29 20:20:42 2007 -0800"
      },
      "message": "[PATCH] Fix try_to_free_buffer() locking\n\nFix commit ecdfc9787fe527491baefc22dce8b2dbd5b2908d\n\nNot to put too fine a point on it, but in a nutshell...\n\n\t__set_page_dirty_buffers() | try_to_free_buffers()\n\t---------------------------+---------------------------\n\t                           | spin_lock(private_lock);\n\t                           | drop_bufers()\n\t                           | spin_unlock(private_lock);\n\tspin_lock(private_lock)    |\n\t!page_has_buffers()        |\n\tspin_unlock(private_lock)  |\n\tSetPageDirty()             |\n\t                           | cancel_dirty_page()\n\n                          oops!\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecdfc9787fe527491baefc22dce8b2dbd5b2908d",
      "tree": "31e7ddac0339498095c40444f81c0b03751434ae",
      "parents": [
        "5ad0d383ddbf0d2fce43b8aac267a6c299fd2dff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 12:47:06 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 12:47:06 2007 -0800"
      },
      "message": "Resurrect \u0027try_to_free_buffers()\u0027 VM hackery\n\nIt\u0027s not pretty, but it appears that ext3 with data\u003djournal will clean\npages without ever actually telling the VM that they are clean.  This,\nin turn, will result in the VM (and balance_dirty_pages() in particular)\nto never realize that the pages got cleaned, and wait forever for an\nevent that already happened.\n\nTechnically, this seems to be a problem with ext3 itself, but it used to\nbe hidden by \u0027try_to_free_buffers()\u0027 noticing this situation on its own,\nand just working around the filesystem problem.\n\nThis commit re-instates that hack, in order to avoid a regression for\nthe 2.6.20 release. This fixes bugzilla 7844:\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d7844\n\nPeter Zijlstra points out that we should probably retain the debugging\ncode that this removes from cancel_dirty_page(), and I agree, but for\nthe imminent release we might as well just silence the warning too\n(since it\u0027s not a new bug: anything that triggers that warning has been\naround forever).\n\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f73ca1b76c6880b934d3ef566c1592efc80bb759",
      "tree": "c9384ef5ff0ba68817858afdcc330e8707b11ec9",
      "parents": [
        "88bf7b391dca840f03fe25e4ff8fe6b4319fa07b"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Wed Jan 10 23:15:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] Revert bd_mount_mutex back to a semaphore\n\nRevert bd_mount_mutex back to a semaphore so that xfs_freeze -f /mnt/newtest;\nxfs_freeze -u /mnt/newtest works safely and doesn\u0027t produce lockdep warnings.\n\n(XFS unlocks the semaphore from a different task, by design.  The mutex\ncode warns about this)\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46d2277c796f9f4937bfa668c40b2e3f43e93dd0",
      "tree": "cfde4d8c4b1d721455c978a53e70a55a6c73c3ef",
      "parents": [
        "9bfb18392ef586467277fa25d8f3a7a93611f6df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 19 15:21:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:04:31 2006 -0800"
      },
      "message": "Clean up and make try_to_free_buffers() not race with dirty pages\n\nThis is preparatory work in our continuing saga on some hard-to-trigger\nfile corruption with shared writable mmap() after the dirty page\ntracking changes (commit d08b3851da41d0ee60851f2c75b118e1f7a5fc89 etc)\nwere merged.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e08748ce01e02f0ec154b141f392ccb9555333f4",
      "tree": "9fa9d9f8fb468997f7f6fbcb28e243724d1fdda6",
      "parents": [
        "55e829af06681e5d731c03ba04febbd1c76ca293"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Dec 10 02:19:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] io-accounting: write-cancel accounting\n\nAccount for the number of byte writes which this process caused to not happen\nafter all.\n\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: David Wright \u003cdaw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55e829af06681e5d731c03ba04febbd1c76ca293",
      "tree": "4304030be250d913f56696ffda8ae660fb17b110",
      "parents": [
        "8c08540f8755c451d8b96ea14cfe796bc3cd712d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Dec 10 02:19:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] io-accounting: write accounting\n\nAccounting writes is fairly simple: whenever a process flips a page from clean\nto dirty, we accuse it of having caused a write to underlying storage of\nPAGE_CACHE_SIZE bytes.\n\nThis may overestimate the amount of writing: the page-dirtying may cause only\none buffer_head\u0027s worth of writeout.  Fixing that is possible, but probably a\nbit messy and isn\u0027t obviously important.\n\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: David Wright \u003cdaw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c08540f8755c451d8b96ea14cfe796bc3cd712d",
      "tree": "ca2ba9673ce1c2733c538012105681b238265e48",
      "parents": [
        "7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Dec 10 02:19:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:55:41 2006 -0800"
      },
      "message": "[PATCH] clean up __set_page_dirty_nobuffers()\n\nSave a tabstop in __set_page_dirty_nobuffers() and __set_page_dirty_buffers()\nand a few other places.  No functional changes.\n\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: David Wright \u003cdaw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02316067852187b8bec781bec07410e91af79627",
      "tree": "856e3f4610c91a6548bf3bf5c70ecbc0b28a4145",
      "parents": [
        "a38a44c1a93078fc5fadc4ac2df8dea4697069e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 06 20:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] hotplug CPU: clean up hotcpu_notifier() use\n\nThere was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,\nprio) not correctly marking \u0027fn\u0027 as used in the !HOTPLUG_CPU case, and thus\ngenerating compiler warnings of unused symbols, hence forcing people to add\n#ifdefs.\n\nthe compiler can skip truly unused functions just fine:\n\n    text    data     bss     dec     hex filename\n 1624412  728710 3674856 6027978  5bfaca vmlinux.before\n 1624412  728710 3674856 6027978  5bfaca vmlinux.after\n\n[akpm@osdl.org: topology.c fix]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58ff407bee5a55f9c1188a3f9d70ffc79485183c",
      "tree": "58132c31553a16b09e10f876561cd9ff1132fa77",
      "parents": [
        "d343fce148a4eee24a907a05c4101d3268045aae"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 17 00:10:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:46 2006 -0700"
      },
      "message": "[PATCH] Fix IO error reporting on fsync()\n\nWhen IO error happens on metadata buffer, buffer is freed from memory and\nlater fsync() is called, filesystems like ext2 fail to report EIO.  We\n\nsolve the problem by introducing a pointer to associated address space into\nthe buffer_head.  When a buffer is removed from a list of metadata buffers\nassociated with an address space, IO error is transferred from the buffer to\nthe address space, so that fsync can later report it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c58165108e26d18849a0138c719e680f281197a",
      "tree": "ff5e54e11357867ef3e8edfa9df8de25a688afdc",
      "parents": [
        "97e860d364aa9d08e895ecb619b9122ae2c70df8"
      ],
      "author": {
        "name": "Monakhov Dmitriy",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Oct 11 01:22:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:23 2006 -0700"
      },
      "message": "[PATCH] D-cache aliasing issue in __block_prepare_write\n\nA couple of flush_dcache_page()s are missing on the I/O-error paths.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5657933863f43cc6bb76a54d659303dafaa9e58",
      "tree": "7f6351194953b0d167ea79749d9fcaf9ae7f6a1f",
      "parents": [
        "e0ab2928cc2202f13f0574d4c6f567f166d307eb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 11 01:21:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:21 2006 -0700"
      },
      "message": "[PATCH] grow_buffers() infinite loop fix\n\nIf grow_buffers() is for some reason passed a block number which wants to lie\noutside the maximum-addressable pagecache range (PAGE_SIZE * 4G bytes) then it\nwill accidentally truncate `index\u0027 and will then instnatiate a page at the\nwrong pagecache offset.  This causes __getblk_slow() to go into an infinite\nloop.\n\nThis can happen with corrupted disks, or with software errors elsewhere.\n\nDetect that, and handle it.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebf7a227dd1d810203a19642655d2fa293f395dd",
      "tree": "28b91319c3e792b79b405addd342288f43629a7e",
      "parents": [
        "1601ff0e29cfe112b06aa9bb2fb3519a1125baaa"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 10 04:36:54 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 09 19:51:18 2006 -0700"
      },
      "message": "[PATCH] mm: bug in set_page_dirty_buffers\n\nThis was triggered, but not the fault of, the dirty page accounting\npatches. Suitable for -stable as well, after it goes upstream.\n\n  Unable to handle kernel NULL pointer dereference at virtual address 0000004c\n  EIP is at _spin_lock+0x12/0x66\n  Call Trace:\n   [\u003c401766e7\u003e] __set_page_dirty_buffers+0x15/0xc0\n   [\u003c401401e7\u003e] set_page_dirty+0x2c/0x51\n   [\u003c40140db2\u003e] set_page_dirty_balance+0xb/0x3b\n   [\u003c40145d29\u003e] __do_fault+0x1d8/0x279\n   [\u003c40147059\u003e] __handle_mm_fault+0x125/0x951\n   [\u003c401133f1\u003e] do_page_fault+0x440/0x59f\n   [\u003c4034d0c1\u003e] error_code+0x39/0x40\n   [\u003c08048a33\u003e] 0x8048a33\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf9a2ae8d49948f861b56e5333530e491a9da190",
      "tree": "21f0b0d781b3e60cc60464d39b6d95681201b37e",
      "parents": [
        "4090959aee403817ff386415f9bc602c1a0882ef"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:05:54 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:31:19 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move functions out of buffer code [try #6]\n\nMove some functions out of the buffering code that aren\u0027t strictly buffering\nspecific.  This is a precursor to being able to disable the block layer.\n\n (*) Moved some stuff out of fs/buffer.c:\n\n     (*) The file sync and general sync stuff moved to fs/sync.c.\n\n     (*) The superblock sync stuff moved to fs/super.c.\n\n     (*) do_invalidatepage() moved to mm/truncate.c.\n\n     (*) try_to_release_page() moved to mm/filemap.c.\n\n (*) Moved some related declarations between header files:\n\n     (*) declarations for do_invalidatepage() and try_to_release_page() moved\n     \t to linux/mm.h.\n\n     (*) __set_page_dirty_buffers() moved to linux/buffer_head.h.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d08b3851da41d0ee60851f2c75b118e1f7a5fc89",
      "tree": "a01f6930a1387e8f66607e2fe16c62bb7044353b",
      "parents": [
        "725d704ecaca4a43f067092c140d4f3271cf2856"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:30:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: tracking shared dirty pages\n\nTracking of dirty pages in shared writeable mmap()s.\n\nThe idea is simple: write protect clean shared writeable pages, catch the\nwrite-fault, make writeable and set dirty.  On page write-back clean all the\nPTE dirty bits and write protect them once again.\n\nThe implementation is a tad harder, mainly because the default\nbacking_dev_info capabilities were too loosely maintained.  Hence it is not\nenough to test the backing_dev_info for cap_account_dirty.\n\nThe current heuristic is as follows, a VMA is eligible when:\n - its shared writeable\n    (vm_flags \u0026 (VM_WRITE|VM_SHARED)) \u003d\u003d (VM_WRITE|VM_SHARED)\n - it is not a \u0027special\u0027 mapping\n    (vm_flags \u0026 (VM_PFNMAP|VM_INSERTPAGE)) \u003d\u003d 0\n - the backing_dev_info is cap_account_dirty\n    mapping_cap_account_dirty(vma-\u003evm_file-\u003ef_mapping)\n - f_op-\u003emmap() didn\u0027t change the default page protection\n\nPage from remap_pfn_range() are explicitly excluded because their COW\nsemantics are already horrid enough (see vm_normal_page() in do_wp_page()) and\nbecause they don\u0027t have a backing store anyway.\n\nmprotect() is taught about the new behaviour as well.  However it overrides\nthe last condition.\n\nCleaning the pages on write-back is done with page_mkclean() a new rmap call.\nIt can be called on any page, but is currently only implemented for mapped\npages, if the page is found the be of a VMA that accounts dirty pages it will\nalso wrprotect the PTE.\n\nFinally, in fs/buffers.c:try_to_free_buffers(); remove clear_page_dirty() from\nunder -\u003eprivate_lock.  This seems to be safe, since -\u003eprivate_lock is used to\nserialize access to the buffers, not the page itself.  This is needed because\nclear_page_dirty() will call into page_mkclean() and would thereby violate\nlocking order.\n\n[dhowells@redhat.com: Provide a page_mkclean() implementation for NOMMU]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0e1dfc66b6ec94984a4778132147a8aa36461d58",
      "tree": "225a8e044e021a5a337704bc1f5ea862a5f75375",
      "parents": [
        "a268cefebceeb2046dfdfa301f041c2468536852"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jul 30 03:03:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:38 2006 -0700"
      },
      "message": "[PATCH] invalidate_bdev() speedup\n\nWe can immediately bail from invalidate_bdev() if the blockdev has no\npagecache.\n\nThis solves the huge IPI storms which hald is causing on the big ia64\nmachines when it polls CDROM drives.\n\nAcked-by: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22a3e233ca08a2ddc949ba1ae8f6e16ec7ef1a13",
      "tree": "7ef158ba2c30e0dde2dc103d1904fae243759a6b",
      "parents": [
        "39302175c26d74be35715c05a0f342c9e64c21bf",
        "6ab3d5624e172c553004ecc862bfeac16d9d68b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  Remove obsolete #include \u003clinux/config.h\u003e\n  remove obsolete swsusp_encrypt\n  arch/arm26/Kconfig typos\n  Documentation/IPMI typos\n  Kconfig: Typos in net/sched/Kconfig\n  v9fs: do not include linux/version.h\n  Documentation/DocBook/mtdnand.tmpl: typo fixes\n  typo fixes: specfic -\u003e specific\n  typo fixes in Documentation/networking/pktgen.txt\n  typo fixes: occuring -\u003e occurring\n  typo fixes: infomation -\u003e information\n  typo fixes: disadvantadge -\u003e disadvantage\n  typo fixes: aquire -\u003e acquire\n  typo fixes: mecanism -\u003e mechanism\n  typo fixes: bandwith -\u003e bandwidth\n  fix a typo in the RTC_CLASS help text\n  smb is no longer maintained\n\nManually merged trivial conflict in arch/um/kernel/vmlinux.lds.S\n"
    },
    {
      "commit": "b1e7a8fd854d2f895730e82137400012b509650e",
      "tree": "9fba87ff6b0146ebd4ee5bc7d5f0c8b037dbb3ad",
      "parents": [
        "df849a1529c106f7460e51479ca78fe07b07dc8c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_dirty to per zone counter\n\nThis makes nr_dirty a per zone counter.  Looping over all processors is\navoided during writeback state determination.\n\nThe counter aggregation for nr_dirty had to be undone in the NFS layer since\nwe summed up the page counts from multiple zones.  Someone more familiar with\nNFS should probably review what I have done.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "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": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6cd0b772dcc5dc9b4c03d53946474dee399fa72",
      "tree": "09ef125f7595f73ba256177f894d6c341074ff5b",
      "parents": [
        "a7807a32bbb027ab9955b96734fdc7f1e6497a9f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jun 27 02:53:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] fs/buffer.c: cleanups\n\n- add a proper prototype for the following global function:\n  - buffer_init()\n\n- make the following needlessly global function static:\n  - end_buffer_async_write()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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": "ec936fc563715a9e2b2e363eb060655b49529325",
      "tree": "72e77aefeeda3c6ff396f080a5c6a82f25d52bf0",
      "parents": [
        "679bc9fbb508a0aac9539b2de747eb5849feb428"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] for_each_online_pgdat: renaming for_each_pgdat\n\nReplace for_each_pgdat() with for_each_online_pgdat().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ae21d1bb376436285cd5346d3e4b3655d6dd1b9",
      "tree": "8f889770fae721da63bd378c1834a87e2eb1cfb5",
      "parents": [
        "f9b4192923fa6e38331e88214b1fe5fc21583fcc",
        "e9415777b1cd0eaf4d1d3d61772f0e6d5c2551ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment\n  Kconfig help: MTD_JEDECPROBE already supports Intel\n  Remove ugly debugging stuff\n  do_mounts.c: Minor ROOT_DEV comment cleanup\n  BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c\n  BUG_ON() Conversion in mm/mempool.c\n  BUG_ON() Conversion in mm/memory.c\n  BUG_ON() Conversion in kernel/fork.c\n  BUG_ON() Conversion in ipc/sem.c\n  BUG_ON() Conversion in fs/ext2/\n  BUG_ON() Conversion in fs/hfs/\n  BUG_ON() Conversion in fs/dcache.c\n  BUG_ON() Conversion in fs/buffer.c\n  BUG_ON() Conversion in input/serio/hp_sdc_mlc.c\n  BUG_ON() Conversion in md/dm-table.c\n  BUG_ON() Conversion in md/dm-path-selector.c\n  BUG_ON() Conversion in drivers/isdn\n  BUG_ON() Conversion in drivers/char\n  BUG_ON() Conversion in drivers/mtd/\n"
    },
    {
      "commit": "b0cf2321c6599138f860517745503691556d8453",
      "tree": "39ecfea09c13ce09172ab3ec5a5b6d2fef657cac",
      "parents": [
        "205f87f6b342444f722e4559d33318686f7df2ca"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] pass b_size to -\u003eget_block()\n\nPass amount of disk needs to be mapped to get_block().  This way one can\nmodify the fs -\u003eget_block() functions to map multiple blocks at the same time.\n\n[akpm@osdl.org: performance tweak]\n[akpm@osdl.org: remove unneeded assignments]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "205f87f6b342444f722e4559d33318686f7df2ca",
      "tree": "61f32bb0582dde9fd62ee3d03ac3324b949b29e6",
      "parents": [
        "d48589bfad0e60bff0aa3f9e4875983f607bd44b"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] change buffer_head.b_size to size_t\n\nIncrease the size of the buffer_head b_size field (only) for 64 bit platforms.\nUpdate some old and moldy comments in and around the structure as well.\n\nThe b_size increase allows us to perform larger mappings and allocations for\nlarge I/O requests from userspace, which tie in with other changes allowing\nthe get_block_t() interface to map multiple blocks at once.\n\nSigned-off-by: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3978d7179d3849848df8a37dd0a5acc20bcb8750",
      "tree": "f6a60c588d54ffc482764e7846aabf7ba6135aa4",
      "parents": [
        "5f921ae96f1529a55966f25cd5c70fab11d38be7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003esync_page return void\n\nThe only user ignores the return value, and the only instanace\n(block_sync_page) always returns 0...\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e827f92355e1eeec2d227d3bd3350d04042a011e",
      "tree": "87d1b735d59edcae4044b46157cb72de1a32af54",
      "parents": [
        "fddaaae16ba4d9f4d392a9ef94616d9d22485571"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Mar 26 18:24:46 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Mar 26 18:24:46 2006 +0200"
      },
      "message": "BUG_ON() Conversion in fs/buffer.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner and can better optimized away\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "d25b9a1ff0741e71a46f37f45263b5ddcbc948c4",
      "tree": "7cbf0f402041840b413a43c6da936998981f100d",
      "parents": [
        "11b8448751ba114416c63899638a8e473ebd21e7"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sat Mar 25 03:07:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:56 2006 -0800"
      },
      "message": "[PATCH] freeze_bdev() cleanup\n\nfreeze_bdev() uses a fsync_super() without sync_blockdev().  This patch\nmakes __fsync_super() and shares it.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "18e79b40ed9c5223b88771f805c69f5993fc131b",
      "tree": "cc628524d4bfe3166bbe9d8d7217a1cb009ea209",
      "parents": [
        "676758bdb7bfca8413a85203921746f446e237be"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:27 2006 -0800"
      },
      "message": "[PATCH] fsync: extract internal code\n\nPull the guts out of do_fsync() - we can use it elsewhere.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\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": "4741c9fd36b3bcadd37238321c469049da94a4b9",
      "tree": "4b3031b04cdbf2d3c5a4fcc1965ed857f1cf0ce4",
      "parents": [
        "fa5a734e406b53761fcc5ee22366006f71112c2d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:26 2006 -0800"
      },
      "message": "[PATCH] set_page_dirty() return value fixes\n\nWe need set_page_dirty() to return true if it actually transitioned the page\nfrom a clean to dirty state.  This wasn\u0027t right in a couple of places.  Do a\nkernel-wide audit, fix things up.\n\nThis leaves open the possibility of returning a negative errno from\nset_page_dirty() sometime in the future.  But we don\u0027t do that at present.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a14342683b1e3adcf5f78660a42fcbd95b44a35",
      "tree": "332265cb9fe8b1e107864cdb380bf5f6b4bfb840",
      "parents": [
        "2ecb9e633c5057d1203a59ef3e5c3aaea37c402e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Mar 24 03:18:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:26 2006 -0800"
      },
      "message": "[PATCH] HOTPLUG_CPU: avoid hitting too many cachelines in recalc_bh_state()\n\nInstead of using for_each_cpu(i), we can use for_each_online_cpu(i).\n\nWhen a CPU goes offline (ie removed from online map), it might have a non\nnull bh_accounting.nr, so this patch adds a transfer of this counter to an\nonline CPU counter.\n\nWe already have a hotcpu_notifier, (function buffer_cpu_notify()), where we\ncan do this bh_accounting.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0196009d8c3ecf6ea6ec080c63d2ccc146e7ad9",
      "tree": "3fcb06af54faf92fa5d9d82d5659762d2b742e1c",
      "parents": [
        "c61afb181c649754ea221f104e268cbacfc993e3"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache hooks\n\nChange the kmem_cache_create calls for certain slab caches to support cpuset\nmemory spreading.\n\nSee the previous patches, cpuset_mem_spread, for an explanation of cpuset\nmemory spreading, and cpuset_mem_spread_slab_cache for the slab cache support\nfor memory spreading.\n\nThe slab caches marked for now are: dentry_cache, inode_cache, some xfs slab\ncaches, and buffer_head.  This list may change over time.  In particular,\nother file system types that are used extensively on large NUMA systems may\nwant to allow for spreading their directory and inode slab cache entries.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c039e3134ae62863bbc8e8429b29e3c43cf21b2a",
      "tree": "b9bbf4fda0844e3173bf10a5bffbaaec94fb4246",
      "parents": [
        "6f87f0deebaff2716a3ce9232f948d702690562a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:11 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: blockdev #2\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "b20a35035f983f4ac7e29c4a68f30e43510007e0",
      "tree": "fdf090ddddbcc275349f62f71adc98649e2c683b",
      "parents": [
        "442295c94bf650221af3ef20fc68fa3e93876818"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Mar 22 00:09:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] page migration reorg\n\nCentralize the page migration functions in anticipation of additional\ntinkering.  Creates a new file mm/migrate.c\n\n1. Extract buffer_migrate_page() from fs/buffer.c\n\n2. Extract central migration code from vmscan.c\n\n3. Extract some components from mempolicy.c\n\n4. Export pageout() and remove_from_swap() from vmscan.c\n\n5. Make it possible to configure NUMA systems without page migration\n   and non-NUMA systems with page migration.\n\nI had to so some #ifdeffing in mempolicy.c that may need a cleanup.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4983da07f1e2e8dc81cb9d640fbf35b899cdbdf2",
      "tree": "9c238114f029d1d22bc55f47e8d95ef7335c540d",
      "parents": [
        "e843e280cbe218fc8387339806d344708dee348a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Mar 14 19:50:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 21:43:02 2006 -0800"
      },
      "message": "[PATCH] page migration: fail if page is in a vma flagged VM_LOCKED\n\npage migration currently simply retries a couple of times if try_to_unmap()\nfails without inspecting the return code.\n\nHowever, SWAP_FAIL indicates that the page is in a vma that has the\nVM_LOCKED flag set (if ignore_refs \u003d\u003d1).  We can check for that return code\nand avoid retrying the migration.\n\nmigrate_page_remove_references() now needs to return a reason why the\nfailure occured.  So switch migrate_page_remove_references to use -Exx\nstyle error messages.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e60e5c50aa5389db86e96fc52d02bc7db3d23f4a",
      "tree": "dcf9d09c7fed328628750023fecaf3eef4ad8624",
      "parents": [
        "5b00226d4d3aa7969d84e16f857ea100465d9c98"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Feb 03 03:04:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:10 2006 -0800"
      },
      "message": "[PATCH] Trivial optimization of ll_rw_block()\n\nThe ll_rw_block() needs to get ref-count only if it submits a buffer().  This\npatch avoids the needless get/put of ref-count.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc5cd582e9c934ddaf6f310179488932cd154794",
      "tree": "e03f101f77376cce41a0b257f5337ab00cca65d8",
      "parents": [
        "d62b1b87a7d1c3a21dddabed4251763090be3182"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] reiserfs: zero b_private when allocating buffer heads\n\nThe b_private field in buffer heads needs to be zero filled when the\nbuffers are allocated.  Thanks to Nathan Scott for finding this.  It was\ncausing problems on systems with both XFS and reiserfs.\n\nSigned-off-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e965f9630c651fa4249039fd4b80c9392d07a856",
      "tree": "1353dd536d0ee549c30e462086624c21788ee9d2",
      "parents": [
        "7e2ab150d1b3b286a4c864c60a549b2601777b63"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: Avoid writeback / page_migrate() method\n\nMigrate a page with buffers without requiring writeback\n\nThis introduces a new address space operation migratepage() that may be used\nby a filesystem to implement its own version of page migration.\n\nA version is provided that migrates buffers attached to pages.  Some\nfilesystems (ext2, ext3, xfs) are modified to utilize this feature.\n\nThe swapper address space operation are modified so that a regular\nmigrate_page() will occur for anonymous pages without writeback (migrate_pages\nforces every anonymous page to have a swap entry).\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01ffe339e3a0ba5ecbeb2b3b5abac7b3ef90f374",
      "tree": "7586fb091466772a31d9e46d807b8709d4166ef8",
      "parents": [
        "4a8e4a270b89030bdeb09d2f8cef7cfe9a50e54d"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@bruce",
        "time": "Tue Jan 17 09:02:07 2006 +1100"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@bruce",
        "time": "Tue Jan 17 09:02:07 2006 +1100"
      },
      "message": "Make alloc_page_buffers() initialise buffer_heads using init_buffer(),\nlike other routines here, to ensure buffers are correctly initialised\nwith respect to b_private/b_end_io.  Fixes an odd interaction between\nXFS and reiserfs.\n\nSigned-off-by: Nathan Scott \u003cnathans@sgi.com\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "54b21a7992a31d30c9a91f7e0a00ffdb4bd0caee",
      "tree": "33eca2bf3c1edfd3d76cc0f7c96a392239c6d2ec",
      "parents": [
        "676121fcb66c861804e38d94214fd5670a1ef595"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:03:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:54 2006 -0800"
      },
      "message": "[PATCH] fix possible PAGE_CACHE_SHIFT overflows\n\nWe\u0027ve had two instances recently of overflows when doing\n\n\t64_bit_value \u003d (32_bit_value \u003c\u003c PAGE_CACHE_SHIFT)\n\nI did a tree-wide grep of `\u003c\u003c.*PAGE_CACHE_SHIFT\u0027 and this is the result.\n\n- afs_rxfs_fetch_descriptor.offset is of type off_t, which seems broken.\n\n- jfs and jffs are limited to 4GB anyway.\n\n- reiserfs map_block_for_writepage() takes an unsigned long for the block -\n  it should take sector_t.  (It\u0027ll fail for huge filesystems with\n  blocksize\u003cPAGE_CACHE_SIZE)\n\n- cramfs_read() needs to use sector_t (I think cramsfs is busted on large\n  filesystems anyway)\n\n- affs is limited in file size anyway.\n\n- I generally didn\u0027t fix 32-bit overflows in directory operations.\n\n- arm\u0027s __flush_dcache_page() is peculiar.  What if the page lies beyond 4G?\n\n- gss_wrap_req_priv() needs checking (snd_buf-\u003epage_base)\n\nCc: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28fd129827b00e12829d48a5290f46277600619b",
      "tree": "38e50e1b88965fec41ea5b36aa557fb5c2b1ca73",
      "parents": [
        "05eb0b51fb46430050d5873458612f53e0234f2e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)\n\nThis patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.\n\nSee mm/filemap.c:\n\nAnd changes the filemap_write_and_wait() and filemap_write_and_wait_range().\n\nCurrent filemap_write_and_wait() doesn\u0027t wait if filemap_fdatawrite()\nreturns error.  However, even if filemap_fdatawrite() returned an\nerror, it may have submitted the partially data pages to the device.\n(e.g. in the case of -ENOSPC)\n\n\u003cquotation\u003e\nAndrew Morton writes,\n\nIf filemap_fdatawrite() returns an error, this might be due to some\nI/O problem: dead disk, unplugged cable, etc.  Given the generally\ncrappy quality of the kernel\u0027s handling of such exceptions, there\u0027s a\ngood chance that the filemap_fdatawait() will get stuck in D state\nforever.\n\u003c/quotation\u003e\n\nSo, this patch doesn\u0027t wait if filemap_fdatawrite() returns the -EIO.\n\nTrond, could you please review the nfs part?  Especially I\u0027m not sure,\nnfs must use the \"filemap_fdatawrite(inode-\u003ei_mapping) \u003d\u003d 0\", or not.\n\nAcked-by: 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": "05eb0b51fb46430050d5873458612f53e0234f2e",
      "tree": "88b9398079f53f29dff7533fb27487ae725983b1",
      "parents": [
        "268fc16e343b4f8e249468747db2e658da46a814"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] fat: support a truncate() for expanding size (generic_cont_expand)\n\nThis patch changes generic_cont_expand(), in order to share the code\nwith fatfs.\n\n  - Use vmtruncate() if -\u003eprepare_write() returns a error.\n\nEven if -\u003eprepare_write() returns an error, it may already have added some\nblocks.  So, this truncates blocks outside of -\u003ei_size by vmtruncate().\n\n  - Add generic_cont_expand_simple().\n\nThe generic_cont_expand_simple() assumes that -\u003eprepare_write() can handle\nthe block boundary.  With this, we don\u0027t need to care the extra byte.\n\nAnd for expanding a file size by truncate(), fatfs uses the\nadded generic_cont_expand_simple().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "385fd4c59d8bf7895ad3641c4cea615346f684ed",
      "tree": "3c230888a83dfe239dc32f1adfde9fb2787cd144",
      "parents": [
        "53b27584db0446e356c86b3aa43f5107b0170704"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "qiyong@fc-cn.com",
        "time": "Mon Nov 07 00:59:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:39 2005 -0800"
      },
      "message": "[PATCH] __find_get_block_slow() cleanup\n\nGet rid of the `int unused\u0027 parameter of __find_get_block_slow().\n\nSigned-off-by: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3e713b5fdd0e54c2e3c8909ccde2a98839e3a52",
      "tree": "c42c037f239de130f2efe30777df9688bf4dd022",
      "parents": [
        "727a53bd535fe3bde644ac346db27456ad964083"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:03:15 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] __bread oops fix\n\nIf a filesystem passes an idiotic blocksize into bread(), __getblk_slow() will\nwarn and will return NULL.  We have a report (from Hubert Tonneau\n\u003chubert.tonneau@fullpliant.org\u003e) of isofs_fill_super() doing this (passing in\na silly block size) against an unplugged CDROM drive.\n\nBut a couple of __getblk_slow() callers forgot to check for the NULL bh, hence\noops.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aaa4059bc2dca7fa816624a28db1958c3a22df9b",
      "tree": "8ae1d5458e2f68f96b033f10dae216847c32d4d2",
      "parents": [
        "e812cb5226af32aec91bcbaa8365bd7f921b6ebb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Oct 30 15:00:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] ext3: Fix unmapped buffers in transaction\u0027s lists\n\nFix the problem (BUG 4964) with unmapped buffers in transaction\u0027s\nt_sync_data list.  The problem is we need to call filesystem\u0027s own\ninvalidatepage() from block_write_full_page().\n\nblock_write_full_page() must call filesystem\u0027s invalidatepage().  Otherwise\nfollowing nasty race can happen:\n\n   proc 1                                        proc 2\n   ------                                        ------\n- write some new data to \u0027offset\u0027\n  \u003d\u003e bh gets to the transactions data list\n                                              - starts truncate\n                                                \u003d\u003e i_size set to new size\n- mpage_writepages()\n  - ext3_ordered_writepage() to \u0027offset\u0027\n    - block_write_full_page()\n      - page-\u003eindex \u003e end_index+1\n        - block_invalidatepage()\n          - discard_buffer()\n            - clear_buffer_mapped()\n\n- commit triggers and finds unmapped buffer - BOOM!\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27496a8c67bef4d789d8e3c8317ca35813a507ae",
      "tree": "fe99a34fe5a800e41af61853e7444ddddf45d014",
      "parents": [
        "7d877f3bda870ab5f001bd92528654471d5966b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:48 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: fs/*\n\n - -\u003ereleasepage() annotated (s/int/gfp_t), instances updated\n - missing gfp_t in fs/* added\n - fixed misannotation from the original sweep caught by bitwise checks:\n   XFS used __nocast both for gfp_t and for flags used by XFS allocator.\n   The latter left with unsigned int __nocast; we might want to add a\n   different type for those but for now let\u0027s leave them alone.  That,\n   BTW, is a case when __nocast use had been actively confusing - it had\n   been used in the same code for two different and similar types, with\n   no way to catch misuses.  Switch of gfp_t to bitwise had caught that\n   immediately...\n\nOne tricky bit is left alone to be dealt with later - mapping-\u003eflags is\na mix of gfp_t and error indications.  Left alone for now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "af4ca457eaf2d6682059c18463eb106e2ce58198",
      "tree": "399ca5ab3b15d723a6aefd04c764a2a06089ed06",
      "parents": [
        "434f1d10c1adb6c2e333d501ce1e42be610e0723"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 02:55:38 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:46 2005 -0700"
      },
      "message": "[PATCH] gfp_t: infrastructure\n\nBeginning of gfp_t annotations:\n\n - -Wbitwise added to CHECKFLAGS\n - old __bitwise renamed to __bitwise__\n - __bitwise defined to either __bitwise__ or nothing, depending on\n   __CHECK_ENDIAN__ being defined\n - gfp_t switched from __nocast to __bitwise__\n - force cast to gfp_t added to __GFP_... constants\n - new helper - gfp_zone(); extracts zone bits out of gfp_t value and casts\n   the result to int\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7662236253374012d364106b6dc9161bd929e2e",
      "tree": "59f34811d18fef8195bc3200bdb2684598175f29",
      "parents": [
        "e6c9f5c1888097c936334bf9740024520ca47b8e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:55 2005 -0700"
      },
      "message": "[PATCH] Make ll_rw_block() wait for buffer lock\n\nIntroduce new ll_rw_block() operation SWRITE meaning that block layer should\nwait for the buffer lock and write-out afterwards.  Hence data in buffers at\nthe time of call are guaranteed to be submitted to the disk.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "736c7b808f38f3bb72941345e11e236ec65dec3d",
      "tree": "9cad1481bea573680fe0c89f32689dcf4b8c04cd",
      "parents": [
        "3f4bb1f4199b7dc0c958447b1e4898980013b884"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "qiyong@fc-cn.com",
        "time": "Tue Sep 06 15:18:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:41 2005 -0700"
      },
      "message": "[PATCH] alloc_buffer_head() and free_buffer_head() cleanup\n\nSigned-off-by: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a39722034ae37f80a1803bf781fe3fe1b03e20bc",
      "tree": "fb7ef719d745e28678d73f884108f4cb2ef79171",
      "parents": [
        "d6afe27bfff30fbec2cca6ad5626c22f4094d770"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Thu Jul 07 17:56:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:45 2005 -0700"
      },
      "message": "[PATCH] page_uptodate locking scalability\n\nUse a bit spin lock in the first buffer of the page to synchronise asynch\nIO buffer completions, instead of the global page_uptodate_lock, which is\nshowing some scalabilty problems.\n\nSigned-off-by: 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": "687a21cee17000177b1935896b9b475acf136678",
      "tree": "41e59684ae6479e84b34edc46972ce32c2cc58b7",
      "parents": [
        "05133fc498e788e1c1ca4e906f9e05d9779fd63b"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Tue Jun 28 20:44:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 28 21:20:31 2005 -0700"
      },
      "message": "[PATCH] rename wakeup_bdflush to wakeup_pdflush\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "152becd26e0563aefdbc4fd1fe491928efe92d1f",
      "tree": "713a5ff0a1610708babf7e57fd3141cd4b9f183e",
      "parents": [
        "9a59f452abe11f569e13ec16c51e6d61c54b9838"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Thu Jun 23 00:10:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] Bug in error recovery in fs/buffer.c::__block_prepare_write()\n\nfs/buffer.c::__block_prepare_write() has broken error recovery.  It calls\nthe get_block() callback with \"create \u003d 1\" and if that succeeds it\nimmediately clears buffer_new on the just allocated buffer (which has\nbuffer_new set).\n\nThe bug is that if an error occurs and get_block() returns !\u003d 0, we break\nfrom this loop and go into recovery code.  This code has this comment:\n\n/* Error case: */\n/*\n * Zero out any newly allocated blocks to avoid exposing stale\n * data.  If BH_New is set, we know that the block was newly\n * allocated in the above loop.\n */\n\nSo the intent is obviously good in that it wants to clear just allocated\nand hence not zeroed buffers.  However the code recognises allocated\nbuffers by checking for buffer_new being set.\n\nUnfortunately __block_prepare_write() as discussed above already cleared\nbuffer_new on all allocated buffers thus no buffers will be cleared during\nerror recovery and old data will be leaked.\n\nThe simplest way I can see to fix this is to make the current recovery code\nwork by _not_ clearing buffer_new after calling get_block() in\n__block_prepare_write().\n\nWe cannot safely allow buffer_new buffers to \"leak out\" of\n__block_prepare_write(), thus we simply do a quick loop over the buffers\nclearing buffer_new on each of them if it is set just before returning\n\"success\" from __block_prepare_write().\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfb388bf8a328f206bba33933dd97230f412238b",
      "tree": "656cf4d7aba441667c4d25135ee70672738126e9",
      "parents": [
        "01890a4c120f68366441bf5e193d1b9dd543d4d0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:10:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:29 2005 -0700"
      },
      "message": "[PATCH] factor out common code in sys_fsync/sys_fdatasync\n\nThis patch consolidates sys_fsync and sys_fdatasync.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ad539b2bd89bf2e129123eb24d5bcc4484a35de",
      "tree": "e416e208cdbd5d9890d39e39384e4ec913c26ef6",
      "parents": [
        "cbe37d093707762fc0abb280781e6a82a9d8d568"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhltc@us.ibm.com",
        "time": "Tue Jun 21 17:14:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:17 2005 -0700"
      },
      "message": "[PATCH] vm: try_to_free_pages unused argument\n\ntry_to_free_pages accepts a third argument, order, but hasn\u0027t used it since\nbefore 2.6.0.  The following patch removes the argument and updates all the\ncalls to try_to_free_pages.\n\nSigned-off-by: Darren Hart \u003cdvhltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c64610ba585fabb36be78782868277f3d9741a2e",
      "tree": "e731ee73950ecb6969bb0d7739c03d16373c44c0",
      "parents": [
        "3c0547ba8b3bbd8b26ae35e33ac17ff51f67f78c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon May 16 21:53:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 17 07:59:20 2005 -0700"
      },
      "message": "[PATCH] block_read_full_page() get_block() error handling fix\n\nIf block_read_full_page() detects an error when running get_block() it will\nrun SetPageError(), then it will zero out the block in pagecache and will mark\nthe buffer_head uptodate.\n\nSo at the end of readahead we end up with a non-uptodate pagecache page which\nis marked PageError.  But it has uptodate buffers.\n\nThe pagefault code will run ClearPageError, will launch readpage a second time\nand block_read_full_page() will notice the uptodate buffers and will mark the\npage uptodate as well.  We end up with an uptodate, !PageError page full of\nzeros and the error is lost.\n\n(It seems a little odd that filemap_nopage() runs ClearPageError().  I guess\nall of this adds up to meaning that for each attempted access to the page, the\npagefault handler will retry the I/O.  Which is good and bad.  If the app is\nignoring SIGBUS for some reason we could get a lot of back-to-back I/O\nerrors.)\n\nFix it by not marking the pagecache buffer_head as uptodate if the attempt to\nmap that buffer to a disk block failed.\n\nCredit-to: Qu Fuping \u003cfs@ercist.iscas.ac.cn\u003e\n\n  For reporting the bug and identifying its source.\n\nSigned-off-by: Qu Fuping \u003cfs@ercist.iscas.ac.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: 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"
    }
  ],
  "next": "f0fbd5fc09b20f7ba7bc8c80be33e39925bb38e1"
}
