)]}'
{
  "log": [
    {
      "commit": "72edc4d0873ba5165c0759264298bf5f55351c7a",
      "tree": "e9a7f27de6e646f03b25f2c3fa2ad7f6a786100b",
      "parents": [
        "3937871d91e4f43e4aaf0b214c68a7857c0e6e80"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 04 23:32:28 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:57 2010 -0400"
      },
      "message": "merge ext2 delete_inode and clear_inode, switch to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "addacc7d6f0f0bcce12adf9fe9e6455e1dfd74da",
      "tree": "8743c3586ebc9691fe45b2783e13500ad33b584d",
      "parents": [
        "3889717d2851bf38015c0b291026c07c02264623"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 22 01:19:42 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:55 2010 -0400"
      },
      "message": "Take dirtying the inode to callers of ext2_free_blocks()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2c27c65ed0696f0b5df2dad2cf6462d72164d547",
      "tree": "7d9036e3dea98938f7fd7074366ee73929e9b2e5",
      "parents": [
        "db78b877f7744bec4a9d9f9e7d10da3931d7cd39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:04 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:39 2010 -0400"
      },
      "message": "check ATTR_SIZE contraints in inode_change_ok\n\nMake sure we check the truncate constraints early on in -\u003esetattr by adding\nthose checks to inode_change_ok.  Also clean up and document inode_change_ok\nto make this obvious.\n\nAs a fallout we don\u0027t have to call inode_newsize_ok from simple_setsize and\nsimplify it down to a truncate_setsize which doesn\u0027t return an error.  This\nsimplifies a lot of setattr implementations and means we use truncate_setsize\nalmost everywhere.  Get rid of fat_setsize now that it\u0027s trivial and mark\next2_setsize static to make the calling convention obvious.\n\nKeep the inode_newsize_ok in vmtruncate for now as all callers need an\naudit for its removal anyway.\n\nNote: setattr code in ecryptfs doesn\u0027t call inode_change_ok at all and\nneeds a deeper audit, but that is left for later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6a1a90ad1b0edb556a7550a6ef8a8756f0304dd5",
      "tree": "234488533d89e3f8b938823c2071be19e66e1b4b",
      "parents": [
        "d39aae9ec447dda84d9a2850743a78a535a71c90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:00 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:35 2010 -0400"
      },
      "message": "rename generic_setattr\n\nDespite its name it\u0027s now a generic implementation of -\u003esetattr, but\nrather a helper to copy attributes from a struct iattr to the inode.\nRename it to setattr_copy to reflect this fact.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "155130a4f7848b1aac439cab6bda1a175507c71c",
      "tree": "5019b14b0a9221b08959196e01e3f9326957d678",
      "parents": [
        "6e1db88d536adcbbfe562b2d4b7d6425784fff12"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:58 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:33 2010 -0400"
      },
      "message": "get rid of block_write_begin_newtrunc\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin preparation of the new truncate sequence and rename the non-truncating\nversion to block_write_begin.\n\nWhile we\u0027re at it also remove several unused arguments to block_write_begin.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f4e420dc423148fba637af1ab618fa8896dfb2d6",
      "tree": "df0e81f5f4b8448dd6b3929e5537dcc46e7d7dde",
      "parents": [
        "282dc178849882289d30e58b54be6b2799b351aa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:56 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:31 2010 -0400"
      },
      "message": "clean up write_begin usage for directories in pagecache\n\nFor filesystem that implement directories in pagecache we call\nblock_write_begin with an already allocated page for this code, while the\nnormal regular file write path uses the default block_write_begin behaviour.\n\nGet rid of the __foofs_write_begin helper and opencode the normal write_begin\ncall in foofs_write_begin, while adding a new foofs_prepare_chunk helper for\nthe directory code.  The added benefit is that foofs_prepare_chunk has\na much saner calling convention.\n\nNote that the interruptible flag passed into block_write_begin is always\nignored if we already pass in a page (see next patch for details), and\nwe never were doing truncations of exessive blocks for this case either so we\ncan switch directly to block_write_begin_newtrunc.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ea0f04e59543bafb3d2cbe37a0d375acb0bb2c34",
      "tree": "66a400f5b8e9a01acb72107c72e504325af6fe67",
      "parents": [
        "eafdc7d190a944c755a9fe68573c193e6e0217e7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:54 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:30 2010 -0400"
      },
      "message": "get rid of nobh_write_begin_newtrunc\n\nMove the call to vmtruncate to get rid of accessive blocks to the only\nremaining caller and rename the non-truncating version to nobh_write_begin.\n\nGet rid of the superflous file argument to it while we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eafdc7d190a944c755a9fe68573c193e6e0217e7",
      "tree": "915c3cc8004706fabf88eae1ab123a3fa0147516",
      "parents": [
        "256249584bda1a9357e2d29987a37f5b2df035f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:53 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:29 2010 -0400"
      },
      "message": "sort out blockdev_direct_IO variants\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin prepearation of the new truncate calling sequence.  This was only done\nfor DIO_LOCKING filesystems, so the __blockdev_direct_IO_newtrunc variant\nwas not needed anyway.  Get rid of blockdev_direct_IO_no_locking and\nits _newtrunc variant while at it as just opencoding the two additional\nparamters is shorted than the name suffix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "af5a30d8cfcfc561336f982b06345d6b815e0bb3",
      "tree": "eb4e6fb6873355a2a96b698aeb371eb058a88c87",
      "parents": [
        "8718d36cf99f5acf0f37487557ec25aee54b930b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jun 03 22:01:46 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 04 17:16:30 2010 -0400"
      },
      "message": "fix truncate inode time modification breakage\n\nmtime and ctime should be changed only if the file size has actually\nchanged. Patches changing ext2 and tmpfs from vmtruncate to new truncate\nsequence has caused regressions where they always update timestamps.\n\nThere is some strange cases in POSIX where truncate(2) must not update\ntimes unless the size has acutally changed, see 6e656be89.\n\nThis area is all still rather buggy in different ways in a lot of\nfilesystems and needs a cleanup and audit (ideally the vfs will provide\na simple attribute or call to direct all filesystems exactly which\nattributes to change). But coming up with the best solution will take a\nwhile and is not appropriate for rc anyway.\n\nSo fix recent regression for now.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "737f2e93b9724a3554f9d0b248c22cd407313f86",
      "tree": "205ceb526d32c5fcc6ad84a85b05afa9c7fc9902",
      "parents": [
        "3889e6e76f66b7de208a1709d0fe530b21a2d384"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:37 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:57 2010 -0400"
      },
      "message": "ext2: convert to use the new truncate convention.\n\nI also have commented a possible bug in existing ext2 code, marked with XXX.\n\nCc: linux-ext4@vger.kernel.org\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "12755627bdcddcdb30a1bfb9a09395a52b1d6838",
      "tree": "b2d69696975d5457648020324f683a45302fbf3c",
      "parents": [
        "fcbc59f96e38a0999e827be9d04d46b62b53b20a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 08 22:04:20 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: unify quota init condition in setattr\n\nQuota must being initialized if size or uid/git changes requested.\nBut initialization performed in two different places:\nin case of i_size file system is responsible for dquot init\n, but in case of uid/gid init will be called internally in\ndquot_transfer().\nThis ambiguity makes code harder to understand.\nLet\u0027s move this logic to one common helper function.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e0a5cbac029db69032758000c67465c2ed7a5736",
      "tree": "14d81b8fee8d43674acd4c63a2e994bdc3da774c",
      "parents": [
        "c15271f4e74cd6dbdf461335d6d1450949c4b956"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:39 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "BKL: Remove BKL from ext2 filesystem\n\nThe BKL is still used in ext2_put_super(), ext2_fill_super(), ext2_sync_fs()\next2_remount() and ext2_write_inode(). From these calls ext2_put_super(),\next2_fill_super() and ext2_remount() are protected against each other by\nthe struct super_block s_umount rw semaphore. The call in ext2_write_inode()\ncould only protect the modification of the ext2_sb_info through\next2_update_dynamic_rev() against concurrent ext2_sync_fs() or ext2_remount().\next2_fill_super() and ext2_put_super() can be left out because you need a\nvalid filesystem reference in all three cases, which you do not have when\nyou are one of these functions.\n\nIf the BKL is only protecting the modification of the ext2_sb_info it can\nsafely be removed since this is protected by the struct ext2_sb_info s_lock.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c15271f4e74cd6dbdf461335d6d1450949c4b956",
      "tree": "585738bde9a80e580686072d02cd6c1e5d261c1e",
      "parents": [
        "4c96a68bfc110d87b28bcee4c395a7b4d26ed67a"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:38 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Add ext2_sb_info s_lock spinlock\n\nAdd a spinlock that protects against concurrent modifications of\ns_mount_state, s_blocks_last, s_overhead_last and the content of the\nsuperblock\u0027s buffer pointed to by sbi-\u003es_es. The spinlock is now used in\next2_xattr_update_super_block() which was setting the\nEXT2_FEATURE_COMPAT_EXT_ATTR flag on the superblock without protection\nbefore. Likewise the spinlock is used in ext2_show_options() to have a\nconsistent view of the mount options.\n\nThis is a preparation patch for removing the BKL from ext2 in the next\npatch.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "871a293155a24554e153538d36e3a80fa169aefb",
      "tree": "7e38f5a2f9e87f63cbc4bc1077a4bb49dde441b0",
      "parents": [
        "907f4554e2521cb28b0009d17167760650a9561c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:07 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot initialize routine\n\nGet rid of the initialize dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_initialize helper to __dquot_initialize\nand vfs_dq_init to dquot_initialize to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b43fa8284d7790d9cca32c9c55e24f29be2fa33b",
      "tree": "acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab",
      "parents": [
        "759bfee658beab14af7b357156461d0eb852be2c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:03 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: cleanup dquot transfer routine\n\nGet rid of the transfer dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_transfer helper to __dquot_transfer\nand vfs_dq_transfer to dquot_transfer to have a consistent namespace,\nand make the new dquot_transfer return a normal negative errno value\nwhich all callers expect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "2314b07cb47ef7d7da5779977f8c3bf1b65748d2",
      "tree": "0720ff1c3ae15b37aa680643a3d214e04021ddfe",
      "parents": [
        "dee1d3b6270a7cf5cc65c493a2ab4ebaad1a1caf"
      ],
      "author": {
        "name": "Alexey Fisher",
        "email": "bug-track@fisher-privat.net",
        "time": "Thu Nov 19 19:12:51 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:52 2009 +0100"
      },
      "message": "ext2: Unify log messages in ext2\n\nmake messages produced by ext2 more unified. It should be\neasy to parse.\n\ndmesg before patch:\n[ 4893.684892] reservations ON\n[ 4893.684896] xip option not supported\n[ 4893.684961] EXT2-fs warning: mounting ext3 filesystem as ext2\n[ 4893.684964] EXT2-fs warning: maximal mount count reached, running\ne2fsck is recommended\n[ 4893.684990] EXT II FS: 0.5b, 95/08/09, bs\u003d1024, fs\u003d1024, gc\u003d2,\nbpg\u003d8192, ipg\u003d1280, mo\u003d80010]\n\ndmesg after patch:\n[ 4893.684892] EXT2-fs (loop0): reservations ON\n[ 4893.684896] EXT2-fs (loop0): xip option not supported\n[ 4893.684961] EXT2-fs (loop0): warning: mounting ext3 filesystem as\next2\n[ 4893.684964] EXT2-fs (loop0): warning: maximal mount count reached,\nrunning e2fsck is recommended\n[ 4893.684990] EXT2-fs (loop0): 0.5b, 95/08/09, bs\u003d1024, fs\u003d1024, gc\u003d2,\nbpg\u003d8192, ipg\u003d1280, mo\u003d80010]\n\nSigned-off-by: Alexey Fisher \u003cbug-track@fisher-privat.net\u003e\nReviewed-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "aa261f549d7652258331ebb12795f3bc4395d213",
      "tree": "0ca807db32a6e3f213fa52b5a053d2b27e5e6bac",
      "parents": [
        "6a46079cf57a7f7758e8b926980a4f852f89b34d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "message": "HWPOISON: Enable .remove_error_page for migration aware file systems\n\nEnable removing of corrupted pages through truncation\nfor a bunch of file systems: ext*, xfs, gfs2, ocfs2, ntfs\nThese should cover most server needs.\n\nI chose the set of migration aware file systems for this\nfor now, assuming they have been especially audited.\nBut in general it should be safe for all file systems\non the data area that support read/write and truncate.\n\nCaveat: the hardware error handler does not take i_mutex\nfor now before calling the truncate function. Is that ok?\n\nCc: tytso@mit.edu\nCc: hch@infradead.org\nCc: mfasheh@suse.com\nCc: aia21@cantab.net\nCc: hugh.dickins@tiscali.co.uk\nCc: swhiteho@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "a2a735ad666a04306a708b5a0109cc1fe113f569",
      "tree": "1b880e0e8eb9e9b019d3e6443751cd56e5fe3d58",
      "parents": [
        "148f948ba877f4d3cdef036b1ff6d9f68986706a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 17:54:11 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ext2: Update comment about generic_osync_inode\n\nWe rely on generic_write_sync() now.\n\nCC: linux-ext4@vger.kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5e78b435683daaaacadad1b2aeefb8904cf6acfb",
      "tree": "af67da5df474d5c2ecfb949acf9246d2ef74be8b",
      "parents": [
        "f19d4a8fa6f9b6ccf54df0971c97ffcaa390b7b0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:52:55 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:28 2009 -0400"
      },
      "message": "switch ext2 to inode-\u003ei_acl\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1740a462ecb2eae213be15857b577cc6f6bb8b4",
      "tree": "8ac67062735e9bbf6ec9ef450ba3a7e5a74405f1",
      "parents": [
        "b522412aeabadbb302fd4338eaabf09d10e2d29c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:14:02 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "switch ext2 to simple_fsync()\n\nkill ext2_sync_file() (along with ext2/fsync.c), get rid of\next2_update_inode() - it\u0027s an alias of ext2_write_inode().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "316cb4ef3eb2ad6e35e15cc56d39c6cda58c093a",
      "tree": "23084bf762a3dc0ec91c299c5f10206b132df621",
      "parents": [
        "caefba1740d8016e6dfe8fda84f85bdcb8f8c85d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 13 14:40:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:33 2009 -0700"
      },
      "message": "ext2: fix data corruption for racing writes\n\nIf two writers allocating blocks to file race with each other (e.g.\nbecause writepages races with ordinary write or two writepages race with\neach other), ext2_getblock() can be called on the same inode in parallel.\nBefore we are going to allocate new blocks, we have to recheck the block\nchain we have obtained so far without holding truncate_mutex.  Otherwise\nwe could overwrite the indirect block pointer set by the other writer\nleading to data loss.\n\nThe below test program by Ying is able to reproduce the data loss with ext2\non in BRD in a few minutes if the machine is under memory pressure:\n\nlong kMemSize  \u003d 50 \u003c\u003c 20;\nint kPageSize \u003d 4096;\n\nint main(int argc, char **argv) {\n\tint status;\n\tint count \u003d 0;\n\tint i;\n\tchar *fname \u003d \"/mnt/test.mmap\";\n\tchar *mem;\n\tunlink(fname);\n\tint fd \u003d open(fname, O_CREAT | O_EXCL | O_RDWR, 0600);\n\tstatus \u003d ftruncate(fd, kMemSize);\n\tmem \u003d mmap(0, kMemSize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);\n\t// Fill the memory with 1s.\n\tmemset(mem, 1, kMemSize);\n\tsleep(2);\n\tfor (i \u003d 0; i \u003c kMemSize; i++) {\n\t\tint byte_good \u003d mem[i] !\u003d 0;\n\t\tif (!byte_good \u0026\u0026 ((i % kPageSize) \u003d\u003d 0)) {\n\t\t\t//printf(\"%d \", i / kPageSize);\n\t\t\tcount++;\n\t\t}\n\t}\n\tmunmap(mem, kMemSize);\n\tclose(fd);\n\tunlink(fname);\n\n\tif (count \u003e 0) {\n\t\tprintf(\"Running %d bad page\\n\", count);\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f90bee5062a8af24d8aa5c47182d15aa28a0f17",
      "tree": "6833359930dce65a7557ba2602f49a9b462df8bd",
      "parents": [
        "314649558d2ff0927d102fa06c62557a92ce5c1d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 16:52:06 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:36 2009 +0100"
      },
      "message": "ext2: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "22d613d13445de9dea6edc3289c304237eb191f6",
      "tree": "c6bf2d88b0d9e2247e6573d8b3f51b50cbe492fd",
      "parents": [
        "74d88eb2930f09e1a63d61cc9d4cffc50c684412"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Wed Jan 07 18:07:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:00 2009 -0800"
      },
      "message": "ext2: fix ext2_splice_branch() comments\n\nThere is no argument named @chain in ext2_splice_branch, remove references\nto it.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@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": "8d6d0c4da2dbbe0a69fea3692146af39f139f8b4",
      "tree": "306ab9a840c9e37c1cdc5d56a8f376fec85fd21d",
      "parents": [
        "ebd09abbd9699f328165aee50a070403fbf55a37"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Dec 19 20:47:13 2008 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:39 2008 -0500"
      },
      "message": "ext2: ensure fast symlinks are NUL-terminated\n\nEnsure fast symlink targets are NUL-terminated, even if corrupted\non-disk.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "68c9d702bb72f367f3b148963ec6cf5e07ff7f65",
      "tree": "16fc61a1bd973c14a7858ab1fbcb306d3ae75184",
      "parents": [
        "00dc417fa3e763345b34ccb6034d72de76eea0a1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Oct 03 17:32:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 03 17:32:43 2008 -0400"
      },
      "message": "generic block based fiemap implementation\n\nAny block based fs (this patch includes ext3) just has to declare its own\nfiemap() function and then call this generic function with its own\nget_block_t. This works well for block based filesystems that will map\nmultiple contiguous blocks at one time, but will work for filesystems that\nonly map one block at a time, you will just end up with an \"extent\" for each\nblock. One gotcha is this will not play nicely where there is hole+data\nafter the EOF. This function will assume its hit the end of the data as soon\nas it hits a hole after the EOF, so if there is any data past that it will\nnot pick that up. AFAIK no block based fs does this anyway, but its in the\ncomments of the function anyway just in case.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "8ab22b9abb5c55413802e4adc9aa6223324547c3",
      "tree": "cff3319e1275e8a7c083d492889ec6bd0c7712d3",
      "parents": [
        "d84a52f62f6a396ed77aa0052da74ca9e760b28a"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Mon Jul 28 15:46:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "vfs: pagecache usage optimization for pagesize!\u003dblocksize\n\nWhen we read some part of a file through pagecache, if there is a\npagecache of corresponding index but this page is not uptodate, read IO\nis issued and this page will be uptodate.\n\nI think this is good for pagesize \u003d\u003d blocksize environment but there is\nroom for improvement on pagesize !\u003d blocksize environment.  Because in\nthis case a page can have multiple buffers and even if a page is not\nuptodate, some buffers can be uptodate.\n\nSo I suggest that when all buffers which correspond to a part of a file\nthat we want to read are uptodate, use this pagecache and copy data from\nthis pagecache to user buffer even if a page is not uptodate.  This can\nreduce read IO and improve system throughput.\n\nI wrote a benchmark program and got result number with this program.\n\nThis benchmark do:\n\n  1: mount and open a test file.\n\n  2: create a 512MB file.\n\n  3: close a file and umount.\n\n  4: mount and again open a test file.\n\n  5: pwrite randomly 300000 times on a test file.  offset is aligned\n     by IO size(1024bytes).\n\n  6: measure time of preading randomly 100000 times on a test file.\n\nThe result was:\n\t2.6.26\n        330 sec\n\n\t2.6.26-patched\n        226 sec\n\nArch:i386\nFilesystem:ext3\nBlocksize:1024 bytes\nMemory: 1GB\n\nOn ext3/4, a file is written through buffer/block.  So random read/write\nmixed workloads or random read after random write workloads are optimized\nwith this patch under pagesize !\u003d blocksize environment.  This test result\nshowed this.\n\nThe benchmark program is as follows:\n\n#include \u003cstdio.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/mount.h\u003e\n\n#define LEN 1024\n#define LOOP 1024*512 /* 512MB */\n\nmain(void)\n{\n\tunsigned long i, offset, filesize;\n\tint fd;\n\tchar buf[LEN];\n\ttime_t t1, t2;\n\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tmemset(buf, 0, LEN);\n\tfd \u003d open(\"/root/test1/testfile\", O_CREAT|O_RDWR|O_TRUNC);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\tfor (i \u003d 0; i \u003c LOOP; i++)\n\t\twrite(fd, buf, LEN);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tfd \u003d open(\"/root/test1/testfile\", O_RDWR);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\n\tfilesize \u003d LEN * LOOP;\n\tfor (i \u003d 0; i \u003c 300000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpwrite(fd, buf, LEN, offset);\n\t}\n\tprintf(\"start test\\n\");\n\ttime(\u0026t1);\n\tfor (i \u003d 0; i \u003c 100000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpread(fd, buf, LEN, offset);\n\t}\n\ttime(\u0026t2);\n\tprintf(\"%ld sec\\n\", t2-t1);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n}\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c8b3125f8dcefd1ee2990113fe69cfa9e9fa609",
      "tree": "e78c0c6b51b51e4455f4bb598b3e1c5281cbe377",
      "parents": [
        "24097d12efbb97bff14fb6e350508853db0f9595"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Apr 28 02:16:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:43 2008 -0700"
      },
      "message": "ext2: use ext2_fsblk_t type\n\nUse ext2_fsblk_t type for filesystem-wide blocks number\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24097d12efbb97bff14fb6e350508853db0f9595",
      "tree": "fb451eaebde9550954493b8a17949e6cce16782d",
      "parents": [
        "bbff28602436cc7ca660757bba81f03b99e8586d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Apr 28 02:16:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:43 2008 -0700"
      },
      "message": "ext2: use ext2_group_first_block_no()\n\nUse ext2_group_first_block_no() and assign the return values to\next2_fsblk_t variables.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70688e4dd1647f0ceb502bbd5964fa344c5eb411",
      "tree": "e0bd8c3b4b6050c067a453d800c2e87948d1abaf",
      "parents": [
        "30afcb4bd2762fa4b87b17ada9500aa46dc10b1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:13:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "xip: support non-struct page backed memory\n\nConvert XIP to support non-struct page backed memory, using VM_MIXEDMAP for\nthe user mappings.\n\nThis requires the get_xip_page API to be changed to an address based one.\nImprove the API layering a little bit too, while we\u0027re here.\n\nThis is required in order to support XIP filesystems on memory that isn\u0027t\nbacked with struct page (but memory with struct page is still supported too).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.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": "1cc8dcf569a3fcefb7ae32652225f2bd3e85257e",
      "tree": "23e065de096ab6cf044458967bea5baa6a98cff0",
      "parents": [
        "c0d1f29534f2bd6c5992831eb0f648522e9b0204"
      ],
      "author": {
        "name": "Benoit Boissinot",
        "email": "benoit.boissinot@ens-lyon.org",
        "time": "Mon Apr 21 22:45:55 2008 +0000"
      },
      "committer": {
        "name": "Jesper Juhl",
        "email": "juhl@hera.kernel.org",
        "time": "Mon Apr 21 22:45:55 2008 +0000"
      },
      "message": "ext*: spelling fix prefered -\u003e preferred\n\nSpelling fix: prefered -\u003e preferred\n\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\n"
    },
    {
      "commit": "52fcf7032935b33158e3998ed399cac97447ab8d",
      "tree": "65d15b7541614ff52e76cabf6c7ac01ac0d95686",
      "parents": [
        "298384cd7929a3a14d7b116095973f0d02f5d09e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EXT2 from using iget() and read_inode()\n\nStop the EXT2 filesystem from using iget() and read_inode().  Replace\next2_read_inode() with ext2_iget(), and call that instead of iget().\next2_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\next2_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\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": "fb01bfdac733f1925561eea52c60072f2fbcdc97",
      "tree": "92e95b0dd90b99f447d14f0598b398cc2eee9d42",
      "parents": [
        "197cd65accc6a274dabcd81f4811ba5d9a4856df"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Feb 06 01:40:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:21 2008 -0800"
      },
      "message": "ext[234]: remove unused argument for ext[234]_find_goal()\n\nThe argument chain for ext[234]_find_goal() is not used.  This patch removes\nit and fixes comment as well.\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "d71cadd6bc9834710c0b045e3abedd0c56ff1c37",
      "tree": "a9410ecbf21f74993b2d9e5ca9b72d0ee9da04d0",
      "parents": [
        "14f9f7b28e9f4c2102337d45f8d324c004a57481"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Feb 06 01:40:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:20 2008 -0800"
      },
      "message": "BKL-removal: remove incorrect BKL comment in ext2\n\nNo BKL used anywhere, so don\u0027t mention it.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a686cd898bd999fd026a51e90fb0a3410d258ddb",
      "tree": "3f0a91a70fe1a3addf9e99f3babed9e9baba4b99",
      "parents": [
        "369f2389e7d03022abdd25e298bffb9613cd0e54"
      ],
      "author": {
        "name": "Martin J. Bligh",
        "email": "mbligh@mbligh.org",
        "time": "Tue Oct 16 23:30:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:02 2007 -0700"
      },
      "message": "ext2 reservations\n\nVal\u0027s cross-port of the ext3 reservations code into ext2.\n\n[mbligh@mbligh.org: Small type error for printk\n[akpm@linux-foundation.org: fix types, sync with ext3]\n[mbligh@mbligh.org: Bring ext2 reservations code in line with latest ext3]\n[akpm@linux-foundation.org: kill noisy printk]\n[akpm@linux-foundation.org: remember to dirty the gdp\u0027s block]\n[akpm@linux-foundation.org: cross-port the missed 5dea5176e5c32ef9f0d1a41d28427b3bf6881b3a]\n[akpm@linux-foundation.org: cross-port e6022603b9aa7d61d20b392e69edcdbbc1789969]\n[akpm@linux-foundation.org: Port the omitted 08fb306fe63d98eb86e3b16f4cc21816fa47f18e]\n[akpm@linux-foundation.org: Backport the missed 20acaa18d0c002fec180956f87adeb3f11f635a6]\n[akpm@linux-foundation.org: fixes]\n[cmm@us.ibm.com: fix reservation extension]\n[bunk@stusta.de: make ext2_get_blocks() static]\n[hugh@veritas.com: fix hang]\n[hugh@veritas.com: ext2_new_blocks should reset the reservation window size]\n[hugh@veritas.com: ext2 balloc: fix off-by-one against rsv_end]\n[hugh@veritas.com: grp_goal 0 is a genuine goal (unlike -1), so ext2_try_to_allocate_with_rsv should treat it as such]\n[hugh@veritas.com: rbtree usage cleanup]\n[pbadari@us.ibm.com: Fix for ext2 reservation]\n[bunk@kernel.org: remove fs/ext2/balloc.c:reserve_blocks()]\n[hugh@veritas.com: ext2 balloc: use io_error label]\nCc: \"Martin J. Bligh\" \u003cmbligh@mbligh.org\u003e\nCc: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef2fb67989d30fea475bb01c5b7ca44adbce5dea",
      "tree": "295e6be829b658f198fd2331c02a0477bf7fd245",
      "parents": [
        "74bf17cffc32511c7c6d70fe7f376b92662e186e"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 16 23:26:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "remove unused bh in calls to ext234_get_group_desc\n\next[234]_get_group_desc never tests the bh argument, and only sets it if it\nis passed in; it is perfectly happy with a NULL bh argument.  But, many\ncallers send one in and never use it.  May as well call with NULL like\nother callers who don\u0027t use the bh.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\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": "f34fb6eccc962e4137b77c4bbe1e9a31d27a30e6",
      "tree": "58fd363d892ee2d341a17e52a297632a10219af9",
      "parents": [
        "6272b5a5868f3d5fbf9815f9984891ced343dabc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "ext2: convert to new aops\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": "4f99ed67cc1cf5302ea18aa042d75641b61a0a1b",
      "tree": "abf64c561c22b1aa1ba03f2dfb0bdef4d156ca8a",
      "parents": [
        "28ec039c21839914389975b896160a815ffd8b83"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:31:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "ext3: copy i_flags to inode flags on write\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc.  from i_flags into\next2-specific i_flags.  Hence, when someone sets these flags via a different\ninterface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d7bf11d649c72621ca31b8ea12b9c94af380e63",
      "tree": "c4a3c11cf6d13210ed344de0ae091d3f7523c689",
      "parents": [
        "8948e11f450e6189a79e47d6051c3d5a0b98e3f3"
      ],
      "author": {
        "name": "Markus Rechberger",
        "email": "Markus.Rechberger@amd.com",
        "time": "Tue May 08 00:23:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:58 2007 -0700"
      },
      "message": "ext2/3/4: fix file date underflow on ext2 3 filesystems on 64 bit systems\n\nTaken from http://bugzilla.kernel.org/show_bug.cgi?id\u003d5079\n\nsigned long ranges from -2.147.483.648 to 2.147.483.647 on x86 32bit\n\n10000011110110100100111110111101 .. -2,082,844,739\n10000011110110100100111110111101 ..  2,212,122,557 \u003c- this currently gets\nstored on the disk but when converting it to a 64bit signed long value it loses\nits sign and becomes positive.\n\nCc: Andreas Dilger \u003cadilger@dilger.ca\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\n\nAndreas says:\n\nThis patch is now treating timestamps with the high bit set as negative\ntimes (before Jan 1, 1970).  This means we lose 1/2 of the possible range\nof timestamps (lopping off 68 years before unix timestamp overflow -\nnow only 30 years away :-) to handle the extremely rare case of setting\ntimestamps into the distant past.\n\nIf we are only interested in fixing the underflow case, we could just\nlimit the values to 0 instead of storing negative values.  At worst this\nwill skew the timestamp by a few hours for timezones in the far east\n(files would still show Jan 1, 1970 in \"ls -l\" output).\n\nThat said, it seems 32-bit systems (mine at least) allow files to be set\ninto the past (01/01/1907 works fine) so it seems this patch is bringing\nthe x86_64 behaviour into sync with other kernels.\n\nOn the plus side, we have a patch that is ready to add nanosecond timestamps\nto ext3 and as an added bonus adds 2 high bits to the on-disk timestamp so\nthis extends the maximum date to 2242.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\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": "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": "1d8fa7a2b9a39d18727acc5c468e870df606c852",
      "tree": "41537fe9ea5478f3243e3301184dc13980f8201f",
      "parents": [
        "fa30bd058b746c0e2318a77ff8b4977faa924c2c"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] remove -\u003eget_blocks() support\n\nNow that get_block() can handle mapping multiple disk blocks, no need to have\n-\u003eget_blocks().  This patch removes fs specific -\u003eget_blocks() added for DIO\nand makes it users use get_block() instead.\n\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": "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": "2973dfdb877c17b36c27ba66d71028ff1eb2f32e",
      "tree": "9734599068f3fcf7cd33f948235588f7a275d193",
      "parents": [
        "7f04c26d715a2467a49a2384268de8f70f787b51"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "glommer@br.ibm.com",
        "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] Test for sb_getblk return value\n\nThis patch adds tests for the return value of sb_getblk() in the ext2/3\nfilesystems.  In fs/buffer.c it is stated that the getblk() function never\nfails.  However, it does can return NULL in some situations due to I/O\nerrors, which may lead us to NULL pointer dereferences\n\nSigned-off-by: Glauber de Oliveira Costa \u003cglommer@br.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fef266580e5cf897a1b63528fc6b1185e2d6bb87",
      "tree": "a432a35914b8a74f0c8c73ca57257c7e609365d3",
      "parents": [
        "e85b565233236a2a833adea73fb2f0e0f8fa2a61"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 09 13:01:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:27 2005 -0700"
      },
      "message": "[PATCH] update filesystems for new delete_inode behavior\n\nUpdate the file systems in fs/ implementing a delete_inode() callback to\ncall truncate_inode_pages().  One implementation note: In developing this\npatch I put the calls to truncate_inode_pages() at the very top of those\nfilesystems delete_inode() callbacks in order to retain the previous\nbehavior.  I\u0027m guessing that some of those could probably be optimized.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\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": "6d79125bba55ee82701f1c7d4ebbc1aa20ecbe4e",
      "tree": "fbd7f82fea19fd89e09312fe89919774b94a6efe",
      "parents": [
        "ceffc078528befc008c6f2c2c4decda79eabd534"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: ext2: execute in place\n\nThese are the ext2 related parts.  Ext2 now uses the xip_* file operations\nalong with the get_xip_page aop when mounted with -o xip.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e072c6f2af57fb8ad9e0f29bfff3f79edf7bdd55",
      "tree": "9d72262a63754b39df4ebfed5bc74855f0408c3a",
      "parents": [
        "614a7d6a76b7fb37bb399047eb3ccf86cafbf60d"
      ],
      "author": {
        "name": "Bernard Blackham",
        "email": "bernard@blackham.com.au",
        "time": "Sat Apr 16 15:25:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:25:45 2005 -0700"
      },
      "message": "[PATCH] ext2 corruption - regression between 2.6.9 and 2.6.10\n\nWhilst trying to stress test a Promise SX8 card, we stumbled across\nsome nasty filesystem corruption in ext2. Our tests involved\ncreating an ext2 partition, mounting, running several concurrent\nfsx\u0027s over it, umounting, and fsck\u0027ing, all scripted[1]. The fsck\nwould always return with errors.\n\nThis regression was traced back to a change between 2.6.9 and\n2.6.10, which moves the functionality of ext2_put_inode into\next2_clear_inode.  The attached patch reverses this change, and\neliminated the source of corruption.\n\nMingming Cao \u003ccmm@us.ibm.com\u003e said:\n\nI think his patch for ext2 is correct.  The corruption on ext3 is not the same\nissue he saw on ext2.  I believe that\u0027s the race between discard reservation\nand reservation in-use that we already fixed it in 2.6.12- rc1.\n\nFor the problem related to ext2, at the time when we design reservation for\next3, we decide we only need to discard the reservation at the last file\nclose, so we have ext3_discard_reservation on iput_final- \u003eext3_clear_inode.\n\nThe ext2 handle discard preallocation differently at that time, it discard the\npreallocation at each iput(), not in input_final(), so we think it\u0027s\nunnecessary to thrash it so frequently, and the right thing to do, as we did\nfor ext3 reservation, discard preallocation on last iput().  So we moved the\next2_discard_preallocation from ext2_put_inode(0 to ext2_clear_inode.\n\nSince ext2 preallocation is doing pre-allocation on disk, so it is possible\nthat at the unmount time, someone is still hold the reference of the inode, so\nthe preallocation for a file is not discard yet, so we still mark those blocks\nallocated on disk, while they are not actually in the inode\u0027s block map, so\nfsck will catch/fix that error later.\n\nThis is not a issue for ext3, as ext3 reservation(pre-allocation) is done in\nmemory.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
