)]}'
{
  "log": [
    {
      "commit": "6268b325c3066234e7bddb99d2b98bcedb0c0033",
      "tree": "5dca66fae30aa44e314ec6713ab31b773ad788e4",
      "parents": [
        "12679a2d7e3bfbdc7586e3e86d1ca90c46659363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "message": "Revert \"ext4: don\u0027t release page refs in ext4_end_bio()\"\n\nThis reverts commit b43d17f319f2c502b17139d1cf70731b2b62c644.\n\nDave Jones reports that it causes lockups on his laptop, and his debug\noutput showed a lot of processes hung waiting for page_writeback (or\nmore commonly - processes hung waiting for a lock that was held during\nthat writeback wait).\n\nThe page_writeback hint made Ted suggest that Dave look at this commit,\nand Dave verified that reverting it makes his problems go away.\n\nTed says:\n \"That commit fixes a race which is seen when you write into fallocated\n  (and hence uninitialized) disk blocks under *very* heavy memory\n  pressure.  Furthermore, although theoretically it could trigger under\n  normal direct I/O writes, it only seems to trigger if you are issuing\n  a huge number of AIO writes, such that a just-written page can get\n  evicted from memory, and then read back into memory, before the\n  workqueue has a chance to update the extent tree.\n\n  This race has been around for a little over a year, and no one noticed\n  until two months ago; it only happens under fairly exotic conditions,\n  and in fact even after trying very hard to create a simple repro under\n  lab conditions, we could only reproduce the problem and confirm the\n  fix on production servers running MySQL on very fast PCIe-attached\n  flash devices.\n\n  Given that Dave was able to hit this problem pretty quickly, if we\n  confirm that this commit is at fault, the only reasonable thing to do\n  is to revert it IMO.\"\n\nReported-and-tested-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71db34fc4330f7c784397acb9f1e6ee7f7b32eb2",
      "tree": "77dd08f6f778a799dcd0c48eb72d0742349df235",
      "parents": [
        "50483c3268918ee51a56d1baa39b9149d2d0d521",
        "797a9d797f8483bb67f265c761b76dcd5a077a23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from Bruce Fields:\n\nHighlights:\n - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,\n   moving us closer to a complete 4.1 implementation.\n - Bernd Schubert fixed a long-standing problem with readdir cookies on\n   ext2/3/4.\n - Jeff Layton performed a long-overdue overhaul of the server reboot\n   recovery code which will allow us to deprecate the current code (a\n   rather unusual user of the vfs), and give us some needed flexibility\n   for further improvements.\n - Like the client, we now support numeric uid\u0027s and gid\u0027s in the\n   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.\n\nPlus miscellaneous bugfixes and cleanup.\n\nThanks to everyone!\n\nThere are also some delegation fixes waiting on vfs review that I\nsuppose will have to wait for 3.5.  With that done I think we\u0027ll finally\nturn off the \"EXPERIMENTAL\" dependency for v4 (though that\u0027s mostly\nsymbolic as it\u0027s been on by default in distro\u0027s for a while).\n\nAnd the list of 4.1 todo\u0027s should be achievable for 3.5 as well:\n\n   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\nthough we may still want a bit more experience with it before turning it\non by default.\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux: (55 commits)\n  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n  nfsd4: use auth_unix unconditionally on backchannel\n  nfsd: fix NULL pointer dereference in cld_pipe_downcall\n  nfsd4: memory corruption in numeric_name_to_id()\n  sunrpc: skip portmap calls on sessions backchannel\n  nfsd4: allow numeric idmapping\n  nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n  nfsd: add the infrastructure to handle the cld upcall\n  nfsd: add a header describing upcall to nfsdcld\n  nfsd: add a per-net-namespace struct for nfsd\n  sunrpc: create nfsd dir in rpc_pipefs\n  nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n  nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n  NFSD: Fix nfs4_verifier memory alignment\n  NFSD: Fix warnings when NFSD_DEBUG is not defined\n  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n  nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n  ext4: return 32/64-bit dir name hash according to usage type\n  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash\n  ...\n"
    },
    {
      "commit": "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
      "tree": "14ad49741b428d270b681694bb2df349465455b9",
      "parents": [
        "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
        "9d547c35799a4ddd235f1565cec2fff6c9263504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates for 3.4 from Ted Ts\u0027o:\n \"Ext4 commits for 3.3 merge window; mostly cleanups and bug fixes\n\n  The changes to export dirty_writeback_interval are from Artem\u0027s s_dirt\n  cleanup patch series.  The same is true of the change to remove the\n  s_dirt helper functions which never got used by anyone in-tree.  I\u0027ve\n  run these changes by Al Viro, and am carrying them so that Artem can\n  more easily fix up the rest of the file systems during the next merge\n  window.  (Originally we had hopped to remove the use of s_dirt from\n  ext4 during this merge window, but his patches had some bugs, so I\n  ultimately ended dropping them from the ext4 tree.)\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (66 commits)\n  vfs: remove unused superblock helpers\n  mm: export dirty_writeback_interval\n  ext4: remove useless s_dirt assignment\n  ext4: write superblock only once on unmount\n  ext4: do not mark superblock as dirty unnecessarily\n  ext4: correct ext4_punch_hole return codes\n  ext4: remove restrictive checks for EOFBLOCKS_FL\n  ext4: always set then trimmed blocks count into len\n  ext4: fix trimmed block count accunting\n  ext4: fix start and len arguments handling in ext4_trim_fs()\n  ext4: update s_free_{inodes,blocks}_count during online resize\n  ext4: change some printk() calls to use ext4_msg() instead\n  ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n  ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n  ext4: add no_printk argument validation, fix fallout\n  ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n  ext4: give more helpful error message in ext4_ext_rm_leaf()\n  ext4: remove unused code from ext4_ext_map_blocks()\n  ext4: rewrite punch hole to use ext4_ext_remove_space()\n  jbd2: cleanup journal tail after transaction commit\n  ...\n"
    },
    {
      "commit": "182f514f883abb5f942c94e61c371c4b406352d4",
      "tree": "dfcdedfc4e68eee92107aa06fdf92952dadd259a",
      "parents": [
        "a8e25a83245618e6b0ddf82a9bba79c1b466804d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:30:06 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:30:06 2012 -0400"
      },
      "message": "ext4: remove useless s_dirt assignment\n\nClean-up ext4 a tiny bit by removing useless s_dirt assignment in\n\u0027ext4_fill_super()\u0027 because a bit later we anyway call\n\u0027ext4_setup_super()\u0027 which writes the superblock to the media\nunconditionally.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a8e25a83245618e6b0ddf82a9bba79c1b466804d",
      "tree": "0bcdefe7f23b4fba9a9b20e02cec08d0550de316",
      "parents": [
        "1b8b9750f07cdd6e13f12c06ae7ec853f2abbe6c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:29:15 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:29:15 2012 -0400"
      },
      "message": "ext4: write superblock only once on unmount\n\nIn some rather rare cases it is possible that ext4 may the superblock\nto the media twice. This patch makes sure this does not happen. This\nshould speed up unmounting in those cases.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1b8b9750f07cdd6e13f12c06ae7ec853f2abbe6c",
      "tree": "e760b3589e4c4e1e6b346cda33f6730ff3f713a4",
      "parents": [
        "73355192748483a5ba698345092321611f91b04f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:28:29 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:28:29 2012 -0400"
      },
      "message": "ext4: do not mark superblock as dirty unnecessarily\n\nCommit a0375156ca1041574b5d47cc7e32f10b891151b0 cleaned up superblock\ndirtying handling, but missed one place. This patch does what was\nintended: if we have the journal, then we update the superblock\nthrough the journal rather than doing this directly.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "73355192748483a5ba698345092321611f91b04f",
      "tree": "60f31f2865bef81b8e12d52bb60e63a3a967f325",
      "parents": [
        "afcff5d80a4106e732d903640161d23950eb8e3b"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed Mar 21 22:23:31 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:23:31 2012 -0400"
      },
      "message": "ext4: correct ext4_punch_hole return codes\n\next4_punch_hole returns -ENOTSUPP but it should be using -EOPNOTSUPP\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "afcff5d80a4106e732d903640161d23950eb8e3b",
      "tree": "9a78cb5546c3f10bb98d3ce8b4f31889f5ad10bc",
      "parents": [
        "a7967f055a9438941268d725b268141c57e32a05"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:47:55 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:47:55 2012 -0400"
      },
      "message": "ext4: remove restrictive checks for EOFBLOCKS_FL\n\nWe are going to remove the EOFBLOCKS_FL flag in the future, so this is\nthe first part of the removal. We can not remove it entirely just now,\nsince the e2fsck is still checking for it and it might cause headache to\nsome people. Instead, remove the restrictive checks now and the rest\nlater, when the new e2fsck code is out and common enough.\n\nThis is also needed because punch hole already breaks the EOFBLOCKS_FL\nsemantics, so it might cause the some troubles. So simply remove it.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a7967f055a9438941268d725b268141c57e32a05",
      "tree": "e79e8452bdb81baa850f71b5f62b23d2c326b98b",
      "parents": [
        "21e7fd22a5a0ca83befe12c58cced21975dab213"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:26:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:26:22 2012 -0400"
      },
      "message": "ext4: always set then trimmed blocks count into len\n\nCurrently if the range to trim is too small, for example on 1K fs\nthe request to trim the first block, then the \u0027range-\u003elen\u0027 is not set\nreporting wrong number of discarded block to the caller.\n\nFix this by always setting the \u0027range-\u003elen\u0027 before we return. Note that\nwhen there is a failure (-EINVAL) caller can not depend on \u0027range-\u003elen\u0027\nbeing set properly.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "21e7fd22a5a0ca83befe12c58cced21975dab213",
      "tree": "bb11f7073ad3984e0ab775fc4800f5ee05864623",
      "parents": [
        "913eed83eda42012cde8a9a801c31b312545c098"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:24:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:24:22 2012 -0400"
      },
      "message": "ext4: fix trimmed block count accunting\n\nCurrently when there is not enough free blocks in the block group to\ndiscard (grp-\u003ebb_free \u003c minlen) the \u0027trimmed\u0027 is bumped up anyway with\nthe number of discarded blocks from the previous iteration. Fix this\nby bumping up \u0027trimmed\u0027 only if the ext4_trim_all_free() was actually\nrun.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "913eed83eda42012cde8a9a801c31b312545c098",
      "tree": "c6d3ecf5f98fcb1da3854059dbcc51c27b078011",
      "parents": [
        "636d7e2e3b57543636d20cd083079300ccdd569d"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:22:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:22:22 2012 -0400"
      },
      "message": "ext4: fix start and len arguments handling in ext4_trim_fs()\n\nThe overflow can happen when we are calling get_group_no_and_offset()\nwhich stores the group number in the ext4_grpblk_t type which is\nactually int. However when the blocknr is big enough the group number\nmight be bigger than ext4_grpblk_t resulting in overflow. This will\nmost likely happen with FITRIM default argument len \u003d ULLONG_MAX.\n\nFix this by using \"end\" variable instead of \"start+len\" as it is easier\nto get right and specifically check that the end is not beyond the end\nof the file system, so we are sure that the result of\nget_group_no_and_offset() will not overflow. Otherwise truncate it to\nthe size of the file system.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "07c0c5d8b8c122b2f2df9ee574ac3083daefc981",
      "tree": "042fcae9a90b5e200b9c00c32df8096c8099039c",
      "parents": [
        "88187398cc5fa6650f38b9dcd5464667f468888f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 22:05:02 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 22:05:02 2012 -0400"
      },
      "message": "ext4: initialization of ext4_li_mtx needs to be done earlier\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "636d7e2e3b57543636d20cd083079300ccdd569d",
      "tree": "c3dcb77693d2a2262be5ebc4a2f993d01453b4b6",
      "parents": [
        "92b9781658dba287a1354ad74ed351f68c3ee740"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Mar 20 15:46:11 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 20 15:46:11 2012 -0400"
      },
      "message": "ext4: update s_free_{inodes,blocks}_count during online resize\n\nWhen we\u0027re doing an online resize of an ext4 filesystem, we need to\nupdate the free inode and block counts in the superblock so that fsck\ndoesn\u0027t complain.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "92b9781658dba287a1354ad74ed351f68c3ee740",
      "tree": "1dc2a11343544374321bf18340b0bf886c898f97",
      "parents": [
        "d9ee81da93e86ac45aef30b2493a1e68fc71b9d0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:41:49 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:41:49 2012 -0400"
      },
      "message": "ext4: change some printk() calls to use ext4_msg() instead\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d9ee81da93e86ac45aef30b2493a1e68fc71b9d0",
      "tree": "0c6716d701f2d469ea61e206b6d845e77f185eb4",
      "parents": [
        "1084f252e3490392575b80cbdfa1baf0842173d8"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 19 23:15:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:15:43 2012 -0400"
      },
      "message": "ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n\nUsing KERN_CONT means that messages from multiple threads may be\ninterleaved.  Avoid this by using a single printk call in\next4_error_inode and ext4_error_file.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1084f252e3490392575b80cbdfa1baf0842173d8",
      "tree": "063673648d6e16f6f2873bfcf99791eacadf1aec",
      "parents": [
        "ace36ad431c6820c2a8718cee85e5294d6e19747"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:13:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:13:43 2012 -0400"
      },
      "message": "ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n\nThe functions ext4_msg() and ext4_error() already tack on a trailing\nnewline, so remove the unnecessary extra newline.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "ace36ad431c6820c2a8718cee85e5294d6e19747",
      "tree": "b912bf7cf277cbca3bb04d71e973ad1cbf62b432",
      "parents": [
        "7f6a11e73d755ce82497ee4ac79d85aa10f73a38"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 19 23:11:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:11:43 2012 -0400"
      },
      "message": "ext4: add no_printk argument validation, fix fallout\n\nAdd argument validation to debug functions.\nUse ##__VA_ARGS__.\n\nFix format and argument mismatches.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f6a11e73d755ce82497ee4ac79d85aa10f73a38",
      "tree": "d883a87828ca6220eb92a3a2c5ea02e4cace83b0",
      "parents": [
        "dc1841d6cff22b98deef46bfe768a9c678d917c2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Mar 19 23:09:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:09:43 2012 -0400"
      },
      "message": "ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n\next4_msg adds \"EXT4-fs: \" to the messsage output.\nRemove the redundant bits from uses.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dc1841d6cff22b98deef46bfe768a9c678d917c2",
      "tree": "2d97eb9fd90fcd42bee4f5d7b7d9adb2459983f6",
      "parents": [
        "7877191c28b1e140795c0c951dde8aad43757378"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Mar 19 23:07:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:07:43 2012 -0400"
      },
      "message": "ext4: give more helpful error message in ext4_ext_rm_leaf()\n\nThe error message produced by the ext4_ext_rm_leaf() when we are\nremoving blocks which accidentally ends up inside the existing extent,\nis not very helpful, because we would like to also know which extent did\nwe collide with.\n\nThis commit changes the error message to get us also the information\nabout the extent we are colliding with.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7877191c28b1e140795c0c951dde8aad43757378",
      "tree": "2ce9989e43ad3a072a109e6df8a7cb1939f55e6b",
      "parents": [
        "5f95d21fb6f2aaa52830e5b7fb405f6c71d3ab85"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Mar 19 23:05:43 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:05:43 2012 -0400"
      },
      "message": "ext4: remove unused code from ext4_ext_map_blocks()\n\nSince the commit \u0027Rewrite punch hole to use ext4_ext_remove_space()\u0027\nreworked the punch hole implementation to use ext4_ext_remove_space()\ninstead of ext4_ext_map_blocks(), we can remove the code which is no\nlonger needed from the ext4_ext_map_blocks().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5f95d21fb6f2aaa52830e5b7fb405f6c71d3ab85",
      "tree": "383159c3d591279fcfae9695d64819f71636fd4b",
      "parents": [
        "3339578f05787259917788f461f4196b7349c2a4"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Mar 19 23:03:19 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 19 23:03:19 2012 -0400"
      },
      "message": "ext4: rewrite punch hole to use ext4_ext_remove_space()\n\nThis commit rewrites ext4 punch hole implementation to use\next4_ext_remove_space() instead of its home gown way of doing this via\next4_ext_map_blocks(). There are several reasons for changing this.\n\nFirstly it is quite non obvious that punching hole needs to\next4_ext_map_blocks() to punch a hole, especially given that this\nfunction should map blocks, not unmap it. It also required a lot of new\ncode in ext4_ext_map_blocks().\n\nSecondly the design of it is not very effective. The reason is that we\nare trying to punch out blocks in ext4_ext_punch_hole() in opposite\ndirection than in ext4_ext_rm_leaf() which causes the ext4_ext_rm_leaf()\nto iterate through the whole tree from the end to the start to find the\nrequested extent for every extent we are going to punch out.\n\nAnd finally the current implementation does not use the existing code,\nbut bring a lot of new code, which is IMO unnecessary since there\nalready is some infrastructure we can use. Specifically\next4_ext_remove_space().\n\nThis commit changes ext4_ext_remove_space() to accept \u0027end\u0027 parameter so\nwe can not only truncate to the end of file, but also remove the space\nin the middle of the file (punch a hole). Moreover, because the last\nblock to punch out, might be in the middle of the extent, we have to\nsplit the extent at \u0027end + 1\u0027 so ext4_ext_rm_leaf() can easily either\nremove the whole fist part of split extent, or change its size.\n\next4_ext_remove_space() is then used to actually remove the space\n(extents) from within the hole, instead of ext4_ext_map_blocks().\n\nNote that this also fix the issue with punch hole, where we would forget\nto remove empty index blocks from the extent tree, resulting in double\nfree block error and file system corruption. This is simply because we\nnow use different code path, where this problem does not exist.\n\nThis has been tested with fsx running for several days and xfstests,\nplus xfstest #251 with \u0027-o discard\u0027 run on the loop image (which\nconverts discard requestes into punch hole to the backing file). All of\nit on 1K and 4K file system block size.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d1f5273e9adb40724a85272f248f210dc4ce919a",
      "tree": "1ddb119dab8247ab7d7774394094c61161013f2a",
      "parents": [
        "6a8a13e03861c0ab83ab07d573ca793cff0e5d00"
      ],
      "author": {
        "name": "Fan Yong",
        "email": "yong.fan@whamcloud.com",
        "time": "Sun Mar 18 22:44:40 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 18 22:44:40 2012 -0400"
      },
      "message": "ext4: return 32/64-bit dir name hash according to usage type\n\nTraditionally ext2/3/4 has returned a 32-bit hash value from llseek()\nto appease NFSv2, which can only handle a 32-bit cookie for seekdir()\nand telldir().  However, this causes problems if there are 32-bit hash\ncollisions, since the NFSv2 server can get stuck resending the same\nentries from the directory repeatedly.\n\nAllow ext4 to return a full 64-bit hash (both major and minor) for\ntelldir to decrease the chance of hash collisions.  This still needs\nintegration on the NFS side.\n\nPatch-updated-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\n(blame me if something is not correct)\n\nSigned-off-by: Fan Yong \u003cyong.fan@whamcloud.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "31d4f3a2f3c73f279ff96a7135d7202ef6833f12",
      "tree": "9240ee74aa863ea27f5e9c89e1e3cf0e4784c032",
      "parents": [
        "4188188bdc3aed29eb41fb1537305cff7431d062"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 11 23:30:16 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 11 23:30:16 2012 -0400"
      },
      "message": "ext4: check for zero length extent\n\nExplicitly test for an extent whose length is zero, and flag that as a\ncorrupted extent.\n\nThis avoids a kernel BUG_ON assertion failure.\n\nTested: Without this patch, the file system image found in\ntests/f_ext_zero_len/image.gz in the latest e2fsprogs sources causes a\nkernel panic.  With this patch, an ext4 file system error is noted\ninstead, and the file system is marked as being corrupted.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d42859\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4188188bdc3aed29eb41fb1537305cff7431d062",
      "tree": "8068d261bb142eeb6b5c443db23baf1dca77b09e",
      "parents": [
        "b43d17f319f2c502b17139d1cf70731b2b62c644"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Mon Mar 05 10:40:22 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 05 10:40:22 2012 -0500"
      },
      "message": "ext4: add comments to definition of ext4_io_end_t\n\nThis should make it more clear what this structure is used\nfor, and how some of the (mutually exclusive) fields are\nused to keep page cache references.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b43d17f319f2c502b17139d1cf70731b2b62c644",
      "tree": "05215b2155e4dbc66f6b1035b8afba7c805284db",
      "parents": [
        "491caa43639abcffaa645fbab372a7ef4ce2975c"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Mon Mar 05 10:40:15 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 05 10:40:15 2012 -0500"
      },
      "message": "ext4: don\u0027t release page refs in ext4_end_bio()\n\nWe can clear PageWriteback on each page when the IO\ncompletes, but we can\u0027t release the references on the page\nuntil we convert any uninitialized extents.\n\nWithout this patch, the use of the dioread_nolock mount\noption can break buffered writes, because extents may\nnot be converted by the time a subsequent buffered read\ncomes in; if the page is not in the page cache, a read\nwill return zeros if the extent is still uninitialized.\n\nI tested this with a (temporary) patch that adds a call\nto msleep(1000) at the start of ext4_end_io_work(), to delay\nprocessing of each DIO-unwritten work queue item.  With this\nmsleep(), a simple workload of\n\n  fallocate\n  write\n  fadvise\n  read\n\nwill fail without this patch, succeeds with it.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "491caa43639abcffaa645fbab372a7ef4ce2975c",
      "tree": "361ce8690a50681765a21fb6c0ed579034ae4b4e",
      "parents": [
        "93ef8541d5c3ad1a73057ff358a49d0ee7146d6f"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Mon Mar 05 10:29:52 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 05 10:29:52 2012 -0500"
      },
      "message": "ext4: fix race between sync and completed io work\n\nThe following command line will leave the aio-stress process unkillable\non an ext4 file system (in my case, mounted on /mnt/test):\n\naio-stress -t 20 -s 10 -O -S -o 2 -I 1000 /mnt/test/aiostress.3561.4 /mnt/test/aiostress.3561.4.20 /mnt/test/aiostress.3561.4.19 /mnt/test/aiostress.3561.4.18 /mnt/test/aiostress.3561.4.17 /mnt/test/aiostress.3561.4.16 /mnt/test/aiostress.3561.4.15 /mnt/test/aiostress.3561.4.14 /mnt/test/aiostress.3561.4.13 /mnt/test/aiostress.3561.4.12 /mnt/test/aiostress.3561.4.11 /mnt/test/aiostress.3561.4.10 /mnt/test/aiostress.3561.4.9 /mnt/test/aiostress.3561.4.8 /mnt/test/aiostress.3561.4.7 /mnt/test/aiostress.3561.4.6 /mnt/test/aiostress.3561.4.5 /mnt/test/aiostress.3561.4.4 /mnt/test/aiostress.3561.4.3 /mnt/test/aiostress.3561.4.2\n\nThis is using the aio-stress program from the xfstests test suite.\nThat particular command line tells aio-stress to do random writes to\n20 files from 20 threads (one thread per file).  The files are NOT\npreallocated, so you will get writes to random offsets within the\nfile, thus creating holes and extending i_size.  It also opens the\nfile with O_DIRECT and O_SYNC.\n\nOn to the problem.  When an I/O requires unwritten extent conversion,\nit is queued onto the completed_io_list for the ext4 inode.  Two code\npaths will pull work items from this list.  The first is the\next4_end_io_work routine, and the second is ext4_flush_completed_IO,\nwhich is called via the fsync path (and O_SYNC handling, as well).\nThere are two issues I\u0027ve found in these code paths.  First, if the\nfsync path beats the work routine to a particular I/O, the work\nroutine will free the io_end structure!  It does not take into account\nthe fact that the io_end may still be in use by the fsync path.  I\u0027ve\nfixed this issue by adding yet another IO_END flag, indicating that\nthe io_end is being processed by the fsync path.\n\nThe second problem is that the work routine will make an assignment to\nio-\u003eflag outside of the lock.  I have witnessed this result in a hang\nat umount.  Moving the flag setting inside the lock resolved that\nproblem.\n\nThe problem was introduced by commit b82e384c7b (\"ext4: optimize\nlocking for end_io extent conversion\"), which first appeared in 3.2.\nAs such, the fix should be backported to that release (probably along\nwith the unwritten extent conversion race fix).\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: stable@kernel.org\n\n"
    },
    {
      "commit": "93ef8541d5c3ad1a73057ff358a49d0ee7146d6f",
      "tree": "70c2a7cac370084edac29ee0156f52d488ee32ab",
      "parents": [
        "f70486055ee351158bd6999f3965ad378b52c694"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Mon Mar 05 10:19:52 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 05 10:19:52 2012 -0500"
      },
      "message": "ext4: clean up the flags passed to __blockdev_direct_IO\n\nFor extent-based files, you can perform DIO to holes, as mentioned in\nthe comments in ext4_ext_direct_IO.  However, that function passes\nDIO_SKIP_HOLES to __blockdev_direct_IO, which is *really* confusing to\nthe uninitiated reader.  The key, here, is that the get_block function\npassed in, ext4_get_block_write, completely ignores the create flag\nthat is passed to it (the create flag is passed in from the direct I/O\ncode, which uses the DIO_SKIP_HOLES flag to determine whether or not\nit should be cleared).\n\nThis is a long-winded way of saying that the DIO_SKIP_HOLES flag is\nultimately ignored.  So let\u0027s remove it.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f70486055ee351158bd6999f3965ad378b52c694",
      "tree": "bc611bc2fa989a7ea3daddd160452ea98f09e76d",
      "parents": [
        "c7198b9c1e4520d3b16f0f65e37d3db78745f1e1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 22:06:20 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 22:06:20 2012 -0500"
      },
      "message": "ext4: try to deprecate noacl and noxattr_user mount options\n\nNo other file system allows ACL\u0027s and extended attributes to be\nenabled or disabled via a mount option.  So let\u0027s try to deprecate\nthese options from ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c7198b9c1e4520d3b16f0f65e37d3db78745f1e1",
      "tree": "1b40ede7c2dc0f74f0ad95c408502f58a86c525a",
      "parents": [
        "66acdcf4ea37f67e59a955509289e82e5f59a5d0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 22:00:53 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 22:00:53 2012 -0500"
      },
      "message": "ext4: ignore mount options supported by ext2/3 (but have since been removed)\n\nUsers who tried to use the ext4 file system driver is being used for\nthe ext2 or ext3 file systems (via the CONFIG_EXT4_USE_FOR_EXT23\noption) could have failed mounts if their /etc/fstab contains options\nrecognized by ext2 or ext3 but which have since been removed in ext4.\n\nSo teach ext4 to recognize them and give a warning that the mount\noption was removed.\n\nReport: https://bbs.archlinux.org/profile.php?id\u003d33804\n\nSigned-off-by: Tom Gundersen \u003cteg@jklm.no\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Thomas Baechler \u003cthomas@archlinux.org\u003e\nCc: Tobias Powalowski \u003ctobias.powalowski@googlemail.com\u003e\nCc: Dave Reisner \u003cd@falconindy.com\u003e\n"
    },
    {
      "commit": "66acdcf4ea37f67e59a955509289e82e5f59a5d0",
      "tree": "6ded862dbcab3eadc75ccc256d15427044672cc1",
      "parents": [
        "5a916be1b31de9e833aa764de6faf27bb79f9b83"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 20:21:38 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 20:21:38 2012 -0500"
      },
      "message": "ext4: add debugging /proc file showing file system options\n\nNow that /proc/mounts is consistently showing only those mount options\nwhich need to be specified in /etc/fstab or on the mount command line,\nit is useful to have file which shows exactly which file system\noptions are enabled.  This can be useful when debugging a user\nproblem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a916be1b31de9e833aa764de6faf27bb79f9b83",
      "tree": "62cf0697a0edef5ab44870cbc81cf07451f232ef",
      "parents": [
        "2adf6da8379b68838aa1002e11efd66916689a9b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 19:27:31 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 04 19:27:31 2012 -0500"
      },
      "message": "ext4: make ext4_show_options() be table-driven\n\nConsistently show mount options which are the non-default, so that\n/proc/mounts accurately shows the mount options that would be\nnecessary to mount the file system in its current mode of operation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2adf6da8379b68838aa1002e11efd66916689a9b",
      "tree": "17b25884c265f67134d45bde0e85456841075b6d",
      "parents": [
        "26092bf52478d23f872c6531e9e3ea9bde2c66c1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 23:20:50 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 23:20:50 2012 -0500"
      },
      "message": "ext4: move ext4_show_options() after parse_options()\n\nThis commit is strictly a code movement so in preparation of changing\next4_show_options to be table driven.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "26092bf52478d23f872c6531e9e3ea9bde2c66c1",
      "tree": "e32c3dce5d4d82087da6306dc7f4effd3d8c4d31",
      "parents": [
        "72578c33c4977941a5094f1d7011c8e1f5c43552"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 23:20:47 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 23:20:47 2012 -0500"
      },
      "message": "ext4: use a table-driven handler for mount options\n\nBy using a table-drive approach, we shave about 100 lines of code from\next4, and make the code a bit more regular and factored out.  This\nwill also make it possible in a future patch to use this table for\ndisplaying the mount options that were specified in /proc/mounts.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "72578c33c4977941a5094f1d7011c8e1f5c43552",
      "tree": "bbf3e248b01e0a38599958c4ade5b85ffef240d3",
      "parents": [
        "39ef17f1b0613b46c6973596525c2bc816d90b5b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 18:04:40 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 18:04:40 2012 -0500"
      },
      "message": "ext4: unify handling of mount options which have been removed\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39ef17f1b0613b46c6973596525c2bc816d90b5b",
      "tree": "c07e2dcd3cd21d7d5db0203263e5efae63a02729",
      "parents": [
        "c64db50e76c4bf68c0a84379d7bd70daada531b4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 17:56:23 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 03 17:56:23 2012 -0500"
      },
      "message": "ext4: simplify handling of the errors\u003d* mount options\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c64db50e76c4bf68c0a84379d7bd70daada531b4",
      "tree": "eaf00466a48e2ce16d087f4ccb5d5545adfcf613",
      "parents": [
        "ee4a3fcd1da660147624f13a9dc31d8bf43f5b06"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 12:23:11 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 12:23:11 2012 -0500"
      },
      "message": "ext4: remove the I_VERSION mount flag and use the super_block flag instead\n\nThere\u0027s no point to have two bits that are set in parallel; so use the\nMS_I_VERSION flag that is needed by the VFS anyway, and that way we\nfree up a bit in sbi-\u003es_mount_opts.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "ee4a3fcd1da660147624f13a9dc31d8bf43f5b06",
      "tree": "7961f00958527d76abc51fa9a65071f0aba67320",
      "parents": [
        "87f26807e91102f2526d59c0232bf020479c8d0c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 12:14:24 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 12:14:24 2012 -0500"
      },
      "message": "ext4: remove Opt_ignore\n\nThis is completely unused so let\u0027s just get rid of it.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "87f26807e91102f2526d59c0232bf020479c8d0c",
      "tree": "26636cbfc0e606b4926e15fcbaeaf36b2a61308d",
      "parents": [
        "85d216501a7c2aa3e19d71c70430395c864a2ee5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 00:03:21 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 02 00:03:21 2012 -0500"
      },
      "message": "ext4: remove deprecation warnings for minix_df and grpid\n\nPeople complained about removing both of these features, so per\nLinus\u0027s dictate, we won\u0027t be able to remove them.  Sigh...\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "85d216501a7c2aa3e19d71c70430395c864a2ee5",
      "tree": "869861f592a16a7efd3f98a5df693adb71ae0319",
      "parents": [
        "9ee4930259abf3641ae85c19498eabe97cf6abad"
      ],
      "author": {
        "name": "Santosh Nayak",
        "email": "santoshprasadnayak@gmail.com",
        "time": "Mon Feb 27 01:09:03 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 27 01:09:03 2012 -0500"
      },
      "message": "ext4: Fix endianness bug when reading the MMP block\n\nSparse complained about this endian bug in fs/ext4/mmp.c.\n\nSigned-off-by: Santosh Nayak \u003csantoshprasadnayak@gmail.com\u003e\nReviewed-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9ee4930259abf3641ae85c19498eabe97cf6abad",
      "tree": "3c1042a8b41741811ee320beb6b18233660dcc6f",
      "parents": [
        "c1bb05a657fb3d8c6179a4ef7980261fae4521d7"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "gnehzuil.liu@gmail.com",
        "time": "Mon Feb 20 23:09:36 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 23:09:36 2012 -0500"
      },
      "message": "ext4: format flag in dx_probe()\n\nFix ext4_warning format flag in dx_probe().\n\nCC: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c1bb05a657fb3d8c6179a4ef7980261fae4521d7",
      "tree": "57345a9505bd8e2713381adc864d4ed935b0f6c8",
      "parents": [
        "a0ade1deb86d2325aecc36272bb4505a6eec9235"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 20 23:06:18 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 23:06:18 2012 -0500"
      },
      "message": "ext4: avoid deadlock on sync-mounted FS w/o journal\n\nProcesses hang forever on a sync-mounted ext2 file system that\nis mounted with the ext4 module (default in Fedora 16).\n\nI can reproduce this reliably by mounting an ext2 partition with\n\"-o sync\" and opening a new file an that partition with vim. vim\nwill hang in \"D\" state forever.  The same happens on ext4 without\na journal.\n\nI am attaching a small patch here that solves this issue for me.\nIn the sync mounted case without a journal,\next4_handle_dirty_metadata() may call sync_dirty_buffer(), which\ncan\u0027t be called with buffer lock held.\n\nAlso move mb_cache_entry_release inside lock to avoid race\nfixed previously by 8a2bfdcb ext[34]: EA block reference count racing fix\nNote too that ext2 fixed this same problem in 2006 with\nb2f49033 [PATCH] fix deadlock in ext2\n\nSigned-off-by: Martin.Wilck@ts.fujitsu.com\n[sandeen@redhat.com: move mb_cache_entry_release before unlock, edit commit msg]\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a0ade1deb86d2325aecc36272bb4505a6eec9235",
      "tree": "863f896ae46280dbcbbe5c31e9a3d2988c14c1fb",
      "parents": [
        "266991b13890049ee1a6bb95b9817f06339ee3d7"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Feb 20 23:02:06 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 23:02:06 2012 -0500"
      },
      "message": "ext4: fix resize when resizing within single group\n\nWhen resizing file system in the way that the new size of the file\nsystem is still in the same group (no new groups are added), then we can\nhit a BUG_ON in ext4_alloc_group_tables()\n\nBUG_ON(flex_gd-\u003ecount \u003d\u003d 0 || group_data \u003d\u003d NULL);\n\nbecause flex_gd-\u003ecount is zero. The reason is the missing check for such\ncase, so the code always extend the last group fully and then attempt to\nadd more groups, but at that time n_blocks_count is actually smaller\nthan o_blocks_count.\n\nIt can be easily reproduced like this:\n\nmkfs.ext4 -b 4096 /dev/sda 30M\nmount /dev/sda /mnt/test\nresize2fs /dev/sda 50M\n\nFix this by checking whether the resize happens within the singe group\nand only add that many blocks into the last group to satisfy user\nrequest. Then o_blocks_count \u003d\u003d n_blocks_count and the resize will exit\nsuccessfully without and attempt to add more groups into the fs.\n\nAlso fix mixing together block number and blocks count which might be\nconfusing and can easily lead to off-by-one errors (but it is actually\nnot the case here since the two occurrence of this mix-up will cancel\neach other).\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReported-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "266991b13890049ee1a6bb95b9817f06339ee3d7",
      "tree": "55c4f0e3c0b978e563ced079002bcf7ea60d9767",
      "parents": [
        "d4dc462f556afe510d58d3b12b3d66c2cabff539"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Mon Feb 20 17:59:24 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:59:24 2012 -0500"
      },
      "message": "ext4: fix race between unwritten extent conversion and truncate\n\nThe following comment in ext4_end_io_dio caught my attention:\n\n\t/* XXX: probably should move into the real I/O completion handler */\n        inode_dio_done(inode);\n\nThe truncate code takes i_mutex, then calls inode_dio_wait.  Because the\next4 code path above will end up dropping the mutex before it is\nreacquired by the worker thread that does the extent conversion, it\nseems to me that the truncate can happen out of order.  Jan Kara\nmentioned that this might result in error messages in the system logs,\nbut that should be the extent of the \"damage.\"\n\nThe fix is pretty straight-forward: don\u0027t call inode_dio_done until the\nextent conversion is complete.\n\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "d4dc462f556afe510d58d3b12b3d66c2cabff539",
      "tree": "83e147cbbac02d1a128f5031c43abef65f3590b3",
      "parents": [
        "c5e8f3f3bc4b5e4a73b075ea7128f48c3f215168"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Feb 20 17:57:24 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:57:24 2012 -0500"
      },
      "message": "ext4: fix balloc.c printk-format-warning\n\nGet rid of this one:\n\nfs/ext4/balloc.c: In function \u0027ext4_wait_block_bitmap\u0027:\nfs/ext4/balloc.c:405:3: warning: format \u0027%llu\u0027 expects argument of\n  type \u0027long long unsigned int\u0027, but argument 6 has type \u0027sector_t\u0027 [-Wformat]\n\nHappens because sector_t is u64 (unsigned long long) or unsigned long\ndependent on CONFIG_64BIT.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c5e8f3f3bc4b5e4a73b075ea7128f48c3f215168",
      "tree": "4470673bd261fe07189ff825957a3d1a14bee0a4",
      "parents": [
        "a0cc910f15027fbd731e78f3437cc076eebc22e9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:54:06 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:54:06 2012 -0500"
      },
      "message": "ext4: remove EXT4_MB_{BITMAP,BUDDY} macros\n\nThe EXT4_MB_BITMAP and EXT4_MB_BUDDY macros obfuscate more than they\nprovide any abstraction.   So remove them.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a0cc910f15027fbd731e78f3437cc076eebc22e9",
      "tree": "b59e587fa9238e174ef647ca0767b9d3656d8e0c",
      "parents": [
        "4fda400360e6c15b9dea4351f2ad85845cdfda7e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Feb 20 17:53:06 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:06 2012 -0500"
      },
      "message": "ext4: using PTR_ERR() on the wrong variable in ext4_ext_migrate()\n\n\"inode\" is a valid pointer here.  \"tmp_inode\" was intended.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4fda400360e6c15b9dea4351f2ad85845cdfda7e",
      "tree": "e8759a08bd2bd0947477a22b6550477ca9c03932",
      "parents": [
        "f1b3a2a75356ce9fdcbedd79d2bb0d1ca8ed9cee"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Feb 20 17:53:05 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:05 2012 -0500"
      },
      "message": "ext4: remove an unneeded NULL check in __ext4_check_dir_entry()\n\nWe dereference \"bh\" unconditionally a couple lines down to find\n\"by-\u003eb_size\".  This function is never called with a NULL \"bh\" so I have\nremoved the check.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f1b3a2a75356ce9fdcbedd79d2bb0d1ca8ed9cee",
      "tree": "00491f088a92bd95057d0befabfff7460edf0638",
      "parents": [
        "661aa520577046192e50467b28c9c5726a8a9fb1"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Mon Feb 20 17:53:05 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:05 2012 -0500"
      },
      "message": "ext4: remove unneeded variable in ext4_xattr_check_block()\n\nWe could return directly from ext4_xattr_check_block(). Thus, we\nshouldn\u0027t need to define a \u0027error\u0027 variable.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "661aa520577046192e50467b28c9c5726a8a9fb1",
      "tree": "865c7a6da7d31fa50314c0faf02034997c4f40cd",
      "parents": [
        "43e625d84fa7daca0ad46f1dbc965b04fd204afe"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 20 17:53:04 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:04 2012 -0500"
      },
      "message": "ext4: remove the resize mount option\n\nThe resize mount option seems to be of limited value,\nespecially in the age of online resize2fs.  Nuke it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "43e625d84fa7daca0ad46f1dbc965b04fd204afe",
      "tree": "5a42f4efec45c59edb2967b439135a5a603d9525",
      "parents": [
        "1592d2c5574edadb0871cc4ac84265bdd18b2d68"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 20 17:53:04 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:04 2012 -0500"
      },
      "message": "ext4: remove the journal\u003dupdate mount option\n\nThe V2 journal format was introduced around ten years ago,\nfor ext3. It seems highly unlikely that anyone will need this\nmigration option for ext4.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1592d2c5574edadb0871cc4ac84265bdd18b2d68",
      "tree": "13f429d2f84f3d5f3f8504d750b0c4a05cf23924",
      "parents": [
        "9c0e00e5ce0d23e3e0a93f99ae8e94398e32a2d2"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "message": "ext4: mark possibly unused variable in ext4_mb_normalize_request()\n\nThe \u0027orig_size\u0027 local variable is only used in a call to\nmb_debug().  Mark it with \u0027__maybe_unused\u0027.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "18aadd47f88464928b5ce57791c2e8f9f2aaece0",
      "tree": "bb4f32855484a6dd6081c33fae1564359a88af74",
      "parents": [
        "15291164b22a357cb211b618adfef4fa82fc0de3"
      ],
      "author": {
        "name": "Bobi Jam",
        "email": "bobijam@whamcloud.com",
        "time": "Mon Feb 20 17:53:02 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:02 2012 -0500"
      },
      "message": "ext4: expand commit callback and\n\nThe per-commit callback was used by mballoc code to manage free space\nbitmaps after deleted blocks have been released.  This patch expands\nit to support multiple different callbacks, to allow other things to\nbe done after the commit has been completed.\n\nSigned-off-by: Bobi Jam \u003cbobijam@whamcloud.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "856cbcf9a971b43a83e78ac708ed6459ab1d0c89",
      "tree": "3ba90433f4e2c2315acf11a45c8d533fb3ccee92",
      "parents": [
        "2201c590dd6e802795e21e69e3c152c519f1568e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "message": "ext4: fix INCOMPAT feature codepoint reservation for INLINEDATA\n\nIn commit 9b90e5e028 I incorrectly reserved the wrong bit for\nEXT4_FEATURE_INCOMPAT_INLINEDATA per the discussion on the linux-ext4\nlist on December 7, 2011.  The codepoint 0x2000 should be used for\nEXT4_FEATURE_INCOMPAT_USE_META_CSUM, so INLINEDATA will be assigned\nthe value 0x8000.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3d2b158262826e8b75bbbfb7b97010838dd92ac7",
      "tree": "946864d7dccfd2046157b174baa89e7ad92c6330",
      "parents": [
        "813e57276fd909f7d5a816ef7ca706fca491ee61"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Feb 20 17:53:00 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:00 2012 -0500"
      },
      "message": "ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc\n\nExt4 does not support data journalling with delayed allocation enabled.\nWe even do not allow to mount the file system with delayed allocation\nand data journalling enabled, however it can be set via FS_IOC_SETFLAGS\nso we can hit the inode with EXT4_INODE_JOURNAL_DATA set even on file\nsystem mounted with delayed allocation (default) and that\u0027s where\nproblem arises. The easies way to reproduce this problem is with the\nfollowing set of commands:\n\n mkfs.ext4 /dev/sdd\n mount /dev/sdd /mnt/test1\n dd if\u003d/dev/zero of\u003d/mnt/test1/file bs\u003d1M count\u003d4\n chattr +j /mnt/test1/file\n dd if\u003d/dev/zero of\u003d/mnt/test1/file bs\u003d1M count\u003d4 conv\u003dnotrunc\n chattr -j /mnt/test1/file\n\nAdditionally it can be reproduced quite reliably with xfstests 272 and\n269. In fact the above reproducer is a part of test 272.\n\nTo fix this we should ignore the EXT4_INODE_JOURNAL_DATA inode flag if\nthe file system is mounted with delayed allocation. This can be easily\ndone by fixing ext4_should_*_data() functions do ignore data journal\nflag when delalloc is set (suggested by Ted). We also have to set the\nappropriate address space operations for the inode (again, ignoring data\njournal flag if delalloc enabled).\n\nAdditionally this commit introduces ext4_inode_journal_mode() function\nbecause ext4_should_*_data() has already had a lot of common code and\nthis change is putting it all into one function so it is easier to\nread.\n\nSuccessfully tested with xfstests in following configurations:\n\ndelalloc + data\u003dordered\ndelalloc + data\u003dwriteback\ndata\u003djournal\nnodelalloc + data\u003dordered\nnodelalloc + data\u003dwriteback\nnodelalloc + data\u003djournal\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "813e57276fd909f7d5a816ef7ca706fca491ee61",
      "tree": "cc2d262c0f6524f1a18d2a168d03e2ae3eb624ab",
      "parents": [
        "119c0d4460b001e44b41dcf73dc6ee794b98bd31"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:52:46 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:52:46 2012 -0500"
      },
      "message": "ext4: fix race when setting bitmap_uptodate flag\n\nIn ext4_read_{inode,block}_bitmap() we were setting bitmap_uptodate()\nbefore submitting the buffer for read.  The is bad, since we check\nbitmap_uptodate() without locking the buffer, and so if another\nprocess is racing with us, it\u0027s possible that they will think the\nbitmap is uptodate even though the read has not completed yet,\nresulting in inodes and blocks potentially getting allocated more than\nonce if we get really unlucky.\n\nAddresses-Google-Bug: 2828254\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "119c0d4460b001e44b41dcf73dc6ee794b98bd31",
      "tree": "55a278470454bf3a066eec7f807222782cc9b77d",
      "parents": [
        "62aa2b537c6f5957afd98e29f96897419ed5ebab"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 06 20:12:03 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 06 20:12:03 2012 -0500"
      },
      "message": "ext4: fold ext4_claim_inode into ext4_new_inode\n\nThe function ext4_claim_inode() is only called by one function,\next4_new_inode(), and by folding the functionality into\next4_new_inode(), we can remove almost 50 lines of code, and put all\nof the logic of allocating a new inode into a single place.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "22cdfca5641817060dd724a9c30442f5c0675fcd"
}
