)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "dd919b9822c5fd9fd72f95a602440130297c3857",
      "tree": "da1958f89e5671cc7b16e0c45630c310c9b3b5bd",
      "parents": [
        "3e3398a08d6e516675d5af853d625dc7dd90eab1"
      ],
      "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: Enable delalloc by default.\n\nEnable delalloc by default to ensure it gets sufficient testing and\nbecause it makes the filesystem much more efficient.  Add a nodealalloc\noption to disable delayed allocation, and update ext4_show_options to\nshow delayed allocation off if it is disabled.\n\nIf the data\u003djournal mount option is used, disable delayed allocation\nsince the delalloc code doesn\u0027t support data\u003djournal yet.\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\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "3e3398a08d6e516675d5af853d625dc7dd90eab1",
      "tree": "d8a37dbaea105cd36e02827b057a0f9fcad62adc",
      "parents": [
        "632eaeab1feb5d78c1e2bfb1d2dfc0ebb8ac187f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.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: delayed allocation i_blocks fix for stat\n\nRight now i_blocks is not getting updated until the blocks are actually\nallocaed on disk.  This means with delayed allocation, right after files\nare copied, \"ls -sF\" shoes the file as taking 0 blocks on disk.  \"du\"\nalso shows the files taking zero space, which is highly confusing to the\nuser.\n\nSince delayed allocation already keeps track of per-inode total\nnumber of blocks that are subject to delayed allocation, this patch fix\nthis by using that to adjust the value returned by stat(2). When real\nblock allocation is done, the i_blocks will get updated. Since the\nreserved blocks for delayed allocation will be decreased, this will be\nkeep value returned by stat(2) consistent.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "632eaeab1feb5d78c1e2bfb1d2dfc0ebb8ac187f",
      "tree": "f20c438da1e05dccc4c70083c635a20da139e116",
      "parents": [
        "f0e6c98593eb8a77edb7dd0edb22bb9f9368c567"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.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: fix delalloc i_disksize early update issue\n\nExt4_da_write_end() used walk_page_buffers() with a callback function of\next4_bh_unmapped_or_delay() to check if it extended the file size\nwithout allocating any blocks (since in this case i_disksize needs to be\nupdated).  However, this is didn\u0027t work proprely because the buffer head\nhas not been marked dirty yet --- this is done later in\nblock_commit_write() --- which caused ext4_bh_unmapped_or_delay() to\nalways return false.\n\nIn addition, walk_page_buffers() checks all of the buffer heads covering\nthe page, and the only buffer_head that should be checked is the one\ncovering the end of the write.  Otherwise, given a 1k blocksize\nfilesystem and a 4k page size, the buffer head covering the first 1k\nstripe of the file could be unmapped (because it was a sparse file), and\nthe second or third buffer_head covering that page could be mapped, and\nusing walk_page_buffers() would fail in this case since it would stop at\nthe first unmapped buffer_head and return true.\n\nThe core problem is that walk_page_buffers() was intended to do work in\na callback function, and a non-zero return value indicated a failure,\nwhich termined the walk of the buffer heads covering the page.  It was\nnot intended to be used with a boolean function, such as\next4_bh_unmapped_or_delay().\n\nAdd addtional fix from Aneesh to protect i_disksize update rave with truncate.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f0e6c98593eb8a77edb7dd0edb22bb9f9368c567",
      "tree": "07c588e757d533988d230f43d9c794dbc4a58977",
      "parents": [
        "cd1aac32923a9c8adcc0ae85e33c1ca0c5855838"
      ],
      "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: Handle page without buffers in ext4_*_writepage()\n\nIt can happen that buffers are removed from the page before it gets\nmarked dirty and then is passed to writepage().  In writepage() we just\ninitialize the buffers and check whether they are mapped and non\ndelay. If they are mapped and non delay we write the page. Otherwise we\nmark them dirty.  With this change we don\u0027t do block allocation at all\nin ext4_*_write_page.\n\nwritepage() can get called under many condition and with a locking order\nof journal_start -\u003e lock_page, we should not try to allocate blocks in\nwritepage() which get called after taking page lock.  writepage() can\nget called via shrink_page_list even with a journal handle which was\ncreated for doing inode update.  For example when doing\next4_da_write_begin we create a journal handle with credit 1 expecting a\ni_disksize update for the inode. But ext4_da_write_begin can cause\nshrink_page_list via _grab_page_cache. So having a valid handle via\next4_journal_current_handle is not a guarantee that we can use the\nhandle for block allocation in writepage, since we shouldn\u0027t be using\ncredits that had been reserved for other updates.  That it could result\nin we running out of credits when we update inodes.\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": "cd1aac32923a9c8adcc0ae85e33c1ca0c5855838",
      "tree": "3d55d9249ef960a7e345969404d537e36dbd9609",
      "parents": [
        "61628a3f3a37af2bf25daf8e26fd6b76a78c4f76"
      ],
      "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: Add ordered mode support for delalloc\n\nThis provides a new ordered mode implementation which gets rid of using\nbuffer heads to enforce the ordering between metadata change with the\nrelated data chage.  Instead, in the new ordering mode, it keeps track\nof all of the inodes touched by each transaction on a list, and when\nthat transaction is committed, it flushes all of the dirty pages for\nthose inodes.  In addition, the new ordered mode reverses the lock\nordering of the page lock and transaction lock, which provides easier\nsupport for delayed allocation.\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": "61628a3f3a37af2bf25daf8e26fd6b76a78c4f76",
      "tree": "25375b739b2e3f65c8dff3d3dd2a78e0724d0f96",
      "parents": [
        "06d6cf6959d22037fcec598f4f954db5db3d7356"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.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: Invert lock ordering of page_lock and transaction start in delalloc\n\nWith the reverse locking, we need to start a transation before taking\nthe page lock, so in ext4_da_writepages() we need to break the write-out\ninto chunks, and restart the journal for each chunck to ensure the\nwrite-out fits in a single transaction.\n\nUpdated patch from Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nwhich fixes delalloc sync hang with journal lock inversion, and address\nthe performance regression issue.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d2a1763791a634e315ec926b62829c1e88842c86",
      "tree": "75a701a89829ba7d728fdc19c30aa2794b9706b9",
      "parents": [
        "e8ced39d5e8911c662d4d69a342b9d053eaaac4e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jul 14 17:52:37 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 14 17:52:37 2008 -0400"
      },
      "message": "ext4: delayed allocation ENOSPC handling\n\nThis patch does block reservation for delayed\nallocation, to avoid ENOSPC later at page flush time.\n\nBlocks(data and metadata) are reserved at da_write_begin()\ntime, the freeblocks counter is updated by then, and the number of\nreserved blocks is store in per inode counter.\n        \nAt the writepage time, the unused reserved meta blocks are returned\nback. At unlink/truncate time, reserved blocks are properly released.\n\nUpdated fix from  Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nto fix the oldallocator block reservation accounting with delalloc, added\nlock to guard the counters and also fix the reservation for meta blocks.\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": "e8ced39d5e8911c662d4d69a342b9d053eaaac4e",
      "tree": "cd4d643bfbd37c67ff9bd2feff2c0b477a56f117",
      "parents": [
        "64769240bd07f446f83660bb143bb609d8ab4910"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.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": "percpu_counter: new function percpu_counter_sum_and_set\n\nDelayed allocation need to check free blocks at every write time.\npercpu_counter_read_positive() is not quit accurate. delayed\nallocation need a more accurate accounting, but using\npercpu_counter_sum_positive() is frequently is quite expensive.\n\nThis patch added a new function to update center counter when sum\nper-cpu counter, to increase the accurate rate for next\npercpu_counter_read() and require less calling expensive\npercpu_counter_sum().\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "64769240bd07f446f83660bb143bb609d8ab4910",
      "tree": "db8bd8dda988adab6b4f6087a9b59ce504612009",
      "parents": [
        "29a814d2ee0e43c2980f33f91c1311ec06c0aa35"
      ],
      "author": {
        "name": "Alex Tomas",
        "email": "alex@clusterfs.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: Add delayed allocation support in data\u003dwriteback mode\n\nUpdated with fixes from Mingming Cao \u003ccmm@us.ibm.com\u003e to unlock and\nrelease the page from page cache if the delalloc write_begin failed, and\nproperly handle preallocated blocks.  Also added a fix to clear\nbuffer_delay in block_write_full_page() after allocating a delayed\nbuffer.\n\nUpdated with fixes from Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nto update i_disksize properly and to add bmap support for delayed\nallocation.\n\nUpdated with a fix from Valerie Clement \u003cvalerie.clement@bull.net\u003e to\navoid filesystem corruption when the filesystem is mounted with the\ndelalloc option and blocksize \u003c pagesize.\n\nSigned-off-by: Alex Tomas \u003calex@clusterfs.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by:  Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "678aaf481496b01473b778685eca231d6784098b",
      "tree": "298fa039e4910a0ead3cdfb814af167f378391bc",
      "parents": [
        "c851ed540173736e60d48b53b91a16ea5c903896"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "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: Use new framework for data\u003dordered mode in JBD2\n\nThis patch makes ext4 use inode-based implementation of data\u003dordered mode\nin JBD2. It allows us to unify some data\u003dordered and data\u003dwriteback paths\n(especially writepage since we don\u0027t have to start a transaction anymore)\nand remove some buffer walking.\n\nUpdated fix from Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nto fix file system hang due to corrupt jinode values.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\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": "9ddfc3dc75b5cc55ff3cfa586e962d252f1db9d3",
      "tree": "4932f75d2f303561b0038fb5ea8985345b3ccd6b",
      "parents": [
        "cf108bca465dde0c015f32dd453b99457d31c7c7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Fix lock inversion in ext4_ext_truncate()\n\nWe cannot call ext4_orphan_add() from under i_data_sem because that\ncauses a lock ordering violation between i_data_sem and and the\nsuperblock lock.\n\nUpdated with Aneesh\u0027s locking order fix\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e \nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e \nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "cf108bca465dde0c015f32dd453b99457d31c7c7",
      "tree": "b1c9dfc1936579e4fd2a48f77f702effc39029e2",
      "parents": [
        "c7d206b3379f7d6462e778b74f475c470ee3dcaf"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "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: Invert the locking order of page_lock and transaction start\n\nThis changes are needed to support data\u003dordered mode handling via\ninodes.  This enables us to get rid of the journal heads and buffer\nheads for data buffers in the ordered mode.  With the changes, during\ntranasaction commit we writeout the inode pages using the\nwritepages()/writepage(). That implies we take page lock during\ntransaction commit. This can cause a deadlock with the locking order\npage_lock -\u003e jbd2_journal_start, since the jbd2_journal_start can wait\nfor the journal_commit to happen and the journal_commit now needs to\ntake the page lock. To avoid this dead lock reverse the locking order.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2e9ee850355593e311d9a26542290fe51e152f74",
      "tree": "e860a33119edf36e367ad354428dfc0d6201273c",
      "parents": [
        "93e3270c87549dc531a0b0e5d06362d998d810cb"
      ],
      "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: Use page_mkwrite vma_operations to get mmap write notification.\n\nWe would like to get notified when we are doing a write on mmap section.\nThis is needed with respect to preallocated area. We split the preallocated\narea into initialzed extent and uninitialzed extent in the call back. This\nlet us handle ENOSPC better. Otherwise we get ENOSPC in the writepage and\nthat would result in data loss. The changes are also needed to handle ENOSPC\nwhen writing to an mmap section of files with holes.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\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": "5f21b0e642d7bf6fe4434c9ba12bc9cb96b17cf7",
      "tree": "0f391fac5cc7fa93129bf8dd853598c6d2d65bb5",
      "parents": [
        "953e622b601f58b7cc0f29fe644457fa40a18456"
      ],
      "author": {
        "name": "Frederic Bohe",
        "email": "frederic.bohe@bull.net",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: fix online resize with mballoc\n\nUpdate group infos when updating a group\u0027s descriptor.\nAdd group infos when adding a group\u0027s descriptor.\nRefresh cache pages used by mb_alloc when changes occur.\nThis will probably need modifications when META_BG resizing will be allowed.\n\nSigned-off-by: Frederic Bohe \u003cfrederic.bohe@bull.net\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "953e622b601f58b7cc0f29fe644457fa40a18456",
      "tree": "15fcef3e6489b90aaf92100b096021773ef856df",
      "parents": [
        "47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1"
      ],
      "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: use atomic functions to set bh_state\n\nUse the BUFFER_FNS functions (set_buffer_foo) to set buffer\nhead state atomically instead of nonatomic __set_bit().\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1",
      "tree": "df382e97cdc28fc231104b8d19cdcfc3099b9d68",
      "parents": [
        "07031431072ece801d53d2c03d5e5bb21f4f64a4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "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: Set journal pointer to NULL when journal is released\n\nSet sbi-\u003es_journal to NULL after we call journal_destroy(). This\nwill be later needed because after journal_destroy() is called,\next4_clear_inode() can still be called for some inodes (e.g. root\ninode) and we\u0027ll need to detect there that journal doesn\u0027t exists\nanymore.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "07031431072ece801d53d2c03d5e5bb21f4f64a4",
      "tree": "b3075b21242bda4e16c35814fceeaef64a027647",
      "parents": [
        "d755fb384250d6bd7fd18a0930e71965acc8e72e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.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: mballoc avoid use root reserved blocks for non root allocation\n\nmballoc allocation missed check for blocks reserved for root users. Add\next4_has_free_blocks() check before allocation. Also modified\next4_has_free_blocks() to support multiple block allocation request.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d755fb384250d6bd7fd18a0930e71965acc8e72e",
      "tree": "7913bce90918cd26c8a5fe05f6c8943828e333bb",
      "parents": [
        "654b4908bc17a6318d18f3036fecc5155de92f55"
      ],
      "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: call blkdev_issue_flush on fsync\n\nTo ensure that bits are truly on-disk after an fsync,\nwe should call blkdev_issue_flush if barriers are supported.\n\nInspired by an old thread on barriers, by reiserfs \u0026 xfs\nwhich do the same, and by a patch SuSE ships with their kernel\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "654b4908bc17a6318d18f3036fecc5155de92f55",
      "tree": "a77264435aa5ed0386334653fae7624ee423f8cf",
      "parents": [
        "7061eba75ceb0835ba61e7cbd757a6f9c1e4af92"
      ],
      "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: cleanup block allocator\n\nMove the code related to block allocation to a single function and add helper\nfuntions to differient allocation for data and meta data blocks\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": "7061eba75ceb0835ba61e7cbd757a6f9c1e4af92",
      "tree": "9c70df3078c0543573a9f38bb60c6b0f54608c7a",
      "parents": [
        "6afd670713c9e7d5c5550e379dfedca8ffab4c90"
      ],
      "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: Use inode preallocation with -o noextents\n\nWhen mballoc is enabled, block allocation for old block-based\nfiles are allocated using mballoc allocator instead of old\nblock-based allocator. The old ext3 block reservation is turned\noff when mballoc is turned on.\n\nHowever, the in-core preallocation is not enabled for block-based/\nnon-extent based file block allocation. This result in performance\nregression, as now we don\u0027t have \"reservation\" ore in-core preallocation\nto prevent interleaved fragmentation in multiple writes workload.\n\nThis patch fix this by enable per inode in-core preallocation\nfor non extent files when mballoc is used.\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": "6afd670713c9e7d5c5550e379dfedca8ffab4c90",
      "tree": "3cf037d9d0f91bef6cebd77523da71d68bb1a7f8",
      "parents": [
        "7477827f6686ce29b6216d9eb26f6b9027742dcc"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: fix ext4_init_block_bitmap() for metablock block group\n\nWhen meta_bg feature is enabled and s_first_meta_bg !\u003d 0, \next4_init_block_bitmap() miscalculates the number of block used by\nthe group descriptor table (0 or 1 for metablock block group)\n\nThis patch fixes this by using ext4_bg_num_gdb()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\n"
    },
    {
      "commit": "7477827f6686ce29b6216d9eb26f6b9027742dcc",
      "tree": "43bb05000b155120382066298c3d66a8422852f9",
      "parents": [
        "d9c769b769a8bcd70371c71797fc4e407b37ba75"
      ],
      "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: Fix sparse warning\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"
    }
  ],
  "next": "d9c769b769a8bcd70371c71797fc4e407b37ba75"
}
