)]}'
{
  "log": [
    {
      "commit": "a996031c87e093017c0763326a08896a3a4817f4",
      "tree": "74550b7108b1b1fd87393801de56bd9e1e8b1012",
      "parents": [
        "8c3bf8a01c005385e9be0bc992e10abfb355278c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "message": "delay capable() check in ext4_has_free_blocks()\n\nAs reported by Eric Paris, the capable() check in ext4_has_free_blocks()\nsometimes causes SELinux denials.\n\nWe can rearrange the logic so that we only try to use the root-reserved\nblocks when necessary, and even then we can move the capable() test\nto last, to avoid the check most of the time.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8c3bf8a01c005385e9be0bc992e10abfb355278c",
      "tree": "b65516a799256f593b29ad5048aa9a24d2d1b70b",
      "parents": [
        "6c20ec850360bc6e5c66a787f0523a80450d65ab"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "message": "merge ext4_claim_free_blocks \u0026 ext4_has_free_blocks\n\nMingming pointed out that ext4_claim_free_blocks \u0026 ext4_has_free_blocks\nare largely cut \u0026 pasted; they can be collapsed/merged as follows.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ef2cabf7c6d838eb0ee2b4fb8ef84f7c06ce16d9",
      "tree": "64c3c14ae4a3717c6c193773d87e31f5facc569e",
      "parents": [
        "44d6f78756560e95903de239e10f8a40a6eae444"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Mon Oct 27 22:53:05 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 27 22:53:05 2008 -0400"
      },
      "message": "ext4: fix a bug accessing freed memory in ext4_abort\n\nVegard Nossum reported a bug which accesses freed memory (found via\nkmemcheck).  When journal has been aborted, ext4_put_super() calls\next4_abort() after freeing the journal_t object, and then ext4_abort()\naccesses it.  This patch fix it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3c37fc86d20fe35be656f070997d62f75c2e4874",
      "tree": "eb9593356a2aa3233ab8f198f044e81413423cde",
      "parents": [
        "8c9fa93d51123c5540762b1a9e1919d6f9c4af7c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 11:39:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 22:37:55 2008 -0400"
      },
      "message": "ext4: Fix duplicate entries returned from getdents() system call\n\nFix a regression caused by commit d0156417, \"ext4: fix ext4_dx_readdir\nhash collision handling\", where deleting files in a large directory\n(requiring more than one getdents system call), results in some\nfilenames being returned twice.  This was caused by a failure to\nupdate info-\u003ecurr_hash and info-\u003ecurr_minor_hash, so that if the\ndirectory had gotten modified since the last getdents() system call\n(as would be the case if the user is running \"rm -r\" or \"git clean\"),\na directory entry would get returned twice to the userspace.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\nThis patch fixes the bug reported by Markus Trippelsdorf at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11844\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "3856d30ded1fe43c6657927ebad402d25cd128f4",
      "tree": "e2313de491919549ed9065fb2604dd3d19a33ea3",
      "parents": [
        "f3161f36f5f49ee995b90d6207d8b6d990355e0a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 23 20:33:29 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:03:23 2008 -0700"
      },
      "message": "ext4: remove unused variable in ext4_get_parent\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n[ All users removed in \"switch all filesystems over to d_obtain_alias\",\n  aka commit 440037287c5ebb07033ab927ca16bb68c291d309 ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22484856402bfa1ff3defe47f6029ab0418240d9",
      "tree": "140c67bf59674da350a7b51765d6ff7eb101b597",
      "parents": [
        "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
        "56b26add02b4bdea81d5e0ebda60db1fe3311ad4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)\n  [PATCH] kill the rest of struct file propagation in block ioctls\n  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET\n  [PATCH] get rid of blkdev_locked_ioctl()\n  [PATCH] get rid of blkdev_driver_ioctl()\n  [PATCH] sanitize blkdev_get() and friends\n  [PATCH] remember mode of reiserfs journal\n  [PATCH] propagate mode through swsusp_close()\n  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl\n  [PATCH] pass fmode_t to blkdev_put()\n  [PATCH] kill the unused bsize on the send side of /dev/loop\n  [PATCH] trim file propagation in block/compat_ioctl.c\n  [PATCH] end of methods switch: remove the old ones\n  [PATCH] switch sr\n  [PATCH] switch sd\n  [PATCH] switch ide-scsi\n  [PATCH] switch tape_block\n  [PATCH] switch dcssblk\n  [PATCH] switch dasd\n  [PATCH] switch mtd_blkdevs\n  [PATCH] switch mmc\n  ...\n"
    },
    {
      "commit": "440037287c5ebb07033ab927ca16bb68c291d309",
      "tree": "c4be3843ea87a777c2647f471895917005d8068f",
      "parents": [
        "4ea3ada2955e4519befa98ff55dd62d6dfbd1705"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 11 15:49:04 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:01 2008 -0400"
      },
      "message": "[PATCH] switch all filesystems over to d_obtain_alias\n\nSwitch all users of d_alloc_anon to d_obtain_alias.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8264613def2e5c4f12bc3167713090fd172e6055",
      "tree": "00a8655bce02f97acf559580bdd9ba65919af2bf",
      "parents": [
        "0a0d8a46757e2063433c8cd52b7d654e02b4682b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 02 00:57:06 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:12:44 2008 -0400"
      },
      "message": "[PATCH] switch quota_on-related stuff to kern_path()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a1c3542768b5a58e45a9216921cd10a3bae1205",
      "tree": "c20ffda950db868ec7e1e35aed532962de2ecfd9",
      "parents": [
        "511de73ff09034fb89c8d54bed201a10d057328c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 20:40:24 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 21 07:48:58 2008 -0400"
      },
      "message": "[PATCH] pass fmode_t to blkdev_put()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6da0b38f4433fb0f24615449d7966471b6e5eae0",
      "tree": "9f163fbbc7342406bb602de447293c0b11628c6f",
      "parents": [
        "0d468300dc97d6aec084799ffe39253ac366f1e4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 20 22:28:45 2008 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 11:43:59 2008 -0700"
      },
      "message": "fs/Kconfig: move ext2, ext3, ext4, JBD, JBD2 out\n\nUse fs/*/Kconfig more, which is good because everything related to one\nfilesystem is in one place and fs/Kconfig is quite fat.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f287a1a56130be5fdb96a4a62d1290bd064f308e",
      "tree": "992ac8f5fef83cafae53b8fe00844f2ad3e79d07",
      "parents": [
        "3e624fc72fba09b6f999a9fbb87b64efccd38036"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 22:50:48 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 22:50:48 2008 -0400"
      },
      "message": "ext4: Remove automatic enabling of the HUGE_FILE feature flag\n\nIf the HUGE_FILE feature flag is not set, don\u0027t allow the creation of\nlarge files, instead of automatically enabling the feature flag.\nRecent versions of mke2fs will set the HUGE_FILE flag automatically\nanyway for ext4 filesystems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "3e624fc72fba09b6f999a9fbb87b64efccd38036",
      "tree": "f0a1feac377788b27ea704519a33f367a6d415f9",
      "parents": [
        "22359f5745eb26bd3205a1ede7968c8944398220"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 20:00:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 20:00:24 2008 -0400"
      },
      "message": "ext4: Replace hackish ext4_mb_poll_new_transaction with commit callback\n\nThe multiblock allocator needs to be able to release blocks (and issue\na blkdev discard request) when the transaction which freed those\nblocks is committed.  Previously this was done via a polling mechanism\nwhen blocks are allocated or freed.  A much better way of doing things\nis to create a jbd2 callback function and attaching the list of blocks\nto be freed directly to the transaction structure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "01436ef2e4710317f826c4893b31c07b2d8df88c",
      "tree": "e8c6a561e3f4803f6ee9ad7851623cd3e369bee9",
      "parents": [
        "0b09923eabd92f11a8b272dd3fd0347332d0e1e2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 17 07:22:35 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 17 07:22:35 2008 -0400"
      },
      "message": "ext4: Remove unused mount options: nomballoc, mballoc, nocheck\n\nThese mount options don\u0027t actually do anything any more, so remove\nthem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b09923eabd92f11a8b272dd3fd0347332d0e1e2",
      "tree": "20fbba154ab3b9e8c0c77549db17d6d71f86abe5",
      "parents": [
        "5128273a326679970b9196a27ff812670927c1c4"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Fri Oct 17 14:58:45 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 17 14:58:45 2008 -0400"
      },
      "message": "ext4: Remove compile warnings when building w/o CONFIG_PROC_FS\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5128273a326679970b9196a27ff812670927c1c4",
      "tree": "f2acecf3bed1af523ca385589579235dd1277995",
      "parents": [
        "22208dedbd7626e5fc4339c417f8d24cc21f79d7"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Oct 17 09:16:19 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 17 09:16:19 2008 -0400"
      },
      "message": "ext4: Add missing newlines to printk messages\n\nThere are some newlines missing in ext4_check_descriptors, which\ncause the printk level to be printed out when the next printk call\nis made:\n\n[  778.847265] EXT4-fs: ext4_check_descriptors: Block bitmap for group 0\nnot in group (block 1509949442)!\u003c3\u003eEXT4-fs: group descriptors corrupted!\n[  802.646630] EXT4-fs: ext4_check_descriptors: Inode bitmap for group 0\nnot in group (block 9043971)!\u003c3\u003eEXT4-fs: group descriptors corrupted!\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "22208dedbd7626e5fc4339c417f8d24cc21f79d7",
      "tree": "d03fc8524dc7cb2f18c2038ffe4d2146903f630e",
      "parents": [
        "17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Oct 16 10:10:36 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 10:10:36 2008 -0400"
      },
      "message": "ext4: Fix file fragmentation during large file write.\n\nThe range_cyclic writeback mode uses the address_space writeback_index\nas the start index for writeback.  With delayed allocation we were\nupdating writeback_index wrongly resulting in highly fragmented file.\nThis patch reduces the number of extents reduced from 4000 to 27 for a\n3GB file.\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": "af6f029d3836eb7264cd3fbb13a6baf0e5fdb5ea",
      "tree": "b7c1334ad5fab10eaf4962c79ad6025d334b902c",
      "parents": [
        "8a0aba733db1adb5e1f0e828889a18f4c1c512de"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 14 09:20:19 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 14 09:20:19 2008 -0400"
      },
      "message": "ext4: Use tag dirty lookup during mpage_da_submit_io\n\nThis enables us to drop the range_cont writeback mode\nuse from ext4_da_writepages.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8a0aba733db1adb5e1f0e828889a18f4c1c512de",
      "tree": "e66c57f34cdb28c45c34dfc63a93c72791316fe0",
      "parents": [
        "a1aebc1e2da9a7bee4ff8cce510b08f469d1929e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 10:06:27 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 10:06:27 2008 -0400"
      },
      "message": "ext4: let the block device know when unused blocks can be discarded\n\nLet the block device know when unused blocks can be discarded, using\nthe new sb_issue_discard() interface.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1aebc1e2da9a7bee4ff8cce510b08f469d1929e",
      "tree": "b16ea9325a9a6edd0ce66ea20bc3e0b25236a897",
      "parents": [
        "c894058d66637c7720569fbe12957f4de64d9991"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Oct 10 20:13:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:13:31 2008 -0400"
      },
      "message": "ext4: Don\u0027t reuse released data blocks until transaction commits\n\nWe need to make sure we don\u0027t reuse the data blocks released\nduring the transaction untill the transaction commits. We force\nthis mode only for ordered and journalled mode. Writeback mode\nalready don\u0027t provided data consistency.\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\n"
    },
    {
      "commit": "c894058d66637c7720569fbe12957f4de64d9991",
      "tree": "f13472d7fd76155f1365550515997a24aff611c9",
      "parents": [
        "c2774d84fd6cab2bfa2a2fae0b1ca8d8ebde48a2"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Oct 16 10:14:27 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 10:14:27 2008 -0400"
      },
      "message": "ext4: Use an rbtree for tracking blocks freed during transaction.\n\nWith this patch we track the block freed during a transaction using\nred-black tree.  We also make sure contiguous blocks freed are collected\nin one node in the tree.\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": "c2774d84fd6cab2bfa2a2fae0b1ca8d8ebde48a2",
      "tree": "1319b98e55968e3223d8f2fb6cd7807cdfd80fe1",
      "parents": [
        "688f05a01983711a4e715b1d6e15a89a89c96a66"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Oct 10 20:07:20 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:07:20 2008 -0400"
      },
      "message": "ext4: Do mballoc init before doing filesystem recovery\n\nDuring filesystem recovery we may be doing a truncate\nwhich expects some of the mballoc data structures to\nbe initialized. So do ext4_mb_init before recovery.\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\n"
    },
    {
      "commit": "688f05a01983711a4e715b1d6e15a89a89c96a66",
      "tree": "a0b46e7bbbdffd89ca27da331eb2b62d0106f300",
      "parents": [
        "473dc8eddb049055ef823e000ad968ebd56cdaca"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Oct 13 12:14:14 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 13 12:14:14 2008 -0400"
      },
      "message": "ext4: Free ext4_prealloc_space using kmem_cache_free\n\nWe should use kmem_cache_free to free memory allocated\nvia kmem_cache_alloc\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\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3244fcb1ae03362e4aa8cb1a9039fbfd61661859",
      "tree": "fa46eff0dff3a9a046917bdb0c8ec3b2fef807f4",
      "parents": [
        "5bf5683a33f3584da6eced480967c4f7e11515a8"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Sun Oct 12 17:27:49 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 12 17:27:49 2008 -0400"
      },
      "message": "ext4: fix build failure without procfs\n\nfs/ext4/super.c: In function \u0027ext4_fill_super\u0027:\nfs/ext4/super.c:2226: error: \u0027ext4_ui_proc_fops\u0027 undeclared (first use\nin this function)\nfs/ext4/super.c:2226: error: (Each undeclared identifier is reported\nonly once\nfs/ext4/super.c:2226: error: for each function it appears in.)\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "5bf5683a33f3584da6eced480967c4f7e11515a8",
      "tree": "4986ba3932d9f259fa1bc674deff3e35f689b243",
      "parents": [
        "7ad7445f60fe4d46c4c9d2a9463db180d2a3b270"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "message": "ext4: add an option to control error handling on file data\n\nIf the journal doesn\u0027t abort when it gets an IO error in file data\nblocks, the file data corruption will spread silently.  Because\nmost of applications and commands do buffered writes without fsync(),\nthey don\u0027t notice the IO error.  It\u0027s scary for mission critical\nsystems.  On the other hand, if the journal aborts whenever it gets\nan IO error in file data blocks, the system will easily become\ninoperable.  So this patch introduces a filesystem option to\ndetermine whether it aborts the journal or just call printk() when\nit gets an IO error in file data.\n\nIf you mount an ext4 fs with data_err\u003dabort option, it aborts on file\ndata write error.  If you mount it with data_err\u003dignore, it doesn\u0027t\nabort, just call printk().  data_err\u003dignore is the default.\n\nHere is the corresponding patch of the ext3 version:\nhttp://kerneltrap.org/mailarchive/linux-kernel/2008/9/9/3239374\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7ffe1ea8949c75ecffb7a4d988bb881a9fa62fbe",
      "tree": "42dc4e7dd16a33ba4c9b74cda41934e1fe27beb5",
      "parents": [
        "44519faf22ad6ce924ad0352d3dc200d9e0b66e8"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:21 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:21 2008 -0400"
      },
      "message": "ext4: add checks for errors from jbd2\n\nIf the journal has aborted due to a checkpointing failure, we\nhave to keep the contents of the journal space.  Otherwise, the\nfilesystem will lose uncheckpointed metadata completely and\nbecome inconsistent.  To avoid this, we need to keep needs_recovery\nflag if checkpoint has failed.\n\nWith this patch, ext4_put_super() detects a checkpointing failure\nfrom the return value of journal_destroy(), then it invokes\next4_abort() to make the filesystem read only and keep\nneeds_recovery flag.  Errors from jbd2_journal_flush() are also\nhandled by this patch in some places.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "03010a3350301baac2154fa66de925ae2981b7e3",
      "tree": "b1af2cecbb540faab4bd67dc1a28ad3384341d72",
      "parents": [
        "39d80c33a068d9fa63a36c3b2c0d718d38440dd1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:02:48 2008 -0400"
      },
      "message": "ext4: Rename ext4dev to ext4\n\nThe ext4 filesystem is getting stable enough that it\u0027s time to drop\nthe \"dev\" prefix.  Also remove the requirement for the TEST_FILESYS\nflag.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39d80c33a068d9fa63a36c3b2c0d718d38440dd1",
      "tree": "6110ca4101f533ced0db2fe18a7834cd8304f0a3",
      "parents": [
        "08a225f143bf3415fef6f3360d922be35da40543"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Oct 06 21:37:44 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 21:37:44 2008 -0400"
      },
      "message": "ext4: Avoid double dirtying of super block in ext4_put_super()\n\nWhile reading code I noticed that ext4_put_super() dirties the \nsuperblock bh twice. It is always done in ext4_commit_super()\ntoo. Remove the redundant dirty operation.\nShould be a nop semantically.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n\n"
    },
    {
      "commit": "6873fa0de14e49c433f1f181c54e511f4f3d459d",
      "tree": "4759862db403c037c11f570f0b2ca5e25198073e",
      "parents": [
        "68c9d702bb72f367f3b148963ec6cf5e07ff7f65"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 07 00:46:36 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 07 00:46:36 2008 -0400"
      },
      "message": "Hook ext4 to the vfs fiemap interface.\n\next4_ext_walk_space() was reinstated to be used for iterating over file\nextents with a callback; it is used by the ext4 fiemap implementation.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: linux-ext4@vger.kernel.org\nCc: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "4d20c685fa365766a8f13584b4c8178a15ab7103",
      "tree": "7a2aaf1b27703818d67d1d7cf544dc72455638d1",
      "parents": [
        "45a90bfd90c1215bf824c0f705b409723f52361b"
      ],
      "author": {
        "name": "Kalpak Shah",
        "email": "kalpak.shah@sun.com",
        "time": "Wed Oct 08 23:21:54 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:21:54 2008 -0400"
      },
      "message": "ext4: fix xattr deadlock\n\next4_xattr_set_handle() eventually ends up calling\next4_mark_inode_dirty() which tries to expand the inode by shifting\nthe EAs.  This leads to the xattr_sem being downed again and leading\nto a deadlock.\n\nThis patch makes sure that if ext4_xattr_set_handle() is in the\ncall-chain, ext4_mark_inode_dirty() will not expand the inode.\n\nSigned-off-by: Kalpak Shah \u003ckalpak.shah@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ede86cc473defab74d778aeac14b19f43129d4d1",
      "tree": "19da8009accf1737171f5949413e46a9086d5fdc",
      "parents": [
        "23f8b79eae8a74e42a006ffa7c456e295c7e1c0d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 05 20:50:06 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 05 20:50:06 2008 -0400"
      },
      "message": "ext4: Add debugging markers that can be used by systemtap\n\nThis debugging markers are designed to debug problems such as the\nrandom filesystem latency problems reported by Arjan.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c806e68f5647109350ec546fee5b526962970fd2",
      "tree": "88f2d467ba95ceb7cbe011c424af83bdfe8a39d6",
      "parents": [
        "c2ea3fde61f1df1dbf062345f23277dcd6f01dfe"
      ],
      "author": {
        "name": "Frederic Bohe",
        "email": "frederic.bohe@bull.net",
        "time": "Fri Oct 10 08:09:18 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 08:09:18 2008 -0400"
      },
      "message": "ext4: fix initialization of UNINIT bitmap blocks\n\nThis fixes a bug which caused on-line resizing of filesystems with a\n1k blocksize to fail.  The root cause of this bug was the fact that if\nan uninitalized bitmap block gets read in by userspace (which\ne2fsprogs does try to avoid, but can happen when the blocksize is less\nthan the pagesize and an adjacent blocks is read into memory)\next4_read_block_bitmap() was erroneously depending on the buffer\nuptodate flag to decide whether it needed to initialize the bitmap\nblock in memory --- i.e., to set the standard set of blocks in use by\na block group (superblock, bitmaps, inode table, etc.).  Essentially,\next4_read_block_bitmap() assumed it was the only routine that might\ntry to read a block containing a block bitmap, which is simply not\ntrue.  \n\nTo fix this, ext4_read_block_bitmap() and ext4_read_inode_bitmap()\nmust always initialize uninitialized bitmap blocks.  Once a block or\ninode is allocated out of that bitmap, it will be marked as\ninitialized in the block group descriptor, so in general this won\u0027t\nresult any extra unnecessary work.\n\nSigned-off-by: Frederic Bohe \u003cfrederic.bohe@bull.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c2ea3fde61f1df1dbf062345f23277dcd6f01dfe",
      "tree": "53ecbf57416326810540494e814c05753bf30874",
      "parents": [
        "240799cdf22bd789ea6852653c3b879d35ad0a6c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:40:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:40:52 2008 -0400"
      },
      "message": "ext4: Remove old legacy block allocator\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "240799cdf22bd789ea6852653c3b879d35ad0a6c",
      "tree": "e696b60cc103f23838b5c14d8d397f692abffbc3",
      "parents": [
        "37515facd001942221d68171c81c1f46d54ffdd0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 23:53:47 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 23:53:47 2008 -0400"
      },
      "message": "ext4: Use readahead when reading an inode from the inode table\n\nWith modern hard drives, reading 64k takes roughly the same time as\nreading a 4k block.  So request readahead for adjacent inode table\nblocks to reduce the time it takes when iterating over directories\n(especially when doing this in htree sort order) in a cold cache case.\nWith this patch, the time it takes to run \"git status\" on a kernel\ntree after flushing the caches via \"echo 3 \u003e /proc/sys/vm/drop_caches\"\nis reduced by 21%.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5e8814f2f74f53d58aa5679bf32b38a7940033fe",
      "tree": "05f70d1d57d20111a57cd35fb971e36f836d24e8",
      "parents": [
        "9f6200bbfc962d8f926278cf5d5ddb90a228c322"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 23 18:07:35 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 23 18:07:35 2008 -0400"
      },
      "message": "ext4: Combine proc file handling into a single set of functions\n\nPreviously mballoc created a separate set of functions for each proc\nfile.  This combines the tunables into a single set of functions which\ngets used for all of the per-superblock proc files, saving\napproximately 2k of compiled object code.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9f6200bbfc962d8f926278cf5d5ddb90a228c322",
      "tree": "86cf42e4f1fff753a38c64d49971efd04bfdd5f9",
      "parents": [
        "f702ba0fd7d50b5f5f5aea5317875a10d40b869f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 23 09:18:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 23 09:18:24 2008 -0400"
      },
      "message": "ext4: move /proc setup and teardown out of mballoc.c\n\n...and into the core setup/teardown code in fs/ext4/super.c so that\nother parts of ext4 can define tuning parameters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f702ba0fd7d50b5f5f5aea5317875a10d40b869f",
      "tree": "bd31cefb5b88b882f4088007482266a3f5ad93ab",
      "parents": [
        "914258bf2cb22bf4336a1b1d90c551b4b11ca5aa"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 22 15:21:01 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 22 15:21:01 2008 -0400"
      },
      "message": "ext4: Don\u0027t use \u0027struct dentry\u0027 for internal lookups\n\nThis is a port of a patch from Linus which fixes a 200+ byte stack\nusage problem in ext4_get_parent().\n\nIt\u0027s more efficient to pass down only the actual parts of the dentry\nthat matter: the parent inode and the name, instead of allocating a\nstruct dentry on the stack.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "914258bf2cb22bf4336a1b1d90c551b4b11ca5aa",
      "tree": "66a3068b53059154b4584166c4b2ce90ae833b42",
      "parents": [
        "730c213c79a638137b47a90624e4bac252f07ae7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 21:35:40 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 21:35:40 2008 -0400"
      },
      "message": "ext4/jbd2: Avoid WARN() messages when failing to write to the superblock\n\nThis fixes some very common warnings reported by kerneloops.org\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "730c213c79a638137b47a90624e4bac252f07ae7",
      "tree": "dd4e5ebd64045721d5834cea52e6edb4de2fe676",
      "parents": [
        "8eea80d52b9d87cfd771055534bd2c24f73704d7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Sep 13 15:23:29 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 15:23:29 2008 -0400"
      },
      "message": "ext4: use percpu data structures for lg_prealloc_list\n\nlg_prealloc_list seems to cry out for a per-cpu data structure; on a large\nsmp system I think this should be better.  I\u0027ve lightly tested this change\non a 4-cpu system.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8eea80d52b9d87cfd771055534bd2c24f73704d7",
      "tree": "7c25e13bbd59cbee49e30005b1f6470cadd092b5",
      "parents": [
        "4db46fc266b84a04b73b7a4c6ebe8a543a62a2ff"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 19:54:35 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 19:54:35 2008 -0400"
      },
      "message": "ext4: Renumber EXT4_IOC_MIGRATE\n\nPick an ioctl number for EXT4_IOC_MIGRATE that won\u0027t conflict with\nother ext4 ioctl\u0027s.  Since there haven\u0027t been any major userspace\nusers of this ioctl, we can afford to change this now, to avoid\npotential problems later.\n\nAlso, reorder the ioctl numbers in ext4.h to avoid this sort of\nmistake in the future.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4db46fc266b84a04b73b7a4c6ebe8a543a62a2ff",
      "tree": "603429d04ff87a2ffbcd311420aa1a2b2ba54d41",
      "parents": [
        "2a43a878001cc5cb7c3c7be2e8dad0a1aeb939b0"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Oct 08 23:34:06 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:34:06 2008 -0400"
      },
      "message": "ext4: hook the ext3 migration interface to the EXT4_IOC_SETFLAGS ioctl\n\nThis patch hooks the ext3 to ext4 migrate interface to\nEXT4_IOC_SETFLAGS ioctl. The userspace interface is via chattr +e.  We\nonly allow setting extent flags.  Clearing extent flag (migrating from\next4 to ext3) is not supported.\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": "2a43a878001cc5cb7c3c7be2e8dad0a1aeb939b0",
      "tree": "a0653e45baefbbe3d4de74087525d1b86292a101",
      "parents": [
        "7ee1ec4ca30c6df8e989615cdaacb75f2af4fa6b"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Sep 13 12:52:26 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 12:52:26 2008 -0400"
      },
      "message": "ext4: elevate write count for migrate ioctl\n\nThe migrate ioctl writes to the filsystem, so we need to elevate the\nwrite count.\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": "7ee1ec4ca30c6df8e989615cdaacb75f2af4fa6b",
      "tree": "6d097319a8020d53543af86dfd19ffbbb0110b6e",
      "parents": [
        "05496769e5da83ce22ed97345afd9c7b71d6bd24"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Sep 08 10:47:19 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 10:47:19 2008 -0400"
      },
      "message": "ext4: add missing unlock in ext4_check_descriptors() on error path\n\nIf there group descriptors are corrupted we need unlock the block\ngroup lock before returning from the function; else we will oops when\nfreeing a spinlock which is still being held.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "05496769e5da83ce22ed97345afd9c7b71d6bd24",
      "tree": "545c4d66296fe69ab24d34fd2f0298fb8ee66e4f",
      "parents": [
        "899fc1a4cf404747de2666534d508804597ee22f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 16 14:36:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 16 14:36:17 2008 -0400"
      },
      "message": "jbd2: clean up how the journal device name is printed\n\nCalculate the journal device name once and stash it away in the\njournal_s structure.  This avoids needing to call bdevname()\neverywhere and reduces stack usage by not needing to allocate an\non-stack buffer.  In addition, we eliminate the \u0027/\u0027 that can appear in\ndevice names (e.g. \"cciss/c0d0p9\" --- see kernel bugzilla #11321) that\ncan cause problems when creating proc directory names, and include the\ninode number to support ocfs2 which creates multiple journals with\ndifferent inode numbers.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "899fc1a4cf404747de2666534d508804597ee22f",
      "tree": "4d3079f33198272fe0dfc6a08fe63dad659a374e",
      "parents": [
        "c62a11fd9555007b1caab83b5bcbb443a43e32bb"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 14 10:21:33 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 14 10:21:33 2008 -0400"
      },
      "message": "ext4: fix #11321: create /proc/ext4/*/stats more carefully\n\next4 creates per-suberblock directory in /proc/ext4/ . Name used as\nbasis is taken from bdevname, which, surprise, can contain slash.\n\nHowever, proc while allowing to use proc_create(\"a/b\", parent) form of\nPDE creation, assumes that parent/a was already created.\n\nbdevname in question is \u0027cciss/c0d0p9\u0027, directory is not created and all\nthis stuff goes directly into /proc (which is real bug).\n\nWarning comes when _second_ partition is mounted.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11321\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c62a11fd9555007b1caab83b5bcbb443a43e32bb",
      "tree": "1bdafd4b2d7911c1148ac68f888eb0d47977b276",
      "parents": [
        "9d9f177572d9e4eba0f2e18523b44f90dd51fe74"
      ],
      "author": {
        "name": "Frederic Bohe",
        "email": "frederic.bohe@bull.net",
        "time": "Mon Sep 08 10:20:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 10:20:24 2008 -0400"
      },
      "message": "Update flex_bg free blocks and free inodes counters when resizing.\n\nThis fixes a bug which prevented the newly created inodes after a\nresize from being used on filesystems with flex_bg.\n\nSigned-off-by: Frederic Bohe \u003cfrederic.bohe@bull.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9d9f177572d9e4eba0f2e18523b44f90dd51fe74",
      "tree": "91104778c9f4bc15fc483e44314733818865b264",
      "parents": [
        "cf17fea6575cb1739552e1d0cb2b446305ee3d0c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Oct 09 11:15:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 11:15:52 2008 -0400"
      },
      "message": "ext4: Avoid printk floods in the face of directory corruption\n\nNote: some people thinks this represents a security bug, since it\nmight make the system go away while it is printing a large number of\nconsole messages, especially if a serial console is involved.  Hence,\nit has been assigned CVE-2008-3528, but it requires that the attacker\neither has physical access to your machine to insert a USB disk with a\ncorrupted filesystem image (at which point why not just hit the power\nbutton), or is otherwise able to convince the system administrator to\nmount an arbitrary filesystem image (at which point why not just\ninclude a setuid shell or world-writable hard disk device file or some\nsuch).  Me, I think they\u0027re just being silly. --tytso\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: linux-ext4@vger.kernel.org\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\n"
    },
    {
      "commit": "cf17fea6575cb1739552e1d0cb2b446305ee3d0c",
      "tree": "319e1044e271aeb31ad14847f369776ac5db74db",
      "parents": [
        "ae4d537211ff250a8c23c4f1227c4276cd2508ab"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Sep 13 13:06:18 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 13:06:18 2008 -0400"
      },
      "message": "ext4: Properly update i_disksize.\n\nWith delayed allocation we use i_data_sem to update i_disksize.  We need\nto update i_disksize only if the new size specified is greater than the\ncurrent value and we need to make sure we don\u0027t race with other\ni_disksize update.  With delayed allocation we will switch to the\nwrite_begin function for non-delayed allocation if we are low on free\nblocks.  This means the write_begin function for non-delayed allocation\nalso needs to use the same locking.\n\nWe also need to check and update i_disksize even if the new size is less\nthat inode.i_size because of delayed allocation.\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": "ae4d537211ff250a8c23c4f1227c4276cd2508ab",
      "tree": "58aeb4ba30d0ae5b3bff93933200001349547721",
      "parents": [
        "df22291ff0fde0d350cf15dac3e5cc33ac528875"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Sep 13 13:10:25 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 13 13:10:25 2008 -0400"
      },
      "message": "ext4: truncate block allocated on a failed ext4_write_begin\n\nFor blocksize \u003c pagesize we need to remove blocks that got allocated in\nblock_write_begin() if we fail with ENOSPC for later blocks.\nblock_write_begin() internally does this if it allocated pages locally.\nThis makes sure we don\u0027t have blocks outside inode.i_size during ENOSPC.\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": "df22291ff0fde0d350cf15dac3e5cc33ac528875",
      "tree": "723d781b430e7ab796b67eec4e956b6a2e47bf93",
      "parents": [
        "166348dd37a4baacfb6fe495954b56f56b116f0c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:05:34 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:05:34 2008 -0400"
      },
      "message": "ext4: Retry block allocation if we have free blocks left\n\nWhen we truncate files, the meta-data blocks released are not reused\nuntill we commit the truncate transaction.  That means delayed get_block\nrequest will return ENOSPC even if we have free blocks left.  Force a\njournal commit and retry block allocation if we get ENOSPC with free\nblocks left.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "166348dd37a4baacfb6fe495954b56f56b116f0c",
      "tree": "afb36ca25ec3bdbd4397a5b952bc78be1e5feff9",
      "parents": [
        "68629f29c6764c37ebdceec2f6bbef6637eaf420"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:08:40 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:08:40 2008 -0400"
      },
      "message": "ext4: Don\u0027t add the inode to journal handle until after the block is allocated\n    \nMake sure we don\u0027t add the inode to the journal handle until after the\nblock allocation, so that a journal commit will not include the inode in\ncase of block allocation failure.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "68629f29c6764c37ebdceec2f6bbef6637eaf420",
      "tree": "ed3a3c537c6a3c0dc2e2b1937ca5b66dc4b4e370",
      "parents": [
        "5c79161689aede2d487d707d5931a22eadf66120"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:09:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:09:17 2008 -0400"
      },
      "message": "ext4: Fix ext4 nomballoc allocator for ENOSPC\n\nWe run into ENOSPC error on nonmballoc ext4, even when there is free blocks\non the filesystem.\n\nThe patch includes two changes:\n\na) Set reservation to NULL if we trying to allocate near group_target_block\nfrom the goal group if the free block in the group is less than windows.\nThis should give us a better chance to allocate near group_target_block.\nThis also ensures that if we are not allocating near group_target_block\nthen we don\u0027t trun off reservation. This should enable us to allocate\nwith reservation from other groups that have large free blocks count.\n\nb) we don\u0027t need to check the window size if the block reservation is off.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5c79161689aede2d487d707d5931a22eadf66120",
      "tree": "994177ca7118a515d23f0375ab080c216159d9c8",
      "parents": [
        "79f0be8d2e6ebde27dfb3beff18eb689d5c4e36c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Oct 08 23:12:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:12:24 2008 -0400"
      },
      "message": "ext4: Signed arithmetic fix\n\nThis patch converts some usage of ext4_fsblk_t to s64.  This is needed\nso that some of the sign conversion works as expected in if loops.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "79f0be8d2e6ebde27dfb3beff18eb689d5c4e36c",
      "tree": "7ddadff1a3f0f4f6814104aed42f20c52a7f5f24",
      "parents": [
        "6bc6e63fcd7dac9e633ea29f1fddd9580ab28f3f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Oct 08 23:13:30 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:13:30 2008 -0400"
      },
      "message": "ext4: Switch to non delalloc mode when we are low on free blocks count.\n\nThe delayed allocation code allocates blocks during writepages(), which\ncan not handle block allocation failures.  To deal with this, we switch\naway from delayed allocation mode when we are running low on free\nblocks.  This also allows us to avoid needing to reserve a large number\nof meta-data blocks in case all of the requested blocks are\ndiscontiguous.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "6bc6e63fcd7dac9e633ea29f1fddd9580ab28f3f",
      "tree": "144d53023af5faeb94b9b3aa28e186a33e6c5b98",
      "parents": [
        "030ba6bc67b4f2bc5cd174f57785a1745c929abe"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Oct 10 09:39:00 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:39:00 2008 -0400"
      },
      "message": "ext4: Add percpu dirty block accounting.\n\nThis patch adds dirty block accounting using percpu_counters.  Delayed\nallocation block reservation is now done by updating dirty block\ncounter.  In a later patch we switch to non delalloc mode if the\nfilesystem free blocks is greater than 150% of total filesystem dirty\nblocks\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao\u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "030ba6bc67b4f2bc5cd174f57785a1745c929abe",
      "tree": "14c57b4f6f8afddac0bd2415bfa050fba8d25980",
      "parents": [
        "a30d542a0035b886ffaafd0057ced0a2b28c3a4f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:14:50 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:14:50 2008 -0400"
      },
      "message": "ext4: Retry block reservation\n\nDuring block reservation if we don\u0027t have enough blocks left, retry\nblock reservation with smaller block counts.  This makes sure we try\nfallocate and DIO with smaller request size and don\u0027t fail early.  The\ndelayed allocation reservation cannot try with smaller block count. So\nretry block reservation to handle temporary disk full conditions.  Also\nprint free blocks details if we fail block allocation during writepages.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a30d542a0035b886ffaafd0057ced0a2b28c3a4f",
      "tree": "9e677eaf4eb1611701828554b27a1b0b0ae523fd",
      "parents": [
        "c4a0c46ec92c194c873232b88debce4e1a448483"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Oct 09 10:56:23 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 10:56:23 2008 -0400"
      },
      "message": "ext4: Make sure all the block allocation paths reserve blocks\n\nWith delayed allocation we need to make sure block are reserved before\nwe attempt to allocate them. Otherwise we get block allocation failure\n(ENOSPC) during writepages which cannot be handled. This would mean\nsilent data loss (We do a printk stating data will be lost). This patch\nupdates the DIO and fallocate code path to do block reservation before\nblock allocation. This is needed to make sure parallel DIO and fallocate\nrequest doesn\u0027t take block out of delayed reserve space.\n\nWhen free blocks count go below a threshold we switch to a slow patch\nwhich looks at other CPU\u0027s accumulated percpu counter values.\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": "c4a0c46ec92c194c873232b88debce4e1a448483",
      "tree": "ebde1cc191b1af97bcd9189067b23205fa6cefdc",
      "parents": [
        "af5bc92dded4d98dfeabc8b5b9812571345b263d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 21:08:18 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:08:18 2008 -0400"
      },
      "message": "ext4: invalidate pages if delalloc block allocation fails.\n\nWe are a bit agressive in invalidating all the pages. But\nit is ok because we really don\u0027t know why the block allocation\nfailed and it is better to come of the writeback path\nso that user can look for more info.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "af5bc92dded4d98dfeabc8b5b9812571345b263d",
      "tree": "5cfaf27e673a09d3ad1341c175559be0a3ea990d",
      "parents": [
        "e5f8eab8851dff162e7ade46f084cb8575dc45f7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "message": "ext4: Fix whitespace checkpatch warnings/errors\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e5f8eab8851dff162e7ade46f084cb8575dc45f7",
      "tree": "d6404da53828fbfa7c84166ff0914ad06b0e12a0",
      "parents": [
        "4776004f54e4190e104caf620fd0fa5909412236"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:04 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:04 2008 -0400"
      },
      "message": "ext4: Fix long long checkpatch warnings\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4776004f54e4190e104caf620fd0fa5909412236",
      "tree": "ebd37cb847d58d434ad4ea3bd98c77256f05347e",
      "parents": [
        "1f7c14c62ce63805f9574664a6c6de3633d4a354"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "message": "ext4: Add printk priority levels to clean up checkpatch warnings\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "1f7c14c62ce63805f9574664a6c6de3633d4a354",
      "tree": "68f9f5399bc64bf7fe87dae16d8cc287717208bf",
      "parents": [
        "3fa8749e584b55f1180411ab1b51117190bac1e5"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu Oct 09 12:50:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 12:50:59 2008 -0400"
      },
      "message": "percpu counter: clean up percpu_counter_sum_and_set()\n\npercpu_counter_sum_and_set() and percpu_counter_sum() is the same except\nthe former updates the global counter after accounting.  Since we are\ntaking the fbc-\u003elock to calculate the precise value of the counter in\npercpu_counter_sum() anyway, it should simply set fbc-\u003ecount too, as the\npercpu_counter_sum_and_set() does.\n\nThis patch merges these two interfaces into one.\n \nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5e745b041f2ccad63077118b40468521306f3962",
      "tree": "2a4d53c884f92899ee8e4f541c32861a4a577e1d",
      "parents": [
        "91246c009094142f95ecc7573b7caed2bcef52c7"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Aug 18 18:00:57 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 18 18:00:57 2008 -0400"
      },
      "message": "ext4: Fix small file fragmentation\n\nFor small file block allocations, mballoc uses per cpu prealloc\nspace.  Use goal block when searching for the right prealloc\nspace.  Also make sure ext4_da_writepages tries to write\nall the pages for small files in single attempt\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": "91246c009094142f95ecc7573b7caed2bcef52c7",
      "tree": "df84e815f9441f24558cf5d22dcc61d8b222497e",
      "parents": [
        "16eb72956496594d023a7d7cd14a86404ad195ad"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 21:14:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:14:52 2008 -0400"
      },
      "message": "ext4: Initialize writeback_index to 0 when allocating a new inode\n\nThe write_cache_pages() function uses the mapping-\u003ewriteback_index as\nthe starting index to write out when range_cyclic is set.  Properly\ninitialize writeback_index so that we start the writeout at index 0.\n\nThis was found when debugging the small file fragmentation on ext4.\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": "16eb72956496594d023a7d7cd14a86404ad195ad",
      "tree": "1fed199d788b33be4b329a58e5b6946f41ee6a20",
      "parents": [
        "525f4ed8dcb72c71b306a78ecbf06f41d08fe441"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 21:16:54 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:16:54 2008 -0400"
      },
      "message": "ext4: make sure ext4_has_free_blocks returns 0 for ENOSPC\n\nFix ext4_has_free_blocks() to return 0 when we don\u0027t have enough space.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "525f4ed8dcb72c71b306a78ecbf06f41d08fe441",
      "tree": "d4d74dc7b109c5d74fa955970a8528ec90e20b06",
      "parents": [
        "a1d6cc563bfdf1bf2829d3e6ce4d8b774251796b"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Aug 19 22:15:58 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:15:58 2008 -0400"
      },
      "message": "ext4: journal credit fix for the delayed allocation\u0027s writepages() function\n\nPrevious delalloc writepages implementation started a new transaction\noutside of a loop which called get_block() to do the block allocation.\nSince we didn\u0027t know exactly how many blocks would need to be allocated,\nthe estimated journal credits required was very conservative and caused\nmany issues.\n\nWith the reworked delayed allocation, a new transaction is created for\neach get_block(), thus we don\u0027t need to guess how many credits for the\nmultiple chunk of allocation.  We start every transaction with enough\ncredits for inserting a single exent.  When estimate the credits for\nindirect blocks to allocate a chunk of blocks, we need to know the\nnumber of data blocks to allocate.  We use the total number of reserved\ndelalloc datablocks; if that is too big, for non-extent files, we need\nto limit the number of blocks to EXT4_MAX_TRANS_BLOCKS.\n\nCode cleanup from Aneesh.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-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": "a1d6cc563bfdf1bf2829d3e6ce4d8b774251796b",
      "tree": "ee81b6842191beb85f3f3baab817d115633ba456",
      "parents": [
        "f3bd1f3fa8ca7ec70cfd87aa94dc5e1a260901f2"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 21:55:02 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:55:02 2008 -0400"
      },
      "message": "ext4: Rework the ext4_da_writepages() function\n\nWith the below changes we reserve credit needed to insert only one\nextent resulting from a call to single get_block.  This makes sure we\ndon\u0027t take too much journal credits during writeout.  We also don\u0027t\nlimit the pages to write.  That means we loop through the dirty pages\nbuilding largest possible contiguous block request.  Then we issue a\nsingle get_block request.  We may get less block that we requested.  If\nso we would end up not mapping some of the buffer_heads.  That means\nthose buffer_heads are still marked delay.  Later in the writepage\ncallback via __mpage_writepage we redirty those pages.\n\nWe should also not limit/throttle wbc-\u003enr_to_write in the filesystem\nwritepages callback. That cause wrong behaviour in\ngeneric_sync_sb_inodes caused by wbc-\u003enr_to_write being \u003c\u003d 0\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f3bd1f3fa8ca7ec70cfd87aa94dc5e1a260901f2",
      "tree": "a0f0ce2e044f8a75009e94d5f788b45a3948bbe3",
      "parents": [
        "ee12b630687d510f6f4b6d4acdc4e267fd4adeda"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Aug 19 22:16:03 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:16:03 2008 -0400"
      },
      "message": "ext4: journal credits reservation fixes for DIO, fallocate\n\nDIO and fallocate credit calculation is different than writepage, as\nthey do start a new journal right for each call to ext4_get_blocks_wrap().\nThis patch uses the helper function in DIO and fallocate case, passing\na flag indicating that the modified data are contigous thus could account\nless indirect/index blocks.\n\nThis patch also fixed the journal credit reservation for direct I/O\n(DIO).  Previously the estimated credits for DIO only was calculated for\nnon-extent files, which was not enough if the file is extent-based.\n\nAlso fixed was fallocate double-counting credits for modifying the the\nsuperblock.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ee12b630687d510f6f4b6d4acdc4e267fd4adeda",
      "tree": "8dd253073c5e811751bf1bb479fb03f772e42406",
      "parents": [
        "a02908f19c819aeec5e3dcf238adaa6deddd70b0"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Aug 19 22:16:05 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:16:05 2008 -0400"
      },
      "message": "ext4: journal credits reservation fixes for extent file writepage\n\nThis patch modified the writepage/write_begin credit calculation for\nextent files, to use the credits caculation helper function.\n\nThe current calculation of how many index/leaf blocks should be\naccounted is too conservetive, it always considered the worse case,\nwhere the tree level is 5, and in the case of multiple chunk\nallocations, it always assumed no blocks were dirtied in common across\nthe allocations. This path uses the accurate depth of the inode with\nsome extras to calculate the index blocks, and also less conservative in\nthe case of multiple allocation accounting.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a02908f19c819aeec5e3dcf238adaa6deddd70b0",
      "tree": "78764672019b22a5a8925abc702d7c54244138e8",
      "parents": [
        "c001077f4003fa75793bb62979baa6241dd8eb19"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Aug 19 22:16:07 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:16:07 2008 -0400"
      },
      "message": "ext4: journal credits calulation cleanup and fix for non-extent writepage\n\nWhen considering how many journal credits are needed for modifying a\nchunk of data, we need to account for the super block, inode block,\nquota blocks and xattr block, indirect/index blocks, also, group bitmap\nand group descriptor blocks for new allocation (including data and\nindirect/index blocks). There are many places in ext4 do the calculation\non their own and often missed one or two meta blocks, and often they\nassume single block allocation, and did not considering the multile\nchunk of allocation case.\n\nThis patch is trying to cleanup current journal credit code, provides\nsome common helper funtion to calculate the journal credits, to be used\nfor writepage, writepages, DIO, fallocate, migration, defrag, and for\nboth nonextent and extent files.\n\nThis patch modified the writepage/write_begin credit caculation for\nnonextent files, to use the new helper function. It also fixed the\nproblem that writepage on nonextent files did not consider the case\nblocksize \u003cpagesize, thus could possibelly need multiple block\nallocation in a single transaction.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c001077f4003fa75793bb62979baa6241dd8eb19",
      "tree": "74d37ab68e3cfe514b8a46bd8324ba713bdc605f",
      "parents": [
        "37609fd5ae62db75026d9f53096a1fbc35e040d9"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Aug 19 22:19:50 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:19:50 2008 -0400"
      },
      "message": "ext4: Fix bug where we return ENOSPC even though we have plenty of inodes\n\nThe find_group_flex() function starts with best_flex as the\nparent_fbg_group, which happens to have 0 inodes free.  Some of the\nflex groups searched have free blocks and free inodes, but the\nflex_freeb_ratio is \u003c 10, so they\u0027re skipped.  Then when a group is\ncompared to the current \"best\" flex group, it does not have more free\nblocks than \"best\", so it is skipped as well.\n\nThis continues until no flex group with free inodes is found which has\na proper ratio or which has more free blocks than the \"best\" group,\nand we\u0027re left with a \"best\" group that has 0 inodes free, and we\nreturn -ENOSPC.\n\nWe fix this by changing the logic so that if the current \"best\" flex\ngroup has no inodes free, and the current one does have room, it is\npromoted to the next \"best.\"\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "37609fd5ae62db75026d9f53096a1fbc35e040d9",
      "tree": "e9c021770b73fd407f2caaa38e3db74d4d76a564",
      "parents": [
        "88aa3cff4e9a38b953de9fbc54c96e619a2bb9f9"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Tue Aug 19 22:13:41 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:13:41 2008 -0400"
      },
      "message": "ext4: don\u0027t try to resize if there are no reserved gdt blocks left\n\nWhen trying to resize an ext4 fs and you run out of reserved gdt blocks,\nyou get an error that doesn\u0027t actually tell you what went wrong, it just\nsays that the gdb it picked is not correct, which is the case since you\ndon\u0027t have any reserved gdt blocks left.  This patch adds a check to make\nsure you have reserved gdt blocks to use, and if not prints out a more\nrelevant error.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "88aa3cff4e9a38b953de9fbc54c96e619a2bb9f9",
      "tree": "2905089c0d20ef7a6017d40acbe887148f3cd1fa",
      "parents": [
        "d015641734cde55d2fce48a6db3983c8a029fe05"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 16 07:57:35 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 16 07:57:35 2008 -0400"
      },
      "message": "ext4: Use ext4_discard_reservations instead of mballoc-specific call\n\nIn ext4_ext_truncate(), we should use the more generic\next4_discard_reservations() call so we do the right thing when the\nfilesystem is mounted with the nomballoc option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "d015641734cde55d2fce48a6db3983c8a029fe05",
      "tree": "af2f6f0ef56d3b525227196f0caed1fb19ab4014",
      "parents": [
        "cd21322616c3af265d39bf15321d436e667a5dd1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:57:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:57:43 2008 -0400"
      },
      "message": "ext4: Fix ext4_dx_readdir hash collision handling\n\nThis fixes a bug where readdir() would return a directory entry twice\nif there was a hash collision in an hash tree indexed directory.\n\nSigned-off-by: Eugene Dashevsky \u003ceugene@ibrix.com\u003e\nSigned-off-by: Mike Snitzer \u003cmsnitzer@ibrix.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cd21322616c3af265d39bf15321d436e667a5dd1",
      "tree": "2e293b838191785a0ecf3b19f204731c73589139",
      "parents": [
        "b4df2030858bde986cb6ff2e4b45945f84649e32"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Aug 19 22:16:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:16:59 2008 -0400"
      },
      "message": "ext4: Fix delalloc release block reservation for truncate\n\nExt4 will release the reserved blocks for delayed allocations when\ninode is truncated/unlinked.  If there is no reserved block at all, we\nshouldn\u0027t need to do so.  But current code still tries to release the\nreserved blocks regardless whether the counters\u0027s value is 0.\nContinue to do that causes the later calculation to go wrong and a\nkernel BUG_ON() caught that. This doesn\u0027t happen for extent-based\nfiles, as the calculation for 0 reserved blocks was right for extent\nbased file.\n\nThis patch fixed the kernel BUG() due to above reason.  It adds checks\nfor 0 to avoid unnecessary release and fix calculation for non-extent\nfiles.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b4df2030858bde986cb6ff2e4b45945f84649e32",
      "tree": "3f078df884f234383c6708ddc54695700f270417",
      "parents": [
        "bf068ee266f9dbaa6dacb8433a366bb399e7ae5b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 13 21:44:34 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 13 21:44:34 2008 -0400"
      },
      "message": "ext4: Fix potential truncate BUG due to i_prealloc_list being non-empty\n\nWe need to call ext4_discard_reservation() earlier in ext4_truncate(),\nto avoid a BUG() in ext4_mb_return_to_preallocation(), which is called\n(ultimately) by ext4_free_blocks().  So we must ditch the blocks on\ni_prealloc_list before we start freeing the data blocks.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bf068ee266f9dbaa6dacb8433a366bb399e7ae5b",
      "tree": "dbbf7b4b8a65fd74bdb478bd62e94e5a79f41041",
      "parents": [
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 22:16:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 22:16:43 2008 -0400"
      },
      "message": "ext4: Handle unwritten extent properly with delayed allocation\n\nWhen using fallocate the buffer_heads are marked unwritten and unmapped.\nWe need to map them in the writepages after a get_block.  Otherwise we\nsplit the uninit extents, but never write the content to disk.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8f616cd5249e03c9e1b371623d85e76d4b86bbc1",
      "tree": "94cbd990ac45743ac75203a7e1bd6a8fb63c5bc2",
      "parents": [
        "7e31aa11fc672bbe0dd0da59513c9efe3809ced7",
        "7d55992d60caa390460bad1a974eb2b3c11538f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 03 10:50:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 03 10:50:44 2008 -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: remove write-only variables from ext4_ordered_write_end\n  ext4: unexport jbd2_journal_update_superblock\n  ext4: Cleanup whitespace and other miscellaneous style issues\n  ext4: improve ext4_fill_flex_info() a bit\n  ext4: Cleanup the block reservation code path\n  ext4: don\u0027t assume extents can\u0027t cross block groups when truncating\n  ext4: Fix lack of credits BUG() when deleting a badly fragmented inode\n  ext4: Fix ext4_ext_journal_restart()\n  ext4: fix ext4_da_write_begin error path\n  jbd2: don\u0027t abort if flushing file data failed\n  ext4: don\u0027t read inode block if the buffer has a write error\n  ext4: Don\u0027t allow lg prealloc list to be grow large.\n  ext4: Convert the usage of NR_CPUS to nr_cpu_ids.\n  ext4: Improve error handling in mballoc\n  ext4: lock block groups when initializing\n  ext4: sync up block and inode bitmap reading functions\n  ext4: Allow read/only mounts with corrupted block group checksums\n  ext4: Fix data corruption when writing to prealloc area\n"
    },
    {
      "commit": "7d55992d60caa390460bad1a974eb2b3c11538f4",
      "tree": "587447550232932e083074eaf6f486bfba27fcf8",
      "parents": [
        "00b32b7fb671e797bdd2736524a497f18a8df7bf"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 21:22:18 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:22:18 2008 -0400"
      },
      "message": "ext4: remove write-only variables from ext4_ordered_write_end\n\nThe variables \u0027from\u0027 and \u0027to\u0027 are not used anywhere.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "77e69dac3cefacee939cb107ae9cd520a62338e0",
      "tree": "02ddee5ac85ceb632eab2aff994ffbd3233e51eb",
      "parents": [
        "1b7e190b4764ea3ca1080404dd593eae5230d2b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 04:29:18 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:25 2008 -0400"
      },
      "message": "[PATCH] fix races and leaks in vfs_quota_on() users\n\n* new helper: vfs_quota_on_path(); equivalent of vfs_quota_on() sans the\n  pathname resolution.\n* callers of vfs_quota_on() that do their own pathname resolution and\n  checks based on it are switched to vfs_quota_on_path(); that way we\n  avoid the races.\n* reiserfs leaked dentry/vfsmount references on several failure exits.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8ab22b9abb5c55413802e4adc9aa6223324547c3",
      "tree": "cff3319e1275e8a7c083d492889ec6bd0c7712d3",
      "parents": [
        "d84a52f62f6a396ed77aa0052da74ca9e760b28a"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Mon Jul 28 15:46:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "vfs: pagecache usage optimization for pagesize!\u003dblocksize\n\nWhen we read some part of a file through pagecache, if there is a\npagecache of corresponding index but this page is not uptodate, read IO\nis issued and this page will be uptodate.\n\nI think this is good for pagesize \u003d\u003d blocksize environment but there is\nroom for improvement on pagesize !\u003d blocksize environment.  Because in\nthis case a page can have multiple buffers and even if a page is not\nuptodate, some buffers can be uptodate.\n\nSo I suggest that when all buffers which correspond to a part of a file\nthat we want to read are uptodate, use this pagecache and copy data from\nthis pagecache to user buffer even if a page is not uptodate.  This can\nreduce read IO and improve system throughput.\n\nI wrote a benchmark program and got result number with this program.\n\nThis benchmark do:\n\n  1: mount and open a test file.\n\n  2: create a 512MB file.\n\n  3: close a file and umount.\n\n  4: mount and again open a test file.\n\n  5: pwrite randomly 300000 times on a test file.  offset is aligned\n     by IO size(1024bytes).\n\n  6: measure time of preading randomly 100000 times on a test file.\n\nThe result was:\n\t2.6.26\n        330 sec\n\n\t2.6.26-patched\n        226 sec\n\nArch:i386\nFilesystem:ext3\nBlocksize:1024 bytes\nMemory: 1GB\n\nOn ext3/4, a file is written through buffer/block.  So random read/write\nmixed workloads or random read after random write workloads are optimized\nwith this patch under pagesize !\u003d blocksize environment.  This test result\nshowed this.\n\nThe benchmark program is as follows:\n\n#include \u003cstdio.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/mount.h\u003e\n\n#define LEN 1024\n#define LOOP 1024*512 /* 512MB */\n\nmain(void)\n{\n\tunsigned long i, offset, filesize;\n\tint fd;\n\tchar buf[LEN];\n\ttime_t t1, t2;\n\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tmemset(buf, 0, LEN);\n\tfd \u003d open(\"/root/test1/testfile\", O_CREAT|O_RDWR|O_TRUNC);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\tfor (i \u003d 0; i \u003c LOOP; i++)\n\t\twrite(fd, buf, LEN);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n\tif (mount(\"/dev/sda1\", \"/root/test1/\", \"ext3\", 0, 0) \u003c 0) {\n\t\tperror(\"cannot mount\\n\");\n\t\texit(1);\n\t}\n\tfd \u003d open(\"/root/test1/testfile\", O_RDWR);\n\tif (fd \u003c 0) {\n\t\tperror(\"cannot open file\\n\");\n\t\texit(1);\n\t}\n\n\tfilesize \u003d LEN * LOOP;\n\tfor (i \u003d 0; i \u003c 300000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpwrite(fd, buf, LEN, offset);\n\t}\n\tprintf(\"start test\\n\");\n\ttime(\u0026t1);\n\tfor (i \u003d 0; i \u003c 100000; i++){\n\t\toffset \u003d (random() % filesize) \u0026 (~(LEN - 1));\n\t\tpread(fd, buf, LEN, offset);\n\t}\n\ttime(\u0026t2);\n\tprintf(\"%ld sec\\n\", t2-t1);\n\tclose(fd);\n\tif (umount(\"/root/test1/\") \u003c 0) {\n\t\tperror(\"cannot umount\\n\");\n\t\texit(1);\n\t}\n}\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2b2d6d019724de6e51ac5bcf22b5ef969daefa8b",
      "tree": "71145b61b73b200fd3d4bae520bb988f5f7d21f5",
      "parents": [
        "ec05e868ac80cc8fc7de6e5cf773b232198e49af"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 16:15:44 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 16:15:44 2008 -0400"
      },
      "message": "ext4: Cleanup whitespace and other miscellaneous style issues\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec05e868ac80cc8fc7de6e5cf773b232198e49af",
      "tree": "3c57bd99439e1e9559a0ddf755e2a8be1bcb4676",
      "parents": [
        "12219aea6b944e36795267be31d43f9c484841be"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 24 12:49:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jul 24 12:49:59 2008 -0400"
      },
      "message": "ext4: improve ext4_fill_flex_info() a bit\n\n- use kzalloc() instead of kmalloc() + memset()\n- improve a printk info\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "12219aea6b944e36795267be31d43f9c484841be",
      "tree": "0a9970929358fc8f0105334f2969888ecdf894e6",
      "parents": [
        "34071da71a665d8c81e3b3467c9a2e7c56386fec"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Jul 17 16:12:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jul 17 16:12:08 2008 -0400"
      },
      "message": "ext4: Cleanup the block reservation code path\n\nThe truncate patch should not use the i_allocated_meta_blocks\nvalue. So add seperate functions to be used in the truncate\nand alloc path. We also need to release the meta-data block\nthat we reserved for the blocks that we are truncating.\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\n"
    },
    {
      "commit": "34071da71a665d8c81e3b3467c9a2e7c56386fec",
      "tree": "bf737db477d20e4f748eccfcf13a28e428a7e04b",
      "parents": [
        "bc965ab3f2b4b7bb898b11d61d25295c2053b8ac"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 01 21:59:19 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 01 21:59:19 2008 -0400"
      },
      "message": "ext4: don\u0027t assume extents can\u0027t cross block groups when truncating\n\nWith the FLEX_BG layout, there is no reason why extents can\u0027t cross\nblock groups, so make the truncate code reserve enough credits so we\ndon\u0027t BUG if we come across such an extent.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bc965ab3f2b4b7bb898b11d61d25295c2053b8ac",
      "tree": "7f8cbd4e5d9c2a4e63fb35d5444f77bfb667c00f",
      "parents": [
        "0123c93998511978556b03d2bb023af92aa24d55"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:10:38 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:10:38 2008 -0400"
      },
      "message": "ext4: Fix lack of credits BUG() when deleting a badly fragmented inode\n\nThe extents codepath for ext4_truncate() requests journal transaction\ncredits in very small chunks, requesting only what is needed.  This\nmeans there may not be enough credits left on the transaction handle\nafter ext4_truncate() returns and then when ext4_delete_inode() tries\nfinish up its work, it may not have enough transaction credits,\ncausing a BUG() oops in the jbd2 core.\n\nAlso, reserve an extra 2 blocks when starting an ext4_delete_inode()\nsince we need to update the inode bitmap, as well as update the\norphaned inode linked list.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "0123c93998511978556b03d2bb023af92aa24d55",
      "tree": "ec01472f1c23b046fe25c1c2b4e2d4d054a5d163",
      "parents": [
        "d5a0d4f732af3438e592efab4cb80076d1dd81b5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 01 20:57:54 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 01 20:57:54 2008 -0400"
      },
      "message": "ext4: Fix ext4_ext_journal_restart()\n\nThe ext4_ext_journal_restart() is a convenience function which checks\nto see if the requested number of credits is present, and if so it\ncloses the current transaction and attaches the current handle to the\nnew transaction.  Unfortunately, it wasn\u0027t proprely checking the\nreturn value from ext4_journal_extend(), so it was starting a new\ntransaction when one was not necessary, and returning an error when\nall that was necessary was to restart the handle with a new\ntransaction.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d5a0d4f732af3438e592efab4cb80076d1dd81b5",
      "tree": "f156408767d8f59ecf991b3f71b51531c04d8f06",
      "parents": [
        "e9e34f4e8f42177c66754fec1edfd35e70c18f99"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 18:51:06 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 18:51:06 2008 -0400"
      },
      "message": "ext4: fix ext4_da_write_begin error path\n\next4_da_write_begin needs to call journal_stop before returning,\nif the page allocation fails.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9c83a923c67df311c467ec956009f0eb4019195d",
      "tree": "fbe6cbcfae2406ebbd842859ae445aa6f59276b6",
      "parents": [
        "6be2ded1d7c51b39144b9f07d2c839e1bd8707f1"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Sat Jul 26 16:39:26 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 16:39:26 2008 -0400"
      },
      "message": "ext4: don\u0027t read inode block if the buffer has a write error\n\nA transient I/O error can corrupt inode data.  Here is the scenario:\n\n(1) update inode_A at the block_B\n(2) pdflush writes out new inode_A to the filesystem, but it results\n    in write I/O error, at this point, BH_Uptodate flag of the buffer\n    for block_B is cleared and BH_Write_EIO is set\n(3) create new inode_C which located at block_B, and\n    __ext4_get_inode_loc() tries to read on-disk block_B because the\n    buffer is not uptodate\n(4) if it can read on-disk block_B successfully, inode_A is\n    overwritten by old data\n\nThis patch makes __ext4_get_inode_loc() not read the inode block if the\nbuffer has BH_Write_EIO flag.  In this case, the buffer should have the\nlatest information, so setting the uptodate flag to the buffer (this\navoids WARN_ON_ONCE() in mark_buffer_dirty().)\n\nAccording to this change, we would need to test BH_Write_EIO flag for the\nerror checking.  Currently nobody checks write I/O errors on metadata\nbuffers, but it will be done in other patches I\u0027m working on.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: sugita \u003cyumiko.sugita.yf@hitachi.com\u003e\nCc: Satoshi OSHIMA \u003csatoshi.oshima.fk@hitachi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "6be2ded1d7c51b39144b9f07d2c839e1bd8707f1",
      "tree": "aed3b1a8a0ebb8d62152a469953d970926988392",
      "parents": [
        "1320cbcf771a20b44cf580712b843d213ae75cd3"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jul 23 14:14:05 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 23 14:14:05 2008 -0400"
      },
      "message": "ext4: Don\u0027t allow lg prealloc list to be grow large.\n\nCurrently, the locality group prealloc list is freed only when there\nis a block allocation failure. This can result in large number of\nentries in the preallocation list making ext4_mb_use_preallocated()\nexpensive.\n\nTo fix this, we convert the locality group prealloc list to a hash\nlist. The hash index is the order of number of blocks in the prealloc\nspace with a max order of 9. When adding prealloc space to the list we\nmake sure total entries for each order does not exceed 8. If it is\nmore than 8 we discard few entries and make sure the we have only \u003c\u003d 5\nentries.\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\n"
    },
    {
      "commit": "1320cbcf771a20b44cf580712b843d213ae75cd3",
      "tree": "b9fe57806ea505614f9587aa70956d9ea0fcbca5",
      "parents": [
        "ce89f46cb833f89c58a08240faa6b5e963086b8a"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jul 23 14:09:26 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 23 14:09:26 2008 -0400"
      },
      "message": "ext4: Convert the usage of NR_CPUS to nr_cpu_ids.\n\nNR_CPUS can be really large. We should be using nr_cpu_ids instead.\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\n"
    },
    {
      "commit": "ce89f46cb833f89c58a08240faa6b5e963086b8a",
      "tree": "c5743d9b16622610595db5fad891ae9f088d04ee",
      "parents": [
        "b5f10eed8125702929e57cca7e5956b1b9b6d015"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jul 23 14:09:29 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 23 14:09:29 2008 -0400"
      },
      "message": "ext4: Improve error handling in mballoc\n\nDon\u0027t call BUG_ON on file system failures. Instead use ext4_error and\nalso handle the continue case properly.\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\n"
    },
    {
      "commit": "b5f10eed8125702929e57cca7e5956b1b9b6d015",
      "tree": "e5b38a6f654baea3658bf100320a4d66387988a3",
      "parents": [
        "e29d1cde63be0b5f1739416b5574a83c34bf8eeb"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 21:21:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:21:08 2008 -0400"
      },
      "message": "ext4: lock block groups when initializing\n\nI noticed when filling a 1T filesystem with 4 threads using the\nfs_mark benchmark:\n\nfs_mark -d /mnt/test -D 256 -n 100000 -t 4 -s 20480 -F -S 0\n\nthat I occasionally got checksum mismatch errors:\n\nEXT4-fs error (device sdb): ext4_init_inode_bitmap: Checksum bad for group 6935\n\netc.  I\u0027d reliably get 4-5 of them during the run.\n\nIt appears that the problem is likely a race to init the bg\u0027s\nwhen the uninit_bg feature is enabled.\n\nWith the patch below, which adds sb_bgl_locking around initialization,\nI was able to complete several runs with no errors or warnings.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e29d1cde63be0b5f1739416b5574a83c34bf8eeb",
      "tree": "86f2951e96888a1bd9cdb39ad4b2cb4e88893d95",
      "parents": [
        "8a266467b8c4841ca994d0fe59f39e584650e3df"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 21:21:02 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:21:02 2008 -0400"
      },
      "message": "ext4: sync up block and inode bitmap reading functions\n\next4_read_block_bitmap and read_inode_bitmap do essentially\nthe same thing, and yet they are structured quite differently.\nI came across this difference while looking at doing bg locking\nduring bg initialization.\n\nThis patch:\n\n* removes unnecessary casts in the error messages\n* renames read_inode_bitmap to ext4_read_inode_bitmap\n* and more substantially, restructures the inode bitmap\n  reading function to be more like the block bitmap counterpart.\n\nThe change to the inode bitmap reader simplifies the locking\nto be applied in the next patch.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "8a266467b8c4841ca994d0fe59f39e584650e3df",
      "tree": "b9cde0d9ddf3d5eea87f609267b930e08024a9f1",
      "parents": [
        "d03856bd5e5abac717da137dc60fe4a691769bd0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 14:34:21 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 14:34:21 2008 -0400"
      },
      "message": "ext4: Allow read/only mounts with corrupted block group checksums\n\nIf the block group checksums are corrupted, still allow the mount to\nsucceed, so e2fsck can have a chance to try to fix things up.  Add\ncode in the remount r/w path to make sure the block group checksums\nare valid before allowing the filesystem to be remounted read/write.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "d03856bd5e5abac717da137dc60fe4a691769bd0",
      "tree": "7de3649a2b48e36744aae72d5905bede2e28b6ca",
      "parents": [
        "6e86841d05f371b5b9b86ce76c02aaee83352298"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Aug 02 18:51:32 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 18:51:32 2008 -0400"
      },
      "message": "ext4: Fix data corruption when writing to prealloc area\n\nInserting an extent can cause a new entry in the already existing index\nblock. That doesn\u0027t increase the depth of the instead. Instead it adds a\nnew leaf block. Now with the new leaf block the path information\ncorresponding to the logical block should be fetched from the new block.\nThe old path will be pointing to the old leaf block.\n\nWe need to recalucate the path information on extent insert\neven if depth doesn\u0027t change. Without this change, the extent merge\nafter converting an unwritten extent to initialized extent takes the wrong\nextent and cause data corruption.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e4079a11f5ed966b7d972cc69e8d337a0f095e32",
      "tree": "1e70276654b4808cfcde549c7f2612947e5ab1c3",
      "parents": [
        "c07651b556323e0e763c452587fe29d2b034b314"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: do not set extents feature from the kernel\n\nWe\u0027ve talked for a while about getting rid of any feature-\nsetting from the kernel; this gets rid of the code which would\nset the INCOMPAT_EXTENTS flag on the first file write when mounted\nas ext4[dev].\n\nWith this patch, if the extents feature is not already set on disk,\nthen mounting as ext4 will fall back to noextents with a warning,\nand if -o extents is explicitly requested, the mount will fail,\nalso with warning.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c07651b556323e0e763c452587fe29d2b034b314",
      "tree": "6cae1d3c9a63e1a5ba83639003af792591845347",
      "parents": [
        "dd919b9822c5fd9fd72f95a602440130297c3857"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Don\u0027t allow nonextenst mount option for large filesystem\n\nThe block mapped inode format can address only blocks within 2**32. This\ncauses a number of issues, the biggest of which is that the block\nallocator needs to be taught that certain inodes can not utilize block\nnumbers \u003e 2**32.  So until this is fixed, it is simplest to fail\nmounting of file systems with more than 2**32 blocks if the -o noextents\noption is given.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "dd919b9822c5fd9fd72f95a602440130297c3857"
}
