)]}'
{
  "log": [
    {
      "commit": "4edebed86690eb8db9af3ab85baf4a34e73266cc",
      "tree": "8ab144b08f490f239fa62be52470860c9311664d",
      "parents": [
        "51eab603f5c86dd1eae4c525df3e7f7eeab401d6",
        "5e44f8c374dc4f8eadf61cd18b2c0d46bc87c1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 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 from Theodore Ts\u0027o:\n \"The major new feature added in this update is Darrick J Wong\u0027s\n  metadata checksum feature, which adds crc32 checksums to ext4\u0027s\n  metadata fields.\n\n  There is also the usual set of cleanups and bug fixes.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)\n  ext4: hole-punch use truncate_pagecache_range\n  jbd2: use kmem_cache_zalloc wrapper instead of flag\n  ext4: remove mb_groups before tearing down the buddy_cache\n  ext4: add ext4_mb_unload_buddy in the error path\n  ext4: don\u0027t trash state flags in EXT4_IOC_SETFLAGS\n  ext4: let getattr report the right blocks in delalloc+bigalloc\n  ext4: add missing save_error_info() to ext4_error()\n  ext4: add debugging trigger for ext4_error()\n  ext4: protect group inode free counting with group lock\n  ext4: use consistent ssize_t type in ext4_file_write()\n  ext4: fix format flag in ext4_ext_binsearch_idx()\n  ext4: cleanup in ext4_discard_allocated_blocks()\n  ext4: return ENOMEM when mounts fail due to lack of memory\n  ext4: remove redundundant \"(char *) bh-\u003eb_data\" casts\n  ext4: disallow hard-linked directory in ext4_lookup\n  ext4: fix potential integer overflow in alloc_flex_gd()\n  ext4: remove needs_recovery in ext4_mb_init()\n  ext4: force ro mount if ext4_setup_super() fails\n  ext4: fix potential NULL dereference in ext4_free_inodes_counts()\n  ext4/jbd2: add metadata checksumming to the list of supported features\n  ...\n"
    },
    {
      "commit": "f3fc0210c0fc91900766c995f089c39170e68305",
      "tree": "e3f3f032ee2ee9c668d2e9f5db3c86ad288d9b90",
      "parents": [
        "2c0544b23568674efba22532e1f25fb62ce10163"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 30 23:00:16 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 30 23:00:16 2012 -0400"
      },
      "message": "ext4: add missing save_error_info() to ext4_error()\n\nThe ext4_error() function is missing a call to save_error_info().\nSince this is the function which marks the file system as containing\nan error, this oversight (which was introduced in 2.6.36) is quite\nsignificant, and should be backported to older stable kernels with\nhigh urgency.\n\nReported-by: Ken Sumrall \u003cksumrall@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: ksumrall@google.com\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2c0544b23568674efba22532e1f25fb62ce10163",
      "tree": "b3da7424fc1aa1a69ec5c5c6ae6bbd7a74456364",
      "parents": [
        "6f2e9f0e7d795214b9cf5a47724a273b705fd113"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 30 22:56:46 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 30 22:56:46 2012 -0400"
      },
      "message": "ext4: add debugging trigger for ext4_error()\n\nMake it easy to test whether or not the error handling subsystem in\next4 is working correctly.  This allows us to simulate an ext4_error()\nby echoing a string to /sys/fs/ext4/\u003cdev\u003e/trigger_fs_error.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: ksumrall@google.com\n\n"
    },
    {
      "commit": "2cde417de013b2e5ae3007374d937e8c4c426bd4",
      "tree": "a103c97aca903c3b6bc6147f92c76b34fe28c90a",
      "parents": [
        "2716b80284c5ca415b8ce93ca178b0ca28482568"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 17:49:54 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 17:49:54 2012 -0400"
      },
      "message": "ext4: return ENOMEM when mounts fail due to lack of memory\n\nThis is a port of the ext3 commit: 4569cd1b0d9\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2716b80284c5ca415b8ce93ca178b0ca28482568",
      "tree": "51cd4aba2dea62cc5d9fd23b5fb24240c7952175",
      "parents": [
        "7e936b737211e6b54e34b71a827e56b872e958d8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 17:47:52 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 17:47:52 2012 -0400"
      },
      "message": "ext4: remove redundundant \"(char *) bh-\u003eb_data\" casts\n\nThe b_data field of the buffer_head is already a char *, so there\u0027s no\npoint casting it to a char *.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9d99012ff26380a09092a9fddbb6e5f996dc631f",
      "tree": "8feeb9279c718d176fd7cb54594e5226da099fda",
      "parents": [
        "7e84b6216467b84cd332c8e567bf5aa113fd2f38"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Mon May 28 14:19:25 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 14:19:25 2012 -0400"
      },
      "message": "ext4: remove needs_recovery in ext4_mb_init()\n\nneeds_recovery in ext4_mb_init() is not used, remove it.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.ne.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7e84b6216467b84cd332c8e567bf5aa113fd2f38",
      "tree": "8ca466c423bf9cea3722aa04349b41ee062a18e4",
      "parents": [
        "bb3d132a24cd8bf5e7773b2d9f9baa58b07a7dae"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon May 28 14:17:25 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 28 14:17:25 2012 -0400"
      },
      "message": "ext4: force ro mount if ext4_setup_super() fails\n\nIf ext4_setup_super() fails i.e. due to a too-high revision,\nthe error is logged in dmesg but the fs is not mounted RO as\nindicated.\n\nTested by:\n\n# mkfs.ext4 -r 4 /dev/sdb6\n# mount /dev/sdb6 /mnt/test\n# dmesg | grep \"too high\"\n[164919.759248] EXT4-fs (sdb6): revision level too high, forcing read-only mode\n# grep sdb6 /proc/mounts\n/dev/sdb6 /mnt/test2 ext4 rw,seclabel,relatime,data\u003dordered 0 0\n\nReviewed-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "25ed6e8a54df904c875365eebedbd19138a47328",
      "tree": "ac16e78f0d8e0376f40d9259b1095f356d395165",
      "parents": [
        "8f888ef846d4481e24c74b4a91ece771d2bcbcb5"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 07:48:56 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 07:48:56 2012 -0400"
      },
      "message": "jbd2: enable journal clients to enable v2 checksumming\n\nAdd in the necessary code so that journal clients can enable the new\njournal checksumming features.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ece78b7df734726e790dcab207f463401ff80440",
      "tree": "4a0b23c28c6a727d5eebc8a88a22fe3720c425fd",
      "parents": [
        "07acfc2a9349a8ce45b236c2624dad452001966b",
        "0324876628a9c7faf8127e20af29373dc6dec876"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 08:14:59 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext2, ext3 and quota fixes from Jan Kara:\n \"Interesting bits are:\n   - removal of a special i_mutex locking subclass (I_MUTEX_QUOTA) since\n     quota code does not need i_mutex anymore in any unusual way.\n   - backport (from ext4) of a fix of a checkpointing bug (missing cache\n     flush) that could lead to fs corruption on power failure\n\n  The rest are just random small fixes \u0026 cleanups.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext2: trivial fix to comment for ext2_free_blocks\n  ext2: remove the redundant comment for ext2_export_ops\n  ext3: return 32/64-bit dir name hash according to usage type\n  quota: Get rid of nested I_MUTEX_QUOTA locking subclass\n  quota: Use precomputed value of sb_dqopt in dquot_quota_sync\n  ext2: Remove i_mutex use from ext2_quota_write()\n  reiserfs: Remove i_mutex use from reiserfs_quota_write()\n  ext4: Remove i_mutex use from ext4_quota_write()\n  ext3: Remove i_mutex use from ext3_quota_write()\n  quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG\n  jbd: Write journal superblock with WRITE_FUA after checkpointing\n  jbd: protect all log tail updates with j_checkpoint_mutex\n  jbd: Split updating of journal superblock and marking journal empty\n  ext2: do not register write_super within VFS\n  ext2: Remove s_dirt handling\n  ext2: write superblock only once on unmount\n  ext3: update documentation with barrier\u003d1 default\n  ext3: remove max_debt in find_group_orlov()\n  jbd: Refine commit writeout logic\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "f32aaf2d2b996b14e993da1c23f7ee22ea7333a3",
      "tree": "8ba6ce1e09319f0a62b69436aade6e06fe76c085",
      "parents": [
        "b09de7fa5217bbcb4caf3d19bd5e94816947ff7a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 21 11:42:02 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 21 11:42:02 2012 -0400"
      },
      "message": "ext4: enable the 64-bit jbd2 feature based on the 64-bit ext4 feature\n\nPreviously we were only enabling the 64-bit jbd2 feature if the number\nof blocks in the file system was greater 2**32-1.  The problem with\nthis is that it makes it harder to test the 64-bit journal code paths\nwith small file systems, since a small test file system would with the\n64-bit ext4 feature enable would use a 64-bit file system on-disk data\nstructures, but use a 32-bit journal.\n\nThis would also cause problems when trying to do an online resize to\ngrow the filesystem above the 2**32-1 boundary.  Fortunately the patch\nto support online resize for 64-bit file systems hasn\u0027t been merged\nyet, so this problem hasn\u0027t arisen in practice.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "08cefc7ab839cf3ece44b8033968a4732eac06d8",
      "tree": "7264efb33cb3d1249f7be3a7ea6dd12d30c313c1",
      "parents": [
        "1523299d5817773e344d135d4b1c485f269400bc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 15:41:49 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:27 2012 -0700"
      },
      "message": "userns: Convert ext4 to user kuid/kgid where appropriate\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0b7f7cefaea96ef25dbe54b8e16d2d61560d8b9d",
      "tree": "640e7107056b7cc5cf06b1c03ba569bd241b6c31",
      "parents": [
        "905c3937625d14fa4453a2643814b72b8a22d9ae"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 25 21:26:54 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:38 2012 +0200"
      },
      "message": "ext4: Remove i_mutex use from ext4_quota_write()\n\nWe don\u0027t need i_mutex in ext4_quota_write() because writes to quota file\nare serialized by dqio_mutex anyway. Changes to quota files outside of quota\ncode are forbidded and enforced by NOATIME and IMMUTABLE bits.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "feb0ab32a57e4e6c8b24f6fb68f0ce08efe4603c",
      "tree": "6438fc46013c2f5d60e78060c66e2809c6056f1a",
      "parents": [
        "cc8e94fd126ab2d2e4bcb1b65c7316196f0cec8c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:45:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:45:10 2012 -0400"
      },
      "message": "ext4: make block group checksums use metadata_csum algorithm\n\nmetadata_csum supersedes uninit_bg.  Convert the ROCOMPAT uninit_bg\nflag check to a helper function that covers both, and make the\nchecksum calculation algorithm use either crc16 or the metadata_csum\nchosen algorithm depending on which flag is set.  Print a warning if\nwe try to mount a filesystem with both feature flags set.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a9c4731780544d52b243bf46e4dd635c67fa9f84",
      "tree": "dc735f2f59fa2107e8fed8e3d26f259557e34008",
      "parents": [
        "0441984a3398970ab4820410b9cf4ff85bf3a6b0"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:29:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:29:10 2012 -0400"
      },
      "message": "ext4: calculate and verify superblock checksum\n\nCalculate and verify the superblock checksum.  Since the UUID and\nblock group number are embedded in each copy of the superblock, we\nneed only checksum the entire block.  Refactor some of the code to\neliminate open-coding of the checksum update call.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0441984a3398970ab4820410b9cf4ff85bf3a6b0",
      "tree": "23c22fad52554003b39d35e6dee7729df3e0797d",
      "parents": [
        "d25425f8e0ed01fc0167c043aee7e619fc3f6ab2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:27:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:27:10 2012 -0400"
      },
      "message": "ext4: load the crc32c driver if necessary\n\nObtain a reference to the cryptoapi and crc32c if we mount a\nfilesystem with metadata checksumming enabled.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d25425f8e0ed01fc0167c043aee7e619fc3f6ab2",
      "tree": "1c88b9de530a45bc79bf96d7acd045114cab480e",
      "parents": [
        "e615391896064eb5a0c760d086b8e1c6ecfffeab"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:25:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:25:10 2012 -0400"
      },
      "message": "ext4: record the checksum algorithm in use in the superblock\n\nRecord the type of checksum algorithm we\u0027re using for metadata in the\nsuperblock, in case we ever want/need to change the algorithm.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "db7e5c668e1b16061fe2d94d3cba022dd360c5d4",
      "tree": "942cb61ff0c34ccbf73184c99114bc44c92ccc5d",
      "parents": [
        "99aa78466777083255b876293e9e83dec7cd809a"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Sun Apr 22 17:50:52 2012 +0200"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 23 21:44:41 2012 -0400"
      },
      "message": "super.c: unused variable warning without CONFIG_QUOTA\n\nsb info is only checked with quota support.\n\nfs/ext4/super.c: In function ‘parse_options’:\nfs/ext4/super.c:1600:23: warning: unused variable ‘sbi’ [-Wunused-variable]\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "57f73c2c89a5d3b2ed87201c8100d1fa989a1a65",
      "tree": "7615419aa669cb652099dd3a37439f475a2fbaa5",
      "parents": [
        "9cd70b347e9761ea2d2ac3d758c529a48a8193e6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 16 18:55:26 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 16 18:55:26 2012 -0400"
      },
      "message": "ext4: fix handling of journalled quota options\n\nCommit 26092bf5 broke handling of journalled quota mount options by\ntrying to parse argument of every mount option as a number.  Fix this\nby dealing with the quota options before we call match_int().\n\nThanks to Jan Kara for discovering this regression.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9cd70b347e9761ea2d2ac3d758c529a48a8193e6",
      "tree": "f215d10558a62c34aff4528f1c40f1b154bd6c25",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 16 12:16:20 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 16 12:16:20 2012 -0400"
      },
      "message": "ext4: address scalability issue by removing extent cache statistics\n\nAndi Kleen and Tim Chen have reported that under certain circumstances\nthe extent cache statistics are causing scalability problems due to\ncache line bounces.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "b00f4dc5ff022cb9cbaffd376d9454d7fa1e496f",
      "tree": "40f1b232e2f1e8ac365317a14fdcbcb331722b46",
      "parents": [
        "1eac8111e0763853266a171ce11214da3a347a0a",
        "b9e26dfdad5a4f9cbdaacafac6998614cc9c41bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into pm-sleep\n\n* master: (848 commits)\n  SELinux: Fix RCU deref check warning in sel_netport_insert()\n  binary_sysctl(): fix memory leak\n  mm/vmalloc.c: remove static declaration of va from __get_vm_area_node\n  ipmi_watchdog: restore settings when BMC reset\n  oom: fix integer overflow of points in oom_badness\n  memcg: keep root group unchanged if creation fails\n  nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n  nilfs2: unbreak compat ioctl\n  cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mmc: vub300: fix type of firmware_rom_wait_states module parameter\n  Revert \"mmc: enable runtime PM by default\"\n  mmc: sdhci: remove \"state\" argument from sdhci_suspend_host\n  x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT\n  IB/qib: Correct sense on freectxts increment and decrement\n  RDMA/cma: Verify private data length\n  cgroups: fix a css_set not found bug in cgroup_attach_proc\n  oprofile: Fix uninitialized memory access when writing to writing to oprofilefs\n  Revert \"xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel\"\n  ...\n\nConflicts:\n\tkernel/cgroup_freezer.c\n"
    },
    {
      "commit": "5635a62b83c04d05e4eb4575a1c3de51a35bacdc",
      "tree": "4666e038ce91682c8b32fbfa6583a6249d2b9e56",
      "parents": [
        "60e07cf515e541ea3e13b888d273c9b19a2ad9dd"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "gnehzuil.liu@gmail.com",
        "time": "Sun Dec 18 16:13:58 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 18 16:13:58 2011 -0500"
      },
      "message": "ext4: add missing space to ext4_msg output in ext4_fill_super()\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fc6cb1cda5db7b2d24bf32890826214b857c728e",
      "tree": "2f3226090a2da8bcde9d568598ffb3a1c7626fd3",
      "parents": [
        "b4611abfa98af8351bf32e8b9ecc9d3384931c37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "message": "ext4: display the correct mount option in /proc/mounts for [no]init_itable\n\n/proc/mounts was showing the mount option [no]init_inode_table when\nthe correct mount option that will be accepted by parse_options() is\n[no]init_itable.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "986b11c3ee9e0eace25fe74a502205f7fe8c179b",
      "tree": "2271bc519eac458fd92799f5731e2ef604f69341",
      "parents": [
        "bb58dd5d1ffad6c2d21c69698ba766dad4ae54e6",
        "24b7ead3fb0bae267c2ee50898eb4c13aedd1e9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:09:02 2011 +0100"
      },
      "message": "Merge branch \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into pm-freezer\n\n* \u0027pm-freezer\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc: (24 commits)\n  freezer: fix wait_event_freezable/__thaw_task races\n  freezer: kill unused set_freezable_with_signal()\n  dmatest: don\u0027t use set_freezable_with_signal()\n  usb_storage: don\u0027t use set_freezable_with_signal()\n  freezer: remove unused @sig_only from freeze_task()\n  freezer: use lock_task_sighand() in fake_signal_wake_up()\n  freezer: restructure __refrigerator()\n  freezer: fix set_freezable[_with_signal]() race\n  freezer: remove should_send_signal() and update frozen()\n  freezer: remove now unused TIF_FREEZE\n  freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE\n  cgroup_freezer: prepare for removal of TIF_FREEZE\n  freezer: clean up freeze_processes() failure path\n  freezer: kill PF_FREEZING\n  freezer: test freezable conditions while holding freezer_lock\n  freezer: make freezing indicate freeze condition in effect\n  freezer: use dedicated lock instead of task_lock() + memory barrier\n  freezer: don\u0027t distinguish nosig tasks on thaw\n  freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks\n  freezer: rename thaw_process() to __thaw_task() and simplify the implementation\n  ...\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "2397256d6218e7bf5147a3b01dcc6aec20fd3916",
      "tree": "b8f25e74a37f72ee670e5a2c96129e4fd0b49d0f",
      "parents": [
        "eb513689c97e3e73bb9b4459d490a8e894b4a546"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "message": "ext4: Remove kernel_lock annotations\n\nThe BKL is gone, these annotations are useless.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eb513689c97e3e73bb9b4459d490a8e894b4a546",
      "tree": "767931920c50055b4416b4554fa2dfac4c579b2a",
      "parents": [
        "5c8a0fbba543d9428a486f0d1282bbcf3cf1d95a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "message": "ext4: ignore journalled data options on remount if fs has no journal\n\nThis avoids a confusing failure in the init scripts when the\n/etc/fstab has data\u003dwriteback or data\u003djournal but the file system does\nnot have a journal.  So check for this case explicitly, and warn the\nuser that we are ignoring the (pointless, since they have no journal)\ndata\u003d* mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc",
      "tree": "e5670070f007c4ad5300e93a4e36fa9a802e2bd9",
      "parents": [
        "446066724c3629664e29942a00b0aee0d6b1663a"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "message": "ext4: optimize ext4_ext_convert_to_initialized()\n\nThis patch introduces a fast path in ext4_ext_convert_to_initialized()\nfor the case when the conversion can be performed by transferring\nthe newly initialized blocks from the uninitialized extent into\nan adjacent initialized extent. Doing so removes the expensive\ninvocations of memmove() which occur during extent insertion and\nthe subsequent merge.\n\nIn practice this should be the common case for clients performing\nappend writes into files pre-allocated via\nfallocate(FALLOC_FL_KEEP_SIZE). In such a workload performed via\ndirect IO and when using a suboptimal implementation of memmove()\n(x86_64 prior to the 2.6.39 rewrite), this patch reduces kernel CPU\nconsumption by 32%.\n\nTwo new trace points are added to ext4_ext_convert_to_initialized()\nto offer visibility into its operations. No exit trace point has\nbeen added due to the multiplicity of return points. This can be\nrevisited once the upstream cleanup is backported.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d44651d0f922b7aaeddd9fc04f2f5700a65983dd",
      "tree": "31387f8acab384d3211903d0abe6232fd7117fe6",
      "parents": [
        "6ee3b2122431fc75015c6114d4749de76422452b"
      ],
      "author": {
        "name": "Fabrice Jouhaud",
        "email": "yargil@free.fr",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "message": "ext4: fix ext4 so it works without CONFIG_PROC_FS\n\nThis fixes a bug which was introduced in dd68314ccf3fb.  The problem\ncame from the test of the return value of proc_mkdir which is always\nfalse without procfs, and this would initialization of ext4.\n\nSigned-off-by: Fabrice Jouhaud \u003cyargil@free.fr\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3",
      "tree": "b978be1044d72ab78739edd441385253f6c932ac",
      "parents": [
        "af909a57fde821627282204ba43f27331342bf26"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "message": "ext4: remove deprecated oldalloc\n\nFor a long time now orlov is the default block allocator in the\next4. It performs better than the old one and no one seems to claim\notherwise so we can safely drop it and make oldalloc and orlov mount\noption deprecated.\n\nThis is a part of the effort to reduce number of ext4 options hence the\ntest matrix.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4",
      "tree": "a15433ea17d943116c809c1a847e45a387120f19",
      "parents": [
        "7aa0baeaba4afc4fbed7aad2812a1116e6b0adcd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "message": "ext4: Free resources in some error path in ext4_fill_super\n\nSome of the error path in ext4_fill_super don\u0027t release the\nresouces properly. So this patch just try to release them\nin the right way.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dee54372c1ea15ab482b959634cda8c01b042bd",
      "tree": "512da0144f6a9f86b5817569d0521b60cddee4c9",
      "parents": [
        "021b65bb1e4e4b625c80bbb82651e5e155721ef3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "message": "ext4: rename ext4_count_free_blocks() to ext4_count_free_clusters()\n\nThis function really counts the free clusters reported in the block\ngroup descriptors, so rename it to reduce confusion.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "021b65bb1e4e4b625c80bbb82651e5e155721ef3",
      "tree": "e1826a0ec395ac2acf46c43113f2c6a64a5165d0",
      "parents": [
        "6f16b60690ba04cf476480a6f19b204e4b95b4a6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "message": "ext4: Rename ext4_free_blks_{count,set}() to refer to clusters\n\nThe field bg_free_blocks_count_{lo,high} in the block group\ndescriptor has been repurposed to hold the number of free clusters for\nbigalloc functions.  So rename the functions so it makes it easier to\nread and audit the block allocation and block freeing code.\n\nNote: at this point in bigalloc development we doesn\u0027t support\nonline resize, so this also makes it really obvious all of the places\nwe need to fix up to add support for online resize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7b415bf60f6afb0499fd3dc0ee33444f54e28567",
      "tree": "9c64fef2b8d60ce64865af6e4c2cc6008026e28c",
      "parents": [
        "27baebb849d46d901e756e6502b0a65a62e43771"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "message": "ext4: Fix bigalloc quota accounting and i_blocks value\n\nWith bigalloc changes, the i_blocks value was not correctly set (it was still\nset to number of blocks being used, but in case of bigalloc, we want i_blocks\nto represent the number of clusters being used). Since the quota subsystem sets\nthe i_blocks value, this patch fixes the quota accounting and makes sure that\nthe i_blocks value is set correctly.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f975d6bcc7a698a10cc755115e27d3612dcfe322",
      "tree": "859f688a1962209ef535ca79cf31433c7bc57135",
      "parents": [
        "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "message": "ext4: teach ext4_statfs() to deal with clusters if bigalloc is enabled\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5",
      "tree": "7f83cc8e52b5f2edc5d89d2d1808d0972831f9bf",
      "parents": [
        "5704265188ffe4290ed73b3cb685206c3ed8209d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "message": "ext4: convert the free_blocks field in s_flex_groups to be free_clusters\n\nConvert the free_blocks to be free_clusters to make the final revised\nbigalloc changes easier to read/understand.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "5704265188ffe4290ed73b3cb685206c3ed8209d",
      "tree": "6bc51bea59625b2a7c8e4b74bbb66884371f74dd",
      "parents": [
        "0aa060000e83ca3d09ddc446a7174fb0820d99bc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "message": "ext4: convert s_{dirty,free}blocks_counter to s_{dirty,free}clusters_counter\n\nConvert the percpu counters s_dirtyblocks_counter and\ns_freeblocks_counter in struct ext4_super_info to be\ns_dirtyclusters_counter and s_freeclusters_counter.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bab08ab9646288f1b0b72a7aaeecdff94bd62c18",
      "tree": "e301377f1ce9093a44b2cfb331439e15d79789ed",
      "parents": [
        "281b59959707dfae03ce038cdf231bf4904e170c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "message": "ext4: enforce bigalloc restrictions (e.g., no online resizing, etc.)\n\nAt least initially if the bigalloc feature is enabled, we will not\nsupport non-extent mapped inodes, online resizing, online defrag, or\nthe FITRIM ioctl.  This simplifies the initial implementation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "281b59959707dfae03ce038cdf231bf4904e170c",
      "tree": "3a6b36d060a41b19351c29c51d079149cae7511c",
      "parents": [
        "7c2e70879fc0949b4220ee61b7c4553f6976a94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "message": "ext4: read-only support for bigalloc file systems\n\nThis adds supports for bigalloc file systems.  It teaches the mount\ncode just enough about bigalloc superblock fields that it will mount\nthe file system without freaking out that the number of blocks per\ngroup is too big.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7c2e70879fc0949b4220ee61b7c4553f6976a94d",
      "tree": "5eea688d4ca50ec27e9cf59144f257e1683cfeb7",
      "parents": [
        "02fac1297eb3f471a27368271aadd285548297b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "message": "ext4: add ext4-specific kludge to avoid an oops after the disk disappears\n\nThe del_gendisk() function uninitializes the disk-specific data\nstructures, including the bdi structure, without telling anyone\nelse.  Once this happens, any attempt to call mark_buffer_dirty()\n(for example, by ext4_commit_super), will cause a kernel OOPS.\n\nFix this for now until we can fix things in an architecturally correct\nway.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134",
      "tree": "5fb1be2d593fae0bb1a566397c58dc4f7ce010f2",
      "parents": [
        "2be4751b21ae1cacb002da48cfc5bf6743fee8c1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "message": "ext4: improve handling of conflicting mount options\n\nIf the user explicitly specifies conflicting mount options for\ndelalloc or dioread_nolock and data\u003djournal, fail the mount, instead\nof printing a warning and continuing (since many user\u0027s won\u0027t look at\ndmesg and notice the warning).\n\nAlso, print a single warning that data\u003djournal implies that delayed\nallocation is not on by default (since it\u0027s not supported), and\nfurthermore that O_DIRECT is not supported.  Improve the text in\nDocumentation/filesystems/ext4.txt so this is clear there as well.\n\nSimilarly, if the dioread_nolock mount option is specified when the\nfile system block size !\u003d PAGE_SIZE, fail the mount instead of\nprinting a warning message and ignoring the mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2581fdc810889fdea97689cb62481201d579c796",
      "tree": "55d7a2244a5efa184e290446c0ee3f61b71bf264",
      "parents": [
        "441c850857148935babe000fc2ba1455fe54a6a9"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Sat Aug 13 12:17:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 13 12:17:13 2011 -0400"
      },
      "message": "ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode\n\nFlush inode\u0027s i_completed_io_list before calling ext4_io_wait to\nprevent the following deadlock scenario: A page fault happens while\nsome process is writing inode A. During page fault,\nshrink_icache_memory is called that in turn evicts another inode\nB. Inode B has some pending io_end work so it calls ext4_ioend_wait()\nthat waits for inode B\u0027s i_ioend_count to become zero. However, inode\nB\u0027s ioend work was queued behind some of inode A\u0027s ioend work on the\nsame cpu\u0027s ext4-dio-unwritten workqueue. As the ext4-dio-unwritten\nthread on that cpu is processing inode A\u0027s ioend work, it tries to\ngrab inode A\u0027s i_mutex lock. Since the i_mutex lock of inode A is\nstill hold before the page fault happened, we enter a deadlock.\n\nAlso moves ext4_flush_completed_IO and ext4_ioend_wait from\next4_destroy_inode() to ext4_evict_inode(). During inode deleteion,\next4_evict_inode() is called before ext4_destroy_inode() and in\next4_evict_inode(), we may call ext4_truncate() without holding\ni_mutex lock. As a result, there is a race between flush_completed_IO\nthat is called from ext4_ext_truncate() and ext4_end_io_work, which\nmay cause corruption on an io_end structure. This change moves\next4_flush_completed_IO and ext4_ioend_wait from ext4_destroy_inode()\nto ext4_evict_inode() to resolve the race between ext4_truncate() and\next4_end_io_work during inode deletion.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "db9481c0476c6475d058ac7ecebb5a822b43cc99",
      "tree": "d3115cab19ab99912618428d9f9e76bbf3572857",
      "parents": [
        "ed8f37370d83e695c0a4fa5d5fc7a83ecb947526"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "minipli@googlemail.com",
        "time": "Wed Aug 03 14:57:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 03 14:57:11 2011 -0400"
      },
      "message": "ext4: use kzalloc in ext4_kzalloc()\n\nCommit 9933fc0i (ext4: introduce ext4_kvmalloc(), ext4_kzalloc(), and\next4_kvfree()) intruduced wrappers around k*alloc/vmalloc but introduced\na typo for ext4_kzalloc() by not using kzalloc() but kmalloc().\n\nSigned-off-by: Mathias Krause \u003cminipli@googlemail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f18a5f21c25707b4fe64b326e2b4d150565e7300",
      "tree": "b17baa6c8476eb2a3fbc6b1d65c7fd59950a2dcd",
      "parents": [
        "9933fc0ac1ac14b795819cd63d05ea92112f690a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 01 08:45:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 01 08:45:38 2011 -0400"
      },
      "message": "ext4: use ext4_kvzalloc()/ext4_kvmalloc() for s_group_desc and s_group_info\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9933fc0ac1ac14b795819cd63d05ea92112f690a",
      "tree": "bff42e3494fd5401e6b171ddae8f52ecd1defd91",
      "parents": [
        "33853a0dde359ded0534204eb6857ad5166d515b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 01 08:45:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 01 08:45:02 2011 -0400"
      },
      "message": "ext4: introduce ext4_kvmalloc(), ext4_kzalloc(), and ext4_kvfree()\n\nIntroduce new helper functions which try kmalloc, and then fall back\nto vmalloc if necessary, and use them for allocating and deallocating\ns_flex_groups.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8f82f840ec6ab873f520364d443ff6fa1b3f8e22",
      "tree": "72d90cdc8f7311ef913b7471e53f718bebbf7414",
      "parents": [
        "2d859db3e4a82a365572592d57624a5f996ed0ec"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Jul 26 21:35:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 26 21:35:44 2011 -0400"
      },
      "message": "ext4: prevent parallel resizers by atomic bit ops\n\nBefore this patch, parallel resizers are allowed and protected by a\nmutex lock, actually, there is no need to support parallel resizer, so\nthis patch prevents parallel resizers by atmoic bit ops, like\nlock_page() and unlock_page() do.\n\nTo do this, the patch removed the mutex lock s_resize_lock from struct\next4_sb_info and added a unsigned long field named s_resize_flags\nwhich inidicates if there is a resizer.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3eb08658431abd65c0fe6855d1860859c2d416f7",
      "tree": "5f7d21be65bcec29ac50918cadedd08a62cdf318",
      "parents": [
        "d7a1fee135771e6e5185642bdc17df19bbdbcc48"
      ],
      "author": {
        "name": "Dan Ehrenberg",
        "email": "dehrenberg@google.com",
        "time": "Sun Jul 17 21:18:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 17 21:18:51 2011 -0400"
      },
      "message": "ext4: ignore a stripe width of 1\n\nIf the stripe width was set to 1, then this patch will ignore\nthat stripe width and ext4 will act as if the stripe width\nwere 0 with respect to optimizing allocations.\n\nSigned-off-by: Dan Ehrenberg \u003cdehrenberg@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12706394bcaa48e3d5e19c97d7b4e5683ebb12fb",
      "tree": "d2a9effccf0162de6b783cf40fadd0f27c1bd22e",
      "parents": [
        "4862fd6047ed02e2726667c54d35f538eecc56aa"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 10 22:37:50 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 10 22:37:50 2011 -0400"
      },
      "message": "ext4: add tracepoint for ext4_journal_start\n\nThis will help debug who is responsible for starting a jbd2 transaction.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f17722f917b2f21497deb6edc62fb1683daa08e6",
      "tree": "10509e066829e685b25d74239f490345d28603d2",
      "parents": [
        "5def1360252b974faeb438775c19c14338bc1903"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jun 06 00:05:17 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 06 00:05:17 2011 -0400"
      },
      "message": "ext4: Fix max file size and logical block counting of extent format file\n\nKazuya Mio reported that he was able to hit BUG_ON(next \u003d\u003d lblock)\nin ext4_ext_put_gap_in_cache() while creating a sparse file in extent\nformat and fill the tail of file up to its end. We will hit the BUG_ON\nwhen we write the last block (2^32-1) into the sparse file.\n\nThe root cause of the problem lies in the fact that we specifically set\ns_maxbytes so that block at s_maxbytes fit into on-disk extent format,\nwhich is 32 bit long. However, we are not storing start and end block\nnumber, but rather start block number and length in blocks. It means\nthat in order to cover extent from 0 to EXT_MAX_BLOCK we need\nEXT_MAX_BLOCK+1 to fit into len (because we counting block 0 as well) -\nand it does not.\n\nThe only way to fix it without changing the meaning of the struct\next4_extent members is, as Kazuya Mio suggested, to lower s_maxbytes\nby one fs block so we can cover the whole extent we can get by the\non-disk extent format.\n\nAlso in many places EXT_MAX_BLOCK is used as length instead of maximum\nlogical block number as the name suggests, it is all a bit messy. So\nthis commit renames it to EXT_MAX_BLOCKS and change its usage in some\nplaces to actually be maximum number of blocks in the extent.\n\nThe bug which this commit fixes can be reproduced as follows:\n\n dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d\u003cblocksize\u003e count\u003d1 seek\u003d$((2**32-2))\n sync\n dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d\u003cblocksize\u003e count\u003d1 seek\u003d$((2**32-1))\n\nReported-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f8d613e2a665bf1be9628a3c3f9bafe7599b32c0",
      "tree": "98d4da8d0e1a5fb1d9064626b4b96d95ccf26375",
      "parents": [
        "8a0599dd2471f2a2e409498c08a0ab339057ad06",
        "5bc20fc59706214d9591c11e1938a629d3538c12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:\n  xen: cleancache shim to Xen Transcendent Memory\n  ocfs2: add cleancache support\n  ext4: add cleancache support\n  btrfs: add cleancache support\n  ext3: add cleancache support\n  mm/fs: add hooks to support cleancache\n  mm: cleancache core ops functions and config\n  fs: add field to superblock to support cleancache\n  mm/fs: cleancache documentation\n\nFix up trivial conflict in fs/btrfs/extent_io.c due to includes\n"
    },
    {
      "commit": "7abc52c2ed169c65044d3a199879c8438ad82322",
      "tree": "a8b0ef1291c95c444f615ced2217a1e6ce44e81c",
      "parents": [
        "90a887c9a2e25bcb1fc658fad59dfbc6fb792734"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:03 2011 -0600"
      },
      "committer": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:03 2011 -0600"
      },
      "message": "ext4: add cleancache support\n\nThis seventh patch of eight in this cleancache series \"opts-in\"\ncleancache for ext4.  Filesystems must explicitly enable cleancache\nby calling cleancache_init_fs anytime an instance of the filesystem\nis mounted. For ext4, all other cleancache hooks are in\nthe VFS layer including the matching cleancache_flush_fs\nhook which must be called on unmount.\n\nDetails and a FAQ can be found in Documentation/vm/cleancache.txt\n\n[v6-v8: no changes]\n[v5: jeremy@goop.org: simplify init hook and any future fs init changes]\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nReviewed-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik Van Riel \u003criel@redhat.com\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\n"
    },
    {
      "commit": "c5e06d101aaf72f1f2192a661414459775e9bd74",
      "tree": "96d05d41be2bfea6d51be915ce196f033a5d9bf3",
      "parents": [
        "d02a9391f79cab65cde74cd9e8ccd2290a565229"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann@whamcloud.com",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "message": "ext4: add support for multiple mount protection\n\nPrevent an ext4 filesystem from being mounted multiple times.\nA sequence number is stored on disk and is periodically updated (every 5\nseconds by default) by a mounted filesystem.\nAt mount time, we now wait for s_mmp_update_interval seconds to make sure\nthat the MMP sequence does not change.\nIn case of failure, the nodename, bdevname and the time at which the MMP\nblock was last updated is displayed.\n\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d02a9391f79cab65cde74cd9e8ccd2290a565229",
      "tree": "a70993ce201661a360ade69c3a5925b653e9c542",
      "parents": [
        "28739eea9cd42598b632972f5cc64a458c5d40b3"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "message": "ext4: ensure f_bfree returned by ext4_statfs() is non-negative\n\nI found the issue that the number of free blocks went negative.\n# stat -f /mnt/mp1/\n  File: \"/mnt/mp1/\"\n    ID: e175ccb83a872efe Namelen: 255     Type: ext2/ext3\nBlock size: 4096       Fundamental block size: 4096\nBlocks: Total: 258022     Free: -15        Available: -13122\nInodes: Total: 65536      Free: 63029\n\nf_bfree in struct statfs will go negative when the filesystem has\nfew free blocks. Because the number of dirty blocks is bigger than\nthe number of free blocks in the following two cases.\n\nCASE 1:\next4_da_writepages\n  mpage_da_map_and_submit\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n        \u003c--- interrupt statfs systemcall ---\u003e\n        ext4_da_update_reserve_space\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter,\n                            used + ei-\u003ei_allocated_meta_blocks);\n\nCASE 2:\next4_write_begin\n  __block_write_begin\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n            \u003c--- interrupt statfs systemcall ---\u003e\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter, reserv_blks);\n\nTo avoid the issue, this patch ensures that f_bfree is non-negative.\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\n"
    },
    {
      "commit": "77f4135f2a219a2127be6cc1208c42e6175b11dd",
      "tree": "8f85549d2354c5a69a5b29197f68a554daad1324",
      "parents": [
        "93917411be8db5d21abf15c781dfa43c5cc6edf2"
      ],
      "author": {
        "name": "Vivek Haldar",
        "email": "haldar@google.com",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "message": "ext4: count hits/misses of extent cache and expose in sysfs\n\nThe number of hits and misses for each filesystem is exposed in\n/sys/fs/ext4/\u003cdev\u003e/extent_cache_{hits, misses}.\n\nTested: fsstress, manual checks.\nSigned-off-by: Vivek Haldar \u003chaldar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "373cd5c53d5ea6622c319ecd84e29e2737d488bd",
      "tree": "2df40a29def22438cc15f90e4683d43974798784",
      "parents": [
        "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "message": "ext4: don\u0027t show mount options in /proc/mounts if there is no journal\n\nAfter creating an ext4 file system without a journal:\n\n  # mke2fs -t ext4 -O ^has_journal /dev/sda\n  # mount -t ext4 /dev/sda /test\n\nthe /proc/mounts will show:\n\"/dev/sda /test ext4 rw,relatime,user_xattr,acl,barrier\u003d1,data\u003dwriteback 0 0\"\nwhich can fool users into thinking that the fs is using writeback mode.\n\nSo don\u0027t set the writeback option when the journal has not been\nenabled; we don\u0027t depend on the writeback option being set, since\next4_should_writeback_data() in ext4_jbd2.h tests to see if the\njournal is not present before returning true.\n\nReported-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8",
      "tree": "d03bbc0de028862fb9df1d7941a03103150d69de",
      "parents": [
        "51ce65115642b77040f5582b8d2fc8815ac450f9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "message": "ext4: fix possible use-after-free in ext4_remove_li_request()\n\nWe need to take reference to the s_li_request after we take a mutex,\nbecause it might be freed since then, hence result in accessing old\nalready freed memory. Also we should protect the whole\next4_remove_li_request() because ext4_li_info might be in the process of\nbeing freed in ext4_lazyinit_thread().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "51ce65115642b77040f5582b8d2fc8815ac450f9",
      "tree": "53e42bb73ccbca4251d46ec5705a40a6b61bc5ab",
      "parents": [
        "e1290b3e62c496ade19939ce036f35bb69306820"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "message": "ext4: fix the mount option \"init_itable\u003dn\" to work as expected for n\u003d0\n\nFor some reason, when we set the mount option \"init_itable\u003d0\" it\nbehaves as we would set init_itable\u003d20 which is not right at all.\nBasically when we set it to zero we are saying to lazyinit thread not\nto wait between zeroing the inode table (except of cond_resched()) so\nthis commit fixes that and removes the unnecessary condition.  The \u0027n\u0027\nshould be also properly used on remount.\n\nWhen the n is not set at all, it means that the default miltiplier\nEXT4_DEF_LI_WAIT_MULT is set instead.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "e1290b3e62c496ade19939ce036f35bb69306820",
      "tree": "aaf8fc2fd2b9b7c9c1ce15303bb8debf7ab3d01b",
      "parents": [
        "4ed5c033c11b33149d993734a6a8de1016e8f03f"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "message": "ext4: Remove unnecessary wait_event ext4_run_lazyinit_thread()\n\nFor some reason we have been waiting for lazyinit thread to start in the\next4_run_lazyinit_thread() but it is not needed since it was jus\nunnecessary complexity, so get rid of it. We can also remove li_task and\nli_wait_task since it is not used anymore.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "4ed5c033c11b33149d993734a6a8de1016e8f03f",
      "tree": "826892fddc9cef7cbfac541eb13bb8eebc95c539",
      "parents": [
        "0e499890c1fd9e0a1bed02002161c4c7873d7489"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "message": "ext4: Use schedule_timeout_interruptible() for waiting in lazyinit thread\n\nIn order to make lazyinit eat approx. 10% of io bandwidth at max, we\nare sleeping between zeroing each single inode table. For that purpose\nwe are using timer which wakes up thread when it expires. It is set\nvia add_timer() and this may cause troubles in the case that thread\nhas been woken up earlier and in next iteration we call add_timer() on\nstill running timer hence hitting BUG_ON in add_timer(). We could fix\nthat by using mod_timer() instead however we can use\nschedule_timeout_interruptible() for waiting and hence simplifying\nthings a lot.\n\nThis commit exchange the old \"waiting mechanism\" with simple\nschedule_timeout_interruptible(), setting the time to sleep. Hence we\ndo not longer need li_wait_daemon waiting queue and others, so get rid\nof it.\n\nAddresses-Red-Hat-Bugzilla: #699708\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "ed3ce80a52c4658f48ef8fc825bdedf8b3fcaa89",
      "tree": "ebed56d680e8d79842b0c3077f11cbc237faa19f",
      "parents": [
        "9b940f8e8c32456c8a6428fa4313a4bcca7b4fcb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "message": "ext4: don\u0027t warn about mnt_count if it has been disabled\n\nCurrently, if we mkfs a new ext4 volume with s_max_mnt_count set to\nzero, and mount it for the first time, we will get the warning:\n\n\tmaximal mount count reached, running e2fsck is recommended\n\nIt is really misleading. So change the check so that it won\u0027t warn in\nthat case.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b26859027ce0005ef89520af20351360e51ad76",
      "tree": "d0d8cec8c1f413c0980b4a66614871bd435ab334",
      "parents": [
        "6976a6f2acde2b0443cd64f1d08af90630e4ce81"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "message": "ext4: fix oops in ext4_quota_off()\n\nIf quota is not enabled when ext4_quota_off() is called, we must not\ndereference quota file inode since it is NULL.  Check properly for\nthis.\n\nThis fixes a bug in commit 21f976975cbe (ext4: remove unnecessary\n[cm]time update of quota file), which was merged for 2.6.39-rc3.\n\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66bb82798d9ff896271d13f5020f7fb9b7d88e1a",
      "tree": "7bfbb2708421712b735e9c32a92a8cbbf3d58f22",
      "parents": [
        "55ff3840a293923daacc880cf4aed30c3c49f754"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "message": "ext4: remove redundant #ifdef in super.c\n\nThere is already an #ifdef CONFIG_QUOTA some lines above,\nso this one is totally useless.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "55ff3840a293923daacc880cf4aed30c3c49f754",
      "tree": "a6ff7d177ff6b2e1f58d63560cc9323f789f53a1",
      "parents": [
        "00d098822fe215a2f4fd32f244a9055b0b043bfe"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "message": "ext4: remove redundant check for first_not_zeroed in ext4_register_li_request\n\nWe have checked first_not_zeroed \u003d\u003d ngroups already above, so remove\nthis redundant check.\n\nsbi-\u003es_li_request \u003d NULL above is also removed since it is NULL\nalready.\n\nCc: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2035e776050aea57fb5255557216473e82793f2c",
      "tree": "6a97e536fd5fbdc29e4b471195a5dd5a0df35fc6",
      "parents": [
        "26626f1172fb4f3f323239a6a5cf4e082643fa46"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "message": "ext4: check for ext[23] file system features when mounting as ext[23]\n\nProvide better emulation for ext[23] mode by enforcing that the file\nsystem does not have any unsupported file system features as defined\nby ext[23] when emulating the ext[23] file system driver when\nCONFIG_EXT4_USE_FOR_EXT23 is defined.\n\nThis causes the file system type information in /proc/mounts to be\ncorrect for the automatically mounted root file system.  This also\nmeans that \"mount -t ext2 /dev/sda /mnt\" will fail if /dev/sda\ncontains an ext3 or ext4 file system, just as one would expect if the\noriginal ext2 file system driver were in use.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d",
      "tree": "1a35544915a5704fa59c63b43e9f46e20be1e296",
      "parents": [
        "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
        "c8205636029fc869278c55b7336053b3e7ae3ef4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix data corruption regression by reverting commit 6de9843dab3f\n  ext4: Allow indirect-block file to grow the file size to max file size\n  ext4: allow an active handle to be started when freezing\n  ext4: sync the directory inode in ext4_sync_parent()\n  ext4: init timer earlier to avoid a kernel panic in __save_error_info\n  jbd2: fix potential memory leak on transaction commit\n  ext4: fix a double free in ext4_register_li_request\n  ext4: fix credits computing for indirect mapped files\n  ext4: remove unnecessary [cm]time update of quota file\n  jbd2: move bdget out of critical section\n"
    },
    {
      "commit": "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9",
      "tree": "e4262a9e1ade9095e1bf937dc4b9d56a08824eda",
      "parents": [
        "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "message": "ext4: allow an active handle to be started when freezing\n\next4_journal_start_sb() should not prevent an active handle from being\nstarted due to s_frozen.  Otherwise, deadlock is easy to happen, below\nis a situation.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     freeze         |       truncate\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    |  ext4_ext_truncate()\n    freeze_super()  |   starts a handle\n    sets s_frozen   |\n                    |  ext4_ext_truncate()\n                    |  holds i_data_sem\n  ext4_freeze()     |\n  waits for updates |\n                    |  ext4_free_blocks()\n                    |  calls dquot_free_block()\n                    |\n                    |  dquot_free_blocks()\n                    |  calls ext4_dirty_inode()\n                    |\n                    |  ext4_dirty_inode()\n                    |  trys to start an active\n                    |  handle\n                    |\n                    |  block due to s_frozen\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n"
    },
    {
      "commit": "0449641130f5652b344ef6fa39fa019d7e94660a",
      "tree": "d24779d75a6d3fafff8082591b3572a5fdb32858",
      "parents": [
        "6cba611e600ded15f642552ce6b5f7ee243bacf0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Tue Apr 05 19:55:28 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 05 19:55:28 2011 -0400"
      },
      "message": "ext4: init timer earlier to avoid a kernel panic in __save_error_info\n\nDuring mount, when we fail to open journal inode or root inode, the\n__save_error_info will mod_timer. But actually s_err_report isn\u0027t\ninitialized yet and the kernel oops. The detailed information can\nbe found https://bugzilla.kernel.org/show_bug.cgi?id\u003d32082.\n\nThe best way is to check whether the timer s_err_report is initialized\nor not. But it seems that in include/linux/timer.h, we can\u0027t find a\ngood function to check the status of this timer, so this patch just\nmove the initializtion of s_err_report earlier so that we can avoid\nthe kernel panic. The corresponding del_timer is also added in the\nerror path.\n\nReported-by: Sami Liedes \u003csliedes@cc.hut.fi\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "46e4690bbd9a4f8d9e7c4f34e34b48f703ad47e0",
      "tree": "94d800c75ed4a9e11cd5301e171d301b266d4032",
      "parents": [
        "5b41395fcc0265fc9f193aef9df39ce49d64677c"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Apr 04 16:00:49 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 16:00:49 2011 -0400"
      },
      "message": "ext4: fix a double free in ext4_register_li_request\n\nIn ext4_register_li_request, we malloc a ext4_li_request and\ninserts it into ext4_li_info-\u003eli_request_list. In case of any\nerror later, we free it in the end.  But if we have some error\nin ext4_run_lazyinit_thread, the whole li_request_list will be\ndropped and freed in it. So we will double free this ext4_li_request.\n\nThis patch just sets elr to NULL after it is inserted to the list\nso that the latter kfree won\u0027t double free it.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "21f976975cbecbdaf23ceeacc1cab2b1c05a028e",
      "tree": "3040b533bf50d58e23c3c207001d89b29846df37",
      "parents": [
        "50f689af019b19f9b9a39be782c21b6f52b1615a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 04 15:33:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 15:33:39 2011 -0400"
      },
      "message": "ext4: remove unnecessary [cm]time update of quota file\n\nIt is not necessary to update [cm]time of quota file on each quota\nfile write and it wastes journal space and IO throughput with inode\nwrites. So just remove the updating from ext4_quota_write() and only\nupdate times when quotas are being turned off. Userspace cannot get\nanything reliable from quota files while they are used by the kernel\nanyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "25985edcedea6396277003854657b5f3cb31a628"
}
