)]}'
{
  "log": [
    {
      "commit": "b40971426a837e9dc9c66e1b6bbcb3874eafe4e0",
      "tree": "34b2a745719ed18bd1f0c81cfad200b9d8b2e309",
      "parents": [
        "ca6e909f9bebe709bc65a3ee605ce32969db0452"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:46:59 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:46:59 2011 -0500"
      },
      "message": "ext4: add error checking to calls to ext4_handle_dirty_metadata()\n\nCall ext4_std_error() in various places when we can\u0027t bail out\ncleanly, so the file system can be marked as in error.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dabd991f9d8e3232bb4531c920daddac8d10d313",
      "tree": "f914ebaba1b4fe686260e4a6479d2050ff2cbdb2",
      "parents": [
        "f1dffc4c5431c6bd8972489636573c5cd09ab672"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jan 10 12:11:16 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:11:16 2011 -0500"
      },
      "message": "ext4: add more error checks to ext4_mkdir()\n\nCheck return value of ext4_journal_get_write_access,\next4_journal_dirty_metadata and ext4_mark_inode_dirty. Move brelse()\nunder \u0027out_stop\u0027 to release bh properly in case of journal error.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f7c21177af0b32a2cd9ee36189637f0c1f0e1e17",
      "tree": "ba83d4ddcd4b7e15ff575f0b75013ba9ed62f249",
      "parents": [
        "f9a62d090cf47fae2fe6f6bd8eb9f24482573fd8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "message": "ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n\nWhere the file pointer is available, use ext4_error_file() instead of\next4_error_inode().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cad3f00763dcf9dfc62cbddf4bd714ab5a71a0eb",
      "tree": "02ec7c4959f5506f0b2fe128b1318e257ee6f0e4",
      "parents": [
        "b17b35ec13adfeb0346d4b329110b14adc509327"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 19 22:07:02 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 19 22:07:02 2010 -0500"
      },
      "message": "ext4: optimize ext4_check_dir_entry() with unlikely() annotations\n\nThis function gets called a lot for large directories, and the answer\nis almost always \"no, no, there\u0027s no problem\".  This means using\nunlikely() is a good thing.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6ca7b13dea385484e2fcc89790b8030697c5014a",
      "tree": "5dd8c1e46de01e91459c8a92e01274f598904769",
      "parents": [
        "b7271b0a39947f757d7969f6150dcb16c1976b91"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Sun Dec 19 21:38:46 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 19 21:38:46 2010 -0500"
      },
      "message": "ext4: Remove redundant unlikely()\n\nIS_ERR() already implies unlikely(), so it can be omitted here.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6d5c3aa84b3e431f2d0fc39c73c867d1a4dd8cff",
      "tree": "d03a2ddc636597d96e9333dd79bae22314564e67",
      "parents": [
        "1449032be17abb69116dbc393f67ceb8bd034f92"
      ],
      "author": {
        "name": "Aaro Koskinen",
        "email": "aaro.koskinen@nokia.com",
        "time": "Tue Dec 14 21:45:31 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 14 21:45:31 2010 -0500"
      },
      "message": "ext4: fix typo which broke \u0027..\u0027 detection in ext4_find_entry()\n\nThere should be a check for the NUL character instead of \u00270\u0027.\n\nFortunately the only thing that cares about this is NFS serving, which\nis why we didn\u0027t notice this in the merge window testing.\n\nReported-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nSigned-off-by: Aaro Koskinen \u003caaro.koskinen@nokia.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "7845c0497536c566bfef08db1a38ae1ad2c25464",
      "tree": "1d5fc97acad87341c6a703dc0763fa95135923ef",
      "parents": [
        "8941ec8bb6443d28d5c25311870aeaa809cf1538"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "message": "ext4: use search_dirblock() in ext4_dx_find_entry()\n\nUse the search_dirblock() in ext4_dx_find_entry().  It makes the code\neasier to read, and it takes advantage of common code.  It also saves\n100 bytes or so of text space.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\n"
    },
    {
      "commit": "8941ec8bb6443d28d5c25311870aeaa809cf1538",
      "tree": "5fbd2aff55ff077ec98604b03f6fc9d35a6f081d",
      "parents": [
        "640e9396566a1e1f52f2db294755a23f1e62cc97"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "message": "ext4: avoid uninitialized memory references in ext3_htree_next_block()\n\nIf the first block of htree directory is missing \u0027.\u0027 or \u0027..\u0027 but is\notherwise a valid directory, and we do a lookup for \u0027.\u0027 or \u0027..\u0027, it\u0027s\npossible to dereference an uninitialized memory pointer in\next4_htree_next_block().\n\nWe avoid this by moving the special case from ext4_dx_find_entry() to\next4_find_entry(); this also means we can optimize ext4_find_entry()\nslightly when NFS looks up \"..\".\n\nThanks to Brad Spengler for pointing a Clang warning that led me to\nlook more closely at this code.  The warning was harmless, but it was\nuseful in pointing out code that was too ugly to live.  This warning was\nalso reported by Roman Borisov.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0cfc9255a1efb0467de2162950197750570ecec0",
      "tree": "3bb2510d8b6d373d7db3a49bcda3cbbebd10330e",
      "parents": [
        "8dd420466c7bfc459fa04680bd5690bfc41a4553"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Aug 05 01:46:37 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Aug 05 01:46:37 2010 -0400"
      },
      "message": "ext4: re-inline ext4_rec_len_(to|from)_disk functions\n\ncommit 3d0518f4, \"ext4: New rec_len encoding for very\nlarge blocksizes\" made several changes to this path, but from\na perf perspective, un-inlining ext4_rec_len_from_disk() seems\nmost significant.  This function is called from ext4_check_dir_entry(),\nwhich on a file-creation workload is called extremely often.\n\nI tested this with bonnie:\n\n# bonnie++ -u root -s 0 -f -x 200 -d /mnt/test -n 32\n\n(this does 200 iterations) and got this for the file creations:\n\next4 stock:   Average \u003d  21206.8 files/s\next4 inlined: Average \u003d  22346.7 files/s  (+5%)\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "60fd4da34d55a9cc0d857fc76dc12cf8cab4ed02",
      "tree": "72c6b3d9c7680070a751da56bd9068f71e7b106f",
      "parents": [
        "90c7201b97bb7ac5a4e2605abc0efb5fdfb957f0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:54:40 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:54:40 2010 -0400"
      },
      "message": "ext4: Cleanup ext4_check_dir_entry so __func__ is now implicit\n    \nAlso start passing the line number to ext4_check_dir since we\u0027re going\nto need it in upcoming patch.\n    \nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a0790c2c4a18435759a70e1562450035d778339",
      "tree": "80acb12d0e37196cf60ae4ca150c6b556115f302",
      "parents": [
        "07a038245b28df9196ffb2e8cc626e9b956a4e23"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "message": "ext4: remove initialized but not read variables\n\nNo real bugs found, just removed some dead code.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "14ece1028b3ed53ffec1b1213ffc6acaf79ad77c",
      "tree": "8f5a13487139c68ef775c9d39b7be83386fdae06",
      "parents": [
        "60e6679e28518ccd67169c4a539d8cc7490eb8a6"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Mon May 17 08:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 08:00:00 2010 -0400"
      },
      "message": "ext4: Make fsync sync new parent directories in no-journal mode\n\nAdd a new ext4 state to tell us when a file has been newly created; use\nthat state in ext4_sync_file in no-journal mode to tell us when we need\nto sync the parent directory as well as the inode and data itself.  This\nfixes a problem in which a panic or power failure may lose the entire\nfile even when using fsync, since the parent directory entry is lost.\n\nAddresses-Google-Bug: #2480057\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "60e6679e28518ccd67169c4a539d8cc7490eb8a6",
      "tree": "65f39d1e9da3006df5bc5532d0c8a7ec365599f0",
      "parents": [
        "4d92dc0f00a775dc2e1267b0e00befb783902fe7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "message": "ext4: Drop whitespace at end of lines\n\nThis patch was generated using:\n\n#!/usr/bin/perl -i\nwhile (\u003c\u003e) {\n    s/[ \t]+$//;\n    print;\n}\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12e9b892002d9af057655d35b44db8ee9243b0dc",
      "tree": "c5831b4bcf98eebdd39158d08dab97c198f5c683",
      "parents": [
        "24676da469f50f433baa347845639662c561d1f6"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "message": "ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n\nAt several places we modify EXT4_I(inode)-\u003ei_flags without holding\ni_mutex (ext4_do_update_inode, ...). These modifications are racy and\nwe can lose updates to i_flags. So convert handling of i_flags to use\nbitops which are atomic.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15792\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24676da469f50f433baa347845639662c561d1f6",
      "tree": "b4b8205f8b50376af286193d0dcbe76f2bc2d1e1",
      "parents": [
        "2ed886852adfcb070bf350e66a0da0d98b2f3ab5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 21:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 21:00:00 2010 -0400"
      },
      "message": "ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()\n\nEXT4_ERROR_INODE() tends to provide better error information and in a\nmore consistent format.  Some errors were not even identifying the inode\nor directory which was corrupted, which made them not very useful.\n\nAddresses-Google-Bug: #2507977\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "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": "6e3617e579e070d3655a93ee9ed7149113e795e0",
      "tree": "d27c90ac6366e5c9018aeae5d6052f3ae1a4243b",
      "parents": [
        "da1dafca84413145f5ac59998b4cdd06fb89f721"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 23:29:39 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 23:29:39 2010 -0500"
      },
      "message": "ext4: Handle non empty on-disk orphan link\n\nIn case of truncate errors we explicitly remove inode from in-core\norphan list via orphan_del(NULL, inode) without modifying the on-disk list.\n\nBut later on, the same inode may be inserted in the orphan list again\nwhich will result the on-disk linked list getting corrupted.  If inode\ni_dtime contains valid value, then skip on-disk list modification.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "73b50c1c92666d326b5fa2c945d46509f2f6d91f",
      "tree": "87e2cc6fed3259a83364ede33d8f4d68173f8175",
      "parents": [
        "ba869023eac8354b17acdcff82b851ea8e7b1809"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Tue Feb 16 15:06:29 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 16 15:06:29 2010 -0500"
      },
      "message": "ext4: Fix BUG_ON at fs/buffer.c:652 in no journal mode\n\nCalls to ext4_handle_dirty_metadata should only pass in an inode\npointer for inode-specific metadata, and not for shared metadata\nblocks such as inode table blocks, block group descriptors, the\nsuperblock, etc.\n\nThe BUG_ON can get tripped when updating a special device (such as a\nblock device) that is opened (so that i_mapping is set in\nfs/block_dev.c) and the file system is mounted in no journal mode.\n\nAddresses-Google-Bug: #2404870\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12062dddda450976b129dcb1bacd91acaf4d8030",
      "tree": "e64590b1147639cd3629f8a977b269410cd6bd13",
      "parents": [
        "f710b4b96ba292dfed2153afc47e9063b0abfd89"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 15 14:19:27 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 15 14:19:27 2010 -0500"
      },
      "message": "ext4: move __func__ into a macro for ext4_warning, ext4_error\n\nJust a pet peeve of mine; we had a mishash of calls with either __func__\nor \"function_name\" and the latter tends to get out of sync.\n\nI think it\u0027s easier to just hide the __func__ in a macro, and it\u0027ll\nbe consistent from then on.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5aca07eb7d8f14d90c740834d15ca15277f4820c",
      "tree": "362ab7bb56cf0920ee27bbaf97e2657c022eb4b4",
      "parents": [
        "8aa6790f876e81f5a2211fe1711a5fe3fe2d7b20"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Dec 08 22:42:15 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 22:42:15 2009 -0500"
      },
      "message": "ext4: quota macros cleanup\n\nCurrently all quota block reservation macros contains hard-coded \"2\"\naka MAXQUOTAS value. This is no good because in some places it is not\nobvious to understand what does this digit represent. Let\u0027s introduce\nnew macro with self descriptive name.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2de770a406b06dfc619faabbf5d85c835ed3f2e1",
      "tree": "4607c5bfc0f66bfc6067e673ac33e76e42aa9318",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 23 07:25:49 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 23 07:25:49 2009 -0500"
      },
      "message": "ext4: fix potential buffer head leak when add_dirent_to_buf() returns ENOSPC\n\nPreviously add_dirent_to_buf() did not free its passed-in buffer head\nin the case of ENOSPC, since in some cases the caller still needed it.\nHowever, this led to potential buffer head leaks since not all callers\ndealt with this correctly.  Fix this by making simplifying the freeing\nconvention; now add_dirent_to_buf() *never* frees the passed-in buffer\nhead, and leaves that to the responsibility of its caller.  This makes\nthings cleaner and easier to prove that the code is neither leaking\nbuffer heads or calling brelse() one time too many.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "1e424a348303694fabdf8b1efbfcb1a892dfa63a",
      "tree": "631c7f421ea162c370c5ee09aeccb8381c7a7274",
      "parents": [
        "ba230c3f6dc88ec008806adb27b12088486d508e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 08 15:45:44 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 08 15:45:44 2009 -0500"
      },
      "message": "ext4: partial revert to fix double brelse WARNING()\n\nThis is a partial revert of commit 6487a9d (only the changes made to\nfs/ext4/namei.c), since it is causing the following brelse()\ndouble-free warning when running fsstress on a file system with 1k\nblocksize and we run into a block allocation failure while converting\na single-block directory to a multi-block hash-tree indexed directory.\n\nWARNING: at fs/buffer.c:1197 __brelse+0x2e/0x33()\nHardware name: \nVFS: brelse: Trying to free free buffer\nModules linked in:\nPid: 2226, comm: jbd2/sdd-8 Not tainted 2.6.32-rc6-00577-g0003f55 #101\nCall Trace:\n [\u003cc01587fb\u003e] warn_slowpath_common+0x65/0x95\n [\u003cc0158869\u003e] warn_slowpath_fmt+0x29/0x2c\n [\u003cc021168e\u003e] __brelse+0x2e/0x33\n [\u003cc0288a9f\u003e] jbd2_journal_refile_buffer+0x67/0x6c\n [\u003cc028a9ed\u003e] jbd2_journal_commit_transaction+0x319/0x14d8\n [\u003cc0164d73\u003e] ? try_to_del_timer_sync+0x58/0x60\n [\u003cc0175bcc\u003e] ? sched_clock_cpu+0x12a/0x13e\n [\u003cc017f6b4\u003e] ? trace_hardirqs_off+0xb/0xd\n [\u003cc0175c1f\u003e] ? cpu_clock+0x3f/0x5b\n [\u003cc017f6ec\u003e] ? lock_release_holdtime+0x36/0x137\n [\u003cc0664ad0\u003e] ? _spin_unlock_irqrestore+0x44/0x51\n [\u003cc0180af3\u003e] ? trace_hardirqs_on_caller+0x103/0x124\n [\u003cc0180b1f\u003e] ? trace_hardirqs_on+0xb/0xd\n [\u003cc0164d73\u003e] ? try_to_del_timer_sync+0x58/0x60\n [\u003cc0290d1c\u003e] kjournald2+0x11a/0x310\n [\u003cc017118e\u003e] ? autoremove_wake_function+0x0/0x38\n [\u003cc0290c02\u003e] ? kjournald2+0x0/0x310\n [\u003cc0170ee6\u003e] kthread+0x66/0x6b\n [\u003cc0170e80\u003e] ? kthread+0x0/0x6b\n [\u003cc01251b3\u003e] kernel_thread_helper+0x7/0x10\n---[ end trace 5579351b86af61e3 ]---\n\nCommit 6487a9d was an attempt some buffer head leaks in an ENOSPC\nerror path, but in some cases it actually results in an excess ENOSPC,\nas shown above.  Fixing this means cleaning up who is responsible for\nreleasing the buffer heads from the callee to the caller of\nadd_dirent_to_buf().\n\nSince that\u0027s a relatively complex change, and we\u0027re late in the rcX\ndevelopment cycle, I\u0027m reverting this now, and holding back a more\ncomplete fix until after 2.6.32 ships.  We\u0027ve lived with this\nbuffer_head leak on ENOSPC in ext3 and ext4 for a very long time; a\nfew more months won\u0027t kill us.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Curt Wohlgemuth \u003ccurtw@google.com\u003e\n"
    },
    {
      "commit": "d3d1faf6a74496ea4435fd057c6a2cad49f3e523",
      "tree": "9f1cc0e2efb9a4fe42bb6b57c087d8450a854dc1",
      "parents": [
        "f3dc272fd5e2ae08244796bb39e7e1ce4b25d3b3"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Tue Sep 29 11:01:03 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 11:01:03 2009 -0400"
      },
      "message": "ext4: Handle nested ext4_journal_start/stop calls without a journal\n\nThis patch fixes a problem with handling nested calls to\next4_journal_start/ext4_journal_stop, when there is no journal present.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f7bebb9e911d870fa8f997ddff838e82b5715ea",
      "tree": "be0efe4467b3f7f079e7f20d7580677580947017",
      "parents": [
        "0e3d2a6313d03413d93327202a60256d1d726fdc"
      ],
      "author": {
        "name": "Andreas Schlick",
        "email": "schlick@lavabit.com",
        "time": "Thu Sep 10 23:16:07 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 10 23:16:07 2009 -0400"
      },
      "message": "ext4: Always set dx_node\u0027s fake_dirent explicitly.\n\nWhen ext4_dx_add_entry() has to split an index node, it has to ensure that\nname_len of dx_node\u0027s fake_dirent is also zero, because otherwise e2fsck\nwon\u0027t recognise it as an intermediate htree node and consider the htree to\nbe corrupted.\n\nSigned-off-by: Andreas Schlick \u003cschlick@lavabit.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b05ab1dc3795e6f997fb0d34f38fce5012533c3e",
      "tree": "4479566851d82df15b0a350a3f2c3baa9009b9d4",
      "parents": [
        "2c94eb86c66e1eaaa1e7d8a2120f4fad5e7e7736"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 29 21:08:08 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 29 21:08:08 2009 -0400"
      },
      "message": "ext4: Limit number of links that can be created by ext4_link()\n\nIn ext4_link we need to check using EXT4_LINK_MAX, and not\nEXT4_DIR_LINK_MAX(), since ext4_link() is creating hard links of\nregular files, and not directories.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2c94eb86c66e1eaaa1e7d8a2120f4fad5e7e7736",
      "tree": "71f76a0ca097b887986ea0499401c3631f15a0e3",
      "parents": [
        "55ad63bf3a30936aced50f13452735c2f58b234c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Aug 28 21:43:15 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 28 21:43:15 2009 -0400"
      },
      "message": "ext4: Allow rename to create more than EXT4_LINK_MAX subdirectories\n\nUse EXT4_DIR_LINK_MAX so that rename() can move a directory into new\nparent directory without running into the EXT4_LINK_MAX limit.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6487a9d3b5476ffd1bbbe97e58cf26dbeb7a5d4a",
      "tree": "6f03532934774f847e281a9eb52fbf539b36f42b",
      "parents": [
        "f6f50e28f0cb8d7bcdfaacc83129f005dede11b1"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Jul 17 10:54:08 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 17 10:54:08 2009 -0400"
      },
      "message": "ext4: More buffer head reference leaks\n\nAfter the patch I posted last week regarding buffer head ref leaks in\nno-journal mode, I looked at all the code that uses buffer heads and\nsearched for more potential leaks.\n\nThe patch below fixes the issues I found; these can occur even when a\njournal is present.\n\nThe change to inode.c fixes a double release if\next4_journal_get_create_access() fails.\n\nThe changes to namei.c are more complicated.  add_dirent_to_buf() will\nrelease the input buffer head EXCEPT when it returns -ENOSPC.  There are\nsome callers of this routine that don\u0027t always do the brelse() in the event\nthat -ENOSPC is returned.  Unfortunately, to put this fix into ext4_add_entry()\nrequired capturing the return value of make_indexed_dir() and\nadd_dirent_to_buf().\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1d5ccd1c422d7d292a9e45248aa36771900c6331",
      "tree": "6fa8e117697dcb42dfec026149dfea49325bed98",
      "parents": [
        "6d848a488ad83cc3891bb274691118f45ce6aab9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:12:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:09:04 2009 -0700"
      },
      "message": "ext[234]: move over to \u0027check_acl\u0027 permission model\n\nDon\u0027t implement per-filesystem \u0027extX_permission()\u0027 functions that have\nto be called for every path component operation, and instead just expose\nthe actual ACL checking so that the VFS layer can now do it for us.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11013911daea4820147ae6d7094dd7c6894e8651",
      "tree": "f8e9f9d2058e0dfc826d4df3d88a7eb18a56b3f3",
      "parents": [
        "f157a4aa98a18bd3817a72bea90d48494e2586e7"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@sun.com",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "message": "ext4: teach the inode allocator to use a goal inode number\n\nEnhance the inode allocator to take a goal inode number as a\nparemeter; if it is specified, it takes precedence over Orlov or\nparent directory inode allocation algorithms.\n\nThe extents migration function uses the goal inode number so that the\nextent trees allocated the migration function use the correct flex_bg.\nIn the future, the goal inode functionality will also be used to\nallocate an adjacent inode for the extended attributes.\n\nAlso, for testing purposes the goal inode number can be specified via\n/sys/fs/{dev}/inode_goal.  This can be useful for testing inode\nallocation beyond 2^32 blocks on very large filesystems.\n\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f157a4aa98a18bd3817a72bea90d48494e2586e7",
      "tree": "105547639a67296b4ea7acdc35c9e65ee2a85fd8",
      "parents": [
        "8a8a2050c844d9de224ff591e91bda3f77bd6eda"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "message": "ext4: Use a hash of the topdir directory name for the Orlov parent group\n\nInstead of using a random number to determine the goal parent grop for\nthe Orlov top directories, use a hash of the directory name.  This\nallows for repeatable results when trying to benchmark filesystem\nlayout algorithms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9aee2286071c23c535fe9928eec1a26e0bcf256d",
      "tree": "e0518acaa75c1399ffcf67ca74a54d5a9488296b",
      "parents": [
        "f8514083cd61daef12fba5ef883ad9352c450428"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Mon Jun 08 12:41:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 08 12:41:35 2009 -0400"
      },
      "message": "ext4: fix dx_map_entry to support 256k directory blocks\n\nThe dx_map_entry structure doesn\u0027t support over 64KB block size by\ncurrent usage of its member(\"offs\"). Because \"offs\" treats an offset\nof copies of the ext4_dir_entry_2 structure as is. This member size is\n16 bits. But real offset for over 64KB(256KB) block size needs 18\nbits. However, real offset keeps 4 byte boundary, so lower 2 bits is\nnot used.\n\nTherefore, we do the following to fix this limitation:\nFor \"store\": \n\twe divide the real offset by 4 and then store this result to \"offs\" \n\tmember.\nFor \"use\":\n\twe multiply \"offs\" member by 4 and then use this result \n\tas real offset.\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "abc8746eb91fb01e8d411896f80f7687c0d8372e",
      "tree": "b339a559ed8f33b4fe64b5fba5d7684b05d2e071",
      "parents": [
        "f40339031b04279c3fdde7ac5fe97db33b2a7694"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat May 02 22:54:32 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 22:54:32 2009 -0400"
      },
      "message": "ext4: hook fiemap operation for directories\n\nAdd fiemap callback for directories\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "596397b77c895d0fa3674f579c94ad5ea88ef01d",
      "tree": "bd4f9916556b4d5bc59ee4b5171248df44e2c5c4",
      "parents": [
        "ca0faba0e8ac844dc0279825eb8db876b5962ea5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:49:15 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:49:15 2009 -0400"
      },
      "message": "ext4: Move fs/ext4/namei.h into ext4.h\n\nThe fs/ext4/namei.h header file had only a single function\ndeclaration, and should have never been a standalone file.  Move it\ninto ext4.h, where should have been from the beginning.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3b9d4ed26680771295d904a6b83e88e620780893",
      "tree": "905b0e95697839c446c86250cf38dd256f5e846a",
      "parents": [
        "a63c9eb2ce6f5028da90f282798232c4f398ceb8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:54:04 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:54:04 2009 -0400"
      },
      "message": "ext4: Replace lock/unlock_super() with an explicit lock for the orphan list\n\nUse a separate lock to protect the orphan list, so we can stop\noverloading the use of lock_super().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "afd4672dc7610b7feef5190168aa917cc2e417e4",
      "tree": "53a3aa709232b00473c8da70b792b350150956ff",
      "parents": [
        "7d39db14a42cbd719c7515b9da8f85a2eb6a0633"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 16 23:12:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 16 23:12:23 2009 -0400"
      },
      "message": "ext4: Add auto_da_alloc mount option\n\nAdd a mount option which allows the user to disable automatic\nallocation of blocks whose allocation by delayed allocation when the\nfile was originally truncated or when the file is renamed over an\nexisting file.  This feature is intended to save users from the\neffects of naive application writers, but it reduces the effectiveness\nof the delayed allocation code.  This mount option disables this\nsafety feature, which may be desirable for prodcutions systems where\nthe risk of unclean shutdowns or unexpected system crashes is low.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8750c6d5fcbd3342b3d908d157f81d345c5325a7",
      "tree": "323e83b9f81379c696acc861555143a06a84eb7b",
      "parents": [
        "7d8f9f7d150dded7b68e61ca6403a1f166fb4edf"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 23 23:05:27 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 23 23:05:27 2009 -0500"
      },
      "message": "ext4: Automatically allocate delay allocated blocks on rename\n\nWhen renaming a file such that a link to another inode is overwritten,\nforce any delay allocated blocks that to be allocated so that if the\nfilesystem is mounted with data\u003dordered, the data blocks will be\npushed out to disk along with the journal commit.  Many application\nprograms expect this, so we do this to avoid zero length files if the\nsystem crashes unexpectedly.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6f009b0b45220c004672d41a58865e94946104d",
      "tree": "99a00ca6486c896b90376238c22a90de3e31cc57",
      "parents": [
        "a4912123b688e057084e6557cef8924f7ae5bbde"
      ],
      "author": {
        "name": "Bryan Donlan",
        "email": "bdonlan@gmail.com",
        "time": "Sun Feb 22 21:20:25 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 22 21:20:25 2009 -0500"
      },
      "message": "ext4: return -EIO not -ESTALE on directory traversal through deleted inode\n\next4_iget() returns -ESTALE if invoked on a deleted inode, in order to\nreport errors to NFS properly.  However, in ext4_lookup(), this\n-ESTALE can be propagated to userspace if the filesystem is corrupted\nsuch that a directory entry references a deleted inode.  This leads to\na misleading error message - \"Stale NFS file handle\" - and confusion\non the part of the admin.\n\nThe bug can be easily reproduced by creating a new filesystem, making\na link to an unused inode using debugfs, then mounting and attempting\nto ls -l said link.\n\nThis patch thus changes ext4_lookup to return -EIO if it receives\n-ESTALE from ext4_iget(), as ext4 does for other filesystem metadata\ncorruption; and also invokes the appropriate ext*_error functions when\nthis case is detected.\n\nSigned-off-by: Bryan Donlan \u003cbdonlan@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3d0518f4758eca4339e75e5b9dbb7e06a5ce08b4",
      "tree": "30a45a1c82d830646a69591c470680573e14de07",
      "parents": [
        "8bad4597c2d71365adfa846ea1ca6cf99161a455"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Sat Feb 14 23:01:36 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 23:01:36 2009 -0500"
      },
      "message": "ext4: New rec_len encoding for very large blocksizes\n\nThe rec_len field in the directory entry is 16 bits, so to encode\nblocksizes larger than 64k becomes problematic.  This patch allows us\nto supprot block sizes up to 256k, by using the low 2 bits to extend\nthe range of rec_len to 2**18-1 (since valid rec_len sizes must be a\nmultiple of 4).  We use the convention that a rec_len of 0 or 65535\nmeans the filesystem block size, for compatibility with older kernels.\n\nIt\u0027s unlikely we\u0027ll see VM pages of up to 256k, but at some point we\nmight find that the Linux VM has been enhanced to support filesystem\nblock sizes \u003e than the VM page size, at which point it might be useful\nfor some applications to allow very large filesystem block sizes.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8bad4597c2d71365adfa846ea1ca6cf99161a455",
      "tree": "8143f59887776dd77f6e4aa0ed886b143db512ca",
      "parents": [
        "e187c6588d6ef3169db53c389b3de9dfde3b16cc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 21:46:54 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 21:46:54 2009 -0500"
      },
      "message": "ext4: Use unsigned int for blocksize in dx_make_map() and dx_pack_dirents()\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a269eb18294d35874c53311acc2cd0b5ef477ce5",
      "tree": "4da256ba45385688bd7f1e8b638ce76f884c8313",
      "parents": [
        "81a052273998f94b098945c4c313e05246956eb2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 17:04:39 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:36 2009 +0100"
      },
      "message": "ext4: 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\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "e6b8bc09ba2075cd91fbffefcd2778b1a00bd76f",
      "tree": "07a439d21576794c5d39a06a86b09e690e55f2f2",
      "parents": [
        "06a279d636734da32bb62dd2f7b0ade666f65d7c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 16 11:13:40 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 16 11:13:40 2009 -0500"
      },
      "message": "ext4: Add sanity check to make_indexed_dir\n\nMake sure the rec_len field in the \u0027..\u0027 entry is sane, lest we overrun\nthe directory block and cause a kernel oops on a purposefully\ncorrupted filesystem.\n\nThanks to Sami Liedes for reporting this bug.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12430\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f",
      "tree": "f72a0d85e66f500b4cead348a231e3d3b9f357bc",
      "parents": [
        "cd764695b67386a81964f68e9c66efd9f13f4d29",
        "4b905671d2ea09fd48fed72c581df17e40823f39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 17:14:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 17:14:59 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (57 commits)\n  jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs\n  ext4: Remove \"extents\" mount option\n  block: Add Kconfig help which notes that ext4 needs CONFIG_LBD\n  ext4: Make printk\u0027s consistently prefixed with \"EXT4-fs: \"\n  ext4: Add sanity checks for the superblock before mounting the filesystem\n  ext4: Add mount option to set kjournald\u0027s I/O priority\n  jbd2: Submit writes to the journal using WRITE_SYNC\n  jbd2: Add pid and journal device name to the \"kjournald2 starting\" message\n  ext4: Add markers for better debuggability\n  ext4: Remove code to create the journal inode\n  ext4: provide function to release metadata pages under memory pressure\n  ext3: provide function to release metadata pages under memory pressure\n  add releasepage hooks to block devices which can be used by file systems\n  ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc\n  ext4: Init the complete page while building buddy cache\n  ext4: Don\u0027t allow new groups to be added during block allocation\n  ext4: mark the blocks/inode bitmap beyond end of group as used\n  ext4: Use new buffer_head flag to check uninit group bitmaps initialization\n  ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()\n  ext4: code cleanup\n  ...\n"
    },
    {
      "commit": "97e133b4543c5c677e768a8538d6d704c4218ff2",
      "tree": "3473e5e7e634cab8cfb2c3b59c1bfe99182d7b70",
      "parents": [
        "be857df1dd8d8e1491e60d999caf3b8446ccd475"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jan 07 18:09:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:15 2009 -0800"
      },
      "message": "generic swap(): ext4: remove local swap() macro\n\nUse the new generic implementation.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\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": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b38e842bb832a3dbeb17e382404aef3c40ac5f9",
      "tree": "c36830341781bf49ded16a0d5432647979a74ad8",
      "parents": [
        "c38012daa7ad902a39a4213ba2b3fe50e81157ea"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 30 02:03:31 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:44 2008 -0500"
      },
      "message": "nfsd race fixes: ext4\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "498e5f24158da7bf8fa48074a70e370e22844492",
      "tree": "1434b349c8eca3b0667af0b385533cbcd599c1c3",
      "parents": [
        "a9df9a49102f3578909cba7bd33784eb3b9caaa4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:14:04 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:14:04 2008 -0500"
      },
      "message": "ext4: Change unsigned long to unsigned int\n\nConvert the unsigned longs that are most responsible for bloating the\nstack usage on 64-bit systems.\n\nNearly all places in the ext3/4 code which uses \"unsigned long\" is\nprobably a bug, since on 32-bit systems a ulong a 32-bits, which means\nwe are wasting stack space on 64-bit systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0390131ba84fd3f726f9e24fc4553828125700bb",
      "tree": "4c90afad4e8690e25aec0ce069fd450e92ab5f96",
      "parents": [
        "ff7ef329b268b603ea4a2303241ef1c3829fd574"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Wed Jan 07 00:06:22 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 07 00:06:22 2009 -0500"
      },
      "message": "ext4: Allow ext4 to run without a journal\n\nA few weeks ago I posted a patch for discussion that allowed ext4 to run\nwithout a journal.  Since that time I\u0027ve integrated the excellent\ncomments from Andreas and fixed several serious bugs.  We\u0027re currently\nrunning with this patch and generating some performance numbers against\nboth ext2 (with backported reservations code) and ext4 with and without\na journal.  It just so happens that running without a journal is\nslightly faster for most everything.\n\nWe did\n\tiozone -T -t 4 s 2g -r 256k -T -I -i0 -i1 -i2\n\nwhich creates 4 threads, each of which create and do reads and writes on\na 2G file, with a buffer size of 256K, using O_DIRECT for all file opens\nto bypass the page cache.  Results:\n\n                     ext2        ext4, default   ext4, no journal\n  initial writes   13.0 MB/s        15.4 MB/s          15.7 MB/s\n  rewrites         13.1 MB/s        15.6 MB/s          15.9 MB/s\n  reads            15.2 MB/s        16.9 MB/s          17.2 MB/s\n  re-reads         15.3 MB/s        16.9 MB/s          17.2 MB/s\n  random readers    5.6 MB/s         5.6 MB/s           5.7 MB/s\n  random writers    5.1 MB/s         5.3 MB/s           5.4 MB/s \n\nSo it seems that, so far, this was a useful exercise.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "59e315b4c410b00a9acd0f24a00dbadbe81ce692",
      "tree": "d19e7b45d98c42c6f94cb5aa292e2efea44244f5",
      "parents": [
        "f99b25897a86fcfff9140396a97261ae65fed872"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 06 16:58:39 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 06 16:58:39 2008 -0500"
      },
      "message": "ext3/4: Fix loop index in do_split() so it is signed\n\nThis fixes a gcc warning but it doesn\u0027t appear able to result in a\nfailure, since the primary way the loop is exited is the first\nconditional in the for loop, and at least for a consistent filesystem,\nthe signed/unsigned should in practice never be exposed.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f99b25897a86fcfff9140396a97261ae65fed872",
      "tree": "2191505f190d09ff31896487c73b8187cb475596",
      "parents": [
        "5e1f8c9e20a92743eefc9a82c2db835213905e26"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 13:21:44 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 13:21:44 2008 -0400"
      },
      "message": "ext4: Add support for non-native signed/unsigned htree hash algorithms\n\nThe original ext3 hash algorithms assumed that variables of type char\nwere signed, as God and K\u0026R intended.  Unfortunately, this assumption\nis not true on some architectures.  Userspace support for marking\nfilesystems with non-native signed/unsigned chars was added two years\nago, but the kernel-side support was never added (until now).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3856d30ded1fe43c6657927ebad402d25cd128f4",
      "tree": "e2313de491919549ed9065fb2604dd3d19a33ea3",
      "parents": [
        "f3161f36f5f49ee995b90d6207d8b6d990355e0a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 23 20:33:29 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:03:23 2008 -0700"
      },
      "message": "ext4: remove unused variable in ext4_get_parent\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n[ All users removed in \"switch all filesystems over to d_obtain_alias\",\n  aka commit 440037287c5ebb07033ab927ca16bb68c291d309 ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "440037287c5ebb07033ab927ca16bb68c291d309",
      "tree": "c4be3843ea87a777c2647f471895917005d8068f",
      "parents": [
        "4ea3ada2955e4519befa98ff55dd62d6dfbd1705"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 11 15:49:04 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:01 2008 -0400"
      },
      "message": "[PATCH] switch all filesystems over to d_obtain_alias\n\nSwitch all users of d_alloc_anon to d_obtain_alias.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "03010a3350301baac2154fa66de925ae2981b7e3",
      "tree": "b1af2cecbb540faab4bd67dc1a28ad3384341d72",
      "parents": [
        "39d80c33a068d9fa63a36c3b2c0d718d38440dd1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "message": "ext4: Rename ext4dev to ext4\n\nThe ext4 filesystem is getting stable enough that it\u0027s time to drop\nthe \"dev\" prefix.  Also remove the requirement for the TEST_FILESYS\nflag.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f702ba0fd7d50b5f5f5aea5317875a10d40b869f",
      "tree": "bd31cefb5b88b882f4088007482266a3f5ad93ab",
      "parents": [
        "914258bf2cb22bf4336a1b1d90c551b4b11ca5aa"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 22 15:21:01 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 22 15:21:01 2008 -0400"
      },
      "message": "ext4: Don\u0027t use \u0027struct dentry\u0027 for internal lookups\n\nThis is a port of a patch from Linus which fixes a 200+ byte stack\nusage problem in ext4_get_parent().\n\nIt\u0027s more efficient to pass down only the actual parts of the dentry\nthat matter: the parent inode and the name, instead of allocating a\nstruct dentry on the stack.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "af5bc92dded4d98dfeabc8b5b9812571345b263d",
      "tree": "5cfaf27e673a09d3ad1341c175559be0a3ea990d",
      "parents": [
        "e5f8eab8851dff162e7ade46f084cb8575dc45f7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "message": "ext4: Fix whitespace checkpatch warnings/errors\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4776004f54e4190e104caf620fd0fa5909412236",
      "tree": "ebd37cb847d58d434ad4ea3bd98c77256f05347e",
      "parents": [
        "1f7c14c62ce63805f9574664a6c6de3633d4a354"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "message": "ext4: Add printk priority levels to clean up checkpatch warnings\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "d9c769b769a8bcd70371c71797fc4e407b37ba75",
      "tree": "c30a8741d1613ca8170992cce55a4e4ef8381972",
      "parents": [
        "9102e4fa8016af8bf1a263df913ee8fdafd4dfb0"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: cleanup never-used magic numbers from htree code\n\ndx_root_limit() will had some dead code which forced it to always return\n20, and dx_node_limit to always return 22 for debugging purposes.\nRemove it.\n\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f795e1407343ebe6597653f4a6a7f770676e84c5",
      "tree": "3a03777032e8fddf266525e3d434ed4b9db3caf1",
      "parents": [
        "7ad72ca60b6be3c79f90a81ce5883e12a2c6e667"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: fix build failure if DX_DEBUG is enabled\n\next4_next_entry() is used by the debugging function dx_show_leaf(), so\nit must be defined before that function.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f3b35f063e9a795495fe2f7a2fe55fab11f8ab12",
      "tree": "6007687f02066794f3d218f710df717f1b72076c",
      "parents": [
        "71dc8fbcf5f6363342bd636a646eeac7cfef25c3"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: validate directory entry data before use\n\next4_dx_find_entry uses ext4_next_entry without verifying that the entry is\nvalid. If its rec_len \u003d\u003d 0 this causes an infinite loop. Refactor the loop\nto check the validity of entries before checking whether they match and\nmoving onto the next one.\n\nThere are other uses of ext4_next_entry in this file which also look\nproblematic. They should be reviewed and fixed if/when we have a test-case\nthat triggers them.\n\nThis patch fixes the first case (image hdb.25.softlockup.gz) reported in\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10882.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "3dcf54515aa4981a647ad74859199032965193a5",
      "tree": "b95d895bb2f6fa15be29411b15d538c21b0de930",
      "parents": [
        "216553c4b7f3e3e2beb4981cddca9b2027523928"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 29 18:13:32 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 29 18:13:32 2008 -0400"
      },
      "message": "ext4: move headers out of include/linux\n\nMove ext4 headers out of include/linux.  This is just the trivial move,\nthere\u0027s some more thing that could be done later. \n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "53b7e9f6807c1274eee19201396b4c2b5f721553",
      "tree": "4d6dc303a01d14d106c48a2e7ae97451bdb74467",
      "parents": [
        "329d291f50d53f77d15769051f3eb494a9fd54b7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Apr 29 22:02:11 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 29 22:02:11 2008 -0400"
      },
      "message": "ext4: Fix update of mtime and ctime on rename\n\nThe patch below makes ext4 update mtime and ctime of the directory\ninto which we move file even if the directory entry already exists.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "46e665e9d297525d286989640cf4247cbe941df6",
      "tree": "4858cd21e48cab2b2c51839dd80378f6044d3394",
      "parents": [
        "620de4e19890c623eb4ba293ec19b42e2e391b89"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "ext4: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a871611b474bfcdee422c0cf5d16f509dce096f5",
      "tree": "a02ef4ea39365dca2bbf84d9db8656ee6f9feab2",
      "parents": [
        "c0a4ef38ac90d9053fcf3e22f81520a507c1a7bd"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "ext4: check ext4_journal_get_write_access() errors\n\nCheck ext4_journal_get_write_access() errors.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nCc: adilger@clusterfs.com\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "e65187e6d0d541f992e684f88a7e090dcff1aac8",
      "tree": "bf8af79f6f78596b8ca0f9affe94586f3a74f7eb",
      "parents": [
        "95c3889cb88ca4833096553c12cde9e7eb792f4c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Apr 29 08:11:12 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 29 08:11:12 2008 -0400"
      },
      "message": "ext4: Enable extent format for symlinks.\n\nThis patch enables extent-formatted normal symlinks.  Using extents\nformat allows a symlink to refer to a block number larger than 2^32\non large filesystems.  We still don\u0027t enable extent format for fast\nsymlinks, which are contained in the inode itself.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "42bf0383d1e09dd1b38f3debb13a76b2f87634b3",
      "tree": "6806cafbbc0f72f84c16c4875909307c5aec09bf",
      "parents": [
        "2c98615d3b64ce7888cd46cc668023f456daf287"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Feb 25 16:38:03 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 25 16:38:03 2008 -0500"
      },
      "message": "ext4: set EXT4_EXTENTS_FL only for directory and regular files\n\nIn addition, don\u0027t inherit EXT4_EXTENTS_FL from parent directory.\nIf we have a directory with extent flag set and later mount the file\nsystem with -o noextents, the files created in that directory will also\nhave extent flag set but we would not have called ext4_ext_tree_init for\nthem. This will cause error later when we are verifying the extent header\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nAcked-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "825f1481ead4ce40671089bae7412ac3519e8caa",
      "tree": "574243b782595a47fb34f348e6f6a5f3b396678e",
      "parents": [
        "74d3487fc8aa58cec16dff7239dea1ca59bdab0e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 15 15:00:38 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 15 15:00:38 2008 -0500"
      },
      "message": "ext4: Don\u0027t use ext4_dec_count() if not needed\n\nThe ext4_dec_count() function is only needed when dropping the i_nlink\ncount on inodes which are (or which could be) directories.  If we\n*know* that the inode in question can\u0027t possibly be a directory, use\ndrop_nlink or clear_nlink() if we know i_nlink is 1.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4cdeed861b5f797b3fa661eb331a6bd6ad669c6a",
      "tree": "6ef2159a06974e28bdff4426525ecdd052d7b57f",
      "parents": [
        "b73fce69ecb091a178ef9286027c370a63eb25aa"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Feb 22 06:17:31 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 22 06:17:31 2008 -0500"
      },
      "message": "ext4: Don\u0027t leave behind a half-created inode if ext4_mkdir() fails\n\nIf ext4_mkdir() fails to allocate the initial block for the directory,\ndon\u0027t leave behind a half-created directory inode with the link count\nleft at one.  This was caused by an inappropriate call to ext4_dec_count().\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b8356c465b42c162f34b5fd4102a6c27cec36f43",
      "tree": "806034b9694b04341888f7bfcaf118fe73e75b71",
      "parents": [
        "4d605179723a3fb8ba594d9516897426e6629a5b"
      ],
      "author": {
        "name": "Valerie Clement",
        "email": "valerie.clement@bull.net",
        "time": "Tue Feb 05 10:56:37 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 05 10:56:37 2008 -0500"
      },
      "message": "ext4: Don\u0027t set EXTENTS_FL flag for fast symlinks\n\nFor fast symbolic links, the file content is stored in the i_block[]\narray, which is not compatible with the new file extents format.\ne2fsck reports error on such files because EXTENTS_FL is set.\nDon\u0027t set the EXTENTS_FL flag when creating fast symlinks.\n\nIn the case of file migration, skip fast symbolic links.\n\nSigned-off-by: Valerie Clement \u003cvalerie.clement@bull.net\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "1d1fe1ee02b9ac2660995b10e35dd41448fef011",
      "tree": "8961bbe5a36a07dc8ad8c6cd3e973ce0fcde5850",
      "parents": [
        "473043dcee1874aab99f66b0362b344618eb3790"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EXT4 from using iget() and read_inode()\n\nStop the EXT4 filesystem from using iget() and read_inode().  Replace\next4_read_inode() with ext4_iget(), and call that instead of iget().\next4_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\next4_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\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": "01f4adc04480a4e0395906d0268c056cf09c39c0",
      "tree": "e89bc1364e50329c1a287cb11960a96cd032ff29",
      "parents": [
        "221879c927df05280283a4de6124806c17cc44d4"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: remove unused code from ext4_find_entry()\n\nThe unused code found in ext3_find_entry() is also present (and still\nunused) in the ext4_find_entry() code. This patch removes it.\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "725d26d3f09ccb5bac4b4293096b985a312a0d67",
      "tree": "1c49a07da252832fc6842c88a2359e8cd43af636",
      "parents": [
        "a72d7f834e1afa08421938d7eb06bd8e56b0e58c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Introduce ext4_lblk_t\n\nThis patch adds a new data type ext4_lblk_t to represent\nthe logical file blocks.\n\nThis is the preparatory patch to support large files in ext4\nThe follow up patch with convert the ext4_inode i_blocks to\nrepresent the number of blocks in file system block size. This\nchanges makes it possible to have a block number 2**32 -1 which\nwill result in overflow if the block number is represented by\nsigned long. This patch convert all the block number to type\next4_lblk_t which is typedef to __u32\n\nAlso remove dead code ext4_ext_walk_space\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "a72d7f834e1afa08421938d7eb06bd8e56b0e58c",
      "tree": "21c6fbbf4187fa8ba56878ea2d5e576e123e1f95",
      "parents": [
        "afc7cbca5bfd556c3e12d3acefbee5ab0cbd4670"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Avoid rec_len overflow with 64KB block size\n\nWith 64KB blocksize, a directory entry can have size 64KB which does not fit\ninto 16 bits we have for entry lenght. So we store 0xffff instead and convert\nvalue when read from / written to disk. The patch also converts some places\nto use ext4_next_entry() when we are changing them anyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "4074fe3736b1a43431dff870bf9055ac5dcf3f03",
      "tree": "bd33adb6b06eef7f7405addac686ae170750903d",
      "parents": [
        "f077d0d7ea5d65d01f2ce2e7131e964c13a32433"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:50:00 2007 -0400"
      },
      "message": "ext4: remove #ifdef CONFIG_EXT4_INDEX\n\nCONFIG_EXT4_INDEX is not an exposed config option in the kernel, and it is\nunconditionally defined in ext4_fs.h.  tune2fs is already able to turn off\ndir indexing, so at this point it\u0027s just cluttering up the code.  Remove\nit.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef2b02d3e617cb0400eedf2668f86215e1b0e6af",
      "tree": "d6d65ea9ad201645dab91383dc6e0928c2069024",
      "parents": [
        "e42601973b1bce1d2987f82159c1ebeaccc6b310"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Sep 18 22:46:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "ext34: ensure do_split leaves enough free space in both blocks\n\nThe do_split() function for htree dir blocks is intended to split a leaf\nblock to make room for a new entry.  It sorts the entries in the original\nblock by hash value, then moves the last half of the entries to the new\nblock - without accounting for how much space this actually moves.  (IOW,\nit moves half of the entry *count* not half of the entry *space*).  If by\nchance we have both large \u0026 small entries, and we move only the smallest\nentries, and we have a large new entry to insert, we may not have created\nenough space for it.\n\nThe patch below stores each record size when calculating the dx_map, and\nthen walks the hash-sorted dx_map, calculating how many entries must be\nmoved to more evenly split the existing entries between the old block and\nthe new block, guaranteeing enough space for the new entry.\n\nThe dx_map \"offs\" member is reduced to u16 so that the overall map size\ndoes not change - it is temporarily stored at the end of the new block, and\nif it grows too large it may be overwritten.  By making offs and size both\nu16, we won\u0027t grow the map size.\n\nAlso add a few comments to the functions involved.\n\nThis fixes the testcase reported by hooanon05@yahoo.co.jp on the\nlinux-ext4 list, \"ext3 dir_index causes an error\"\n\nThanks to Andreas Dilger for discussing the problem \u0026 solution with me.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nTested-by: Junjiro Okajima \u003chooanon05@yahoo.co.jp\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@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": "3d82abae9523c33d4a16fdfdfd2bdde316d7b56a",
      "tree": "e0059b667ac7ef765814a2ee9587f9e89015b387",
      "parents": [
        "e67aa27a6179c287983c6c525beb5320f5cd1672"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Sep 18 22:46:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "dir_index: error out instead of BUG on corrupt dx dirs\n\nConvert asserts (BUGs) in dx_probe from bad on-disk data to recoverable\nerrors with helpful warnings.  With help catching other asserts from Duane\nGriffin \u003cduaneg@dghda.com\u003e\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: \u003cstable@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": "f8628a14a27eb4512a1ede43de1d9db4d9f92bc3",
      "tree": "45719452db34112382a1b3e83dc648abe45eac70",
      "parents": [
        "6dd4ee7cab7e3a17c571aebd444f4344c8c4946e"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@clusterfs.com",
        "time": "Wed Jul 18 08:38:01 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 18 08:38:01 2007 -0400"
      },
      "message": "ext4: Remove 65000 subdirectory limit\n\nThis patch adds support to ext4 for allowing more than 65000\nsubdirectories. Currently the maximum number of subdirectories is capped\nat 32000.\n\nIf we exceed 65000 subdirectories in an htree directory it sets the\ninode link count to 1 and no longer counts subdirectories.  The\ndirectory link count is not actually used when determining if a\ndirectory is empty, as that only counts subdirectories and not regular\nfiles that might be in there. \n\nA EXT4_FEATURE_RO_COMPAT_DIR_NLINK flag has been added and it is set if\nthe subdir count for any directory crosses 65000. A later fsck will clear\nEXT4_FEATURE_RO_COMPAT_DIR_NLINK if there are no longer any directory\nwith \u003e65000 subdirs.\n\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Kalpak Shah \u003ckalpak@clusterfs.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "ef7f38359ea8b3e9c7f2cae9a4d4935f55ca9e80",
      "tree": "ee34a5821332cf70b89827eb872f08bc0dd43f89",
      "parents": [
        "0f49d5d019afa4e94253bfc92f0daca3badb990b"
      ],
      "author": {
        "name": "Kalpak Shah",
        "email": "kalpak@clusterfs.com",
        "time": "Wed Jul 18 09:15:20 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 18 09:15:20 2007 -0400"
      },
      "message": "ext4: Add nanosecond timestamps\n\nThis patch adds nanosecond timestamps for ext4. This involves adding\n*time_extra fields to the ext4_inode to extend the timestamps to\n64-bits.  Creation time is also added by this patch.\n\nThese extended fields will fit into an inode if the filesystem was\nformatted with large inodes (-I 256 or larger) and there are currently\nno EAs consuming all of the available space. For new inodes we always\nreserve enough space for the kernel\u0027s known extended fields, but for\ninodes created with an old kernel this might not have been the case. So\nthis patch also adds the EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE feature\nflag(ro-compat so that older kernels can\u0027t create inodes with a smaller\nextra_isize). which indicates if the fields fitting inside\ns_min_extra_isize are available or not.  If the expansion of inodes if\nunsuccessful then this feature will be disabled.  This feature is only\nenabled if requested by the sysadmin.\n\nNone of the extended inode fields is critical for correct filesystem\noperation.\n\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Kalpak Shah \u003ckalpak@clusterfs.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "a6c15c2b0fbfd5c0a84f5f0e1e3f20f85d2b8692",
      "tree": "87af8336e669c8e63fda7d57b0650b5a806f77ff",
      "parents": [
        "9f7dd93de07420b423336d5d0028959e94778ddb"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Sun Jul 15 23:40:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "ext3/ext4: orphan list corruption due bad inode\n\nAfter ext3 orphan list check has been added into ext3_destroy_inode()\n(please see my previous patch) the following situation has been detected:\n\n EXT3-fs warning (device sda6): ext3_unlink: Deleting nonexistent file (37901290), 0\n Inode 00000101a15b7840: orphan list check failed!\n 00000773 6f665f00 74616d72 00000573 65725f00 06737270 66000000 616d726f\n...\n Call Trace: [\u003cffffffff80211ea9\u003e] ext3_destroy_inode+0x79/0x90\n  [\u003cffffffff801a2b16\u003e] sys_unlink+0x126/0x1a0\n  [\u003cffffffff80111479\u003e] error_exit+0x0/0x81\n  [\u003cffffffff80110aba\u003e] system_call+0x7e/0x83\n\nFirst messages said that unlinked inode has i_nlink\u003d0, then ext3_unlink()\nadds this inode into orphan list.\n\nSecond message means that this inode has not been removed from orphan list.\n Inode dump has showed that i_fop \u003d \u0026bad_file_ops and it can be set in\nmake_bad_inode() only.  Then I\u0027ve found that ext3_read_inode() can call\nmake_bad_inode() without any error/warning messages, for example in the\nfollowing case:\n\n...\n        if (inode-\u003ei_nlink \u003d\u003d 0) {\n                if (inode-\u003ei_mode \u003d\u003d 0 ||\n                    !(EXT3_SB(inode-\u003ei_sb)-\u003es_mount_state \u0026 EXT3_ORPHAN_FS)) {\n                        /* this inode is deleted */\n                        brelse (bh);\n                        goto bad_inode;\n...\n\nBad inode can live some time, ext3_unlink can add it to orphan list, but\next3_delete_inode() do not deleted this inode from orphan list.  As result\nwe can have orphan list corruption detected in ext3_destroy_inode().\n\nHowever it is not clear for me how to fix this issue correctly.\n\nAs far as i see is_bad_inode() is called after iget() in all places\nexcluding ext3_lookup() and ext3_get_parent().  I believe it makes sense to\nadd bad inode check to these functions too and call iput if bad inode\ndetected.\n\nSigned-off-by:\tVasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c55e20411c9499c52890a081724a8b71f3dc3a1",
      "tree": "82f1badade34aa5a5461a4ae5141c30a9a64cc66",
      "parents": [
        "54ca4123363f388ab724fc66da92b87dc05395c3"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Thu May 24 13:04:54 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 16:20:14 2007 -0400"
      },
      "message": "EXT4: Fix whitespace\n\nReplace a lot of spaces with tabs\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "fedee54d8f12cdfde299f181fec5c62b0c647ad6",
      "tree": "815a5de82d0c242bb1e6a012a237d0715c3b08af",
      "parents": [
        "753e9c5cd9b123156152c66c816f751954b15e53"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@sw.ru",
        "time": "Tue May 08 00:25:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "ext3: dirindex error pointer issues\n\n- ext3_dx_find_entry() exit with out setting proper error pointer\n\n- do_split() exit with out setting proper error pointer\n  it is realy painful because many callers contain folowing code:\n\n          de \u003d do_split(handle,dir, \u0026bh, frame, \u0026hinfo, \u0026retval);\n          if (!(de))\n                       return retval;\n          \u003c\u003c\u003c WOW retval wasn\u0027t changed by do_split(), so caller failed\n          \u003c\u003c\u003c but return SUCCESS :)\n\n- Rearrange do_split() error path. Current error path is realy ugly, all\n  this up and down jump stuff doesn\u0027t make code easy to understand.\n\n[dmonakhov@sw.ru: fix annoying fake error messages]\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nCc: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Monakhov Dmitriy \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": "754661f143e70d66eae6c48532ca245aa05dec0e",
      "tree": "c3ed0f7f96061931e497ed92d2b21294756b4831",
      "parents": [
        "9c2e08c592cd357a8330c34def1e8ecfdcf53275"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 1\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "731b9a549882c76189baafccbd068d5785ea2a82",
      "tree": "0393399e3dccd93f78595f6e503ae098758c9811",
      "parents": [
        "2988a7740dc0dd9a0cb56576e8fe1d777dff0db3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 10 01:46:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:34 2007 -0800"
      },
      "message": "[PATCH] remove ext[34]_inc_count and _dec_count\n\n- Naming is confusing, ext3_inc_count manipulates i_nlink not i_count\n- handle argument passed in is not used\n- ext3 and ext4 already call inc_nlink and dec_nlink directly in other places\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2988a7740dc0dd9a0cb56576e8fe1d777dff0db3",
      "tree": "9c1b67be5d16a24d5c613ecb8e3804c7ff3994da",
      "parents": [
        "967bb77c69e3bc44dd1128a8b503a205cce3fd4a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 10 01:46:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:34 2007 -0800"
      },
      "message": "[PATCH] return ENOENT from ext3_link when racing with unlink\n\nReturn -ENOENT from ext[34]_link if we\u0027ve raced with unlink and i_nlink is\n0.  Doing otherwise has the potential to corrupt the orphan inode list,\nbecause we\u0027d wind up with an inode with a non-zero link count on the list,\nand it will never get properly cleaned up \u0026 removed from the orphan list\nbefore it is freed.\n\n[akpm@osdl.org: build fix]\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": "9d549890e69156800878a486f832e92d8f3d7c97",
      "tree": "8da371c871c0fff5cce76a767349edd76457f43e",
      "parents": [
        "fe21a69389165b9641a8d0b89e00a71c4e5f5d59"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] ext4: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the ext4\nfilesystem.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6c4021190c828d7fa24a464db589f86c6708341",
      "tree": "242161ac94ddf2bff98bb105f8ba804a3b1873e8",
      "parents": [
        "40b851348fe9bf49c26025b34261d25142269b60"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Dec 06 20:36:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:33 2006 -0800"
      },
      "message": "[PATCH] handle ext4 directory corruption better\n\nI\u0027ve been using Steve Grubb\u0027s purely evil \"fsfuzzer\" tool, at\nhttp://people.redhat.com/sgrubb/files/fsfuzzer-0.4.tar.gz\n\nBasically it makes a filesystem, splats some random bits over it, then\ntries to mount it and do some simple filesystem actions.\n\nAt best, the filesystem catches the corruption gracefully.  At worst,\nthings spin out of control.\n\nAs you might guess, we found a couple places in ext4 where things spin out\nof control :)\n\nFirst, we had a corrupted directory that was never checked for\nconsistency...  it was corrupt, and pointed to another bad \"entry\" of\nlength 0.  The for() loop looped forever, since the length of\next4_next_entry(de) was 0, and we kept looking at the same pointer over and\nover and over and over...  I modeled this check and subsequent action on\nwhat is done for other directory types in ext4_readdir...\n\n(adding this check adds some computational expense; I am testing a followup\npatch to reduce the number of times we check and re-check these directory\nentries, in all cases.  Thanks for the idea, Andreas).\n\nNext we had a root directory inode which had a corrupted size, claimed to\nbe \u003e 200M on a 4M filesystem.  There was only really 1 block in the\ndirectory, but because the size was so large, readdir kept coming back for\nmore, spewing thousands of printk\u0027s along the way.\n\nPer Andreas\u0027 suggestion, if we\u0027re in this read error condition and we\u0027re\ntrying to read an offset which is greater than i_blocks worth of bytes,\nstop trying, and break out of the loop.\n\nWith these two changes fsfuzz test survives quite well on ext4.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63f5793351d821749979e36889f9c089c6028c83",
      "tree": "654a9e600891ccf0c70c0bbbc0a15a52743ff90e",
      "parents": [
        "ceea16bf85fb46035dda1db263ca29b0e07e22ba"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 11 01:21:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:19 2006 -0700"
      },
      "message": "[PATCH] ext4 whitespace cleanups\n\nSomeone\u0027s tab key is emitting spaces.  Attempt to repair some of the damage.\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dab291af8d6307a3075c3d67d0cc8f98e646cb94",
      "tree": "a2207ab3e2e00472e5e3c969ad0dd211fb9e4151",
      "parents": [
        "a920e9416b3469994860ab552dfd7fd5a5aff162"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:21:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:16 2006 -0700"
      },
      "message": "[PATCH] jbd2: enable building of jbd2 and have ext4 use it rather than jbd\n\nReworked from a patch by Mingming Cao and Randy Dunlap\n\nSigned-off-By: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-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": "617ba13b31fbf505cc21799826639ef24ed94af0",
      "tree": "2a41e8c993f7c1eed115ad24047d546ba56cbdf5",
      "parents": [
        "ac27a0ec112a089f1a5102bc8dffc79c8c815571"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:20:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] ext4: rename ext4 symbols to avoid duplication of ext3 symbols\n\nMingming Cao originally did this work, and Shaggy reproduced it using some\nscripts from her.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-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": "ac27a0ec112a089f1a5102bc8dffc79c8c815571",
      "tree": "bcbcc0a5a88bf99b35119d9d9d660a37c503d787",
      "parents": [
        "502717f4e112b18d9c37753a32f675bec9f2838b"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Wed Oct 11 01:20:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] ext4: initial copy of files from ext3\n\nStart of the ext4 patch series.  See Documentation/filesystems/ext4.txt for\ndetails.\n\nThis is a simple copy of the files in fs/ext3 to fs/ext4 and\n/usr/incude/linux/ext3* to /usr/include/ex4*\n\nSigned-off-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"
    }
  ]
}
