)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
