)]}'
{
  "log": [
    {
      "commit": "ff9cb1c4eead5e4c292e75cd3170a82d66944101",
      "tree": "cdb132a39e550a9b7b28ea67544cb86cd6ebdb6e",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df",
        "d50f2ab6f050311dbf7b8f5501b25f0bf64a439b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 10 11:54:07 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 10 11:54:07 2012 -0500"
      },
      "message": "Merge branch \u0027for_linus\u0027 into for_linus_merged\n\nConflicts:\n\tfs/ext4/ioctl.c\n"
    },
    {
      "commit": "d50f2ab6f050311dbf7b8f5501b25f0bf64a439b",
      "tree": "a4775254db19dc589c85c36a8bd5b3c2e1be4838",
      "parents": [
        "5f163cc759a9fa8844a4efcf1f579dc5b2ca2491"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Tue Jan 10 11:51:10 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 10 11:51:10 2012 -0500"
      },
      "message": "ext4: fix undefined behavior in ext4_fill_flex_info()\n\nCommit 503358ae01b70ce6909d19dd01287093f6b6271c (\"ext4: avoid divide by\nzero when trying to mount a corrupted file system\") fixes CVE-2009-4307\nby performing a sanity check on s_log_groups_per_flex, since it can be\nset to a bogus value by an attacker.\n\n\tsbi-\u003es_log_groups_per_flex \u003d sbi-\u003es_es-\u003es_log_groups_per_flex;\n\tgroups_per_flex \u003d 1 \u003c\u003c sbi-\u003es_log_groups_per_flex;\n\n\tif (groups_per_flex \u003c 2) { ... }\n\nThis patch fixes two potential issues in the previous commit.\n\n1) The sanity check might only work on architectures like PowerPC.\nOn x86, 5 bits are used for the shifting amount.  That means, given a\nlarge s_log_groups_per_flex value like 36, groups_per_flex \u003d 1 \u003c\u003c 36\nis essentially 1 \u003c\u003c 4 \u003d 16, rather than 0.  This will bypass the check,\nleaving s_log_groups_per_flex and groups_per_flex inconsistent.\n\n2) The sanity check relies on undefined behavior, i.e., oversized shift.\nA standard-confirming C compiler could rewrite the check in unexpected\nways.  Consider the following equivalent form, assuming groups_per_flex\nis unsigned for simplicity.\n\n\tgroups_per_flex \u003d 1 \u003c\u003c sbi-\u003es_log_groups_per_flex;\n\tif (groups_per_flex \u003d\u003d 0 || groups_per_flex \u003d\u003d 1) {\n\nWe compile the code snippet using Clang 3.0 and GCC 4.6.  Clang will\ncompletely optimize away the check groups_per_flex \u003d\u003d 0, leaving the\npatched code as vulnerable as the original.  GCC keeps the check, but\nthere is no guarantee that future versions will do the same.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "e4e11180dfa545233e5145919b75b7fac88638df",
      "tree": "bfdb18eee49aa55fd3d6170a422164e772736a1b",
      "parents": [
        "37cfc3f67db9f2d907f6bfcfae590cdbbef623e8",
        "adc0e91ab142abe93f5b0d7980ada8a7676231fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 17:37:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 17:37:37 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  vfs: new helper - d_make_root()\n  dcache: use a dispose list in select_parent\n  ceph: d_alloc_root() may fail\n  ext4: fix failure exits\n  isofs: inode leak on mount failure\n"
    },
    {
      "commit": "94bf608a18fa4421315275a81c5489734599297a",
      "tree": "69b0022e0f47a5af7888c7e97459302373bfa338",
      "parents": [
        "8fdd8c49fe50394fef3e193db27222cb03c2b212"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 09 15:53:24 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 09 15:57:20 2012 -0500"
      },
      "message": "ext4: fix failure exits\n\na) leaking root dentry is bad\nb) in case of failed ext4_mb_init() we don\u0027t want to do ext4_mb_release()\nc) OTOH, in the same case we *do* want ext4_ext_release()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ac69e0928054ff29a5049902fb477f9c7605c773",
      "tree": "05be6b9285186823452e0adeffe40e1dfee6e354",
      "parents": [
        "9e203936eac786f9268d6a13e6442d2accef1829",
        "302bf2f3259948c93361d501b04a5ed69c3bd4f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:51:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:51:21 2012 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext2/3/4: delete unneeded includes of module.h\n  ext{3,4}: Fix potential race when setversion ioctl updates inode\n  udf: Mark LVID buffer as uptodate before marking it dirty\n  ext3: Don\u0027t warn from writepage when readonly inode is spotted after error\n  jbd: Remove j_barrier mutex\n  reiserfs: Force inode evictions before umount to avoid crash\n  reiserfs: Fix quota mount option parsing\n  udf: Treat symlink component of type 2 as /\n  udf: Fix deadlock when converting file from in-ICB one to normal one\n  udf: Cleanup calling convention of inode_getblk()\n  ext2: Fix error handling on inode bitmap corruption\n  ext3: Fix error handling on inode bitmap corruption\n  ext3: replace ll_rw_block with other functions\n  ext3: NULL dereference in ext3_evict_inode()\n  jbd: clear revoked flag on buffers before a new transaction started\n  ext3: call ext3_mark_recovery_complete() when recovery is really needed\n"
    },
    {
      "commit": "302bf2f3259948c93361d501b04a5ed69c3bd4f8",
      "tree": "22ccdf5774a28476745a94532b5ce2c2cc454d98",
      "parents": [
        "6c2155b9cc5a193e85194bbeaae2e2e4512dd597"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Jan 04 15:59:47 2012 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 09 13:52:10 2012 +0100"
      },
      "message": "ext2/3/4: delete unneeded includes of module.h\n\nDelete any instances of include module.h that were not strictly\nrequired.  In the case of ext2, the declaration of MODULE_LICENSE\netc. were in inode.c but the module_init/exit were in super.c, so\nrelocate the MODULE_LICENCE/AUTHOR block to super.c which makes it\nconsistent with ext3 and ext4 at the same time.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "6c2155b9cc5a193e85194bbeaae2e2e4512dd597",
      "tree": "fe2e0af12ebdb2bff009f47ccdfebd8dcde2b3a2",
      "parents": [
        "853a0c25baf96b028de1654bea1e0c8857eadf3d"
      ],
      "author": {
        "name": "Djalal Harouni",
        "email": "tixxdz@opendz.org",
        "time": "Tue Jan 03 02:31:52 2012 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 09 13:52:10 2012 +0100"
      },
      "message": "ext{3,4}: Fix potential race when setversion ioctl updates inode\n\nThe EXT{3,4}_IOC_SETVERSION ioctl() updates i_ctime and i_generation\nwithout i_mutex. This can lead to a race with the other operations that\nupdate i_ctime. This is not a big issue but let\u0027s make the ioctl consistent\nwith how we handle e.g. other timestamp updates and use i_mutex to protect\ninode changes.\n\nSigned-off-by: Djalal Harouni \u003ctixxdz@opendz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0ce8c0109f548ed75535d96ec5a347b410ed1472",
      "tree": "c82c28de75da5b73c224cce18602d1a5680d27d7",
      "parents": [
        "da01636a6511c3bd0c1cf546c47b8e92a837a613"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 19:50:23 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 20:19:30 2012 -0500"
      },
      "message": "ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink()\n\nBoth ext3 and ext4 put the half-created symlink inode into the orphan list\nfor a while (see the comment in ext[34]_symlink() for gory details).  Then,\nif everything went fine, they pull it out of the orphan list and bump the\nlink count back to 1.  The thing is, inc_nlink() is going to complain about\nseeing somebody changing i_nlink from 0 to 1.  With a good reason, since\nnormally something like that is a bug.  Explicit set_nlink(inode, 1) does\nthe same thing as inc_nlink() here, but it does *not* complain - exactly\nbecause it should be usable in strange situations like this one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d8c9584ea2a92879f471fd3a2be3af6c534fb035",
      "tree": "3541b9c6228f820bdc65e4875156eb27b1c91cb1",
      "parents": [
        "ece2ccb668046610189d88d6aaf05aeb09c988a1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 07 18:16:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:16:53 2012 -0500"
      },
      "message": "vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5f163cc759a9fa8844a4efcf1f579dc5b2ca2491",
      "tree": "2a8e127fbe2e807113699de992cd1d248b1f9e3e",
      "parents": [
        "176576dbc8141528557eeeb007af2d5a2a4891ef"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Jan 04 22:33:28 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:33:28 2012 -0500"
      },
      "message": "ext4: make more symbols static\n\nA couple more functions can reasonably be made static if desired.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "176576dbc8141528557eeeb007af2d5a2a4891ef",
      "tree": "6c5914f0c71680317624b7a9926a4f2ad6f3e724",
      "parents": [
        "9837d8e982b7e87a7207f90618e45d460e196e6a"
      ],
      "author": {
        "name": "Djalal Harouni",
        "email": "tixxdz@opendz.org",
        "time": "Wed Jan 04 22:32:12 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:32:12 2012 -0500"
      },
      "message": "ext4: make local symbol ext4_initxattrs static\n\nThe ext4_initxattrs symbol is used only in this file, so it should be\ndeclared static.\n\nSigned-off-by: Djalal Harouni \u003ctixxdz@opendz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9b90e5e02896406a6da28a376568003d14c06770",
      "tree": "b8f842e3d8cd7dc68f63fbead56f16fed546d852",
      "parents": [
        "1d526fc91bea04ee35b7599bf8b82f86c0aaf46c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:01:53 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:01:53 2012 -0500"
      },
      "message": "ext4: reserve new feature flag codepoints\n\nReserve the ext4 features flags EXT4_FEATURE_RO_COMPAT_METADATA_CSUM,\nEXT4_FEATURE_INCOMPAT_INLINEDATA, and EXT4_FEATURE_INCOMPAT_LARGEDIR.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1d526fc91bea04ee35b7599bf8b82f86c0aaf46c",
      "tree": "606028370d5eadd8e55edac222b41fc9b7e18f0c",
      "parents": [
        "014a1770371a028d22f364718c805f4216911ecd"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Wed Jan 04 21:22:51 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 21:22:51 2012 -0500"
      },
      "message": "ext4: Report max_batch_time option correctly\n\nCurrently the value reported for max_batch_time is really the\nvalue of min_batch_time.\n\nReported-by: Russell Coker \u003crussell@coker.com.au\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n"
    },
    {
      "commit": "014a1770371a028d22f364718c805f4216911ecd",
      "tree": "2b1dfac79cb6a23a21e9496af29849956d929a3e",
      "parents": [
        "61f296cc49751f1dc992039229d12b0de7e0c2ae"
      ],
      "author": {
        "name": "Djalal Harouni",
        "email": "tixxdz@opendz.org",
        "time": "Wed Jan 04 17:09:52 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 17:09:52 2012 -0500"
      },
      "message": "ext4: add missing ext4_resize_end on error paths\n\nOnline resize ioctls \u0027EXT4_IOC_GROUP_EXTEND\u0027 and \u0027EXT4_IOC_GROUP_ADD\u0027\ncall ext4_resize_begin() to check permissions and to set the\nEXT4_RESIZING bit lock, they do their work and they must finish with\next4_resize_end() which calls clear_bit_unlock() to unlock and to\navoid -EBUSY errors for the next resize operations.\n\nThis patch adds the missing ext4_resize_end() calls on error paths.\n\nPatch tested.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Djalal Harouni \u003ctixxdz@opendz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "61f296cc49751f1dc992039229d12b0de7e0c2ae",
      "tree": "4dc7991db75379b3770f19c573751a588960c407",
      "parents": [
        "d89651c8e222b2d2797bf66d4eb7064459f4f4f4"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Jan 04 17:09:50 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 17:09:50 2012 -0500"
      },
      "message": "ext4: let ext4_group_add() use common code\n\nThis patch lets ext4_group_add() call ext4_flex_group_add().\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d89651c8e222b2d2797bf66d4eb7064459f4f4f4",
      "tree": "831f27a1758bceebb52fa00a642ce063ca40b2a3",
      "parents": [
        "19c5246d251640ac76daa4d34165af78c64b1454"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Jan 04 17:09:48 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 17:09:48 2012 -0500"
      },
      "message": "ext4: let ext4_group_extend() use common code\n\next4_group_extend_no_check() is moved out from ext4_group_extend(),\nthis patch lets ext4_group_extend() call ext4_group_extentd_no_check()\ninstead.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "19c5246d251640ac76daa4d34165af78c64b1454",
      "tree": "cdf4f2250ca6b61d4910a3279d4d991486631d30",
      "parents": [
        "4bac1f8cef7bfd2c62793f75aba66a5b8357dede"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Jan 04 17:09:44 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 17:09:44 2012 -0500"
      },
      "message": "ext4: add new online resize interface\n\nThis patch adds new online resize interface, whose input argument is a\n64-bit integer indicating how many blocks there are in the resized fs.\n\nIn new resize impelmentation, all work like allocating group tables\nare done by kernel side, so the new resize interface can support\nflex_bg feature and prepares ground for suppoting resize with features\nlike bigalloc and exclude bitmap. Besides these, user-space tools just\npasses in the new number of blocks.\n\nWe delay initializing the bitmaps and inode tables of added groups if\npossible and add multi groups (a flex groups) each time, so new resize\nis very fast like mkfs.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4bac1f8cef7bfd2c62793f75aba66a5b8357dede",
      "tree": "0cef082f69c53b66ec84af8bfdd65e8ddbad9f32",
      "parents": [
        "3fbea4b3683a5dfa86489ef7799cbe55e8003dfa"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:44:38 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:44:38 2012 -0500"
      },
      "message": "ext4: add a new function which adds a flex group to a fs\n\nThis patch adds a new function named ext4_flex_group_add() which adds a\nflex group to a fs.  The function is used by 64bit-resize interface.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3fbea4b3683a5dfa86489ef7799cbe55e8003dfa",
      "tree": "42d88ed8ecc885f262af7be3e8e66192c12af379",
      "parents": [
        "c72df9f928efd5b17e84bdb7b8ec1be3b9c1ea9d"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:44:38 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:44:38 2012 -0500"
      },
      "message": "ext4: add a new function which allocates bitmaps and inode tables\n\nThis patch adds a new function named ext4_allocates_group_table()\nwhich allocates block bitmaps, inode bitmaps and inode tables for a\nflex groups and is used by resize code.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c72df9f928efd5b17e84bdb7b8ec1be3b9c1ea9d",
      "tree": "c699e4b60045a4e2228fe86536e752f789b9136a",
      "parents": [
        "2e10e2f2e5a800a54ad2f16dfdd8c034e005958b"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:43:39 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:43:39 2012 -0500"
      },
      "message": "ext4: pass verify_reserved_gdb() the number of group decriptors\n\nThe 64bit resizer adds a flex group each time, so verify_reserved_gdb\ncan not use s_groups_count directly, it should use the number of group\ndecriptors before the added group.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2e10e2f2e5a800a54ad2f16dfdd8c034e005958b",
      "tree": "db5e556ab10f5b06824b6acb96155b2190750986",
      "parents": [
        "083f5b24cc55448e0602a807a5c2872e1f3796e2"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:41:39 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:41:39 2012 -0500"
      },
      "message": "ext4: add a function which updates the super block during online resizing\n\nThis patch adds a function named ext4_update_super() which updates\nsuper block so the newly created block groups are visible to the file\nsystem.  This code is copied from ext4_group_add().\n\nThe function will be used by new resize implementation.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "083f5b24cc55448e0602a807a5c2872e1f3796e2",
      "tree": "43a6245a1eb674584c2573dce24290d84bae3eed",
      "parents": [
        "33afdcc5402d0abf70ef2dfb96d0b901d20bcc37"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:37:31 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:37:31 2012 -0500"
      },
      "message": "ext4: add a function which sets up a block group descriptors of a flex bg\n\nThis patch adds a function named ext4_setup_new_descs which sets up the\nblock group descriptors of a flex bg.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "33afdcc5402d0abf70ef2dfb96d0b901d20bcc37",
      "tree": "1991d90dfed2cab0775bf668a897bcf66681df53",
      "parents": [
        "28c7bac0091687e6116ebd6c179e154ae4053c90"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:32:52 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:32:52 2012 -0500"
      },
      "message": "ext4: add a function which sets up group blocks of a flex bg\n\nThis patch adds a function named setup_new_flex_group_blocks() which\nsets up group blocks of a flex bg.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "28c7bac0091687e6116ebd6c179e154ae4053c90",
      "tree": "1ede48e76c7618d06ea3e34de74cdc13e3f2f129",
      "parents": [
        "bb08c1e7d8c072da338f6d905a89376b36023017"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:22:50 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:22:50 2012 -0500"
      },
      "message": "ext4: add a structure which will be used by 64bit-resize interface\n\nThis patch adds a structure which will be used by 64bit-resize interface.\nTwo functions which allocate and destroy the structure respectively are\nadded.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bb08c1e7d8c072da338f6d905a89376b36023017",
      "tree": "01c403e7e76c5ab19b9852ba774dc138c7249482",
      "parents": [
        "18e3143848f1abdd07e7d9879cf67f4e147ff8b7"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:20:50 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:20:50 2012 -0500"
      },
      "message": "ext4: add a function which adds a new group descriptors to a fs\n\nThis patch adds a function named ext4_add_new_descs() which adds one\nor more new group descriptors to a fs and whose code is copied from\next4_group_add().\n\nThe function will be used by new resize implementation.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "18e3143848f1abdd07e7d9879cf67f4e147ff8b7",
      "tree": "a2f76cfff641ed9246ea8e9bd7442c791b75ae09",
      "parents": [
        "597d508c17a6dcd17770f4dd9da873d93cc15493"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jan 03 23:18:50 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 03 23:18:50 2012 -0500"
      },
      "message": "ext4: add a function which extends a group without checking parameters\n\nThis patch added a function named ext4_group_extend_no_check() whose code\nis copied from ext4_group_extend().  ext4_group_extend_no_check() assumes\nthe parameter is valid and has been checked by caller.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dcca3fec9f6436dae8693e38cc69c241ea0860cd",
      "tree": "b887cd52b62ec6c43635c6c130c0fb06ab0fbcb4",
      "parents": [
        "69b34f3ab30836bb736b5108f40bf76de9f656f3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:48:06 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:59 2012 -0500"
      },
      "message": "ext4: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "597d508c17a6dcd17770f4dd9da873d93cc15493",
      "tree": "e977644fd79c2f73bd90b78c08075cb53cc65196",
      "parents": [
        "ccb4d7af914e0fe9b2f1022f8ea6c300463fd5e6"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Dec 28 20:32:07 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 20:32:07 2011 -0500"
      },
      "message": "ext4: use proper little-endian bitops\n\next4_{set,clear}_bit() is defined as __test_and_{set,clear}_bit_le() for\next4.  Only two ext4_{set,clear}_bit() calls check the return value.  The\nrest of calls ignore the return value and they can be replaced with\n__{set,clear}_bit_le().\n\nThis changes ext4_{set,clear}_bit() from __test_and_{set,clear}_bit_le()\nto __{set,clear}_bit_le() and introduces ext4_test_and_{set,clear}_bit()\nfor the two places where old bit needs to be returned.\n\nThis ext4_{set,clear}_bit() change is considered safe, because if someone\nuses these macros without noticing the change, new ext4_{set,clear}_bit\ndon\u0027t have return value and causes compiler errors where the return value\nis used.\n\nThis also removes unused ext4_find_first_zero_bit().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ccb4d7af914e0fe9b2f1022f8ea6c300463fd5e6",
      "tree": "1e8f739dfdd2aadf667d608800b8cad551f13bd3",
      "parents": [
        "14c83c9fddf2e75bdd0c20f1072f35260e356484"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Wed Dec 28 20:25:40 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 20:25:40 2011 -0500"
      },
      "message": "ext4: remove no longer used functions in inode.c\n\nThe functions ext4_block_truncate_page() and ext4_block_zero_page_range()\nare no longer used, so remove them.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "14c83c9fddf2e75bdd0c20f1072f35260e356484",
      "tree": "277c2c78f709048543b5eca3064ce3d98a7a3cf3",
      "parents": [
        "88635ca277adb67db34e88281817d1ce10713553"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 20:25:13 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 20:25:13 2011 -0500"
      },
      "message": "ext4: avoid counting the number of free inodes twice in find_group_orlov()\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "88635ca277adb67db34e88281817d1ce10713553",
      "tree": "ebe43739198d84190d4138ae4083404609ae7f09",
      "parents": [
        "1ba37268cd19e5a2a80924bfe8618bf1ba3e8249"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "gnehzuil.liu@gmail.com",
        "time": "Wed Dec 28 19:00:25 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 19:00:25 2011 -0500"
      },
      "message": "ext4: add missing spaces to debugging printk\u0027s\n\nFix ext4_debug format in ext4_ext_handle_uninitialized_extents() and\next4_end_io_dio().\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5872ddaaf05bf25e3ab90580295ebc946405928c",
      "tree": "6dacee8fbc61ae67e9853edfdcddc8b9bc788b00",
      "parents": [
        "2aff57b0c052344e8401a8b4a33c2a1ecb0f627c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Dec 28 13:55:51 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 13:55:51 2011 -0500"
      },
      "message": "ext4: flush journal when switching from data\u003djournal mode\n\nIt\u0027s necessary to flush the journal when switching away from\ndata\u003djournal mode.  This is because there are no revoke records when\ndata blocks are journalled, but revoke records are required in the\nother journal modes.\n\nHowever, it is not necessary to flush the journal when switching into\ndata\u003djournal mode, and flushing the journal is expensive.  So let\u0027s\navoid it in that case.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2aff57b0c052344e8401a8b4a33c2a1ecb0f627c",
      "tree": "48713b187d571baab9951dace5b8ace86289a654",
      "parents": [
        "22cdfca5641817060dd724a9c30442f5c0675fcd"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Dec 28 12:02:13 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 12:02:13 2011 -0500"
      },
      "message": "ext4: allocate delalloc blocks before changing journal mode\n\ndelalloc blocks should be allocated before changing journal mode,\notherwise they can not be allocated and even more truncate on\ndelalloc blocks could triggre BUG by flushing delalloc buffers.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b00f4dc5ff022cb9cbaffd376d9454d7fa1e496f",
      "tree": "40f1b232e2f1e8ac365317a14fdcbcb331722b46",
      "parents": [
        "1eac8111e0763853266a171ce11214da3a347a0a",
        "b9e26dfdad5a4f9cbdaacafac6998614cc9c41bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into pm-sleep\n\n* master: (848 commits)\n  SELinux: Fix RCU deref check warning in sel_netport_insert()\n  binary_sysctl(): fix memory leak\n  mm/vmalloc.c: remove static declaration of va from __get_vm_area_node\n  ipmi_watchdog: restore settings when BMC reset\n  oom: fix integer overflow of points in oom_badness\n  memcg: keep root group unchanged if creation fails\n  nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n  nilfs2: unbreak compat ioctl\n  cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mmc: vub300: fix type of firmware_rom_wait_states module parameter\n  Revert \"mmc: enable runtime PM by default\"\n  mmc: sdhci: remove \"state\" argument from sdhci_suspend_host\n  x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT\n  IB/qib: Correct sense on freectxts increment and decrement\n  RDMA/cma: Verify private data length\n  cgroups: fix a css_set not found bug in cgroup_attach_proc\n  oprofile: Fix uninitialized memory access when writing to writing to oprofilefs\n  Revert \"xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel\"\n  ...\n\nConflicts:\n\tkernel/cgroup_freezer.c\n"
    },
    {
      "commit": "22cdfca5641817060dd724a9c30442f5c0675fcd",
      "tree": "1202eac61dc5a04027228f375d24cf025ed6b47d",
      "parents": [
        "8c48f7e88e293b9dd422bd8884842aea85d30b22"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 21 14:14:31 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 21 14:14:31 2011 -0500"
      },
      "message": "ext4: remove unneeded file_remove_suid() from ext4_ioctl()\n\nIn the code to support EXT4_IOC_MOVE_EXT, ext4_ioctl calls\nfile_remove_suid() after the call to ext4_move_extents() if any\nextents has been moved.  There are at least three things wrong with\nthis.  First, file_remove_suid() should be called with i_mutex down,\nwhich is not here.  Second, it should be called before the donor file\nhas been modified, to avoid a potential race condition.  Third, and\nmost importantly, it\u0027s pointless, because ext4_file_extents() already\nchecks if the donor file has the setuid or setgid bit set, and will\nreturn an error in that case.  So the first two objections don\u0027t\nreally matter, since file_remove_suid() will never need to modify the\ninode in any case.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8c48f7e88e293b9dd422bd8884842aea85d30b22",
      "tree": "5a29043ea9c3453d648d2d0b32cfa616f90bc6a9",
      "parents": [
        "14d7f3efe923bc60839c65f9818793c64b4d708b"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Sun Dec 18 23:05:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 23:05:43 2011 -0500"
      },
      "message": "ext4: optimize ext4_find_delalloc_range() in nodelalloc mode\n\nWe found performance regression when using bigalloc with \"nodelalloc\"\n(1MB cluster size):\n\n1. mke2fs -C 1048576 -O ^has_journal,bigalloc /dev/sda\n2. mount -o nodelalloc /dev/sda /test/\n3. time dd if\u003d/dev/zero of\u003d/test/io bs\u003d1048576 count\u003d1024\n\nThe \"dd\" will cost about 2 seconds to finish, but if we mke2fs without\n\"bigalloc\", \"dd\" will only cost less than 1 second.\n\nThe reason is: when using ext4 with \"nodelalloc\", it will call\next4_find_delalloc_cluster() nearly everytime it call\next4_ext_map_blocks(), and ext4_find_delalloc_range() will also scan\nall pages in cluster because no buffer is \"delayed\".  A cluster has\n256 pages (1MB cluster), so it will scan 256 * 256k pags when creating\na 1G file. That severely hurts the performance.\n\nTherefore, we return immediately from ext4_find_delalloc_range() in\nnodelalloc mode, since by definition there can\u0027t be any delalloc\npages.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "14d7f3efe923bc60839c65f9818793c64b4d708b",
      "tree": "a37a51ebbec9bd97dc25503cef7b6440a684330c",
      "parents": [
        "acd6ad83517639e8f09a8c5525b1dccd81cd2a10"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun Dec 18 17:39:02 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 17:39:02 2011 -0500"
      },
      "message": "ext4: remove unused local variable\n\nIn get_implied_cluster_alloc(), rr_cluster_end was being\ndefined and set, but was never used.  Removed this.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "acd6ad83517639e8f09a8c5525b1dccd81cd2a10",
      "tree": "cdfa0a3cc0c65ce27f9e41a5080e9cfc78776b7f",
      "parents": [
        "5635a62b83c04d05e4eb4575a1c3de51a35bacdc"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Dec 18 17:37:02 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 17:37:02 2011 -0500"
      },
      "message": "ext4: fix error handling on inode bitmap corruption\n\nWhen insert_inode_locked() fails in ext4_new_inode() it most likely means inode\nbitmap got corrupted and we allocated again inode which is already in use. Also\ndoing unlock_new_inode() during error recovery is wrong since the inode does\nnot have I_NEW set. Fix the problem by jumping to fail: (instead of fail_drop:)\nwhich declares filesystem error and does not call unlock_new_inode().\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5635a62b83c04d05e4eb4575a1c3de51a35bacdc",
      "tree": "4666e038ce91682c8b32fbfa6583a6249d2b9e56",
      "parents": [
        "60e07cf515e541ea3e13b888d273c9b19a2ad9dd"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "gnehzuil.liu@gmail.com",
        "time": "Sun Dec 18 16:13:58 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 16:13:58 2011 -0500"
      },
      "message": "ext4: add missing space to ext4_msg output in ext4_fill_super()\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "60e07cf515e541ea3e13b888d273c9b19a2ad9dd",
      "tree": "d9c2b3a1f4e306cbdb199c4cae9fd3ed03a528b6",
      "parents": [
        "384703b8e6cd4c8ef08512e596024e028c91c339"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Dec 18 15:49:54 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 15:49:54 2011 -0500"
      },
      "message": "ext4: do not reference pa_inode from group_pa\n\npa_inode in group_pa is set NULL in ext4_mb_new_group_pa, so\npa_inode should be not referenced.\n\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a0dc7365c240795bf190766eba7a27600be3b3e",
      "tree": "614d5275640f4df89604f64e2cd47a438644226e",
      "parents": [
        "5b5ffa49d4bbb8ca4c41c094261660264f16bd20"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "message": "ext4: handle EOF correctly in ext4_bio_write_page()\n\nWe need to zero out part of a page which beyond EOF before setting uptodate,\notherwise, mapread or write will see non-zero data beyond EOF.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5b5ffa49d4bbb8ca4c41c094261660264f16bd20",
      "tree": "98b3fb0f9b4afac37ce0c025ee9cca3991bee4eb",
      "parents": [
        "093e6e3666f47d29763a235b404c84ee47ba8bb0"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "message": "ext4: remove a wrong BUG_ON in ext4_ext_convert_to_initialized\n\nIf a file is fallocated on a hole, map-\u003em_lblk + map-\u003em_len may be greater\nthan ee_block + ee_len.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "093e6e3666f47d29763a235b404c84ee47ba8bb0",
      "tree": "a337f1415bf1c98b63fa5536c42b97059309b8d1",
      "parents": [
        "13a79a4741d37fda2fbafb953f0f301dc007928f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "message": "ext4: correctly handle pages w/o buffers in ext4_discard_partial_buffers()\n\nIf a page has been read into memory and never been written, it has no\nbuffers, but we should handle the page in truncate or punch hole.\n\nVFS code of writing operations has handled holes correctly, so this\npatch removes the code handling holes in writing operations.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "13a79a4741d37fda2fbafb953f0f301dc007928f",
      "tree": "b88b5b99690738c278c48b180cbd1ab2821522f6",
      "parents": [
        "ea51d132dbf9b00063169c1159bee253d9649224"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "message": "ext4: avoid potential hang in mpage_submit_io() when blocksize \u003c pagesize\n\nIf there is an unwritten but clean buffer in a page and there is a\ndirty buffer after the buffer, then mpage_submit_io does not write the\ndirty buffer out.  As a result, da_writepages loops forever.\n\nThis patch fixes the problem by checking dirty flag.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ea51d132dbf9b00063169c1159bee253d9649224",
      "tree": "c1c9f028e2efdb278e26d662fec2bc2ba2605f5d",
      "parents": [
        "fc6cb1cda5db7b2d24bf32890826214b857c728e"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "message": "ext4: avoid hangs in ext4_da_should_update_i_disksize()\n\nIf the pte mapping in generic_perform_write() is unmapped between\niov_iter_fault_in_readable() and iov_iter_copy_from_user_atomic(), the\n\"copied\" parameter to -\u003eend_write can be zero. ext4 couldn\u0027t cope with\nit with delayed allocations enabled. This skips the i_disksize\nenlargement logic if copied is zero and no new data was appeneded to\nthe inode.\n\n gdb\u003e bt\n #0  0xffffffff811afe80 in ext4_da_should_update_i_disksize (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x1\\\n 08000, len\u003d0x1000, copied\u003d0x0, page\u003d0xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2467\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n #2  0xffffffff810d97f1 in generic_perform_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue o\\\n ptimized out\u003e, pos\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2440\n #3  generic_file_buffered_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue optimized out\u003e, p\\\n os\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2482\n #4  0xffffffff810db5d1 in __generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, ppos\u003d0\\\n xffff88001e26be40) at mm/filemap.c:2600\n #5  0xffffffff810db853 in generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d\u003cvalue optimi\\\n zed out\u003e, pos\u003d\u003cvalue optimized out\u003e) at mm/filemap.c:2632\n #6  0xffffffff811a71aa in ext4_file_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, pos\u003d0x108000) a\\\n t fs/ext4/file.c:136\n #7  0xffffffff811375aa in do_sync_write (filp\u003d0xffff88003f606a80, buf\u003d\u003cvalue optimized out\u003e, len\u003d\u003cvalue optimized out\u003e, \\\n ppos\u003d0xffff88001e26bf48) at fs/read_write.c:406\n #8  0xffffffff81137e56 in vfs_write (file\u003d0xffff88003f606a80, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x4\\\n 000, pos\u003d0xffff88001e26bf48) at fs/read_write.c:435\n #9  0xffffffff8113816c in sys_write (fd\u003d\u003cvalue optimized out\u003e, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x\\\n 4000) at fs/read_write.c:487\n #10 \u003csignal handler called\u003e\n #11 0x00007f120077a390 in __brk_reservation_fn_dmi_alloc__ ()\n #12 0x0000000000000000 in ?? ()\n gdb\u003e print offset\n $22 \u003d 0xffffffffffffffff\n gdb\u003e print idx\n $23 \u003d 0xffffffff\n gdb\u003e print inode-\u003ei_blkbits\n $24 \u003d 0xc\n gdb\u003e up\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n 2512                    if (ext4_da_should_update_i_disksize(page, end)) {\n gdb\u003e print start\n $25 \u003d 0x0\n gdb\u003e print end\n $26 \u003d 0xffffffffffffffff\n gdb\u003e print pos\n $27 \u003d 0x108000\n gdb\u003e print new_i_size\n $28 \u003d 0x108000\n gdb\u003e print ((struct ext4_inode_info *)((char *)inode-((int)(\u0026((struct ext4_inode_info *)0)-\u003evfs_inode))))-\u003ei_disksize\n $29 \u003d 0xd9000\n gdb\u003e down\n 2467            for (i \u003d 0; i \u003c idx; i++)\n gdb\u003e print i\n $30 \u003d 0xd44acbee\n\nThis is 100% reproducible with some autonuma development code tuned in\na very aggressive manner (not normal way even for knumad) which does\n\"exotic\" changes to the ptes. It wouldn\u0027t normally trigger but I don\u0027t\nsee why it can\u0027t happen normally if the page is added to swap cache in\nbetween the two faults leading to \"copied\" being zero (which then\nhangs in ext4). So it should be fixed. Especially possible with lumpy\nreclaim (albeit disabled if compaction is enabled) as that would\nignore the young bits in the ptes.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "fc6cb1cda5db7b2d24bf32890826214b857c728e",
      "tree": "2f3226090a2da8bcde9d568598ffb3a1c7626fd3",
      "parents": [
        "b4611abfa98af8351bf32e8b9ecc9d3384931c37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "message": "ext4: display the correct mount option in /proc/mounts for [no]init_itable\n\n/proc/mounts was showing the mount option [no]init_inode_table when\nthe correct mount option that will be accepted by parse_options() is\n[no]init_itable.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b4611abfa98af8351bf32e8b9ecc9d3384931c37",
      "tree": "a1ff17e10c37207e83bc602cf1fc8045d778c8a5",
      "parents": [
        "b5a7e97039a80fae673ccc115ce595d5b88fb4ee"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "message": "ext4: Fix crash due to getting bogus eh_depth value on big-endian systems\n\nCommit 1939dd84b3 (\"ext4: cleanup ext4_ext_grow_indepth code\") added a\nreference to ext4_extent_header.eh_depth, but forget to pass the value\nread through le16_to_cpu.  The result is a crash on big-endian\nmachines, such as this crash on a POWER7 server:\n\nattempt to access beyond end of device\nsda8: rw\u003d0, want\u003d776392648163376, limit\u003d168558560\nUnable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6bcb\nFaulting instruction address: 0xc0000000001f5f38\ncpu 0x14: Vector: 300 (Data Access) at [c000001bd1aaecf0]\n    pc: c0000000001f5f38: .__brelse+0x18/0x60\n    lr: c0000000002e07a4: .ext4_ext_drop_refs+0x44/0x80\n    sp: c000001bd1aaef70\n   msr: 9000000000009032\n   dar: 6b6b6b6b6b6b6bcb\n dsisr: 40000000\n  current \u003d 0xc000001bd15b8010\n  paca    \u003d 0xc00000000ffe4600\n    pid   \u003d 19911, comm \u003d flush-8:0\nenter ? for help\n[c000001bd1aaeff0] c0000000002e07a4 .ext4_ext_drop_refs+0x44/0x80\n[c000001bd1aaf090] c0000000002e0c58 .ext4_ext_find_extent+0x408/0x4c0\n[c000001bd1aaf180] c0000000002e145c .ext4_ext_insert_extent+0x2bc/0x14c0\n[c000001bd1aaf2c0] c0000000002e3fb8 .ext4_ext_map_blocks+0x628/0x1710\n[c000001bd1aaf420] c0000000002b2974 .ext4_map_blocks+0x224/0x310\n[c000001bd1aaf4d0] c0000000002b7f2c .mpage_da_map_and_submit+0xbc/0x490\n[c000001bd1aaf5a0] c0000000002b8688 .write_cache_pages_da+0x2c8/0x430\n[c000001bd1aaf720] c0000000002b8b28 .ext4_da_writepages+0x338/0x670\n[c000001bd1aaf8d0] c000000000157280 .do_writepages+0x40/0x90\n[c000001bd1aaf940] c0000000001ea830 .writeback_single_inode+0xe0/0x530\n[c000001bd1aafa00] c0000000001eb680 .writeback_sb_inodes+0x210/0x300\n[c000001bd1aafb20] c0000000001ebc84 .__writeback_inodes_wb+0xd4/0x140\n[c000001bd1aafbe0] c0000000001ebfec .wb_writeback+0x2fc/0x3e0\n[c000001bd1aafce0] c0000000001ed770 .wb_do_writeback+0x2f0/0x300\n[c000001bd1aafdf0] c0000000001ed848 .bdi_writeback_thread+0xc8/0x340\n[c000001bd1aafed0] c0000000000c5494 .kthread+0xb4/0xc0\n[c000001bd1aaff90] c000000000021f48 .kernel_thread+0x54/0x70\n\nThis is due to getting ext_depth(inode) \u003d\u003d 0x101 and therefore running\noff the end of the path array in ext4_ext_drop_refs into following\nunallocated structures.\n\nThis fixes it by adding the necessary le16_to_cpu.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b5a7e97039a80fae673ccc115ce595d5b88fb4ee",
      "tree": "b8533e2cb3fc30da051487257cd24af6edeea83e",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "message": "ext4: fix ext4_end_io_dio() racing against fsync()\n\nWe need to make sure iocb-\u003eprivate is cleared *before* we put the\nio_end structure on i_completed_io_list.  Otherwise fsync() could\npotentially run on another CPU and free the iocb structure out from\nunder us.\n\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "90802ed9c3dbab2e067bd9fc67a30e66e6774e8f",
      "tree": "ac379380a669ad3c2a7ab0c3d923f1e9644ae885",
      "parents": [
        "05183189ee5df8799b22c56d93f0f69b8490e33f"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Mon Dec 05 13:00:34 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Dec 06 09:53:40 2011 +0100"
      },
      "message": "treewide: Fix comment and string typo \u0027bufer\u0027\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "42b2aa86c6670347a2a07e6d7af0e0ecc8fdbff9",
      "tree": "6f8fb2a1efb3e84bf281658befe06dc6a7fb026b",
      "parents": [
        "a13b032776379fa6e2bfccf798969ca51e5fb052"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Mon Nov 28 20:31:00 2011 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 02 14:57:31 2011 +0100"
      },
      "message": "treewide: Fix typos in various parts of the kernel, and fix some comments.\n\nThe below patch fixes some typos in various parts of the kernel, as well as fixes some comments.\nPlease let me know if I missed anything, and I will try to get it changed and resent.\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4c81f045c0bd2cbb78cc6446a4cd98038fe11a2e",
      "tree": "d294fc2e46351d7ceb7b8d8b343cb5e6aabbcc18",
      "parents": [
        "caca6a03d365883564885f2c1da3e88dcf65d139"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "message": "ext4: fix racy use-after-free in ext4_end_io_dio()\n\next4_end_io_dio() queues io_end-\u003ework and then clears iocb-\u003eprivate;\nhowever, io_end-\u003ework calls aio_complete() which frees the iocb\nobject.  If that slab object gets reallocated, then ext4_end_io_dio()\ncan end up clearing someone else\u0027s iocb-\u003eprivate, this use-after-free\ncan cause a leak of a struct ext4_io_end_t structure.\n\nDetected and tested with slab poisoning.\n\n[ Note: Can also reproduce using 12 fio\u0027s against 12 file systems with the\n  following configuration file:\n\n  [global]\n  direct\u003d1\n  ioengine\u003dlibaio\n  iodepth\u003d1\n  bs\u003d4k\n  ba\u003d4k\n  size\u003d128m\n\n  [create]\n  filename\u003d${TESTDIR}\n  rw\u003dwrite\n\n  -- tytso ]\n\nGoogle-Bug-Id: 5354697\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nTested-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "986b11c3ee9e0eace25fe74a502205f7fe8c179b",
      "tree": "2271bc519eac458fd92799f5731e2ef604f69341",
      "parents": [
        "bb58dd5d1ffad6c2d21c69698ba766dad4ae54e6",
        "24b7ead3fb0bae267c2ee50898eb4c13aedd1e9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "message": "Merge branch \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into pm-freezer\n\n* \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc: (24 commits)\n  freezer: fix wait_event_freezable/__thaw_task races\n  freezer: kill unused set_freezable_with_signal()\n  dmatest: don\u0027t use set_freezable_with_signal()\n  usb_storage: don\u0027t use set_freezable_with_signal()\n  freezer: remove unused @sig_only from freeze_task()\n  freezer: use lock_task_sighand() in fake_signal_wake_up()\n  freezer: restructure __refrigerator()\n  freezer: fix set_freezable[_with_signal]() race\n  freezer: remove should_send_signal() and update frozen()\n  freezer: remove now unused TIF_FREEZE\n  freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n  cgroup_freezer: prepare for removal of TIF_FREEZE\n  freezer: clean up freeze_processes() failure path\n  freezer: kill PF_FREEZING\n  freezer: test freezable conditions while holding freezer_lock\n  freezer: make freezing indicate freeze condition in effect\n  freezer: use dedicated lock instead of task_lock() + memory barrier\n  freezer: don\u0027t distinguish nosig tasks on thaw\n  freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks\n  freezer: rename thaw_process() to __thaw_task() and simplify the implementation\n  ...\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "f8f5ed7c996ad9426847ce09b828d415cb19bc06",
      "tree": "ef5826a0b818ef6130c67da63a8bb8aa81b19dde",
      "parents": [
        "c292fe4aae5aa5c089633bc40342d27c8275306a",
        "6e58ad69efe9f4c91eb15f6bc365293414c397ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "message": "Merge branch \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix up a undefined error in ext4_free_blocks in debugging code\n  ext4: add blk_finish_plug in error case of writepages.\n  ext4: Remove kernel_lock annotations\n  ext4: ignore journalled data options on remount if fs has no journal\n"
    },
    {
      "commit": "6e58ad69efe9f4c91eb15f6bc365293414c397ce",
      "tree": "06c1f88ed4448526234172a2ae9ad2458488920d",
      "parents": [
        "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "message": "ext4: fix up a undefined error in ext4_free_blocks in debugging code\n\nsbi is not defined, so let ext4_free_blocks use EXT4_SB(sb) instead\nwhen EXT4FS_DEBUG is defined.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f",
      "tree": "9be412cacdd7778fc5826efdda0d135570929991",
      "parents": [
        "2397256d6218e7bf5147a3b01dcc6aec20fd3916"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "message": "ext4: add blk_finish_plug in error case of writepages.\n\nblk_finish_plug is needed in error case of writepages.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2397256d6218e7bf5147a3b01dcc6aec20fd3916",
      "tree": "b8f25e74a37f72ee670e5a2c96129e4fd0b49d0f",
      "parents": [
        "eb513689c97e3e73bb9b4459d490a8e894b4a546"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "message": "ext4: Remove kernel_lock annotations\n\nThe BKL is gone, these annotations are useless.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eb513689c97e3e73bb9b4459d490a8e894b4a546",
      "tree": "767931920c50055b4416b4554fa2dfac4c579b2a",
      "parents": [
        "5c8a0fbba543d9428a486f0d1282bbcf3cf1d95a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "message": "ext4: ignore journalled data options on remount if fs has no journal\n\nThis avoids a confusing failure in the init scripts when the\n/etc/fstab has data\u003dwriteback or data\u003djournal but the file system does\nnot have a journal.  So check for this case explicitly, and warn the\nuser that we are ignoring the (pointless, since they have no journal)\ndata\u003d* mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "d211858837ff8d8e31942ca7d27e6e08b3b46f5e",
      "tree": "a8ec83a791066e64ad02052498dbe39ebefacab9",
      "parents": [
        "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
        "f0023bc617ba600956b9226f1806033d7486c8ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue:\n  vfs: add d_prune dentry operation\n  vfs: protect i_nlink\n  filesystems: add set_nlink()\n  filesystems: add missing nlink wrappers\n  logfs: remove unnecessary nlink setting\n  ocfs2: remove unnecessary nlink setting\n  jfs: remove unnecessary nlink setting\n  hypfs: remove unnecessary nlink setting\n  vfs: ignore error on forced remount\n  readlinkat: ensure we return ENOENT for the empty pathname for normal lookups\n  vfs: fix dentry leak in simple_fill_super()\n"
    },
    {
      "commit": "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
      "tree": "694950045f2f5d89507d7206cf6595e09cdfbd2c",
      "parents": [
        "34116645d912f65d7eb4508a1db3c9d0e45facb1",
        "f2a44523b20f323e4aef7c16261d34d6f0a4bf06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 2011 -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: (97 commits)\n  jbd2: Unify log messages in jbd2 code\n  jbd/jbd2: validate sb-\u003es_first in journal_get_superblock()\n  ext4: let ext4_ext_rm_leaf work with EXT_DEBUG defined\n  ext4: fix a syntax error in ext4_ext_insert_extent when debugging enabled\n  ext4: fix a typo in struct ext4_allocation_context\n  ext4: Don\u0027t normalize an falloc request if it can fit in 1 extent.\n  ext4: remove comments about extent mount option in ext4_new_inode()\n  ext4: let ext4_discard_partial_buffers handle unaligned range correctly\n  ext4: return ENOMEM if find_or_create_pages fails\n  ext4: move vars to local scope in ext4_discard_partial_page_buffers_no_lock()\n  ext4: Create helper function for EXT4_IO_END_UNWRITTEN and i_aiodio_unwritten\n  ext4: optimize locking for end_io extent conversion\n  ext4: remove unnecessary call to waitqueue_active()\n  ext4: Use correct locking for ext4_end_io_nolock()\n  ext4: fix race in xattr block allocation path\n  ext4: trace punch_hole correctly in ext4_ext_map_blocks\n  ext4: clean up AGGRESSIVE_TEST code\n  ext4: move variables to their scope\n  ext4: fix quota accounting during migration\n  ext4: migrate cleanup\n  ...\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "bf52c6f7af55c48ab0fd5f990460b884b428d906",
      "tree": "8100b2e84bc4ce00802af3e37d00908aaacdcadf",
      "parents": [
        "32de67569059d22b02dd9323a40220d953642b7e"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Nov 01 18:59:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 18:59:26 2011 -0400"
      },
      "message": "ext4: let ext4_ext_rm_leaf work with EXT_DEBUG defined\n\nThe variable \u0027block\u0027 is removed by commit 750c9c47, so use the\nreplacement ex_ee_block instead.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "32de67569059d22b02dd9323a40220d953642b7e",
      "tree": "0b63dbf315ad042ac01dfaf5acb89110f55ad1e9",
      "parents": [
        "ff3fc1736f1967b59801ab2cf6409fc6c8556b0a"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Nov 01 18:56:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 18:56:41 2011 -0400"
      },
      "message": "ext4: fix a syntax error in ext4_ext_insert_extent when debugging enabled\n\nThis patch fixes a syntax error which omits a comma. Besides this,\nlogical block number is unsigend 32 bits, so printk should use %u\ninstead %d.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966dbde2c208e07bab7a45a7855e1e693eabe661",
      "tree": "4d1687ad52be80141d90a5bc3c5c6de64d9bad24",
      "parents": [
        "94054fa3fca1fd78db02cb3d68d5627120f0a1d4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "ext4: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  Warn if an attempt is made.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3fc1736f1967b59801ab2cf6409fc6c8556b0a",
      "tree": "ee2fbb7353f7a54584e2568b23a716f9ef2d7ce8",
      "parents": [
        "3c6fe77017bc6ce489f231c35fed3220b6691836"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Mon Oct 31 18:55:50 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:55:50 2011 -0400"
      },
      "message": "ext4: fix a typo in struct ext4_allocation_context\n\nThis patch changes \"bext\" to \"best\".\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3c6fe77017bc6ce489f231c35fed3220b6691836",
      "tree": "b3ca4d00dcecaf146361fef04afd8135ff370a07",
      "parents": [
        "4af835089984ce9e24c44a51be64c5524788e973"
      ],
      "author": {
        "name": "Greg Harm",
        "email": "gharm@google.com",
        "time": "Mon Oct 31 18:41:47 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:41:47 2011 -0400"
      },
      "message": "ext4: Don\u0027t normalize an falloc request if it can fit in 1 extent.\n\nIf an fallocate request fits in EXT_UNINIT_MAX_LEN, then set the\nEXT4_GET_BLOCKS_NO_NORMALIZE flag. For larger fallocate requests,\nlet mballoc.c normalize the request.\n\nThis fixes a problem where large requests were being split into\nnon-contiguous extents due to commit 556b27abf73: ext4: do not\nnormalize block requests from fallocate.\n\nTesting: \n*) Checked that 8.x MB falloc\u0027ed files are still laid down next to\neach other (contiguously).\n*) Checked that the maximum size extent (127.9MB) is allocated as 1\nextent.\n*) Checked that a 1GB file is somewhat contiguous (often 5-6\nnon-contiguous extents now).\n*) Checked that a 120MB file can still be falloc\u0027ed even if there are\nno single extents large enough to hold it.\n\nSigned-off-by: Greg Harm \u003cgharm@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4af835089984ce9e24c44a51be64c5524788e973",
      "tree": "73ccc1099e9caee8b790953fa4af6f53972c731d",
      "parents": [
        "edb5ac8993e25143f6af1ab143843a65c52e2a15"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Mon Oct 31 18:21:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:21:29 2011 -0400"
      },
      "message": "ext4: remove comments about extent mount option in ext4_new_inode()\n\nRemove comments about \u0027extent\u0027 mount option in ext4_new_inode(), since\nit\u0027s no longer exists.\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "edb5ac8993e25143f6af1ab143843a65c52e2a15",
      "tree": "d7ddf9603bcb2c540d5c240102a0dafc10f42eef",
      "parents": [
        "5129d05fda57be13f434dbe8536de39a6c25496d"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 18:04:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:04:38 2011 -0400"
      },
      "message": "ext4: let ext4_discard_partial_buffers handle unaligned range correctly\n\nAs comment says, we should handle unaligned range rather than aligned\none.  This fixes a bug found by running xfstests #91.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "5129d05fda57be13f434dbe8536de39a6c25496d",
      "tree": "e02d95dc0bba3fb12c69489c30b43fecca9fb115",
      "parents": [
        "e260daf27902b2189a9198f5b64fa4567939bb5b"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 17:56:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:56:10 2011 -0400"
      },
      "message": "ext4: return ENOMEM if find_or_create_pages fails\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e260daf27902b2189a9198f5b64fa4567939bb5b",
      "tree": "a14c395dc6d305b39ee595df66dd343000daf213",
      "parents": [
        "0edeb71dc9133bfb505d3bf59642e07cd936613e"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 17:54:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:54:36 2011 -0400"
      },
      "message": "ext4: move vars to local scope in ext4_discard_partial_page_buffers_no_lock()\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0edeb71dc9133bfb505d3bf59642e07cd936613e",
      "tree": "bcb68e2676d9bba1e4e4e28fb1ba8d382caf26eb",
      "parents": [
        "b82e384c7bb9a19036b4daf58fa216df7cd48aa0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 31 17:30:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:30:44 2011 -0400"
      },
      "message": "ext4: Create helper function for EXT4_IO_END_UNWRITTEN and i_aiodio_unwritten\n\nEXT4_IO_END_UNWRITTEN flag set and the increase of i_aiodio_unwritten\nshould be done simultaneously since ext4_end_io_nolock always clear\nthe flag and decrease the counter in the same time.\n\nWe have found some bugs that the flag is set while leaving\ni_aiodio_unwritten unchanged(commit 32c80b32c053d). So this patch just tries\nto create a helper function to wrap them to avoid any future bug.\nThe idea is inspired by Eric.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b82e384c7bb9a19036b4daf58fa216df7cd48aa0",
      "tree": "42bde122000b3bf3adf7eaa0328e0fdafdb3b5fd",
      "parents": [
        "4e298021216727cc27017c5032ade86167c66256"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 10:56:32 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 10:56:32 2011 -0400"
      },
      "message": "ext4: optimize locking for end_io extent conversion\n\nNow that we are doing the locking correctly, we need to grab the\ni_completed_io_lock() twice per end_io.  We can clean this up by\nremoving the structure from the i_complted_io_list, and use this as\nthe locking mechanism to prevent ext4_flush_completed_IO() racing\nagainst ext4_end_io_work(), instead of clearing the\nEXT4_IO_END_UNWRITTEN in io-\u003eflag.\n\nIn addition, if the ext4_convert_unwritten_extents() returns an error,\nwe no longer keep the end_io structure on the linked list.  This\ndoesn\u0027t help, because it tends to lock up the file system and wedges\nthe system.  That\u0027s one way to call attention to the problem, but it\ndoesn\u0027t help the overall robustness of the system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4e298021216727cc27017c5032ade86167c66256",
      "tree": "e50ab2e0747252c200773fc3e2a5bd885f85a30c",
      "parents": [
        "d73d5046a72467d4510825b99e2269e09ad80e15"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:41:19 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:41:19 2011 -0400"
      },
      "message": "ext4: remove unnecessary call to waitqueue_active()\n\nThe usage of waitqueue_active() is not necessary, and introduces (I\nbelieve) a hard-to-hit race.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d73d5046a72467d4510825b99e2269e09ad80e15",
      "tree": "4ac8b5729e1aeffe8348557a7f77da1791c268cc",
      "parents": [
        "6d6a435190bdf2e04c9465cde5bdc3ac68cf11a4"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Oct 30 18:26:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:26:08 2011 -0400"
      },
      "message": "ext4: Use correct locking for ext4_end_io_nolock()\n\nWe must hold i_completed_io_lock when manipulating anything on the\ni_completed_io_list linked list.  This includes io-\u003elock, which we\nwere checking in ext4_end_io_nolock().\n\nSo move this check to ext4_end_io_work().  This also has the bonus of\navoiding extra work if it is already done without needing to take the\nmutex.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0e175a1835ffc979e55787774e58ec79e41957d7",
      "tree": "6ec4b65a8de4e9d1c12d26a1079079ed81d79450",
      "parents": [
        "ad4e38dd6a33bb3a4882c487d7abe621e583b982"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Oct 07 21:54:10 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 31 00:33:36 2011 +0800"
      },
      "message": "writeback: Add a \u0027reason\u0027 to wb_writeback_work\n\nThis creates a new \u0027reason\u0027 field in a wb_writeback_work\nstructure, which unambiguously identifies who initiates\nwriteback activity.  A \u0027wb_reason\u0027 enumeration has been\nadded to writeback.h, to enumerate the possible reasons.\n\nThe \u0027writeback_work_class\u0027 and tracepoint event class and\n\u0027writeback_queue_io\u0027 tracepoints are updated to include the\nsymbolic \u0027reason\u0027 in all trace events.\n\nAnd the \u0027writeback_inodes_sbXXX\u0027 family of routines has had\na wb_stats parameter added to them, so callers can specify\nwhy writeback is being started.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "6d6a435190bdf2e04c9465cde5bdc3ac68cf11a4",
      "tree": "d20f0dc543e58f424f782ba70648c88b7fb0f3e5",
      "parents": [
        "e7b319e39776bd0e9c0c7855b023dafed2c93d27"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Oct 29 10:15:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 10:15:35 2011 -0400"
      },
      "message": "ext4: fix race in xattr block allocation path\n\nCeph users reported that when using Ceph on ext4, the filesystem\nwould often become corrupted, containing inodes with incorrect\ni_blocks counters.\n\nI managed to reproduce this with a very hacked-up \"streamtest\"\nbinary from the Ceph tree.\n\nCeph is doing a lot of xattr writes, to out-of-inode blocks.\nThere is also another thread which does sync_file_range and close,\nof the same files.  The problem appears to happen due to this race:\n\nsync/flush thread               xattr-set thread\n-----------------               ----------------\n\ndo_writepages                   ext4_xattr_set\next4_da_writepages              ext4_xattr_set_handle\nmpage_da_map_blocks             ext4_xattr_block_set\n        set DELALLOC_RESERVE\n                                ext4_new_meta_blocks\n                                        ext4_mb_new_blocks\n                                                if (!i_delalloc_reserved_flag)\n                                                        vfs_dq_alloc_block\next4_get_blocks\n\tdown_write(i_data_sem)\n        set i_delalloc_reserved_flag\n\t...\n\tup_write(i_data_sem)\n                                        if (i_delalloc_reserved_flag)\n                                                vfs_dq_alloc_block_nofail\n\n\nIn other words, the sync/flush thread pops in and sets\ni_delalloc_reserved_flag on the inode, which makes the xattr thread\nthink that it\u0027s in a delalloc path in ext4_new_meta_blocks(),\nand add the block for a second time, after already having added\nit once in the !i_delalloc_reserved_flag case in ext4_mb_new_blocks\n\nThe real problem is that we shouldn\u0027t be using the DELALLOC_RESERVED\nstate flag, and instead we should be passing\nEXT4_GET_BLOCKS_DELALLOC_RESERVE down to ext4_map_blocks() instead of\nusing an inode state flag.  We\u0027ll fix this for now with using\ni_data_sem to prevent this race, but this is really not the right way\nto fix things.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "e7b319e39776bd0e9c0c7855b023dafed2c93d27",
      "tree": "f8b52990697e2111baf7fd3f5c92ab17c62024b3",
      "parents": [
        "02dc62fba89eaee0157752c5f1ba811ef3156e00"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:39:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:39:51 2011 -0400"
      },
      "message": "ext4: trace punch_hole correctly in ext4_ext_map_blocks\n\nWhen ext4_ext_map_blocks() is called by punch_hole, trace should\ntrace blocks punched out.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "02dc62fba89eaee0157752c5f1ba811ef3156e00",
      "tree": "d1f8ba664676570fbd6354a8299b0703901a760d",
      "parents": [
        "81fdbb4a8d34242f0ed048395c4ddc910f1dffbe"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:29:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:29:11 2011 -0400"
      },
      "message": "ext4: clean up AGGRESSIVE_TEST code\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "81fdbb4a8d34242f0ed048395c4ddc910f1dffbe",
      "tree": "1c7d4050d953d24388e1f0f35e48b8d08fa0bd64",
      "parents": [
        "5cb81dabcc28863e7d04e6fd9ede154bd8459c14"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:23:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:23:38 2011 -0400"
      },
      "message": "ext4: move variables to their scope\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5cb81dabcc28863e7d04e6fd9ede154bd8459c14",
      "tree": "704df9fffdc243449dc5eba697cec133162ee1bf",
      "parents": [
        "fba90ffee813e2425feb9a57c532b3d297af18c3"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 29 09:05:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:05:00 2011 -0400"
      },
      "message": "ext4: fix quota accounting during migration\n\nThe tmp_inode should have same uid/gid as the original inode.\nOtherwise new metadata blocks will be accounted to wrong quota-id,\nwhich will result in a quota leak after the inode migration is\ncompleted.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fba90ffee813e2425feb9a57c532b3d297af18c3",
      "tree": "d208361cfec8a3a5a1bbebb90d7f50f6707d99ec",
      "parents": [
        "6cdbb0effc2f511ced23e46f2117e4b31d3d4a50"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 29 09:03:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:03:00 2011 -0400"
      },
      "message": "ext4: migrate cleanup\n\nThis patch cleanup code a bit, actual logic not changed\n- Move current block pointer to migrate_structure, let\u0027s all\n  walk info will be in one structure.\n- Get rid of usless null ind-block ptr checks, caller already\n  does that check.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "4cce0e28b932c11454f75d1c1fae674600c23fbf",
      "tree": "3c1a0772eb6e681ebde32c7a9bab2cefb87eaf69",
      "parents": [
        "5760495a872d63a182962680a13c2af29235237c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:51 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:59 2011 +0200"
      },
      "message": "ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n\nThis gives ext4 the benefits of unlocked llseek.\n\nCc: tytso@mit.edu\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "80e675f906db54eb1ce3a9555cee5f45b5b72ab2",
      "tree": "b9bd012caf69c479a946b467c051f505caa1f593",
      "parents": [
        "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:52:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:52:18 2011 -0400"
      },
      "message": "ext4: optimize memmmove lengths in extent/index insertions\n\next4_ext_insert_extent() (respectively ext4_ext_insert_index())\nwas using EXT_MAX_EXTENT() (resp. EXT_MAX_INDEX()) to determine\nhow many entries needed to be moved beyond the insertion point.\nIn practice this means that (320 - I) * 24 bytes were memmove()\u0027d\nwhen I is the insertion point, rather than (#entries - I) * 24 bytes.\n\nThis patch uses EXT_LAST_EXTENT() (resp. EXT_LAST_INDEX()) instead\nto only move existing entries. The code flow is also simplified\nslightly to highlight similarities and reduce code duplication in\nthe insertion logic.\n\nThis patch reduces system CPU consumption by over 25% on a 4kB\nsynchronous append DIO write workload when used with the\npre-2.6.39 x86_64 memmove() implementation. With the much faster\n2.6.39 memmove() implementation we still see a decrease in\nsystem CPU usage between 2% and 7%.\n\nNote that the ext_debug() output changes with this patch, splitting\nsome log information between entries. Users of the ext_debug() output\nshould note that the \"move %d\" units changed from reporting the number\nof bytes moved to reporting the number of entries moved.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc",
      "tree": "e5670070f007c4ad5300e93a4e36fa9a802e2bd9",
      "parents": [
        "446066724c3629664e29942a00b0aee0d6b1663a"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "message": "ext4: optimize ext4_ext_convert_to_initialized()\n\nThis patch introduces a fast path in ext4_ext_convert_to_initialized()\nfor the case when the conversion can be performed by transferring\nthe newly initialized blocks from the uninitialized extent into\nan adjacent initialized extent. Doing so removes the expensive\ninvocations of memmove() which occur during extent insertion and\nthe subsequent merge.\n\nIn practice this should be the common case for clients performing\nappend writes into files pre-allocated via\nfallocate(FALLOC_FL_KEEP_SIZE). In such a workload performed via\ndirect IO and when using a suboptimal implementation of memmove()\n(x86_64 prior to the 2.6.39 rewrite), this patch reduces kernel CPU\nconsumption by 32%.\n\nTwo new trace points are added to ext4_ext_convert_to_initialized()\nto offer visibility into its operations. No exit trace point has\nbeen added due to the multiplicity of return points. This can be\nrevisited once the upstream cleanup is backported.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b3ff05690845911cc40387176f0bc5a7af9ef3ff",
      "tree": "9ed6230ae4616d67d85aed9e9b8dc6477642312c",
      "parents": [
        "0a10da73e1fa6fb9b45f1166011ff3b04c27c010"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "message": "ext4: don\u0027t check io-\u003eflag when setting EXT4_STATE_DIO_UNWRITTEN inode state\n\nWhen we want to convert the unitialized extent in direct write, we can\neither do it in ext4_end_io_nolock(AIO case) or in\next4_ext_direct_IO(non AIO case) and EXT4_I(inode)-\u003ecur_aio_dio is a\nguard for ext4_ext_map_blocks to find the right case.  In e9e3bcecf,\nwe mistakenly change it by:\n\n-\t\t\tif (io)\n+\t\t\tif (io \u0026\u0026 !(io-\u003eflag \u0026 EXT4_IO_END_UNWRITTEN)) {\n \t\t\t\tio-\u003eflag \u003d EXT4_IO_END_UNWRITTEN;\n-\t\t\telse\n+\t\t\t\tatomic_inc(\u0026EXT4_I(inode)-\u003ei_aiodio_unwritten);\n+\t\t\t} else\n \t\t\t\text4_set_inode_state(inode,\n \t\t\t\t\t\t     EXT4_STATE_DIO_UNWRITTEN);\n\nSo now if we map 2 blocks, and the first one set the\nEXT_IO_END_UNWRITTEN, the 2nd mapping will set inode state because of\nthe check for the flag. This is wrong.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a10da73e1fa6fb9b45f1166011ff3b04c27c010",
      "tree": "d72a254eb5a9b983e60f6c8b6b1807c0139f123f",
      "parents": [
        "b051d8dc4e1f011e1b0543a875f5861be5d90222"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "message": "ext4: fix a wrong comment in __mb_check_buddy()\n\nThe comment says the bit should be 0, but the after code assert the\nbit to be 1.  This makes people confused, so fix it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b051d8dc4e1f011e1b0543a875f5861be5d90222",
      "tree": "3995e217a162f4d1882f6111ac2f1a8dca64c211",
      "parents": [
        "66a83cde47deb4e8874539326e12e88ed82158d3"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "message": "ext4: remove unused variable in mb_find_extent()\n\nThe variable \u0027ord\u0027 in function mb_find_extent() is redundant, so\nremove it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "66a83cde47deb4e8874539326e12e88ed82158d3"
}
