)]}'
{
  "log": [
    {
      "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": "ba230c3f6dc88ec008806adb27b12088486d508e",
      "tree": "4cd81bc7425161f1103408ce210be9172a2ee6c3",
      "parents": [
        "4b70df181611012a3556f017b57dfcef7e1d279f"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Fri Nov 06 04:01:23 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 06 04:01:23 2009 -0500"
      },
      "message": "ext4: Fix return value of ext4_split_unwritten_extents() to fix direct I/O\n\nTo prepare for a direct I/O write, we need to split the unwritten\nextents before submitting the I/O.  When no extents needed to be\nsplit, ext4_split_unwritten_extents() was incorrectly returning 0\ninstead of the size of uninitialized extents. This bug caused the\nwrong return value sent back to VFS code when it gets called from\nasync IO path, leading to an unnecessary fall back to buffered IO.\n\nThis bug also hid the fact that the check to see whether or not a\nsplit would be necessary was incorrect; we can only skip splitting the\nextent if the write completely covers the uninitialized extent.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4b70df181611012a3556f017b57dfcef7e1d279f",
      "tree": "95da7ccaea96227b597078c1c5f2a7571d959e99",
      "parents": [
        "5f5249507e4b5c4fc0f9c93f33d133d8c95f47e1"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 03 14:44:54 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 03 14:44:54 2009 -0500"
      },
      "message": "ext4: code clean up for dio fallocate handling\n\nThe ext4_debug() call in ext4_end_io_dio() should be moved after the\ncheck to make sure that io_end is non-NULL.\n\nThe comment above ext4_get_block_dio_write() (\"Maximum number of\nblocks...\") is a duplicate; the original and correct comment is above\nthe #define DIO_MAX_BLOCKS up above.\n\nBased on review comments from Curt Wohlgemuth.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5f5249507e4b5c4fc0f9c93f33d133d8c95f47e1",
      "tree": "0b0a790f568c07298c3a4122572e84392c787648",
      "parents": [
        "109f55651954def97fa41ee71c464d268c512ab0"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 10 10:48:04 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 10 10:48:04 2009 -0500"
      },
      "message": "ext4: skip conversion of uninit extents after direct IO if there isn\u0027t any\n\nAt the end of direct I/O operation, ext4_ext_direct_IO() always called\next4_convert_unwritten_extents(), regardless of whether there were any\nunwritten extents involved in the I/O or not.\n\nThis commit adds a state flag so that ext4_ext_direct_IO() only calls\next4_convert_unwritten_extents() when necessary.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "109f55651954def97fa41ee71c464d268c512ab0",
      "tree": "7c4aa2d8cb10c100bbd252e657ac410d30844bac",
      "parents": [
        "fa5d11133b07053270e18fa9c18560e66e79217e"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Nov 10 10:48:08 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 10 10:48:08 2009 -0500"
      },
      "message": "ext4: fix ext4_ext_direct_IO()\u0027s return value after converting uninit extents\n\nAfter a direct I/O request covering an uninitalized extent (i.e.,\ncreated using the fallocate system call) or a hole in a file, ext4\nwill convert the uninitialized extent so it is marked as initialized\nby calling ext4_convert_unwritten_extents().  This function returns\nzero on success.\n\nThis return value was getting returned by ext4_direct_IO(); however\nthe file system\u0027s direct_IO function is supposed to return the number\nof bytes read or written on a success.  By returning zero, it confused\nthe direct I/O code into falling back to buffered I/O unnecessarily.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fa5d11133b07053270e18fa9c18560e66e79217e",
      "tree": "1018ea7d0a2f511ae58934175dbc3815b7e63b5f",
      "parents": [
        "b419148e567728f6af0c3b01965c1cc141e3e13a"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Nov 02 18:50:49 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 02 18:50:49 2009 -0500"
      },
      "message": "ext4: discard preallocation when restarting a transaction during truncate\n\nWhen restart a transaction during a truncate operation, we drop and\nreacquire i_data_sem.  After reacquiring i_data_sem, we need to\ndiscard any inode-based preallocation that might have been grabbed\nwhile we released i_data_sem (for example, if pdflush is allocating\nblocks and racing against the truncate).\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": "d4da6c9ccf648f3f1cb5bf9d981a62c253d30e28",
      "tree": "709f8bdc50a3a1d47632047eb3670b4a4a6ff045",
      "parents": [
        "c35102c3e15f90fe604523a2fbffd9dc158b455a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 10:15:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 02 10:15:27 2009 -0800"
      },
      "message": "Revert \"ext4: Remove journal_checksum mount option and enable it by default\"\n\nThis reverts commit d0646f7b636d067d715fab52a2ba9c6f0f46b0d7, as\nrequested by Eric Sandeen.\n\nIt can basically cause an ext4 filesystem to miss recovery (and thus get\nmounted with errors) if the journal checksum does not match.\n\nQuoth Eric:\n\n   \"My hand-wavy hunch about what is happening is that we\u0027re finding a\n    bad checksum on the last partially-written transaction, which is\n    not surprising, but if we have a wrapped log and we\u0027re doing the\n    initial scan for head/tail, and we abort scanning on that bad\n    checksum, then we are essentially running an unrecovered filesystem.\n\n    But that\u0027s hand-wavy and I need to go look at the code.\n\n    We lived without journal checksums on by default until now, and at\n    this point they\u0027re doing more harm than good, so we should revert\n    the default-changing commit until we can fix it and do some good\n    power-fail testing with the fixes in place.\"\n\nSee\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14354\n\nfor all the gory details.\n\nRequested-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nCc: Alexey Fisher \u003cbug-track@fisher-privat.net\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Mathias Burén \u003cmathias.buren@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9117703fabe4141dae566d683eeb728f638c9e49",
      "tree": "efe85f18c6fe5f7d1513d19b01183d050a6b130f",
      "parents": [
        "a037a79dceaf717409fbf42f4ad209b9c15f435c",
        "fbbf69456619de5d251cb9f1df609069178c62d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 03 11:24:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 03 11:24:19 2009 -0700"
      },
      "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:\n  [PATCH] ext4: retry failed direct IO allocations\n  ext4: Fix build warning in ext4_dirty_inode()\n  ext4: drop ext4dev compat\n  ext4: fix a BUG_ON crash by checking that page has buffers attached to it\n"
    },
    {
      "commit": "fbbf69456619de5d251cb9f1df609069178c62d5",
      "tree": "e0a5bc75a02dda7f46ba4d0e838c54f39b1fe4f6",
      "parents": [
        "74072d0a63553720dd3c70a8b8e9407eb2027dbe"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Oct 02 21:20:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 02 21:20:55 2009 -0400"
      },
      "message": "[PATCH] ext4: retry failed direct IO allocations\n\nOn a 256M filesystem, doing this in a loop:\n\n        xfs_io -F -f -d -c \u0027pwrite 0 64m\u0027 test\n        rm -f test\n\neventually leads to ENOSPC.  (the xfs_io command does a\n64m direct IO write to the file \"test\")\n\nAs with other block allocation callers, it looks like we need to\npotentially retry the allocations on the initial ENOSPC.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "74072d0a63553720dd3c70a8b8e9407eb2027dbe",
      "tree": "9895fcb17d44980a82b4daa7688c17da082b4d88",
      "parents": [
        "f0e2dfa7f3e1361ca8fc91c25e67fc4e92613cc9"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Oct 02 21:08:32 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 02 21:08:32 2009 -0400"
      },
      "message": "ext4: Fix build warning in ext4_dirty_inode()\n\nThis fixes the following warning:\n\nfs/ext4/inode.c: In function \u0027ext4_dirty_inode\u0027:\nfs/ext4/inode.c:5615: warning: unused variable \u0027current_handle\u0027\n\nWe remove the jbd_debug() statement which does use current_handle, as\nit\u0027s not terribly important in the grand scheme of things.\n\nThanks to Stephen Rothwell for pointing this out.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f0e2dfa7f3e1361ca8fc91c25e67fc4e92613cc9",
      "tree": "8fa5be2f535b00140b0c6330c92b20584e87cb9e",
      "parents": [
        "1f94533d9cd75f6d2826018d54a971b9cc085992"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Oct 01 02:21:07 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 01 02:21:07 2009 -0400"
      },
      "message": "ext4: drop ext4dev compat\n\nKconfig \u0026 super.c promised it\u0027d be gone by 2.6.31, so it\u0027s\nabout time to drop it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f94533d9cd75f6d2826018d54a971b9cc085992",
      "tree": "16c85061eabfcdece2487909bc08c45d2c01d84f",
      "parents": [
        "c1fccc0696bcaff6008c11865091f5ec4b0937ab"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 22:57:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 22:57:41 2009 -0400"
      },
      "message": "ext4: fix a BUG_ON crash by checking that page has buffers attached to it\n\nIn ext4_num_dirty_pages() we were calling page_buffers() before\nchecking to see if the page actually had pages attached to it; this\nwould cause a BUG check crash in the inline function page_buffers().\n\nThanks to Markus Trippelsdorf for reporting this bug.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9f44fdc5188bc1a0bbcc3453d57f01e49ba868d9",
      "tree": "a636c14f741e662814fe95bf35f22659411f1733",
      "parents": [
        "4c8f1cb266cba4d1052f524d04df839d8f732ace",
        "c1fccc0696bcaff6008c11865091f5ec4b0937ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 30 09:32:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 30 09:32:30 2009 -0700"
      },
      "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:\n  ext4: Fix time encoding with extra epoch bits\n  ext4: Add a stub for mpage_da_data in the trace header\n  jbd2: Use tracepoints for history file\n  ext4: Use tracepoints for mb_history trace file\n  ext4, jbd2: Drop unneeded printks at mount and unmount time\n  ext4: Handle nested ext4_journal_start/stop calls without a journal\n  ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode\n  ext4: Avoid updating the inode table bh twice in no journal mode\n  ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first\n  ext4: async direct IO for holes and fallocate support\n  ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O\n  ext4: Split uninitialized extents for direct I/O\n  ext4: release reserved quota when block reservation for delalloc retry\n  ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks\n  ext4: Fix hueristic which avoids group preallocation for closed files\n  ext4: Use ext4_msg() for ext4_da_writepage() errors\n  ext4: Update documentation about quota mount options\n"
    },
    {
      "commit": "c1fccc0696bcaff6008c11865091f5ec4b0937ab",
      "tree": "0e8269e07d40278c136b7f93aba7ab118f75f532",
      "parents": [
        "0ef122494020521309be855bfdeeb41f34bf8c94"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 01:13:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 01:13:55 2009 -0400"
      },
      "message": "ext4: Fix time encoding with extra epoch bits\n\n\"Looking at ext4.h, I think the setting of extra time fields forgets to\nmask the epoch bits so the epoch part overwrites nsec part. The second\nchange is only for coherency (2 -\u003e EXT4_EPOCH_BITS).\"\n\nThanks to Damien Guibouret for pointing out this problem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "296c355cd6443d89fa251885a8d78778fe111dc4",
      "tree": "5cf7c8b115617dc3829a16a5969894d37b73173c",
      "parents": [
        "90576c0b9a0b5323fc4bd7f23f49be0d234f36d1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 00:32:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 00:32:42 2009 -0400"
      },
      "message": "ext4: Use tracepoints for mb_history trace file\n\nThe /proc/fs/ext4/\u003cdev\u003e/mb_history was maintained manually, and had a\nnumber of problems: it required a largish amount of memory to be\nallocated for each ext4 filesystem, and the s_mb_history_lock\nintroduced a CPU contention problem.  \n\nBy ripping out the mb_history code and replacing it with ftrace\ntracepoints, and we get more functionality: timestamps, event\nfiltering, the ability to correlate mballoc history with other ext4\ntracepoints, etc.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "90576c0b9a0b5323fc4bd7f23f49be0d234f36d1",
      "tree": "d4a1ab6f923f1c9c7c87f13a828db72c1f4412c1",
      "parents": [
        "d3d1faf6a74496ea4435fd057c6a2cad49f3e523"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 15:51:30 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 15:51:30 2009 -0400"
      },
      "message": "ext4, jbd2: Drop unneeded printks at mount and unmount time\n\nThere are a number of kernel printk\u0027s which are printed when an ext4\nfilesystem is mounted and unmounted.  Disable them to economize space\nin the system logs.  In addition, disabling the mballoc stats by\ndefault saves a number of unneeded atomic operations for every block\nallocation or deallocation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\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": "f3dc272fd5e2ae08244796bb39e7e1ce4b25d3b3",
      "tree": "795edae4030352dfea7cb79ed5a5b0b5ef3d3afb",
      "parents": [
        "830156c79b0a99ddf0f62496bcf4de640f9f52cd"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Tue Sep 29 16:06:01 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 16:06:01 2009 -0400"
      },
      "message": "ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode\n\nThis patch a problem that ext4_dirty_inode() was not calling\next4_mark_inode_dirty() if the current_handle is not valid, which it\nis the case in no journal mode.\n\nIt also removes a test for non-matching transaction which can never\nhappen.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "830156c79b0a99ddf0f62496bcf4de640f9f52cd",
      "tree": "7af8e969f359afd8a4738e22b0374b567041a1fd",
      "parents": [
        "f3ce8064b388ccf420012c5a4907aae4f13fe9d0"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Tue Sep 29 10:07:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 10:07:47 2009 -0400"
      },
      "message": "ext4: Avoid updating the inode table bh twice in no journal mode\n\nThis is a cleanup of commit 91ac6f4.  Since ext4_mark_inode_dirty()\nhas already called ext4_mark_iloc_dirty(), which in turn calls\next4_do_update_inode(), it\u0027s not necessary to have ext4_write_inode()\ncall ext4_do_update_inode() in no journal mode.  Indeed, it would be\nduplicated work.\n\nReviewed-by: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f3ce8064b388ccf420012c5a4907aae4f13fe9d0",
      "tree": "3d0cbfffc75ea698726d71c06c9b0be82982d6eb",
      "parents": [
        "8d5d02e6b176565c77ff03604908b1453a22044d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:58:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:58:29 2009 -0400"
      },
      "message": "ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first\n\nMove the check to make sure the original and donor inodes are\ndifferent earlier, to avoid a potential deadlock by trying to lock the\nsame inode twice.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8d5d02e6b176565c77ff03604908b1453a22044d",
      "tree": "0d29e4f28233f24960c7921c1c0a7608077bf713",
      "parents": [
        "4c0425ff68b1b87b802ffeda7b6a46ff7da7241c"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Sep 28 15:48:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:48:29 2009 -0400"
      },
      "message": "ext4: async direct IO for holes and fallocate support\n\nFor async direct IO that covers holes or fallocate, the end_io\ncallback function now queued the convertion work on workqueue but\ndon\u0027t flush the work rightaway as it might take too long to afford.\n\nBut when fsync is called after all the data is completed, user expects\nthe metadata also being updated before fsync returns.\n\nThus we need to flush the conversion work when fsync() is called.\nThis patch keep track of a listed of completed async direct io that\nhas a work queued on workqueue.  When fsync() is called, it will go\nthrough the list and do the conversion.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "4c0425ff68b1b87b802ffeda7b6a46ff7da7241c",
      "tree": "a8718f5f4574af8e15fd876b24f4aec88d62451b",
      "parents": [
        "0031462b5b392f90d17f1d75abb795883c44e969"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Sep 28 15:48:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:48:41 2009 -0400"
      },
      "message": "ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O\n\nCurrently the DIO VFS code passes create \u003d 0 when writing to the\nmiddle of file.  It does this to avoid block allocation for holes, so\nas not to expose stale data out when there is a parallel buffered read\n(which does not hold the i_mutex lock).  Direct I/O writes into holes\nfalls back to buffered IO for this reason.\n\nSince preallocated extents are treated as holes when doing a\nget_block() look up (buffer is not mapped), direct IO over fallocate\nalso falls back to buffered IO.  Thus ext4 actually silently falls\nback to buffered IO in above two cases, which is undesirable.\n\nTo fix this, this patch creates unitialized extents when a direct I/O\nwrite into holes in sparse files, and registering an end_io callback which\nconverts the uninitialized extent to an initialized extent after the\nI/O is completed.\n\nSinged-Off-By: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0031462b5b392f90d17f1d75abb795883c44e969",
      "tree": "e8323861b8dede0f3ddbfc8324d650bf1f4fd74b",
      "parents": [
        "9f0ccfd8e07d61b413e6536ffa02fbf60d2e20d8"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Sep 28 15:49:08 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:49:08 2009 -0400"
      },
      "message": "ext4: Split uninitialized extents for direct I/O\n\nWhen writing into an unitialized extent via direct I/O, and the direct\nI/O doesn\u0027t exactly cover the unitialized extent, split the extent\ninto uninitialized and initialized extents before submitting the I/O.\nThis avoids needing to deal with an ENOSPC error in the end_io\ncallback that gets used for direct I/O.\n\nWhen the IO is complete, the written extent will be marked as initialized.\n\nSinged-Off-By: Mingming Cao \u003ccmm@us.ibm.com\u003e \nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9f0ccfd8e07d61b413e6536ffa02fbf60d2e20d8",
      "tree": "b90ea9f8dc2542d029b15d94a0588b36937dbbab",
      "parents": [
        "55138e0bc29c0751e2152df9ad35deea542f29b3"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Sep 28 15:49:52 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 15:49:52 2009 -0400"
      },
      "message": "ext4: release reserved quota when block reservation for delalloc retry\n\next4_da_reserve_space() can reserve quota blocks multiple times if\next4_claim_free_blocks() fail and we retry the allocation. We should\nrelease the quota reservation before restarting.\n\nBug found by Jan Kara.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "55138e0bc29c0751e2152df9ad35deea542f29b3",
      "tree": "40dbc77de3e7a426030bd740ba8e2fd0d2171523",
      "parents": [
        "71780577306fd1e76c7a92e3b308db624d03adb9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 13:31:31 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 13:31:31 2009 -0400"
      },
      "message": "ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks\n\nWork around problems in the writeback code to force out writebacks in\nlarger chunks than just 4mb, which is just too small.  This also works\naround limitations in the ext4 block allocator, which can\u0027t allocate\nmore than 2048 blocks at a time.  So we need to defeat the round-robin\ncharacteristics of the writeback code and try to write out as many\nblocks in one inode before allowing the writeback code to move on to\nanother inode.  We add a a new per-filesystem tunable,\nmax_writeback_mb_bump, which caps this to a default of 128mb per\ninode.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "71780577306fd1e76c7a92e3b308db624d03adb9",
      "tree": "37c6dac6475dedbef288a11765f9c6733b526fa8",
      "parents": [
        "1693918e0b6988cf5eb93b7da34f30e94360a379"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 00:06:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 28 00:06:20 2009 -0400"
      },
      "message": "ext4: Fix hueristic which avoids group preallocation for closed files\n\nThe hueristic was designed to avoid using locality group preallocation\nwhen writing the last segment of a closed file.  Fix it by move\nsetting size to the maximum of size and isize until after we check\nwhether size \u003d\u003d isize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1693918e0b6988cf5eb93b7da34f30e94360a379",
      "tree": "de185e86dd6456c251d4a512acd5bab7c19a3a3c",
      "parents": [
        "8365388827663bd6fb773e3623ed9023c0f82b1d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 26 17:43:59 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 26 17:43:59 2009 -0400"
      },
      "message": "ext4: Use ext4_msg() for ext4_da_writepage() errors\n\nThis allows the user to see what filesystem was involved with a\nparticular ext4_da_writepage() error.  Also, use KERN_CRIT which is\nmore appropriate than KERN_EMERG.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61e225dc341107be304fd1088146c2a5e88ff9e0",
      "tree": "e6d3e1dc5506e232497f17721175a081a5306b5b",
      "parents": [
        "00d3803b656a5f0935518d746f6bb27d5181d29d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::dq_op const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd589a8f0a13f53a2dd580b1fe170633cf6b095f",
      "tree": "942c50188ca58041b0453189e710eafcfebaea57",
      "parents": [
        "4f37940d64a155c025968118849b596f6aaa8128"
      ],
      "author": {
        "name": "Anand Gadiyar",
        "email": "gadiyar@ti.com",
        "time": "Thu Jul 16 17:13:03 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:55 2009 +0200"
      },
      "message": "trivial: fix typo \"to to\" in multiple files\n\nSigned-off-by: Anand Gadiyar \u003cgadiyar@ti.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0a80e9867db154966b2a771042e10452ac110e1e",
      "tree": "51f43830b3c0dd733b0d446399eb3ea2b6bc84ed",
      "parents": [
        "5534fb5bb35a62a94e0bd1fa2421f7fb6e894f10"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Sep 17 11:55:58 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 17 11:55:58 2009 -0400"
      },
      "message": "ext4: replace MAX_DEFRAG_SIZE with EXT_MAX_BLOCK\n\nThere\u0027s no reason to redefine the maximum allowable offset\nin an extent-based file just for defrag; \nEXT_MAX_BLOCK already does this.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5534fb5bb35a62a94e0bd1fa2421f7fb6e894f10",
      "tree": "1a9da05279129a9331494c1faab6cfa22cd10ce8",
      "parents": [
        "fb40ba0d98968bc3454731360363d725b4f1064c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 17 09:34:16 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 17 09:34:16 2009 -0400"
      },
      "message": "ext4: Fix the alloc on close after a truncate hueristic\n\nIn an attempt to avoid doing an unneeded flush after opening a\n(previously non-existent) file with O_CREAT|O_TRUNC, the code only\ntriggered the hueristic if ei-\u003edisksize was non-zero.  Turns out that\nthe VFS doesn\u0027t call -\u003etruncate() if the file doesn\u0027t exist, and\nei-\u003edisksize is always zero even if the file previously existed.  So\nremove the test, since it isn\u0027t necessary and in fact disabled the\nhueristic.\n\nThanks to Clemens Eisserer that he was seeing problems with files\nwritten using kwrite and eclipse after sudden crashes caused by a\nbuggy Intel video driver.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fb40ba0d98968bc3454731360363d725b4f1064c",
      "tree": "08e8bb15b49bc6310e4c41653889e055d9594d9a",
      "parents": [
        "1b9c12f44c1eb614fd3b8822bfe8f1f5d8e53737"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 19:30:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 19:30:40 2009 -0400"
      },
      "message": "ext4: Add a tracepoint for ext4_alloc_da_blocks()\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1b9c12f44c1eb614fd3b8822bfe8f1f5d8e53737",
      "tree": "5de0737dd71557dadaa5e3f98d6e62bd3b9d7c51",
      "parents": [
        "fb0a387dcdcd21aab1b09ee7fd80b7c979bdbbfd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 17 08:32:22 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 17 08:32:22 2009 -0400"
      },
      "message": "ext4: store EXT4_EXT_MIGRATE in i_state instead of i_flags\n\nEXT4_EXT_MIGRATE is only intended to be used for an in-memory flag,\nand the hex value assigned to it collides with FS_DIRECTIO_FL (which\nis also stored in i_flags).  There\u0027s no reason for the\nEXT4_EXT_MIGRATE bit to be stored in i_flags, so we switch it to use\ni_state instead.\n\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fb0a387dcdcd21aab1b09ee7fd80b7c979bdbbfd",
      "tree": "dcb12c5fce8f7ccb8b183936ea71a29aba3f3846",
      "parents": [
        "c40ce3c9ea97425a12d7e44031a98fe50add6fc1"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Sep 16 14:45:10 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 14:45:10 2009 -0400"
      },
      "message": "ext4: limit block allocations for indirect-block files to \u003c 2^32\n\nToday, the ext4 allocator will happily allocate blocks past\n2^32 for indirect-block files, which results in the block\nnumbers getting truncated, and corruption ensues.\n\nThis patch limits such allocations to \u003c 2^32, and adds\nBUG_ONs if we do get blocks larger than that.\n\nThis should address RH Bug 519471, ext4 bitmap allocator \nmust limit blocks to \u003c 2^32\n\n* ext4_find_goal() is modified to choose a goal \u003c UINT_MAX,\n  so that our starting point is in an acceptable range.\n\n* ext4_xattr_block_set() is modified such that the goal block\n  is \u003c UINT_MAX, as above.\n\n* ext4_mb_regular_allocator() is modified so that the group\n  search does not continue into groups which are too high\n\n* ext4_mb_use_preallocated() has a check that we don\u0027t use\n  preallocated space which is too far out\n\n* ext4_alloc_blocks() and ext4_xattr_block_set() add some BUG_ONs\n\nNo attempt has been made to limit inode locations to \u003c 2^32,\nso we may wind up with blocks far from their inodes.  Doing\nthis much already will lead to some odd ENOSPC issues when the\n\"lower 32\" gets full, and further restricting inodes could\nmake that even weirder.\n\nFor high inodes, choosing a goal of the original, % UINT_MAX,\nmay be a bit odd, but then we\u0027re in an odd situation anyway,\nand I don\u0027t know of a better heuristic.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c40ce3c9ea97425a12d7e44031a98fe50add6fc1",
      "tree": "2150e1dbbcbf42c8293a887976a648fceaf8da73",
      "parents": [
        "347fa6f1c7cb5df2b38d3c9167cfe242ce0cd1da"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Sep 16 14:25:39 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 14:25:39 2009 -0400"
      },
      "message": "ext4: Fix different block exchange issue in EXT4_IOC_MOVE_EXT\n\nIf logical block offset of original file which is passed to\nEXT4_IOC_MOVE_EXT is different from donor file\u0027s,\na calculation error occurs in ext4_calc_swap_extents(),\ntherefore wrong block is exchanged between original file and donor file.\nAs a result, we hit ext4_error() in check_block_validity().\nTo detect the logical offset difference in EXT4_IOC_MOVE_EXT,\nadd checks to mext_calc_swap_extents() and handle it as error,\nsince data exchange must be done between the same blocks in EXT4_IOC_MOVE_EXT.\n\nReported-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "347fa6f1c7cb5df2b38d3c9167cfe242ce0cd1da",
      "tree": "1e4b467f7baa6c5fe291b0f53d6483776b2d5a54",
      "parents": [
        "2147b1a6a48e28399120ca51d4a91840a278611f"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Sep 16 14:25:07 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 14:25:07 2009 -0400"
      },
      "message": "ext4: Add null extent check to ext_get_path\n\nThere is the possibility that path structure which is taken\nby ext4_ext_find_extent() indicates null extents.\nBecause during data block exchanging in ext4_move_extents(),\nconstitution of an extent tree may be changed.\nAs a solution, the patch adds null extent check\nto ext_get_path().\n\nReported-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2147b1a6a48e28399120ca51d4a91840a278611f",
      "tree": "bf60185face40e3a482998f489348afef0e72086",
      "parents": [
        "e8505970af46658ece2545e9bc1fe594998fdcdf"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Sep 16 13:46:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 13:46:35 2009 -0400"
      },
      "message": "ext4: Replace BUG_ON() with ext4_error() in move_extents.c\n\nReplace BUG_ON calls with a call to ext4_error()\nto print an error message if EXT4_IOC_MOVE_EXT failed\nwith some kind of reasons.  This will help to debug.\nTed pointed this out, thanks.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e8505970af46658ece2545e9bc1fe594998fdcdf",
      "tree": "14a26c8f120667c70d2925c756ee518fc56453aa",
      "parents": [
        "3661d28615ea580c1db02a972fd4d3898df1cb01"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Sep 16 13:46:38 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 13:46:38 2009 -0400"
      },
      "message": "ext4: Replace get_ext_path macro with an inline funciton\n\nReplace get_ext_path macro with an inline function,\nsince this macro looks like a function call but its arguments\nget modified. Ted pointed this out, thanks.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "aa261f549d7652258331ebb12795f3bc4395d213",
      "tree": "0ca807db32a6e3f213fa52b5a053d2b27e5e6bac",
      "parents": [
        "6a46079cf57a7f7758e8b926980a4f852f89b34d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "message": "HWPOISON: Enable .remove_error_page for migration aware file systems\n\nEnable removing of corrupted pages through truncation\nfor a bunch of file systems: ext*, xfs, gfs2, ocfs2, ntfs\nThese should cover most server needs.\n\nI chose the set of migration aware file systems for this\nfor now, assuming they have been especially audited.\nBut in general it should be safe for all file systems\non the data area that support read/write and truncate.\n\nCaveat: the hardware error handler does not take i_mutex\nfor now before calling the truncate function. Is that ok?\n\nCc: tytso@mit.edu\nCc: hch@infradead.org\nCc: mfasheh@suse.com\nCc: aia21@cantab.net\nCc: hugh.dickins@tiscali.co.uk\nCc: swhiteho@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "3661d28615ea580c1db02a972fd4d3898df1cb01",
      "tree": "35b5ee30b88913c3e0711f763f0fa4d3bca27807",
      "parents": [
        "7ad9bb651fc2036ea94bed94da76a4b08959a911"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 14 22:59:50 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 14 22:59:50 2009 -0400"
      },
      "message": "ext4: Fix include/trace/events/ext4.h to work with Systemtap\n\nUsing relative pathnames in #include statements interacts badly with\nSystemTap, since the fs/ext4/*.h header files are not packaged up as\npart of a distribution kernel\u0027s header files.  Since systemtap doesn\u0027t\nuse TP_fast_assign(), we can use a blind structure definition and then\nmake sure the needed header files are defined before the ext4 source\nfiles #include the trace/events/ext4.h header file.\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d512478\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0d34ec62e18984ac9476208660372306ef54e70d",
      "tree": "7b75d266b832bb8457369082fba86456ef88e568",
      "parents": [
        "e367626b6164aeecb97fb7c20509ed8696babc26"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 17:48:27 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:16 2009 +0200"
      },
      "message": "ext4: Remove syncing logic from ext4_file_write\n\nThe syncing is now properly handled by generic_file_aio_write() so\nno special ext4 code is needed.\n\nCC: linux-ext4@vger.kernel.org\nCC: tytso@mit.edu\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7ad9bb651fc2036ea94bed94da76a4b08959a911",
      "tree": "2669266f02c35b1b24d13d0adc4b3ac5afbdf7fd",
      "parents": [
        "1f7bebb9e911d870fa8f997ddff838e82b5715ea"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 11 16:51:28 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 11 16:51:28 2009 -0400"
      },
      "message": "ext4: Fix initalization of s_flex_groups\n\nThe s_flex_groups array should have been initialized using atomic_add\nto sum up the free counts from the block groups that make up a\nflex_bg.  By using atomic_set, the value of the s_flex_groups array\nwas set to the values of the last block group in the flex_bg.  \n\nThe impact of this bug is that the block and inode allocation\nalgorithms might not pick the best flex_bg for new allocation.\n\nThanks to Damien Guibouret for pointing out this problem!\n\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": "71290b368ad5e1e0b0b300c9d5638490a9fd1a2d",
      "tree": "a48503e3ddf3715613df2a3e29a7220cea3368b4",
      "parents": [
        "08c3a8133810d955d97f7146c50c43e4073f2148"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 10 17:31:04 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Sep 10 17:31:04 2009 -0400"
      },
      "message": "ext4: Don\u0027t update superblock write time when filesystem is read-only\n\nThis avoids updating the superblock write time when we are mounting\nthe root file system read/only but we need to replay the journal; at\nthat point, for people who are east of GMT and who make their clock\ntick in localtime for Windows bug-for-bug compatibility, and this will\ncause e2fsck to complain and force a full file system check.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "08c3a8133810d955d97f7146c50c43e4073f2148",
      "tree": "7caab5e454cdfc39817bd34b9a5be21743af5771",
      "parents": [
        "f41c0750538667b87a19c93952e5d42fcc069bd7"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Sep 09 23:50:17 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 23:50:17 2009 -0400"
      },
      "message": "ext4: Clarify the locking details in mballoc\n\nWe don\u0027t need to take the alloc_sem lock when we are adding new\ngroups, since mballoc won\u0027t see the new group added until we bump\nsbi-\u003es_groups_count.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f41c0750538667b87a19c93952e5d42fcc069bd7",
      "tree": "042076950064d1201e7e408aba0e96ccbd7e00e2",
      "parents": [
        "b6a758ec3af3ec236dbfdcf6a06b84ac8f94957e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Sep 09 23:34:50 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 23:34:50 2009 -0400"
      },
      "message": "ext4: check for need init flag in ext4_mb_load_buddy\n\nWe should check for need init flag with the group\u0027s alloc_sem held, to\nmake sure while we are loading the buddy cache and holding a reference\nto it, a file system resize can\u0027t add new blocks to same group.\n\nThe patch also drops the need init flag check in\next4_mb_regular_allocator() because doing the check without holding\nalloc_sem is racy.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b6a758ec3af3ec236dbfdcf6a06b84ac8f94957e",
      "tree": "188505222c7fd0d92c18435aaf96e07c9f0ebdb6",
      "parents": [
        "91ac6f43317c0bf99969665f98016548011dfa38"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Sep 09 23:47:46 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 23:47:46 2009 -0400"
      },
      "message": "ext4: move ext4_mb_init_group() function earlier in the mballoc.c\n\nThis moves the function around so that it can be called from\next4_mb_load_buddy().\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": "91ac6f43317c0bf99969665f98016548011dfa38",
      "tree": "07a49f2182dd16fdb372e4a14c263cdd2d166578",
      "parents": [
        "fe188c0e084bdf3038dc0ac963c21d764f53f7da"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Wed Sep 09 22:33:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 22:33:47 2009 -0400"
      },
      "message": "ext4: Make non-journal fsync work properly\n\nTeach ext4_write_inode() and ext4_do_update_inode() about non-journal\nmode:  If we\u0027re not using a journal, ext4_write_inode() now calls\next4_do_update_inode() (after getting the iloc via ext4_get_inode_loc())\nwith a new \"do_sync\" parameter.  If that parameter is nonzero _and_ we\u0027re\nnot using a journal, ext4_do_update_inode() calls sync_dirty_buffer()\ninstead of ext4_handle_dirty_metadata().\n\nThis problem was found in power-fail testing, checking the amount of\nloss of files and blocks after a power failure when using fsync() and\nwhen not using fsync().  It turned out that using fsync() was actually\nworse than not doing so, possibly because it increased the likelihood\nthat the inodes would remain unflushed and would therefore be lost at\nthe power failure.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fe188c0e084bdf3038dc0ac963c21d764f53f7da",
      "tree": "bb712f58f4c0356058825da75da57d0af450e01b",
      "parents": [
        "c7acb4c16646943180bd221c167a077e0a084f9c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 12 13:41:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 12 13:41:55 2009 -0400"
      },
      "message": "ext4: Assure that metadata blocks are written during fsync in no journal mode\n\nWhen there is no journal present, we must attach buffer heads\nassociated with extent tree and indirect blocks to the inode\u0027s\nmapping-\u003eprivate_list via mark_buffer_dirty_inode() so that\next4_sync_file() --- which is called to service fsync() and\nfdatasync() system calls --- can write out the inode\u0027s metadata blocks\nby calling sync_mapping_buffers().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c7acb4c16646943180bd221c167a077e0a084f9c",
      "tree": "bb6f867bffc867b5c160fcb09e3054e66d7cf2f6",
      "parents": [
        "80e42468d65475e92651e62175bb7807773321d0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 21:32:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 21:32:41 2009 -0400"
      },
      "message": "ext4: Use bforget() in no journal mode for ext4_journal_{forget,revoke}()\n\nWhen ext4 is using a journal, a metadata block which is deallocated\nmust be passed into the journal layer so it can be dropped from the\ncurrent transaction and/or revoked.  This is done by calling the\nfunctions ext4_journal_forget() and ext4_journal_revoke(), which call\njbd2_journal_forget(), and jbd2_journal_revoke(), respectively.\n\nSince the jbd2_journal_forget() and jbd2_journal_revoke() call\nbforget(), if ext4 is not using a journal, ext4_journal_forget() and\next4_journal_revoke() must call bforget() to avoid a dirty metadata\nblock overwriting a block after it has been reallocated and reused for\nanother inode\u0027s data block.\n\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": "80e42468d65475e92651e62175bb7807773321d0",
      "tree": "7ab6bd05495a50a4c5fc507ab583daad5178006c",
      "parents": [
        "a827eaffff07c7d58a4cb32158cbeb4849f4e33a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 08 08:21:26 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 08 08:21:26 2009 -0400"
      },
      "message": "ext4: print more sysadmin-friendly message in check_block_validity()\n\nDrop the WARN_ON(1), as he stack trace is not appropriate, since it is\ntriggered by file system corruption, and it misleads users into\nthinking there is a kernel bug.  In addition, change the message\ndisplayed by ext4_error() to make it clear that this is a file system\ncorruption problem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a827eaffff07c7d58a4cb32158cbeb4849f4e33a",
      "tree": "6167caf1619f0d9555fd67a2facbf2351a0a7905",
      "parents": [
        "44fc48f7048ab9657b524938a832fec4e0acea98"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Sep 09 22:36:03 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 09 22:36:03 2009 -0400"
      },
      "message": "ext4: Take page lock before looking at attached buffer_heads flags\n\nIn order to check whether the buffer_heads are mapped we need to hold\npage lock. Otherwise a reclaim can cleanup the attached buffer_heads.\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": "44fc48f7048ab9657b524938a832fec4e0acea98",
      "tree": "9aca224ca77c27a5656077bd8c03d0c94f3426af",
      "parents": [
        "8d6669133d8cdbb7cbe0e1f0f3744e7802a84afe"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Sat Sep 05 23:12:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 23:12:41 2009 -0400"
      },
      "message": "ext4: Fix small typo for move_extent_per_page()\n\nThis function means moving extents every page, so change its name from\nmove_exgtent_par_page().\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.co.jp\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8d6669133d8cdbb7cbe0e1f0f3744e7802a84afe",
      "tree": "ab4799f9299037ecb41de56bc1ad0b8c946c30f0",
      "parents": [
        "daea696dbac0e33af3cfe304efbfb8d74e0effe6"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Sat Sep 05 22:46:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 22:46:29 2009 -0400"
      },
      "message": "ext4: Return exchanged blocks count to user space in failure\n\nReturn exchanged blocks count (moved_len) to user space,\nif ext4_move_extents() failed on the way.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "daea696dbac0e33af3cfe304efbfb8d74e0effe6",
      "tree": "35b64870a9377d1a89d2891084623bca8dd13e70",
      "parents": [
        "70d5d3dcea47c16058d2b093c29e07fdf61b56ad"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Sat Sep 05 22:11:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 22:11:55 2009 -0400"
      },
      "message": "ext4: Remove unneeded BUG_ON() in ext4_move_extents()\n\nThe ext4_move_extents() functions checks with BUG_ON() whether the\nexchanged blocks count accords with request blocks count.  But, if the\ntarget range (orig_start + len) includes sparse block(s), \u0027moved_len\u0027\n(exchanged blocks count) does not agree with \u0027len\u0027 (request blocks\ncount), since sparse block is not counted in \u0027moved_len\u0027.  This causes\nus to hit the BUG_ON(), even though the function succeeded.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "70d5d3dcea47c16058d2b093c29e07fdf61b56ad",
      "tree": "82ff7d71973f259d8197bbc7c05461e978324c02",
      "parents": [
        "5f3481e9a80c240f169b36ea886e2325b9aeb745"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Sep 16 14:28:22 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 16 14:28:22 2009 -0400"
      },
      "message": "ext4: Fix wrong comparisons in mext_check_arguments()\n\nThe mext_check_arguments() function in move_extents.c has wrong\ncomparisons.  orig_start which is passed from user-space is block\nunit, but i_size of inode is byte unit, therefore the checks do not\nwork fine.  This mis-check leads to the overflow of \u0027len\u0027 and then\nhits BUG_ON() in ext4_move_extents().  The patch fixes this issue.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nReviewed-by: Greg Freemyer \u003cgreg.freemyer@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5f3481e9a80c240f169b36ea886e2325b9aeb745",
      "tree": "435a8cf2be9c81a545f42d5af881450f8d121e74",
      "parents": [
        "d0646f7b636d067d715fab52a2ba9c6f0f46b0d7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Sep 05 21:42:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 21:42:42 2009 -0400"
      },
      "message": "ext4: fix cache flush in ext4_sync_file\n\nWe need to flush the write cache unconditionally in -\u003efsync, otherwise\nwrites into already allocated blocks can get lost.  Writes into fully\nallocated files are very common when using disk images for\nvirtualization, and without this fix can easily lose data after\nan fdatasync, which is the typical implementation for a cache flush on\nthe virtual drive.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d0646f7b636d067d715fab52a2ba9c6f0f46b0d7",
      "tree": "f7b3ae9510e8c789651d99fee0c22867e6ccba94",
      "parents": [
        "a3710fd1ee8cd542c5de63cf2c39f8912031f867"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 12:50:43 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 12:50:43 2009 -0400"
      },
      "message": "ext4: Remove journal_checksum mount option and enable it by default\n\nThere\u0027s no real cost for the journal checksum feature, and we should\nmake sure it is enabled all the time.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "7f1346a9de6a689b03f2c1c3a387e49ec64da267",
      "tree": "d563c9842fe834b7a4aeb9a055443397b8cfb088",
      "parents": [
        "b3a3ca8ca0c3c29abc5b2bfe94bb14f3f4590df9"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Sat Sep 05 09:28:54 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 05 09:28:54 2009 -0400"
      },
      "message": "ext4: Declare seq_operations and file_operations structures as const\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b3a3ca8ca0c3c29abc5b2bfe94bb14f3f4590df9",
      "tree": "1006f780d43ec8ff90ed11b1eb0d5ed961c9f613",
      "parents": [
        "de89de6e0cf4b1eb13f27137cf2aa40d287aabdf"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 31 23:13:11 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 31 23:13:11 2009 -0400"
      },
      "message": "ext4: Add new tracepoint: trace_ext4_da_write_pages()\n\nAdd a new tracepoint which shows the pages that will be written using\nwrite_cache_pages() by ext4_da_writepages().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "de89de6e0cf4b1eb13f27137cf2aa40d287aabdf",
      "tree": "b6429d327cb0a6985d3fd9bf11755353408ee44c",
      "parents": [
        "98a56ab382079f777e261e14512cbd4fb2107af4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 31 17:00:59 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 31 17:00:59 2009 -0400"
      },
      "message": "ext4: Restore wbc-\u003erange_start in ext4_da_writepages()\n\nTo solve a lock inversion problem, we implement part of the\nrange_cyclic algorithm in ext4_da_writepages().  (See commit 2acf2c26\nfor more details.)\n\nAs part of that change wbc-\u003erange_start was modified by ext4\u0027s\nwritepages function, which causes its callers to get confused since\nthey aren\u0027t expecting the filesystem to modify it.  The simplest fix\nis to save and restore wbc-\u003erange_start in ext4_da_writepages.\n\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": "55ad63bf3a30936aced50f13452735c2f58b234c",
      "tree": "13733cfa690c83a0a75d8d38489e3cace096f9f9",
      "parents": [
        "a36b44988cef1fc007535107013571fa691a2d7f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 28 10:40:33 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 28 10:40:33 2009 -0400"
      },
      "message": "ext4: fix extent sanity checking code with AGGRESSIVE_TEST\n\nThe extents sanity-checking code depends on the ext4_ext_space_*()\nfunctions returning the maximum alloable size for eh_max; however,\nwhen the debugging #ifdef AGGRESSIVE_TEST is enabled to test the\nextent tree handling code, this prevents a normally created ext4\nfilesystem from being mounted with the errors:\n\nAug 26 15:43:50 bsd086 kernel: [   96.070277] EXT4-fs error (device sda8): ext4_ext_check_inode: bad header/extent in inode #8: too large eh_max - magic f30a, entries 1, max 4(3), depth 0(0)\nAug 26 15:43:50 bsd086 kernel: [   96.070526] EXT4-fs (sda8): no journal found\n\nBug reported by Akira Fujita.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a36b44988cef1fc007535107013571fa691a2d7f",
      "tree": "b9d659b8ac2a1068f6fbc08ac093902333512c70",
      "parents": [
        "1927805e6599d8602d2c0af6a0155c85acc0b214"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Aug 25 22:36:45 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 25 22:36:45 2009 -0400"
      },
      "message": "ext4: use ext4_grpblk_t more extensively\n\nunsigned  short is potentially too small to track blocks within\na group; today it is safe due to restrictions in e2fsprogs but\nwe have _lo / _hi bits for group blocks with the intent to go\nup to 32 bits, so clean this up now.\n\nThere are many more places where we use unsigned/int/unsigned int\nto contain a group block but this should at least fix all the\nshort types.\n\nI added a few comments to the struct ext4_group_info definition\nas well.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1927805e6599d8602d2c0af6a0155c85acc0b214",
      "tree": "b5549d33960ef312efc3b8f54c78268a3e4f74dd",
      "parents": [
        "a8526e84ac758ac6da45cf273aa1538a6a7aa3de"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Aug 25 22:36:25 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 25 22:36:25 2009 -0400"
      },
      "message": "ext4: use variables not types in sizeofs() for allocations\n\nPrecursor to changing some types; to keep things in sync, it \nseems better to allocate/memset based on the size of the \nvariables we are using rather than on some disconnected \nbasic type like \"unsigned short\"\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "a8526e84ac758ac6da45cf273aa1538a6a7aa3de",
      "tree": "ed77c3b790c3adab99090fe2ad411a03baa9a21a",
      "parents": [
        "a13fb1a4533f26c1e2b0204d5283b696689645af"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 25 22:36:05 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 25 22:36:05 2009 -0400"
      },
      "message": "ext4: Add missing unlock_new_inode() call in extent migration code\n\nWe need to unlock the new inode before iput.  This patch fixes the\nfollowing warning when calling chattr +e to migrate a file to use\nextents.  It also fixes problems in when e4defrag attempts to\ndefragment an inode.\n\n[  470.400044] ------------[ cut here ]------------\n[  470.400065] WARNING: at fs/inode.c:1210 generic_delete_inode+0x65/0x16a()\n[  470.400072] Hardware name: N/A\n.....\n...\n[  470.400353] Pid: 4451, comm: chattr Not tainted 2.6.31-rc7-red-debug #4\n[  470.400359] Call Trace:\n[  470.400372]  [\u003cffffffff81037771\u003e] warn_slowpath_common+0x77/0x8f\n[  470.400385]  [\u003cffffffff81037798\u003e] warn_slowpath_null+0xf/0x11\n[  470.400395]  [\u003cffffffff810b7f28\u003e] generic_delete_inode+0x65/0x16a\n[  470.400405]  [\u003cffffffff810b8044\u003e] generic_drop_inode+0x17/0x1bd\n[  470.400413]  [\u003cffffffff810b7083\u003e] iput+0x61/0x65\n[  470.400455]  [\u003cffffffffa003b229\u003e] ext4_ext_migrate+0x5eb/0x66a [ext4]\n[  470.400492]  [\u003cffffffffa002b1f8\u003e] ext4_ioctl+0x340/0x756 [ext4]\n[  470.400507]  [\u003cffffffff810b1a91\u003e] vfs_ioctl+0x1d/0x82\n[  470.400517]  [\u003cffffffff810b1ff0\u003e] do_vfs_ioctl+0x483/0x4c9\n[  470.400527]  [\u003cffffffff81059c30\u003e] ? trace_hardirqs_on+0xd/0xf\n[  470.400537]  [\u003cffffffff810b2087\u003e] sys_ioctl+0x51/0x74\n[  470.400549]  [\u003cffffffff8100ba6b\u003e] system_call_fastpath+0x16/0x1b\n[  470.400557] ---[ end trace ab85723542352dac ]---\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": "a13fb1a4533f26c1e2b0204d5283b696689645af",
      "tree": "1f779dfe2057bef2a5985989f2a347ed32ca9179",
      "parents": [
        "38877f4e8dbbec12c6fde85ee1fce1dc27ef3290"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Aug 18 00:20:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 18 00:20:23 2009 -0400"
      },
      "message": "ext4: Add feature set check helper for mount \u0026 remount paths\n\nA user reported that although his root ext4 filesystem was mounting\nfine, other filesystems would not mount, with the:\n\n\"Filesystem with huge files cannot be mounted RDWR without CONFIG_LBDAF\"\n\nerror on his 32-bit box built without CONFIG_LBDAF.  This is because\nthe test at mount time for this situation was not being re-checked\non remount, and the normal boot process makes an ro-\u003erw transition,\nso this was being missed.\n\nRefactor to make a common helper function to test the filesystem\nfeatures against the type of mount request (RO vs. RW) so that we \nstay consistent.\n\nAddresses Red-Hat-Bugzilla: #517650\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "38877f4e8dbbec12c6fde85ee1fce1dc27ef3290",
      "tree": "c7cab3a9c5f5bc53f0ba7df269a630b0018dac8a",
      "parents": [
        "0373130d5bc783751c1fbad948886916a21d4559"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Aug 17 23:55:24 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 23:55:24 2009 -0400"
      },
      "message": "simplify some logic in ext4_mb_normalize_request\n\nWhile reading through some of the mballoc code it seems that a couple\nspots in the size normalization function could be streamlined.\n\nThe test for non-overlapping PAs can be or\u0027d for the start \u0026 end\nconditions, and the tests for adjacent PAs can be else-if\u0027d - \nit\u0027s essentially independently testing:\n\n\tif (A + B \u003c\u003d C)\n\t\t...\n\tif (A \u003e C)\n\t\t...\n\nThese cannot both be true so it seems like the else-if might\nbe slightly more efficient and/or informative.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0373130d5bc783751c1fbad948886916a21d4559",
      "tree": "a5b4d21b84345354ff965714bd6a6c473bae4b0f",
      "parents": [
        "bf43d84b185e2ff54598f8c58a5a8e63148b6e90"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Aug 17 23:51:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 23:51:29 2009 -0400"
      },
      "message": "ext4: open-code ext4_mb_update_group_info\n\next4_mb_update_group_info is only called in one place, and it\u0027s\nextremely simple.  There\u0027s no reason to have it in a separate function\nin a separate file as far as I can tell, it just obfuscates what\u0027s\nreally going on.\n\nPerhaps it was intended to keep the grp-\u003ebb_* manipulation local to\nmballoc.c but we\u0027re already accessing other grp-\u003e fields in balloc.c\ndirectly so this seems ok.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bf43d84b185e2ff54598f8c58a5a8e63148b6e90",
      "tree": "1e7a7ca7e5d328c41ef6757ea33d709d8e47fcfb",
      "parents": [
        "0ccff1a49def92d6b838a6da166c89004b3a4d0c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Aug 17 23:48:51 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 23:48:51 2009 -0400"
      },
      "message": "ext4: reject too-large filesystems on 32-bit kernels\n\next4 will happily mount a \u003e 16T filesystem on a 32-bit box, but\nthis is not safe; writes to the block device will wrap past 16T\nand the page cache can\u0027t index past 16T (232 index * 4k pages).\n\nAdding another test to the existing \"too many sectors\" test\nshould do the trick.\n\nAdd a comment, a relevant return value, and fix the reference\nto the CONFIG_LBD(AF) option as well.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "487caeef9fc08c0565e082c40a8aaf58dad92bbb",
      "tree": "69920293cfe3a50bdbbf845be785350e7c203a2b",
      "parents": [
        "9599b0e597d810be9b8f759ea6e9619c4f983c5e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 17 22:17:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 22:17:20 2009 -0400"
      },
      "message": "ext4: Fix possible deadlock between ext4_truncate() and ext4_get_blocks()\n\nDuring truncate we are sometimes forced to start a new transaction as\nthe amount of blocks to be journaled is both quite large and hard to\npredict. So far we restarted a transaction while holding i_data_sem\nand that violates lock ordering because i_data_sem ranks below a\ntransaction start (and it can lead to a real deadlock with\next4_get_blocks() mapping blocks in some page while having a\ntransaction open).\n\nWe fix the problem by dropping the i_data_sem before restarting the\ntransaction and acquire it afterwards. It\u0027s slightly subtle that this\nworks:\n\n1) By the time ext4_truncate() is called, all the page cache for the\ntruncated part of the file is dropped so get_block() should not be\ncalled on it (we only have to invalidate extent cache after we\nreacquire i_data_sem because some extent from not-truncated part could\nextend also into the part we are going to truncate).\n\n2) Writes, migrate or defrag hold i_mutex so they are stopped for all\nthe time of the truncate.\n\nThis bug has been found and analyzed by Theodore Tso \u003ctytso@mit.edu\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "553f9008939638335836eec834f4dea310c17eae",
      "tree": "1d1ea9defa550d522b68bb12dab7f0e139aa205a",
      "parents": [
        "84fe3bef59dc45a1cb0d2f9b0aefa8f1fbfbdf98"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Fri Sep 18 13:34:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 18 13:34:55 2009 -0400"
      },
      "message": "ext4: Show unwritten extent flag in ext4_ext_show_leaf()\n\next4_ext_show_leaf() will display the leaf extents when extent\ndebugging is enabled.\n\nPrinting out the unwritten bit is useful for debugging unwritten\nextent, allow us to see the unwritten extents vs written extents,\nafter the unwritten extents are splitted or converted.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n\n"
    },
    {
      "commit": "84fe3bef59dc45a1cb0d2f9b0aefa8f1fbfbdf98",
      "tree": "2e6821186ace260d61d32774c5976e233e660a88",
      "parents": [
        "50797481a7bdee548589506d7d7b48b08bc14dcd"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue Sep 01 08:44:37 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 01 08:44:37 2009 -0400"
      },
      "message": "ext4: Compile warning fix when EXT_DEBUG enabled\n\nWhen EXT_DEBUG is enabled I received the following compile warning on\nPPC64:\n\n  CC [M]  fs/ext4/inode.o\n  CC [M]  fs/ext4/extents.o\nfs/ext4/extents.c: In function ‘ext4_ext_rm_leaf’:\nfs/ext4/extents.c:2097: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘ext4_lblk_t’\nfs/ext4/extents.c: In function ‘ext4_ext_get_blocks’:\nfs/ext4/extents.c:2789: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘long unsigned int’\nfs/ext4/extents.c:2852: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 3 has type ‘ext4_lblk_t’\nfs/ext4/extents.c:2953: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 4 has type ‘unsigned int’\n  CC [M]  fs/ext4/migrate.o\n\nThe patch fixes compile warning.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\nIndex: linux-2.6.31-rc4/fs/ext4/extents.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n"
    },
    {
      "commit": "50797481a7bdee548589506d7d7b48b08bc14dcd",
      "tree": "19989d27e3a69c6c2c507f798f55a2d9a47a5d27",
      "parents": [
        "4ba74d00a20256e22f159cb288ff34b587608917"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 18 13:34:02 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 18 13:34:02 2009 -0400"
      },
      "message": "ext4: Avoid group preallocation for closed files\n\nCurrently the group preallocation code tries to find a large (512)\nfree block from which to do per-cpu group allocation for small files.\nThe problem with this scheme is that it leaves the filesystem horribly\nfragmented.  In the worst case, if the filesystem is unmounted and\nremounted (after a system shutdown, for example) we forget the fact\nthat wee were using a particular (now-partially filled) 512 block\nextent.  So the next time we try to allocate space for a small file,\nwe will find *another* completely free 512 block chunk to allocate\nsmall files.  Given that there are 32,768 blocks in a block group,\nafter 64 iterations of \"mount, write one 4k file in a directory,\nunmount\", the block group will have 64 files, each separated by 511\nblocks, and the block group will no longer have any free 512\ncompletely free chunks of blocks for group preallocation space.\n\nSo if we try to allocate blocks for a file that has been closed, such\nthat we know the final size of the file, and the filesystem is not\nbusy, avoid using group preallocation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4ba74d00a20256e22f159cb288ff34b587608917",
      "tree": "6859cf49f8043ec11846e2c8ebc836499e1048c4",
      "parents": [
        "0ef90db93a4ddfc300af288c2a1bfc1e6c79da64"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 09 22:01:13 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 09 22:01:13 2009 -0400"
      },
      "message": "ext4: Fix bugs in mballoc\u0027s stream allocation mode\n\nThe logic around sbi-\u003es_mb_last_group and sbi-\u003es_mb_last_start was all\nscrewed up.  These fields were getting unconditionally all the time,\nset even when stream allocation had not taken place, and if they were\nbeing used when the file was smaller than s_mb_stream_request, which\nis when the allocation should _not_ be doing stream allocation.\n\nFix this by determining whether or not we stream allocation should\ntake place once, in ext4_mb_group_or_file(), and setting a flag which\ngets used in ext4_mb_regular_allocator() and ext4_mb_use_best_found().\nThis simplifies the code and assures that we are consistently using\n(or not using) the stream allocation logic.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0ef90db93a4ddfc300af288c2a1bfc1e6c79da64",
      "tree": "9a16d71efd6458777391c993f3b964cb5cebfb7d",
      "parents": [
        "6ba495e9259cd9a0b40ebd6c315143535c92542f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 09 16:46:13 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 09 16:46:13 2009 -0400"
      },
      "message": "ext4: Display the mballoc flags in mb_history in hex instead of decimal\n\nDisplaying the flags in base 16 makes it easier to see which flags\nhave been set.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6ba495e9259cd9a0b40ebd6c315143535c92542f",
      "tree": "7d43ea10a8971087e6e8b00c9934b0cf83e53d1e",
      "parents": [
        "91cc219ad963731191247c5f2db4118be2bc341a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 18 13:38:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 18 13:38:55 2009 -0400"
      },
      "message": "ext4: Add configurable run-time mballoc debugging\n\nAllow mballoc debugging to be enabled at run-time instead of just at\ncompile time.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "91cc219ad963731191247c5f2db4118be2bc341a",
      "tree": "a00e1c0b8a773f88bcb3ae81758ec4528b73405d",
      "parents": [
        "b1f485f20eb9b02cc7d2009556287f3939d480cc"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Mon Aug 10 23:05:28 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 10 23:05:28 2009 -0400"
      },
      "message": "ext4: fix journal ref count in move_extent_par_page\n\nmove_extent_par_page calls a_ops-\u003ewrite_begin() to increase journal\nhandler\u0027s reference count. However, if either mext_replace_branches()\nor ext4_get_block fails, the increased reference count isn\u0027t\ndecreased. This will cause a later attempt to umount of the fs to hang\nforever. The patch addresses the issue by calling ext4_journal_stop()\nif page is not NULL (which means a_ops-\u003ewrite_end() isn\u0027t invoked).\n\nSigned-off-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c333e073b7bf76dc819a6b4ce6bef88ee5fa5e50",
      "tree": "500355f9b183c83afc47d2110175a175d775cb90",
      "parents": [
        "785b4b3a5a992eeb8b495a89b6f690b383010aba"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Mon Aug 10 22:47:22 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 10 22:47:22 2009 -0400"
      },
      "message": "ext4: remove redundant test on unsigned\n\nunsigned i_block cannot be less than 0.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "785b4b3a5a992eeb8b495a89b6f690b383010aba",
      "tree": "2b67b107c268529de56f09b0ef86691899de6b96",
      "parents": [
        "1c718505171b06dbb60eafcb3fddba877dae5f7b"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Mon Jul 27 21:44:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 27 21:44:40 2009 -0400"
      },
      "message": "ext4: fix build warning when EXT4FS_DEBUG is on\n\nWhen compiling with EXT4FS_DEBUG on, gcc will complain with following warnings:\n\nlinux-2.6/fs/ext4/ialloc.c: In function ‘ext4_count_free_inodes’:\nlinux-2.6/fs/ext4/ialloc.c:1192: warning: format ‘%lu’ expects type\n‘long unsigned int’, but argument 2 has type ‘ext4_group_t’\n\nSo add a type cast to suppress it. \n\nSigned-off-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1cf29683f4414296dc772a87caa207cab16c310c",
      "tree": "90d05ba531c5ad48d8d171d5b78038a7df7728e7",
      "parents": [
        "4a390e07fc53ce9dd615d7b788e9ecc73f87ad94",
        "96577c43827697ca1af5982fa256a34786d0c720"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 13 16:39:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 13 16:39:25 2009 -0700"
      },
      "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:\n  jbd2: fix race between write_metadata_buffer and get_write_access\n  ext4: Fix ext4_mb_initialize_context() to initialize all fields\n  ext4: fix null handler of ioctls in no journal mode\n  ext4: Fix buffer head reference leak in no-journal mode\n  ext4: Move __ext4_journalled_writepage() to avoid forward declaration\n  ext4: Fix mmap/truncate race when blocksize \u003c pagesize \u0026\u0026 !nodellaoc\n  ext4: Fix mmap/truncate race when blocksize \u003c pagesize \u0026\u0026 delayed allocation\n  ext4: Don\u0027t look at buffer_heads outside i_size.\n  ext4: Fix goal inum check in the inode allocator\n  ext4: fix no journal corruption with locale-gen\n  ext4: Calculate required journal credits for inserting an extent properly\n  ext4: Fix truncation of symlinks after failed write\n  jbd2: Fix a race between checkpointing code and journal_get_write_access()\n  ext4: Use rcu_barrier() on module unload.\n  ext4: naturally align struct ext4_allocation_request\n  ext4: mark several more functions in mballoc.c as noinline\n  ext4: Fix potential reclaim deadlock when truncating partial block\n  jbd2: Remove GFP_ATOMIC kmalloc from inside spinlock critical region\n  ext4: Fix type warning on 64-bit platforms in tracing events header\n"
    },
    {
      "commit": "833576b362e15c38be3bfe43942cda693e56287c",
      "tree": "5a221bd167ae7f1b0575fd24fbc5e4cdae18a598",
      "parents": [
        "ac046f1d6121ccdda6db66bd88acd52418f489b2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 09:45:52 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 09:45:52 2009 -0400"
      },
      "message": "ext4: Fix ext4_mb_initialize_context() to initialize all fields\n\nPavel Roskin pointed out that kmemcheck indicated that\next4_mb_store_history() was accessing uninitialized values of\nac-\u003eac_tail and ac-\u003eac_buddy leading to garbage in the mballoc\nhistory.  Fix this by initializing the entire structure to all zeros\nfirst.\n\nAlso, two fields were getting doubly initialized by the caller of\next4_mb_initialize_context, so remove them for efficiency\u0027s sake.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ac046f1d6121ccdda6db66bd88acd52418f489b2",
      "tree": "3a52ddd6ae7663b0cdd52a9eab059711626ae491",
      "parents": [
        "e6b5d30104db5f34110678ecab14988f1f1eff63"
      ],
      "author": {
        "name": "Peng Tao",
        "email": "bergwolf@gmail.com",
        "time": "Mon Jul 13 09:30:17 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 09:30:17 2009 -0400"
      },
      "message": "ext4: fix null handler of ioctls in no journal mode\n\nThe EXT4_IOC_GROUP_ADD and EXT4_IOC_GROUP_EXTEND ioctls should not\nflush the journal in no_journal mode.  Otherwise, running resize2fs on\na mounted no_journal partition triggers the following error messages:\n\nBUG: unable to handle kernel NULL pointer dereference at 00000014\nIP: [\u003cc039d282\u003e] _spin_lock+0x8/0x19\n*pde \u003d 00000000 \nOops: 0002 [#1] SMP\n\nSigned-off-by: Peng Tao \u003cbergwolf@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6b5d30104db5f34110678ecab14988f1f1eff63",
      "tree": "922408d70d388925f0113998649d56da475deff4",
      "parents": [
        "62e086be5d2abef8cad854bc5707329ad345f2ec"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Mon Jul 13 09:07:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 09:07:20 2009 -0400"
      },
      "message": "ext4: Fix buffer head reference leak in no-journal mode\n\nWe found a problem with buffer head reference leaks when using an ext4\npartition without a journal.  In particular, calls to ext4_forget() would\nnot to a brelse() on the input buffer head, which will cause pages they\nbelong to to not be reclaimable.\n\nFurther investigation showed that all places where ext4_journal_forget() and\next4_journal_revoke() are called are subject to the same problem.  The patch\nbelow changes __ext4_journal_forget/__ext4_journal_revoke to do an explicit\nrelease of the buffer head when the journal handle isn\u0027t valid.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c718505171b06dbb60eafcb3fddba877dae5f7b",
      "tree": "c50213e11adb1a97890428652d4111a7119189aa",
      "parents": [
        "5a4a798937f92413cb7dbdb6bd554186024092e9"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Sun Jul 05 23:04:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 05 23:04:36 2009 -0400"
      },
      "message": "ext4: Fix compile warnings with MB_DEBUG\n\nWhen MB_DEBUG is enabled, we get some compile warnings because\next4_group_t is unsigned int.  This patch fixes them.\n\nSigned-off-by Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a4a798937f92413cb7dbdb6bd554186024092e9",
      "tree": "bbd4d948dfa72f4779dd0ebf96abd948a707ee49",
      "parents": [
        "6487a9d3b5476ffd1bbbe97e58cf26dbeb7a5d4a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Jul 05 22:33:08 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 05 22:33:08 2009 -0400"
      },
      "message": "ext4: Remove unnecessary semicolons in mballoc.c\n\nSigned-off-by: Joe Perches \u003cjoe@perches.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": "78f1ddbb498283c2445c11b0dfa666424c301803",
      "tree": "aa25853e60d224812103ea5b5e520fc41d57cb05",
      "parents": [
        "43b38520296d0c1730c78c878e1d6d1a49122091"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 27 23:09:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 27 23:09:47 2009 -0400"
      },
      "message": "ext4: Avoid null pointer dereference when decoding EROFS w/o a journal\n\nWe need to check to make sure a journal is present before checking the\njournal flags in ext4_decode_error().\n\nSigned-off-by: Eric Sesterhenn \u003ceric.sesterhenn@lsexperts.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "43b38520296d0c1730c78c878e1d6d1a49122091",
      "tree": "31b420058ebb02d1ea0cd71ee4b037d1fa43fdae",
      "parents": [
        "024eab4d5bf7e3168a2b71038b3e04e6b1f376ed"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Mon Jul 27 21:38:17 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 27 21:38:17 2009 -0400"
      },
      "message": "ext4: Fix typo in ext4/Kconfig\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "024eab4d5bf7e3168a2b71038b3e04e6b1f376ed",
      "tree": "1a588b519826ce0adde9c539e34154abcd2d156e",
      "parents": [
        "ab86e5765d41a5eb4239a1c04d613db87bea5ed8"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 17 09:01:04 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 17 09:01:04 2009 -0400"
      },
      "message": "ext4: Fix memory leak fix when mounting an ext4 filesystem\n\nThe allocation of the ext4_group_info array was moved to a new\nfunction ext4_mb_add_group_info() in commit 5f21b0e6 so that online\nresize would use a common (and correct) codepath.  Unfortunately, the\ncall to the new ext4_mb_add_group_info() function was added without\nremoving the code which originally allocated the array.  This caused a\nmemory leak each time an ext4 filesystem was mounted.\n\nThe fix is simple; remove the code that did the original allocation,\nsince it is no longer needed.\n\nReported-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nTested-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\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": "073aaa1b142461d91f83da66db1184d7c1b1edea",
      "tree": "2b54d185d78f1229418fca521a93e6b55c57248b",
      "parents": [
        "06b16e9f68edaa1e71aee943d3c030bcf7380af1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 09 12:11:54 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:07 2009 -0400"
      },
      "message": "helpers for acl caching + switch to those\n\nhelpers: get_cached_acl(inode, type), set_cached_acl(inode, type, acl),\nforget_cached_acl(inode, type).\n\nubifs/xattr.c needed includes reordered, the rest is a plain switchover.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d4bfe2f76d785cc77611a4bda8cedaff358d8c7d",
      "tree": "a8c953fe752afebadb4f0fb4aa3e80dbab934f7f",
      "parents": [
        "6582a0e6f6bc7bf64817b9e1a424782855292ab0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:54:26 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:04 2009 -0400"
      },
      "message": "switch ext4 to inode-\u003ei_acl\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "31583d6acf940d2951bc8716557b06d9de5a0c4b",
      "tree": "607aef385b0998f0cb7ff63b05407afed5182840",
      "parents": [
        "ee37ba7a4212c7420f12e6a2ad8a3966649ede7a",
        "f740f5ca056f0a4eff3abdf272a8a4ba3965d57d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Fix kernel-doc parameter name typo in blk-settings.c:\n  block: rename CONFIG_LBD to CONFIG_LBDAF\n  block: Fix bounce_pfn setting\n  hd: stop defining MAJOR_NR\n"
    }
  ],
  "next": "90c699a9ee4be165966d40f1837909ccb8890a68"
}
