)]}'
{
  "log": [
    {
      "commit": "fd39fc8561be33065306bdac0e30414e1e8ac8e1",
      "tree": "ae0740716eed3f850a8f7232c61caebe360bb5ae",
      "parents": [
        "ce866b34ae1b7f1ce60234cf65855886ac7e7d30"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter\n\nConversion of nr_unstable to a per zone counter\n\nWe need to do some special modifications to the nfs code since there are\nmultiple cases of disposition and we need to have a page ref for proper\naccounting.\n\nThis converts the last critical page state of the VM and therefore we need to\nremove several functions that were depending on GET_PAGE_STATE_LAST in order\nto make the kernel compile again.  We are only left with event type counters\nin page state.\n\n[akpm@osdl.org: bugfixes]\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": "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": "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": "111ebb6e6f7bd7de6d722c5848e95621f43700d9",
      "tree": "bb00b13001db9be201e9b6d31468a79f4d1240bf",
      "parents": [
        "4c91c3648c620003cb7b21b8858f36cd6132e168"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Jun 23 02:03:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] writeback: fix range handling\n\nWhen a writeback_control\u0027s `start\u0027 and `end\u0027 fields are used to\nindicate a one-byte-range starting at file offset zero, the required\nvalues of .start\u003d0,.end\u003d0 mean that the -\u003ewritepages() implementation\nhas no way of telling that it is being asked to perform a range\nrequest.  Because we\u0027re currently overloading (start \u003d\u003d 0 \u0026\u0026 end \u003d\u003d 0)\nto mean \"this is not a write-a-range request\".\n\nTo make all this sane, the patch changes range of writeback_control.\n\nSo caller does: If it is calling -\u003ewritepages() to write pages, it\nsets range (range_start/end or range_cyclic) always.\n\nAnd if range_cyclic is true, -\u003ewritepages() thinks the range is\ncyclic, otherwise it just uses range_start and range_end.\n\nThis patch does,\n\n    - Add LLONG_MAX, LLONG_MIN, ULLONG_MAX to include/linux/kernel.h\n      -1 is usually ok for range_end (type is long long). But, if someone did,\n\n\t\trange_end +\u003d val;\t\trange_end is \"val - 1\"\n\t\tu64val \u003d range_end \u003e\u003e bits;\tu64val is \"~(0ULL)\"\n\n      or something, they are wrong. So, this adds LLONG_MAX to avoid nasty\n      things, and uses LLONG_MAX for range_end.\n\n    - All callers of -\u003ewritepages() sets range_start/end or range_cyclic.\n\n    - Fix updates of -\u003ewriteback_index. It seems already bit strange.\n      If it starts at 0 and ended by check of nr_to_write, this last\n      index may reduce chance to scan end of file.  So, this updates\n      -\u003ewriteback_index only if range_cyclic is true or whole-file is\n      scanned.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ffc84442572669727dc4fcd976582508eaf23e7",
      "tree": "ace5723edaefabf517683e44381d19d9fb141ae0",
      "parents": [
        "d25b9a1ff0741e71a46f37f45263b5ddcbc948c4"
      ],
      "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] Move cond_resched() after iput() in sync_sb_inodes()\n\nIn here, I think the following order is more cache-friendly.\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": "b8887e6e8c04bcefb512cdb08fc7e9c310ac847e",
      "tree": "f8dcfee2314ad0c1998e70449fdd814e675cf90a",
      "parents": [
        "1e5d533142c1c178a31d4cc81837eb078f9269bc"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:07 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] kernel-docs: fix kernel-doc format problems\n\nConvert to proper kernel-doc format.\n\nSome have extra blank lines (not allowed immed.  after the function name)\nor need blank lines (after all parameters).  Function summary must be only\none line.\n\nColon (\":\") in a function description does weird things (causes kernel-doc\nto think that it\u0027s a new section head sadly).\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "49364ce2534418462d681ad99e52e79a00b0f40b",
      "tree": "0eacbe38add427ee9fd1e67f465510c8c2ceb638",
      "parents": [
        "cd6b0762a04978baf48412456a687842de97e381"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:59:15 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:35 2005 -0800"
      },
      "message": "[PATCH] write_inode_now(): write inode if not BDI_CAP_NO_WRITEBACK\n\nIf the backing_dev_info doesn\u0027t have BDI_CAP_NO_WRITEBACK we\u0027re not supposed\nto write back an inode\u0027s pages.  But in this situation write_inode_now()\nrefuses to write the inode itself as well.  Fix.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "659603ef692d3f6c7c216e80310990253864bf2e",
      "tree": "f1e8fe6176fdf4d34ef7f62fa2f1f9f619e9d26f",
      "parents": [
        "a717f77362d4fe044721c126c89e2a38e731a576"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Mon Oct 31 14:08:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 31 14:22:04 2005 -0800"
      },
      "message": "[PATCH] fix __writeback_single_inode WARN_ON\n\nWhen the inode count is zero in inode writeback, the\n\n\tWARN_ON(!(inode-\u003ei_state \u0026 I_WILL_FREE));\n\nis broken, and needs to test for either I_WILL_FREE|I_FREEING.\n\nWhen the inode is in I_FREEING state, it\u0027s already out of the visibility\nof the vm so it can\u0027t be freed so it doesn\u0027t require the __iget and the\ngeneric_delete_inode path can call the sync internally to the lowlevel\nfs callback during the last iput. So the inode being in I_FREEING is\nalso a valid condition for calling the sync with i_count \u003d\u003d 0.\n\nThe specific stack trace is this:\n\n  0xc00000007b8fb6e0  0xc00000000010118c  .__writeback_single_inode +0x5c\n  0xc00000007b8fb6e0  0xc0000000001014dc (lr) .sync_inode +0x3c\n  0xc00000007b8fb790  0xc0000000001014dc  .sync_inode +0x3c\n  0xc00000007b8fb820  0xc0000000001a5020  .ext2_sync_inode +0x64\n  0xc00000007b8fb8f0  0xc0000000001a65b4  .ext2_truncate +0x3f8\n  0xc00000007b8fba40  0xc0000000001a6940  .ext2_delete_inode +0xdc\n  0xc00000007b8fbac0  0xc0000000000f7a5c  .generic_delete_inode +0x124\n  0xc00000007b8fbb50  0xc0000000000f5fe0  .iput +0xb8\n  0xc00000007b8fbbe0  0xc0000000000e9fd4  .sys_unlink +0x2a8\n  0xc00000007b8fbd10  0xc00000000001048c  .ret_from_syscall_1 +0x0\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f04c26d715a2467a49a2384268de8f70f787b51",
      "tree": "8507e9f705f063d996857789261b762b24fad94f",
      "parents": [
        "52303e8b5f8aa234865d40d76ea16b0ff4b27022"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sun Oct 30 15:03:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:26 2005 -0800"
      },
      "message": "[PATCH] fix nr_unused accounting, and avoid recursing in iput with I_WILL_FREE set\n\n \t\t\tlist_move(\u0026inode-\u003ei_list, \u0026inode_in_use);\n \t\t} else {\n \t\t\tlist_move(\u0026inode-\u003ei_list, \u0026inode_unused);\n+\t\t\tinodes_stat.nr_unused++;\n \t\t}\n \t}\n \twake_up_inode(inode);\n\nAre you sure the above diff is correct? It was added somewhere between\n2.6.5 and 2.6.8. I think it\u0027s wrong.\n\nThe only way I can imagine the i_count to be zero in the above path, is\nthat I_WILL_FREE is set.  And if I_WILL_FREE is set, then we must not\nincrease nr_unused.  So I believe the above change is buggy and it will\ndefinitely overstate the number of unused inodes and it should be backed\nout.\n\nNote that __writeback_single_inode before calling __sync_single_inode, can\ndrop the spinlock and we can have both the dirty and locked bitflags clear\nhere:\n\n\t\tspin_unlock(\u0026inode_lock);\n\t\t__wait_on_inode(inode);\n\t\tiput(inode);\nXXXXXXX\n\t\tspin_lock(\u0026inode_lock);\n\t}\n\tuse inode again here\n\na construct like the above makes zero sense from a reference counting\nstandpoint.\n\nEither we don\u0027t ever use the inode again after the iput, or the\ninode_lock should be taken _before_ executing the iput (i.e. a __iput\nwould be required). Taking the inode_lock after iput means the iget was\nuseless if we keep using the inode after the iput.\n\nSo the only chance the 2.6 was safe to call __writeback_single_inode\nwith the i_count \u003d\u003d 0, is that I_WILL_FREE is set (I_WILL_FREE will\nprevent the VM to free the inode in XXXXX).\n\nPotentially calling the above iput with I_WILL_FREE was also wrong\nbecause it would recurse in iput_final (the second mainline bug).\n\nThe below (untested) patch fixes the nr_unused accounting, avoids recursing\nin iput when I_WILL_FREE is set and makes sure (with the BUG_ON) that we\ndon\u0027t corrupt memory and that all holders that don\u0027t set I_WILL_FREE, keeps\na reference on the inode!\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "618f06362ae3f60f95d7b0e666de25ee6ae35679",
      "tree": "4415b4e590913e16535704168ea74c6af5a93c48",
      "parents": [
        "4fea2838aa00b9e59efde974dcdb455608192811"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Thu Jun 23 00:09:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] O(1) sb list traversing on syncs\n\nThis patch removes O(n^2) super block loops in sync_inodes(),\nsync_filesystems() etc.  in favour of using __put_super_and_need_restart()\nwhich I introduced earlier.  We faced a noticably long freezes on sb\nsyncing when there are thousands of super blocks in the system.\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67be2dd1bace0ec7ce2dbc1bba3f8df3d7be597e",
      "tree": "317d114a0288d3b19ef9902f94b536a5a8731dbd",
      "parents": [
        "6013d5445f9a6d0b28090027868f455c5012d1cc"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "message": "[PATCH] DocBook: fix some descriptions\n\nSome KernelDoc descriptions are updated to match the current code.\nNo code changes.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
