)]}'
{
  "log": [
    {
      "commit": "b2f4edb335f23626225a792e0669d1becf68312f",
      "tree": "9e7b1b79f5d00d5adbe0ccced87be4045e245100",
      "parents": [
        "95599968d19db175829fb580baa6b68939b320fb"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Fri Jun 01 00:10:32 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 01 00:10:32 2012 -0400"
      },
      "message": "jbd2: use kmem_cache_zalloc wrapper instead of flag\n\nUse kmem_cache_zalloc wrapper instead of flag __GFP_ZERO.\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c390087591dcbecd244c31d979ccdad49ae83364",
      "tree": "c3ccbd028cb7970070114a8b0f45adfbebb113cb",
      "parents": [
        "1f56c5890e3e815c6f4eabfc87a8a81f439b6f3d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 08:12:12 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 08:12:12 2012 -0400"
      },
      "message": "jbd2: checksum data blocks that are stored in the journal\n\nCalculate and verify checksums of each data block being stored in the journal.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f56c5890e3e815c6f4eabfc87a8a81f439b6f3d",
      "tree": "667650c31970f9a89b26d701bf595c5599776eda",
      "parents": [
        "3caa487f53f65fd1e3950a6b6ae1709e6c43b334"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 08:10:25 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 08:10:25 2012 -0400"
      },
      "message": "jbd2: checksum commit blocks\n\nCalculate and verify the checksum of commit blocks.  In checksum v2,\ndeprecate most of the checksum v1 commit block checksum fields, since\neach block has its own checksum.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3caa487f53f65fd1e3950a6b6ae1709e6c43b334",
      "tree": "02ee3f18422d9ffed974eb1019e98b2ee1ade01c",
      "parents": [
        "42a7106de636ebf9c0b93d25b4230e14f5f2682e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 08:10:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 08:10:22 2012 -0400"
      },
      "message": "jbd2: checksum descriptor blocks\n\nCalculate and verify a checksum of each descriptor block.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "42a7106de636ebf9c0b93d25b4230e14f5f2682e",
      "tree": "321f2e97768bc12962babb018004f8f6b1f7e57f",
      "parents": [
        "4fd5ea43bc11602bfabe2c8f5378586d34bd2b0a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 08:08:24 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 08:08:24 2012 -0400"
      },
      "message": "jbd2: checksum revocation blocks\n\nCompute and verify revoke blocks inside the journal.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4fd5ea43bc11602bfabe2c8f5378586d34bd2b0a",
      "tree": "2a5e49a91ecb67c5a89eb0abe55f2b15495f738f",
      "parents": [
        "01b5adcebb977bc61b64167adce6d8260c9da33c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 08:08:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 08:08:22 2012 -0400"
      },
      "message": "jbd2: checksum journal superblock\n\nCalculate and verify a checksum covering the journal superblock.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "01b5adcebb977bc61b64167adce6d8260c9da33c",
      "tree": "2d17de43723163d40ada0d8f51faf1061c324f5f",
      "parents": [
        "25ed6e8a54df904c875365eebedbd19138a47328"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun May 27 07:50:56 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 27 07:50:56 2012 -0400"
      },
      "message": "jbd2: Grab a reference to the crc32c driver if necessary\n\nObtain a reference to the crc32c driver if needed for the v2 checksum.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\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": "8f888ef846d4481e24c74b4a91ece771d2bcbcb5",
      "tree": "bd037514671c52cea95426ba417a6c1b4b59f96a",
      "parents": [
        "f32aaf2d2b996b14e993da1c23f7ee22ea7333a3"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue May 22 22:43:41 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 22 22:43:41 2012 -0400"
      },
      "message": "jbd2: change disk layout for metadata checksumming\n\nDefine flags and allocate space in on-disk journal structures to support\nchecksumming of journal metadata.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "99aa78466777083255b876293e9e83dec7cd809a",
      "tree": "e15bd88760cb27bb306929b19ba41abc53e0e333",
      "parents": [
        "57f73c2c89a5d3b2ed87201c8100d1fa989a1a65"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Apr 13 10:27:35 2012 +0800"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 23 21:43:41 2012 -0400"
      },
      "message": "jbd2: use GFP_NOFS for blkdev_issue_flush\n\nflush request is issued in transaction commit code path, so looks using\nGFP_KERNEL to allocate memory for flush request bio falls into the classic\ndeadlock issue.  I saw btrfs and dm get it right, but ext4, xfs and md are\nusing GFP.\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\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": "c7c66c0cb0c77b1a8edf09bca57d922312d58030",
      "tree": "77277103c5f16aa4dee64978a060933d92e14776",
      "parents": [
        "9f3938346a5c1fa504647670edb5fea5756cfb00",
        "98e8bdafeb4728a6af7bbcbcc3984967d1cf2bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates for 3.4 from Rafael Wysocki:\n \"Assorted extensions and fixes including:\n\n  * Introduction of early/late suspend/hibernation device callbacks.\n  * Generic PM domains extensions and fixes.\n  * devfreq updates from Axel Lin and MyungJoo Ham.\n  * Device PM QoS updates.\n  * Fixes of concurrency problems with wakeup sources.\n  * System suspend and hibernation fixes.\"\n\n* tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (43 commits)\n  PM / Domains: Check domain status during hibernation restore of devices\n  PM / devfreq: add relation of recommended frequency.\n  PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()\n  PM / Domains: Introduce \"always on\" device flag\n  PM / Domains: Fix hibernation restore of devices, v2\n  PM / Domains: Fix handling of wakeup devices during system resume\n  sh_mmcif / PM: Use PM QoS latency constraint\n  tmio_mmc / PM: Use PM QoS latency constraint\n  PM / QoS: Make it possible to expose PM QoS latency constraints\n  PM / Sleep: JBD and JBD2 missing set_freezable()\n  PM / Domains: Fix include for PM_GENERIC_DOMAINS\u003dn case\n  PM / Freezer: Remove references to TIF_FREEZE in comments\n  PM / Sleep: Add more wakeup source initialization routines\n  PM / Hibernate: Enable usermodehelpers in hibernate() error path\n  PM / Sleep: Make __pm_stay_awake() delete wakeup source timers\n  PM / Sleep: Fix race conditions related to wakeup source timer function\n  PM / Sleep: Fix possible infinite loop during wakeup source destruction\n  PM / Hibernate: print physical addresses consistently with other parts of kernel\n  ...\n"
    },
    {
      "commit": "303a8f2afc7ba01083b50b7fceac2a412f28da4e",
      "tree": "6c38724e820d2458fb8480b10e0a78ba52d11075",
      "parents": [
        "8fb53c46d9c9322fc5a8e53038ceb0d243059c25"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:31 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:23 2012 +0800"
      },
      "message": "jbd2: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "3339578f05787259917788f461f4196b7349c2a4",
      "tree": "8e05b11eecd98e49076057940fc161f5b867b55c",
      "parents": [
        "932bb305ba2a01cd62809644d569f004e77a4355"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:45:38 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:45:38 2012 -0400"
      },
      "message": "jbd2: cleanup journal tail after transaction commit\n\nNormally, we have to issue a cache flush before we can update journal tail in\njournal superblock, effectively wiping out old transactions from the journal.\nSo use the fact that during transaction commit we issue cache flush anyway and\nopportunistically push journal tail as far as we can. Since update of journal\nsuperblock is still costly (we have to use WRITE_FUA), we update log tail only\nif we can free significant amount of space.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "932bb305ba2a01cd62809644d569f004e77a4355",
      "tree": "f03c1389c2902285e7e964210729bbbf2505d607",
      "parents": [
        "c254c9ec14d5c418c8f36ea7573edae2470a1dc1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:45:25 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:45:25 2012 -0400"
      },
      "message": "jbd2: remove bh_state lock from checkpointing code\n\nAll accesses to checkpointing entries in journal_head are protected\nby j_list_lock. Thus __jbd2_journal_remove_checkpoint() doesn\u0027t really\nneed bh_state lock.\n\nAlso the only part of journal head that the rest of checkpointing code\nneeds to check is jh-\u003eb_transaction which is safe to read under\nj_list_lock.\n\nSo we can safely remove bh_state lock from all of checkpointing code which\nmakes it considerably prettier.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c254c9ec14d5c418c8f36ea7573edae2470a1dc1",
      "tree": "f7f7fd284408a2c986fbd78093e22c6a8850367f",
      "parents": [
        "5bebccf90127859085f6a020f08ff7f648e285a0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:27:44 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:27:44 2012 -0400"
      },
      "message": "jbd2: remove always true condition in __journal_try_to_free_buffer()\n\nThe check b_jlist \u003d\u003d BJ_None in __journal_try_to_free_buffer() is\nalways true (__jbd2_journal_temp_unlink_buffer() also checks this in\nan assertion) so just remove it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5bebccf90127859085f6a020f08ff7f648e285a0",
      "tree": "db7727ccd615fe9e68505935242b8a7e6ae5a5d5",
      "parents": [
        "96c866782b5e0cbdcd8e4d921d0a893278430830"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:25:06 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:25:06 2012 -0400"
      },
      "message": "jbd2: declare __jbd2_journal_temp_unlink_buffer() static\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "96c866782b5e0cbdcd8e4d921d0a893278430830",
      "tree": "00a822f18c9583977c03918ccdcb766c707d8a06",
      "parents": [
        "79feb521a44705262d15cc819a4117a447b11ea7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:24:54 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:24:54 2012 -0400"
      },
      "message": "jbd2: fix BH_JWrite setting in checkpointing code\n\nBH_JWrite bit should be set when buffer is written to the journal. So\ncheckpointing shouldn\u0027t set this bit when writing out buffer. This didn\u0027t\ncause any observable bug since BH_JWrite bit is used only for debugging\npurposes but it\u0027s good to have this consistent.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "79feb521a44705262d15cc819a4117a447b11ea7",
      "tree": "a4de6ed084b7a68c0885049d94841ce8334b64a7",
      "parents": [
        "a78bb11d7acd525623c6a0c2ff4e213d527573fa"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 22:22:54 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 22:22:54 2012 -0400"
      },
      "message": "jbd2: issue cache flush after checkpointing even with internal journal\n\nWhen we reach jbd2_cleanup_journal_tail(), there is no guarantee that\ncheckpointed buffers are on a stable storage - especially if buffers were\nwritten out by jbd2_log_do_checkpoint(), they are likely to be only in disk\u0027s\ncaches. Thus when we update journal superblock effectively removing old\ntransaction from journal, this write of superblock can get to stable storage\nbefore those checkpointed buffers which can result in filesystem corruption\nafter a crash. Thus we must unconditionally issue a cache flush before we\nupdate journal superblock in these cases.\n\nA similar problem can also occur if journal superblock is written only in\ndisk\u0027s caches, other transaction starts reusing space of the transaction\ncleaned from the log and power failure happens. Subsequent journal replay would\nstill try to replay the old transaction but some of it\u0027s blocks may be already\noverwritten by the new transaction. For this reason we must use WRITE_FUA when\nupdating log tail and we must first write new log tail to disk and update\nin-memory information only after that.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "35c80422afc8394d1ecbab3c0b17fcd539e4e5c2",
      "tree": "ff01c1ed95ea4ca6656f43e87f29a1a54a633106",
      "parents": [
        "37f08be11be9a7d9351fb1b9b408259519a126f3"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "nigel@tuxonice.net",
        "time": "Fri Feb 03 19:59:41 2012 +1100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:36:44 2012 +0100"
      },
      "message": "PM / Sleep: JBD and JBD2 missing set_freezable()\n\nWith the latest and greatest changes to the freezer, I started seeing\npanics that were caused by jbd2 running post-process freezing and\nhitting the canary BUG_ON for non-TuxOnIce I/O submission. I\u0027ve traced\nthis back to a lack of set_freezable calls in both jbd and jbd2. Since\nthey\u0027re clearly meant to be frozen (there are tests for freezing()), I\nsubmit the following patch to add the missing calls.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a78bb11d7acd525623c6a0c2ff4e213d527573fa",
      "tree": "6e2e228cc51a2138046b499d6d9002f35f6d56d0",
      "parents": [
        "24bcc89c7e7c64982e6192b4952a0a92379fc341"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 15:43:04 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 15:43:04 2012 -0400"
      },
      "message": "jbd2: protect all log tail updates with j_checkpoint_mutex\n\nThere are some log tail updates that are not protected by j_checkpoint_mutex.\nSome of these are harmless because they happen during startup or shutdown but\nupdates in jbd2_journal_commit_transaction() and jbd2_journal_flush() can\nreally race with other log tail updates (e.g. someone doing\njbd2_journal_flush() with someone running jbd2_cleanup_journal_tail()). So\nprotect all log tail updates with j_checkpoint_mutex.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24bcc89c7e7c64982e6192b4952a0a92379fc341",
      "tree": "0661b6c83fa9bb681f3aa32264323ce96c264958",
      "parents": [
        "31d4f3a2f3c73f279ff96a7135d7202ef6833f12"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Mar 13 15:41:04 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 13 15:41:04 2012 -0400"
      },
      "message": "jbd2: split updating of journal superblock and marking journal empty\n\nThere are three case of updating journal superblock. In the first case, we want\nto mark journal as empty (setting s_sequence to 0), in the second case we want\nto update log tail, in the third case we want to update s_errno. Split these\ncases into separate functions. It makes the code slightly more straightforward\nand later patches will make the distinction even more important.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "9c0e00e5ce0d23e3e0a93f99ae8e94398e32a2d2",
      "tree": "964876c6befc40a636719da97cbb48e0c6ad1431",
      "parents": [
        "4185a2ac422c7fc76a77a3eb2c38ce19eeaae563"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "message": "jbd2: use KMEM_CACHE instead of kmem_cache_create()\n\nUse the KMEM_CACHE helper macro instead of kmem_cache_create().\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4185a2ac422c7fc76a77a3eb2c38ce19eeaae563",
      "tree": "ffd4e425f0b9176c4f7d4dd191d62f92c2eb00cf",
      "parents": [
        "0c2022eccb01630c037f2024531e9ff1afbe1564"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:03 2012 -0500"
      },
      "message": "jbd2: rename functions which initialize slab caches\n\nThis patch renames functions initializing the slab caches for the\njournal head and handle structures to so they are consistent with the\nnames of the corresponding functions which destroys those slab caches.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0c2022eccb01630c037f2024531e9ff1afbe1564",
      "tree": "704d54db298e64a84fd60330fd7985d27117d98c",
      "parents": [
        "18aadd47f88464928b5ce57791c2e8f9f2aaece0"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.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": "jbd2: allocate transaction from separate slab cache\n\nThere is normally only a handful of these active at any one time, but\nputting them in a separate slab cache makes debugging memory\ncorruption problems easier.  Manish Katiyar also wanted this make it\neasier to test memory failure scenarios in the jbd2 layer.\n\nCc: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "15291164b22a357cb211b618adfef4fa82fc0de3",
      "tree": "c41a5da09a9a82ba19b11828ac725ea644454a27",
      "parents": [
        "856cbcf9a971b43a83e78ac708ed6459ab1d0c89"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "message": "jbd2: clear BH_Delay \u0026 BH_Unwritten in journal_unmap_buffer\n\njournal_unmap_buffer()\u0027s zap_buffer: code clears a lot of buffer head\nstate ala discard_buffer(), but does not touch _Delay or _Unwritten as\ndiscard_buffer() does.\n\nThis can be problematic in some areas of the ext4 code which assume\nthat if they have found a buffer marked unwritten or delay, then it\u0027s\na live one.  Perhaps those spots should check whether it is mapped\nas well, but if jbd2 is going to tear down a buffer, let\u0027s really\ntear it down completely.\n\nWithout this I get some fsx failures on sub-page-block filesystems\nup until v3.2, at which point 4e96b2dbbf1d7e81f22047a50f862555a6cb87cb\nand 189e868fa8fdca702eb9db9d8afc46b5cb9144c9 make the failures go\naway, because buried within that large change is some more flag\nclearing.  I still think it\u0027s worth doing in jbd2, since\n-\u003einvalidatepage leads here directly, and it\u0027s the right place\nto clear away these flags.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "2201c590dd6e802795e21e69e3c152c519f1568e",
      "tree": "a617a8578dd181bbcb83c0e3c6198a3dc836eef8",
      "parents": [
        "3d2b158262826e8b75bbbfb7b97010838dd92ac7"
      ],
      "author": {
        "name": "Seiji Aguchi",
        "email": "seiji.aguchi@hds.com",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:53:01 2012 -0500"
      },
      "message": "jbd2: add drop_transaction/update_superblock_end tracepoints\n\nThis patch adds trace_jbd2_drop_transaction and\ntrace_jbd2_update_superblock_end because there are similar tracepoints\nin jbd and they are needed in jbd2 as well.\n\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Seiji Aguchi \u003cseiji.aguchi@hds.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\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": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "9837d8e982b7e87a7207f90618e45d460e196e6a",
      "tree": "639e335810e90680ce0078b36803835d148144b4",
      "parents": [
        "9b90e5e02896406a6da28a376568003d14c06770"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 04 22:03:11 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:03:11 2012 -0500"
      },
      "message": "jbd2: fix hung processes in jbd2_journal_lock_updates()\n\nToshiyuki Okajima found out that when running\n\nfor ((i\u003d0; i \u003c 100000; i++)); do\n        if ((i%2 \u003d\u003d 0)); then\n                chattr +j /mnt/file\n        else\n                chattr -j /mnt/file\n        fi\n        echo \"0\" \u003e\u003e /mnt/file\ndone\n\nprocess sometimes hangs indefinitely in jbd2_journal_lock_updates().\n\nToshiyuki identified that the following race happens:\n\njbd2_journal_lock_updates()            |jbd2_journal_stop()\n---------------------------------------+---------------------------------------\n write_lock(\u0026journal-\u003ej_state_lock)    |    .\n ++journal-\u003ej_barrier_count            |    .\n spin_lock(\u0026tran-\u003et_handle_lock)       |    .\n atomic_read(\u0026tran-\u003et_updates) //not 0 |\n                                       | atomic_dec_and_test(\u0026tran-\u003et_updates)\n                                       |    // t_updates \u003d 0\n                                       | wake_up(\u0026journal-\u003ej_wait_updates)\n prepare_to_wait()                     |    // no process is woken up.\n spin_unlock(\u0026tran-\u003et_handle_lock)     |\n write_unlock(\u0026journal-\u003ej_state_lock)  |\n schedule() // never return            |\n\nWe fix the problem by first calling prepare_to_wait() and only after that\nchecking t_updates in jbd2_journal_lock_updates().\n\nReported-and-analyzed-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1ba37268cd19e5a2a80924bfe8618bf1ba3e8249",
      "tree": "f4227aaf3963e6c948b01e57c98697e6ab2157d6",
      "parents": [
        "5872ddaaf05bf25e3ab90580295ebc946405928c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Dec 28 17:46:46 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 28 17:46:46 2011 -0500"
      },
      "message": "jbd2: clear revoked flag on buffers before a new transaction started\n\nCurrently, we clear revoked flag only when a block is reused.  However,\nthis can tigger a false journal error.  Consider a situation when a block\nis used as a meta block and is deleted(revoked) in ordered mode, then the\nblock is allocated as a data block to a file.  At this moment, user changes\nthe file\u0027s journal mode from ordered to journaled and truncates the file.\nThe block will be considered re-revoked by journal because it has revoked\nflag still pending from the last transaction and an assertion triggers.\n\nWe fix the problem by keeping the revoked status more uptodate - we clear\nrevoked flag when switching revoke tables to reflect there is no revoked\nbuffers in current transaction any more.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "90802ed9c3dbab2e067bd9fc67a30e66e6774e8f",
      "tree": "ac379380a669ad3c2a7ab0c3d923f1e9644ae885",
      "parents": [
        "05183189ee5df8799b22c56d93f0f69b8490e33f"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Mon Dec 05 13:00:34 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Dec 06 09:53:40 2011 +0100"
      },
      "message": "treewide: Fix comment and string typo \u0027bufer\u0027\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "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": "f2a44523b20f323e4aef7c16261d34d6f0a4bf06",
      "tree": "b7b46aefb3c91ab9f5462bd990ba02523c60ba96",
      "parents": [
        "8762202dd0d6e46854f786bdb6fb3780a1625efe"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Tue Nov 01 19:09:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 19:09:18 2011 -0400"
      },
      "message": "jbd2: Unify log messages in jbd2 code\n\nSome jbd2 code prints out kernel messages with \"JBD2: \" prefix, at the\nsame time other jbd2 code prints with \"JBD: \" prefix. Unify the prefix\nto \"JBD2: \".\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8762202dd0d6e46854f786bdb6fb3780a1625efe",
      "tree": "0fe3a7e102bfefa0bbb5810f934fbf93840459dd",
      "parents": [
        "bf52c6f7af55c48ab0fd5f990460b884b428d906"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Tue Nov 01 19:04:59 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 19:04:59 2011 -0400"
      },
      "message": "jbd/jbd2: validate sb-\u003es_first in journal_get_superblock()\n\nI hit a J_ASSERT(blocknr !\u003d 0) failure in cleanup_journal_tail() when\nmounting a fsfuzzed ext3 image. It turns out that the corrupted ext3\nimage has s_first \u003d 0 in journal superblock, and the 0 is passed to\njournal-\u003ej_head in journal_reset(), then to blocknr in\ncleanup_journal_tail(), in the end the J_ASSERT failed.\n\nSo validate s_first after reading journal superblock from disk in\njournal_get_superblock() to ensure s_first is valid.\n\nThe following script could reproduce it:\n\nfstype\u003dext3\nblocksize\u003d1024\nimg\u003d$fstype.img\noffset\u003d0\nfound\u003d0\nmagic\u003d\"c0 3b 39 98\"\n\ndd if\u003d/dev/zero of\u003d$img bs\u003d1M count\u003d8\nmkfs -t $fstype -b $blocksize -F $img\nfilesize\u003d`stat -c %s $img`\nwhile [ $offset -lt $filesize ]\ndo\n        if od -j $offset -N 4 -t x1 $img | grep -i \"$magic\";then\n                echo \"Found journal: $offset\"\n                found\u003d1\n                break\n        fi\n        offset\u003d`echo \"$offset+$blocksize\" | bc`\ndone\n\nif [ $found -ne 1 ];then\n        echo \"Magic \\\"$magic\\\" not found\"\n        exit 1\nfi\n\ndd if\u003d/dev/zero of\u003d$img seek\u003d$(($offset+23)) conv\u003dnotrunc bs\u003d1 count\u003d1\n\nmkdir -p ./mnt\nmount -o loop $img ./mnt\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44705754610dbc63503bc7679ff9d9f84978a76f",
      "tree": "b3b58dbc315562ef16f5382ef2212106e7ce6938",
      "parents": [
        "b3ff05690845911cc40387176f0bc5a7af9ef3ff"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "message": "jbd2: fix build when CONFIG_BUG is not enabled\n\nFix build error when CONFIG_BUG is not enabled:\n\nfs/jbd2/transaction.c:1175:3: error: implicit declaration of function \u0027__WARN\u0027\n\nby changing __WARN() to WARN_ON(), as suggested by\nArnaud Lacombe \u003clacombar@gmail.com\u003e.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Arnaud Lacombe \u003clacombar@gmail.com\u003e\n"
    },
    {
      "commit": "d2159fb7b8bac12684aabdf41d84b56da9f5c062",
      "tree": "32c061d113405936a3dc37ad47018b88393c1e66",
      "parents": [
        "9ea7a0df63630ad8197716cd313ea66e28906fc0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "message": "jbd2: use gfp_t instead of int\n\nThis silences some Sparse warnings:\nfs/jbd2/transaction.c:135:69: warning: incorrect type in argument 2 (different base types)\nfs/jbd2/transaction.c:135:69:    expected restricted gfp_t [usertype] flags\nfs/jbd2/transaction.c:135:69:    got int [signed] gfp_mask\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9ea7a0df63630ad8197716cd313ea66e28906fc0",
      "tree": "2f9cb8bb3f4c709aa666c7863b496f2757b261fb",
      "parents": [
        "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "message": "jbd2: add debugging information to jbd2_journal_dirty_metadata()\n\nAdd debugging information in case jbd2_journal_dirty_metadata() is\ncalled with a buffer_head which didn\u0027t have\njbd2_journal_get_write_access() called on it, or if the journal_head\nhas the wrong transaction in it.  In addition, return an error code.\nThis won\u0027t change anything for ocfs2, which will BUG_ON() the non-zero\nexit code.\n\nFor ext4, the caller of this function is ext4_handle_dirty_metadata(),\nand on seeing a non-zero return code, will call __ext4_journal_stop(),\nwhich will print the function and line number of the (buggy) calling\nfunction and abort the journal.  This will allow us to recover instead\nof bug halting, which is better from a robustness and reliability\npoint of view.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4862fd6047ed02e2726667c54d35f538eecc56aa",
      "tree": "fc97f075946120157c63f48e283a5d753d22763a",
      "parents": [
        "575a1d4bdfa2ea9fc10733013136145b497e1be0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 10 22:05:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 10 22:05:08 2011 -0400"
      },
      "message": "jbd2: remove jbd2_dev_to_name() from jbd2 tracepoints\n\nUsing function calls in TP_printk causes perf heartburn, so print the\nMAJOR/MINOR device numbers instead.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d3ad8434aa83ef7c88bc91edcfe012cdcbab9f3e",
      "tree": "f94f65f0191334b8d7d071ff3f9342621d82f9cc",
      "parents": [
        "890879cfa08f5ceaa09810611f46e890f7d57ff6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Jun 27 12:36:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 27 12:36:29 2011 -0400"
      },
      "message": "jbd2: use WRITE_SYNC in journal checkpoint\n\nIn journal checkpoint, we write the buffer and wait for its finish.\nBut in cfq, the async queue has a very low priority, and in our test,\nif there are too many sync queues and every queue is filled up with\nrequests, the write request will be delayed for quite a long time and\nall the tasks which are waiting for journal space will end with errors like:\n\nINFO: task attr_set:3816 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nattr_set      D ffff880028393480     0  3816      1 0x00000000\n ffff8802073fbae8 0000000000000086 ffff8802140847c8 ffff8800283934e8\n ffff8802073fb9d8 ffffffff8103e456 ffff8802140847b8 ffff8801ed728080\n ffff8801db4bc080 ffff8801ed728450 ffff880028393480 0000000000000002\nCall Trace:\n [\u003cffffffff8103e456\u003e] ? __dequeue_entity+0x33/0x38\n [\u003cffffffff8103caad\u003e] ? need_resched+0x23/0x2d\n [\u003cffffffff814006a6\u003e] ? thread_return+0xa2/0xbc\n [\u003cffffffffa01f6224\u003e] ? jbd2_journal_dirty_metadata+0x116/0x126 [jbd2]\n [\u003cffffffffa01f6224\u003e] ? jbd2_journal_dirty_metadata+0x116/0x126 [jbd2]\n [\u003cffffffff81400d31\u003e] __mutex_lock_common+0x14e/0x1a9\n [\u003cffffffffa021dbfb\u003e] ? brelse+0x13/0x15 [ext4]\n [\u003cffffffff81400ddb\u003e] __mutex_lock_slowpath+0x19/0x1b\n [\u003cffffffff81400b2d\u003e] mutex_lock+0x1b/0x32\n [\u003cffffffffa01f927b\u003e] __jbd2_journal_insert_checkpoint+0xe3/0x20c [jbd2]\n [\u003cffffffffa01f547b\u003e] start_this_handle+0x438/0x527 [jbd2]\n [\u003cffffffff8106f491\u003e] ? autoremove_wake_function+0x0/0x3e\n [\u003cffffffffa01f560b\u003e] jbd2_journal_start+0xa1/0xcc [jbd2]\n [\u003cffffffffa02353be\u003e] ext4_journal_start_sb+0x57/0x81 [ext4]\n [\u003cffffffffa024a314\u003e] ext4_xattr_set+0x6c/0xe3 [ext4]\n [\u003cffffffffa024aaff\u003e] ext4_xattr_user_set+0x42/0x4b [ext4]\n [\u003cffffffff81145adb\u003e] generic_setxattr+0x6b/0x76\n [\u003cffffffff81146ac0\u003e] __vfs_setxattr_noperm+0x47/0xc0\n [\u003cffffffff81146bb8\u003e] vfs_setxattr+0x7f/0x9a\n [\u003cffffffff81146c88\u003e] setxattr+0xb5/0xe8\n [\u003cffffffff81137467\u003e] ? do_filp_open+0x571/0xa6e\n [\u003cffffffff81146d26\u003e] sys_fsetxattr+0x6b/0x91\n [\u003cffffffff81002d32\u003e] system_call_fastpath+0x16/0x1b\n\nSo this patch tries to use WRITE_SYNC in __flush_batch so that the request will\nbe moved into sync queue and handled by cfq timely. We also use the new plug,\nsot that all the WRITE_SYNC requests can be given as a whole when we unplug it.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nReported-by: Robin Dong \u003csanbai@taobao.com\u003e\n"
    },
    {
      "commit": "de1b794130b130e77ffa975bb58cb843744f9ae5",
      "tree": "8c4b37582128dc36c2b7385294fba58d017ce3e8",
      "parents": [
        "1fb74cda1b5e9c6207225fda5ef7504e815ce0e0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jun 13 15:38:22 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 13 15:38:22 2011 -0400"
      },
      "message": "jbd2: Fix oops in jbd2_journal_remove_journal_head()\n\njbd2_journal_remove_journal_head() can oops when trying to access\njournal_head returned by bh2jh(). This is caused for example by the\nfollowing race:\n\n\tTASK1\t\t\t\t\tTASK2\n  jbd2_journal_commit_transaction()\n    ...\n    processing t_forget list\n      __jbd2_journal_refile_buffer(jh);\n      if (!jh-\u003eb_transaction) {\n        jbd_unlock_bh_state(bh);\n\t\t\t\t\tjbd2_journal_try_to_free_buffers()\n\t\t\t\t\t  jbd2_journal_grab_journal_head(bh)\n\t\t\t\t\t  jbd_lock_bh_state(bh)\n\t\t\t\t\t  __journal_try_to_free_buffer()\n\t\t\t\t\t  jbd2_journal_put_journal_head(jh)\n        jbd2_journal_remove_journal_head(bh);\n\njbd2_journal_put_journal_head() in TASK2 sees that b_jcount \u003d\u003d 0 and\nbuffer is not part of any transaction and thus frees journal_head\nbefore TASK1 gets to doing so. Note that even buffer_head can be\nreleased by try_to_free_buffers() after\njbd2_journal_put_journal_head() which adds even larger opportunity for\noops (but I didn\u0027t see this happen in reality).\n\nFix the problem by making transactions hold their own journal_head\nreference (in b_jcount). That way we don\u0027t have to remove journal_head\nexplicitely via jbd2_journal_remove_journal_head() and instead just\nremove journal_head when b_jcount drops to zero. The result of this is\nthat [__]jbd2_journal_refile_buffer(),\n[__]jbd2_journal_unfile_buffer(), and\n__jdb2_journal_remove_checkpoint() can free journal_head which needs\nmodification of a few callers. Also we have to be careful because once\njournal_head is removed, buffer_head might be freed as well. So we\nhave to get our own buffer_head reference where it matters.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1fb74cda1b5e9c6207225fda5ef7504e815ce0e0",
      "tree": "9a4d05e917f6204e5edf6cd4044715847e0ba6b3",
      "parents": [
        "a9c667f8f0656631ee5438baaf21bf30d5f67375"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Jun 12 22:44:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 12 22:44:10 2011 -0400"
      },
      "message": "jbd2: Remove obsolete parameters in the comments for some jbd2 functions\n\ncredits isn\u0027t a parameter for jbd2_journal_get_write_access and\njbd2_journal_get_undo_access. So remove the corresponding comments.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "35806b4f7c5620b547f183e9d53f7cfaeabb582b",
      "tree": "dc966f5edd9e482fdc85b8fb886ae39ce5c5ec80",
      "parents": [
        "32e51f141fd8d880f57b6a2eb53ce72856254d4a",
        "d183e11a4a66d80e10d60b0918a47cf073135379"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:53:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:53:20 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (61 commits)\n  jbd2: Add MAINTAINERS entry\n  jbd2: fix a potential leak of a journal_head on an error path\n  ext4: teach ext4_ext_split to calculate extents efficiently\n  ext4: Convert ext4 to new truncate calling convention\n  ext4: do not normalize block requests from fallocate()\n  ext4: enable \"punch hole\" functionality\n  ext4: add \"punch hole\" flag to ext4_map_blocks()\n  ext4: punch out extents\n  ext4: add new function ext4_block_zero_page_range()\n  ext4: add flag to ext4_has_free_blocks\n  ext4: reserve inodes and feature code for \u0027quota\u0027 feature\n  ext4: add support for multiple mount protection\n  ext4: ensure f_bfree returned by ext4_statfs() is non-negative\n  ext4: protect bb_first_free in ext4_trim_all_free() with group lock\n  ext4: only load buddy bitmap in ext4_trim_fs() when it is needed\n  jbd2: Fix comment to match the code in jbd2__journal_start()\n  ext4: fix waiting and sending of a barrier in ext4_sync_file()\n  jbd2: Add function jbd2_trans_will_send_data_barrier()\n  jbd2: fix sending of data flush on journal commit\n  ext4: fix ext4_ext_fiemap_cb() to handle blocks before request range correctly\n  ...\n"
    },
    {
      "commit": "3991b4008cb12f3abfe8dbb049b03d1cc39a8440",
      "tree": "44a6de3b438813925a2992c68aed82f0f04ef27b",
      "parents": [
        "1b16da77f90328661fc7e556ad591f9ee6b7ef6a"
      ],
      "author": {
        "name": "Ding Dinghua",
        "email": "dingdinghua@nrchpc.ac.cn",
        "time": "Wed May 25 17:43:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 17:43:48 2011 -0400"
      },
      "message": "jbd2: fix a potential leak of a journal_head on an error path\n\ndrop jh-\u003eb_jcount in error path\n\nSigned-off-by: Ding Dinghua \u003cdingdinghua@nrchpc.ac.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c867516de5256e9cfba2ec5847fa27e0f0ddd2c5",
      "tree": "701c4b48b81e7063efb1a3d014dfb9c11437a7f9",
      "parents": [
        "93628ffb9ba67c154849ac6c387f98f5e3198b84"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "message": "jbd2: Fix comment to match the code in jbd2__journal_start()\n\njbd2__journal_start() returns an ERR_PTR() value rather than NULL on\nfailure.\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bbd2be36910728f485ac78ea36e0f4f5a38e691e",
      "tree": "6a45da5a6ef8bafe9614de5fac68cce1fe4e13ec",
      "parents": [
        "81be12c8179c1c397d3f179cdd9b3f7146cf47f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "message": "jbd2: Add function jbd2_trans_will_send_data_barrier()\n\nProvide a function which returns whether a transaction with given tid\nwill send a flush to the filesystem device.  The function will be used\nby ext4 to detect whether fsync needs to send a separate flush or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "81be12c8179c1c397d3f179cdd9b3f7146cf47f1",
      "tree": "b535687e88af17fc6b25329decf28563ed519395",
      "parents": [
        "b221349fa8b45d13c3650089f0514df7d1eb36c3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "message": "jbd2: fix sending of data flush on journal commit\n\n\nIn data\u003dordered mode, it\u0027s theoretically possible (however rare) that\nan inode is filed to transaction\u0027s t_inode_list and a flusher thread\nwrites all the data and inode is reclaimed before the transaction\nstarts to commit.  In such a case, we could erroneously omit sending a\nflush to file system device when it is different from the journal\ndevice (because data can still be in disk cache only).\n\nFix the problem by setting a flag in a transaction when some inode is added\nto it and then send disk flush in the commit code when the flag is set.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "28e35e42fb255cbaeee8b9f89643f26fe376374d",
      "tree": "db83cfc348e1ff652aea17eff6ff4eb07d8cd8a9",
      "parents": [
        "f6d2f6b327ceef5c689581529a852dc6ec3b74a6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "message": "jbd2: Fix the wrong calculation of t_max_wait in update_t_max_wait\n\nt_max_wait is added in commit 8e85fb3f to indicate how long we\nwere waiting for new transaction to start. In commit 6d0bf005,\nit is moved to another function named update_t_max_wait to\navoid a build warning. But the wrong thing is that the original\n\u0027ts\u0027 is initialized in the start of function start_this_handle\nand we can calculate t_max_wait in the right way. while with\nthis change, ts is initialized within the function and t_max_wait\ncan never be calculated right.\n\nThis patch moves the initialization of ts to the original beginning\nof start_this_handle and pass it to function update_t_max_wait so\nthat it can be calculated right and the build warning is avoided also.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "9199e66528f61a06abe09f0589bbe1eecaa301a7",
      "tree": "9638e08371e859fcf38d6bc407859f09a0164a30",
      "parents": [
        "2842bb20eed2e25cde5114298edc62c8883a1d9a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu May 05 23:54:19 2011 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 17 13:47:42 2011 +0200"
      },
      "message": "jbd/jbd2: remove obsolete summarise_journal_usage.\n\nsummarise_journal_usage seems to be obsolete for a long time,\nso remove it.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1be2add685181ba31554ffefa428b0f80a408bff",
      "tree": "1556ae76056f50460af2db7018816b96b4676c63",
      "parents": [
        "229309caebe4508d650bb6d8f7d51f2b116f5bbd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "message": "jbd2: only print the debugging information for tid wraparound once\n\nIf we somehow wrap, we don\u0027t want to keep printing the warning message\nover and over again.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "229309caebe4508d650bb6d8f7d51f2b116f5bbd",
      "tree": "6b9612369cac17205b21ca0b4d93ebbd25863f6d",
      "parents": [
        "667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "message": "jbd2: Fix forever sleeping process in do_get_write_access()\n\nIn do_get_write_access() we wait on BH_Unshadow bit for buffer to get\nfrom shadow state. The waking code in journal_commit_transaction() has\na bug because it does not issue a memory barrier after the buffer is\nmoved from the shadow state and before wake_up_bit() is called. Thus a\nwaitqueue check can happen before the buffer is actually moved from\nthe shadow state and waiting process may never be woken. Fix the\nproblem by issuing proper barrier.\n\nReported-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "deeeaf13b291420fe4a4a52606b9fc9128387340",
      "tree": "2e7cbab5f598839771022453e8ed4ea18fb1e0af",
      "parents": [
        "59802db0745ddfe5cfd0d965e9d489f1b4713868"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "message": "jbd2: fix fsync() tid wraparound bug\n\nIf an application program does not make any changes to the indirect\nblocks or extent tree, i_datasync_tid will not get updated.  If there\nare enough commits (i.e., 2**31) such that tid_geq()\u0027s calculations\nwrap, and there isn\u0027t a currently active transaction at the time of\nthe fdatasync() call, this can end up triggering a BUG_ON in\nfs/jbd2/commit.c:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nIt\u0027s pretty rare that this can happen, since it requires the use of\nfdatasync() plus *very* frequent and excessive use of fsync().  But\nwith the right workload, it can.\n\nWe fix this by replacing the use of tid_geq() with an equality test,\nsince there\u0027s only one valid transaction id that we is valid for us to\nwait until it is commited: namely, the currently running transaction\n(if it exists).\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": "6cba611e600ded15f642552ce6b5f7ee243bacf0",
      "tree": "5ffde3bc5fb87bbf9693bc83a53d9212ae04f267",
      "parents": [
        "46e4690bbd9a4f8d9e7c4f34e34b48f703ad47e0"
      ],
      "author": {
        "name": "Zhang Huan",
        "email": "zhhuan@gmail.com",
        "time": "Tue Apr 05 19:16:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 05 19:16:20 2011 -0400"
      },
      "message": "jbd2: fix potential memory leak on transaction commit\n\nThere is potential memory leak of journal head in function\njbd2_journal_commit_transaction. The problem is that JBD2 will not\nreclaim the journal head of commit record if error occurs or journal\nis abotred.\n\nI use the following script to reproduce this issue, on a RHEL6\nsystem. I found it very easy to reproduce with async commit enabled.\n\nmount /dev/sdb /mnt -o journal_checksum,journal_async_commit\ntouch /mnt/xxx\necho offline \u003e /sys/block/sdb/device/state\nsync\numount /mnt\nrmmod ext4\nrmmod jbd2\n\nRemoval of the jbd2 module will make slab complaining that\n\"cache `jbd2_journal_head\u0027: can\u0027t free all objects\".\n\nSigned-off-by: Zhang Huan \u003czhhuan@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "50f689af019b19f9b9a39be782c21b6f52b1615a",
      "tree": "40b80bb3acc51ebfba7199c0fadff25da2ee6d51",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "zhu.yanhai@gmail.com",
        "time": "Mon Apr 04 12:58:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 12:58:12 2011 -0400"
      },
      "message": "jbd2: move bdget out of critical section\n\nbdget() should not be called when we hold spinlocks since\nit might sleep.\n\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Zhu Yanhai \u003cgaoyang.zyh@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "82f04ab47e1d94d78503591a7460b2cad9601ede",
      "tree": "a79fd1ba1c8dce2147cb3bea54357321f73e642d",
      "parents": [
        "65ab80279d7c323ce151e858d951e2684df72a97"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:01:52 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:01:52 2011 +0100"
      },
      "message": "jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n\n\u0027write_op\u0027 was still used, even though it was always WRITE_SYNC now.\nAdd plugging around the cases where it submits IO, and flush them\nbefore we end up waiting for that IO.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3c26bdb42320f9f39d30c6f115476bbb66b74dc5",
      "tree": "464b9ce0d2eb1875ef7cb676d5ec4f25645934a9",
      "parents": [
        "ce654b37f87980d95f339080e4c3bdb2370bdf22"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Sat Feb 26 20:34:05 2011 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 28 21:55:58 2011 +0100"
      },
      "message": "jbd: Remove one to many n\u0027s in a word.\n\nThe Patch below removes one to many \"n\u0027s\" in a word..\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: linux-ext4@vger.kernel.org\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e44718318004a5618d1dfe2d080e2862532d8e5f",
      "tree": "c1a6af07da3184f5785a62062510ac8e86b8050a",
      "parents": [
        "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "message": "jbd2: call __jbd2_log_start_commit with j_state_lock write locked\n\nOn an SMP ARM system running ext4, I\u0027ve received a report that the\nfirst J_ASSERT in jbd2_journal_commit_transaction has been triggering:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nWhile investigating possible causes for this problem, I noticed that\n__jbd2_log_start_commit() is getting called with j_state_lock only\nread-locked, in spite of the fact that it\u0027s possible for it might\nj_commit_request.  Fix this by grabbing the necessary information so\nwe can test to see if we need to start a new transaction before\ndropping the read lock, and then calling jbd2_log_start_commit() which\nwill grab the write lock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "008d23e4852d78bb2618f2035f8b2110b6a6b968",
      "tree": "81c88f744f6f3fc84132527c1ddc0b4da410c5e2",
      "parents": [
        "8f685fbda43deccd130d192c9fcef1444649eaca",
        "bfc672dcf323877228682aff79dff8ecd9f30ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  Documentation/trace/events.txt: Remove obsolete sched_signal_send.\n  writeback: fix global_dirty_limits comment runtime -\u003e real-time\n  ppc: fix comment typo singal -\u003e signal\n  drivers: fix comment typo diable -\u003e disable.\n  m68k: fix comment typo diable -\u003e disable.\n  wireless: comment typo fix diable -\u003e disable.\n  media: comment typo fix diable -\u003e disable.\n  remove doc for obsolete dynamic-printk kernel-parameter\n  remove extraneous \u0027is\u0027 from Documentation/iostats.txt\n  Fix spelling milisec -\u003e ms in snd_ps3 module parameter description\n  Fix spelling mistakes in comments\n  Revert conflicting V4L changes\n  i7core_edac: fix typos in comments\n  mm/rmap.c: fix comment\n  sound, ca0106: Fix assignment to \u0027channel\u0027.\n  hrtimer: fix a typo in comment\n  init/Kconfig: fix typo\n  anon_inodes: fix wrong function name in comment\n  fix comment typos concerning \"consistent\"\n  poll: fix a typo in comment\n  ...\n\nFix up trivial conflicts in:\n - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)\n - fs/ext4/ext4.h\n\nAlso fix missed \u0027diabled\u0027 typo in drivers/net/bnx2x/bnx2x.h while at it.\n"
    },
    {
      "commit": "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b",
      "tree": "e13143306cd64525cddd2cc2513c448275a1d95a",
      "parents": [
        "353eb83c1422c6326eaab30ce044a179c6018169"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "message": "ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n\nReplace the jbd2_inode structure (which is 48 bytes) with a pointer\nand only allocate the jbd2_inode when it is needed --- that is, when\nthe file system has a journal present and the inode has been opened\nfor writing.  This allows us to further slim down the ext4_inode_info\nstructure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4b7bd364700d9ac8372eff48832062b936d0793b",
      "tree": "0dbf78c95456a0b02d07fcd473281f04a87e266d",
      "parents": [
        "c0d8768af260e2cbb4bf659ae6094a262c86b085",
        "90a8a73c06cc32b609a880d48449d7083327e11a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tMAINTAINERS\n\tarch/arm/mach-omap2/pm24xx.c\n\tdrivers/scsi/bfa/bfa_fcpim.c\n\nNeeded to update to apply fixes for which the old branch was too\noutdated.\n"
    },
    {
      "commit": "b7271b0a39947f757d7969f6150dcb16c1976b91",
      "tree": "298f473585df2253af8897cad7ff2bb6a49a6b14",
      "parents": [
        "9a4f6271b68b9693290963b97b320d2e6e6f3446"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:39:38 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:39:38 2010 -0500"
      },
      "message": "jbd2: simplify return path of journal_init_common\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9a4f6271b68b9693290963b97b320d2e6e6f3446",
      "tree": "44113f838fe7b0bacf590d81ff170fc41fcec9bd",
      "parents": [
        "ae00b267f3827ba88309fb74bdf7527396f0acf9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:36:33 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:36:33 2010 -0500"
      },
      "message": "jbd2: move debug message into debug #ifdef\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ae00b267f3827ba88309fb74bdf7527396f0acf9",
      "tree": "7313f6e374d1c4cc2a0b5a350978ab56a5256436",
      "parents": [
        "a1dd53318409ed6a27a8ce4fecf52e1326a100c0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:34:20 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:34:20 2010 -0500"
      },
      "message": "jbd2: remove unnecessary goto statement\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1dd53318409ed6a27a8ce4fecf52e1326a100c0",
      "tree": "38befc96ddbd6bb1aaeea3063ba47bc19dab09d9",
      "parents": [
        "cfef2c6a559b1e37cbc7e7c1b51f82d26abf24ec"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:13:40 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:13:40 2010 -0500"
      },
      "message": "jbd2: use offset_in_page() instead of manual calculation\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cfef2c6a559b1e37cbc7e7c1b51f82d26abf24ec",
      "tree": "f5ea989a2f5935638550b56ede02b78002e2f34f",
      "parents": [
        "670be5a78ac7c80f0d6009d648c84c65a03f373a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:07:34 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:07:34 2010 -0500"
      },
      "message": "jbd2: Fix a debug message in do_get_write_access()\n\n\u0027buffer_head\u0027 should be \u0027journal_head\u0027\n\nThis is a port of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e made\nto fs/jbd to jbd2.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "670be5a78ac7c80f0d6009d648c84c65a03f373a",
      "tree": "e74adf62ba7d69540ddcb620cf45b6cf99cdedf8",
      "parents": [
        "a8901d34872dafcafa23efa0865dcecfd4fddf8c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 17 10:44:16 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 17 10:44:16 2010 -0500"
      },
      "message": "jbd2: Use pr_notice_ratelimited() in journal_alloc_journal_head()\n\nWe had an open-coded version of printk_ratelimited(); use the provided\nabstraction to make the code cleaner and easier to understand.\n\nBased on a similar patch for fs/jbd from Namhyung Kim \u003cnamhyung@gmail.com\u003e\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a34f0b31398020e2d3be653eb695bd17a9cf3b55",
      "tree": "a049085d3b21a55f3138ed2cc78552cad828748d",
      "parents": [
        "dac36dd87de10d1fd81dc7b7a40256cb2e965abc"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Dec 10 14:55:42 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 10 16:04:28 2010 +0100"
      },
      "message": "fix comment typos concerning \"consistent\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0587aa3d11f9769a301b21bff2c3ed8365606b8d",
      "tree": "c02512f57fc11b37da4764c10a5e2ef42cc5ecbe",
      "parents": [
        "f4c8cc652d9f70680dd91be60a7a455040d0a282"
      ],
      "author": {
        "name": "yangsheng",
        "email": "sheng.yang@oracle.com",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "message": "jbd2: fix /proc/fs/jbd2/\u003cdev\u003e when using an external journal\n\nIn jbd2_journal_init_dev(), we need make sure the journal structure is\nfully initialzied before calling jbd2_stats_proc_init().\n\nReviewed-by: Andreas Dilger \u003candreas.dilger@oracle.com\u003e\nSigned-off-by: yangsheng \u003csheng.yang@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "51dfacdef38b1dd6fc58b03dd1725d517516b115",
      "tree": "71db75044a42f316c5956bb807f9846c14d12b16",
      "parents": [
        "117bf5fbdbdc7a5394e5718b3354238961c83067"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 16 22:34:39 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 30 12:12:50 2010 +0200"
      },
      "message": "jbd2: Convert jbd2_slab_create_sem to mutex\n\njbd2_slab_create_sem is used as a mutex, so make it one.\n\n[ akpm muttered: We may as well make it local to\njbd2_journal_create_slab() also. ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1010162231480.2496@localhost6.localdomain6\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "81280572ca6f54009edfa4deee563e8678784218",
      "tree": "4fac10bcb71261823d261e5f8551fdb16ab653ba",
      "parents": [
        "b83db1deb29eb4eea9bf5992431d26978e039ce6",
        "a107e5a3a473a2ea62bd5af24e11b84adf1486ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (50 commits)\n  ext4,jbd2: convert tracepoints to use major/minor numbers\n  ext4: optimize orphan_list handling for ext4_setattr\n  ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n  ext4: fix compile error in ext4_fallocate()\n  ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static\n  ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n  ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static\n  ext4: rename {ext,idx}_pblock and inline small extent functions\n  ext4: make various ext4 functions be static\n  ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n  ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n  ext4: update writeback_index based on last page scanned\n  ext4: implement writeback livelock avoidance using page tagging\n  ext4: tidy up a void argument in inode.c\n  ext4: add batched_discard into ext4 feature list\n  ext4: Add batched discard support for ext4\n  fs: Add FITRIM ioctl\n  ext4: Use return value from sb_issue_discard()\n  ext4: Check return value of sb_getblk() and friends\n  ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n  ...\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "7d2f280e75f05919314e250cadf361a327ed555c",
      "tree": "47db5a9a0ceaf31adf49c18b663b1e08184f7cff",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "4408ea41c0ab4b711d4da44dd954fb06dce6c3f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (24 commits)\n  quota: Fix possible oops in __dquot_initialize()\n  ext3: Update kernel-doc comments\n  jbd/2: fixed typos\n  ext2: fixed typo.\n  ext3: Fix debug messages in ext3_group_extend()\n  jbd: Convert atomic_inc() to get_bh()\n  ext3: Remove misplaced BUFFER_TRACE() in ext3_truncate()\n  jbd: Fix debug message in do_get_write_access()\n  jbd: Check return value of __getblk()\n  ext3: Use DIV_ROUND_UP() on group desc block counting\n  ext3: Return proper error code on ext3_fill_super()\n  ext3: Remove unnecessary casts on bh-\u003eb_data\n  ext3: Cleanup ext3_setup_super()\n  quota: Fix issuing of warnings from dquot_transfer\n  quota: fix dquot_disable vs dquot_transfer race v2\n  jbd: Convert bitops to buffer fns\n  ext3/jbd: Avoid WARN() messages when failing to write the superblock\n  jbd: Use offset_in_page() instead of manual calculation\n  jbd: Remove unnecessary goto statement\n  jbd: Use printk_ratelimited() in journal_alloc_journal_head()\n  ...\n"
    },
    {
      "commit": "5c2178e785244341d1e6f2bc3b62f20a337cc44f",
      "tree": "669b8108fbe2708dff06dce25be6d70f68c553c4",
      "parents": [
        "a1c6c5698d53db4c47a25c3a8d11731a4d7b8370"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "jbd2: Add sanity check for attempts to start handle during umount\n\nAn attempt to modify the file system during the call to\njbd2_destroy_journal() can lead to a system lockup.  So add some\nchecking to make it much more obvious when this happens to and to\ndetermine where the offending code is located.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39e3ac2599a5f9aba499b5f8af809108e70a6163",
      "tree": "16c9d790029c36f217b1689b42869c8739e8ac5e",
      "parents": [
        "58590b06d79f7ce5ab64ff3b6d537180fa50dc84"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "message": "jbd2: Fix I/O hang in jbd2_journal_release_jbd_inode\n\nThis fixes a hang seen in jbd2_journal_release_jbd_inode\non a lot of Power 6 systems running with ext4. When we get\nin the hung state, all I/O to the disk in question gets blocked\nwhere we stay indefinitely. Looking at the task list, I can see\nwe are stuck in jbd2_journal_release_jbd_inode waiting on a\nwake up. I added some debug code to detect this scenario and\ndump additional data if we were stuck in jbd2_journal_release_jbd_inode\nfor longer than 30 minutes. When it hit, I was able to see that\ni_flags was 0, suggesting we missed the wake up.\n\nThis patch changes i_flags to be an unsigned long, uses bit operators\nto access it, and adds barriers around the accesses. Prior to applying\nthis patch, we were regularly hitting this hang on numerous systems\nin our test environment. After applying the patch, the hangs no longer\noccur.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bcf3d0bcff9c2ab5794d9a2c5f0ebc9ce63cc63f",
      "tree": "e52f9059e1d0aab064a7a40dd214bab0e64e09d0",
      "parents": [
        "58c6ed38a16cd235588ed4a5ca3b213f055bc14c"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sat Oct 16 15:19:14 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:05 2010 +0200"
      },
      "message": "jbd/2: fixed typos\n\n\"wakup\"\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
      "tree": "f42fd892495bfc4cbb740d06b016d267c9c42d00",
      "parents": [
        "4f3a29dadaf999a273f1e7fe2476595d0283eef3",
        "b4627321e18582dcbdeb45d77df29d3177107c65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block: (39 commits)\n  cfq-iosched: Fix a gcc 4.5 warning and put some comments\n  block: Turn bvec_k{un,}map_irq() into static inline functions\n  block: fix accounting bug on cross partition merges\n  block: Make the integrity mapped property a bio flag\n  block: Fix double free in blk_integrity_unregister\n  block: Ensure physical block size is unsigned int\n  blkio-throttle: Fix possible multiplication overflow in iops calculations\n  blkio-throttle: limit max iops value to UINT_MAX\n  blkio-throttle: There is no need to convert jiffies to milli seconds\n  blkio-throttle: Fix link failure failure on i386\n  blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n  blkio: Add root group to td-\u003etg_list\n  blkio: deletion of a cgroup was causes oops\n  blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING\u003dn\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: revert bad fix for memory hotplug causing bounces\n  Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: Prevent hang_check firing during long I/O\n  cfq: improve fsync performance for small files\n  ...\n\nFix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h\n"
    },
    {
      "commit": "749ef9f8423054e326f3a246327ed2db4b6d395f",
      "tree": "388df763e4e731f5d9b4d8dcaedca641521571e3",
      "parents": [
        "6d0aed7a38d06284db2a0e46c0a072b0c1c3299b"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Sep 20 15:24:50 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 20 15:24:50 2010 +0200"
      },
      "message": "cfq: improve fsync performance for small files\n\nFsync performance for small files achieved by cfq on high-end disks is\nlower than what deadline can achieve, due to idling introduced between\nthe sync write happening in process context and the journal commit.\n\nMoreover, when competing with a sequential reader, a process writing\nsmall files and fsync-ing them is starved.\n\nThis patch fixes the two problems by:\n- marking journal commits as WRITE_SYNC, so that they get the REQ_NOIDLE\n  flag set,\n- force all queues that have REQ_NOIDLE requests to be put in the noidle\n  tree.\n\nHaving the queue associated to the fsync-ing process and the one associated\n to journal commits in the noidle tree allows:\n- switching between them without idling,\n- fairness vs. competing idling queues, since they will be serviced only\n  after the noidle tree expires its slice.\n\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "1113e1b504f6e8d4364c0b73c9097828067d4617",
      "tree": "15f606a79b486170992719e1d290d36f61ae409a",
      "parents": [
        "30ca22c70e3ef0a96ff84de69cd7e8561b416cb2"
      ],
      "author": {
        "name": "Patrick J. LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Thu Jul 22 15:04:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:41:54 2010 -0700"
      },
      "message": "JBD2: Allow feature checks before journal recovery\n\nBefore we start accessing a huge (\u003e 16 TiB) OCFS2 volume, we need to\nconfirm that its journal supports 64-bit offsets.  In particular, we\nneed to check the journal\u0027s feature bits before recovering the journal.\n\nThis is not possible with JBD2 at present, because the journal\nsuperblock (where the feature bits reside) is not loaded from disk until\nthe journal is recovered.\n\nThis patch loads the journal superblock in\njbd2_journal_check_used_features() if it has not already been loaded,\nallowing us to check the feature bits before journal recovery.\n\nSigned-off-by: Patrick LoPresti \u003clopresti@gmail.com\u003e\nCc: linux-ext4@vger.kernel.org\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9c35575bbe6b1dd4914a5323c8df8b3159edcc75",
      "tree": "537c521af9d3cfcd1d9031cad99ac349b586fc03",
      "parents": [
        "f73bee49855fe968e87af18e44f2d17e1e675e74"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:17 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "jbd2: replace barriers with explicit flush / FUA usage\n\nSwitch to the WRITE_FLUSH_FUA flag for journal commits and remove the\nEOPNOTSUPP detection for barriers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f73bee49855fe968e87af18e44f2d17e1e675e74",
      "tree": "b8c4bc3ac8fcc6c2ef066bf641e70b7522392c12",
      "parents": [
        "4524451ef7e88c64a868a8f5a0b49bda73beb2a3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 18 15:56:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n\nCurrently JBD2 relies blkdev_issue_flush() draining the queue when ASYNC_COMMIT\nfeature is set. This property is going away so make JBD2 wait for buffers it\nneeds on its own before submitting the cache flush.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "87e99511ea54510ffb60b98001d108794d5037f8",
      "tree": "359228828515e02302d9b259a066a1f1118eba0a",
      "parents": [
        "dad5eb6daa7eeb63d4fc9d982892c59faa07e797"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:05:45 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:00 2010 -0400"
      },
      "message": "kill BH_Ordered flag\n\nInstead of abusing a buffer_head flag just add a variant of\nsync_dirty_buffer which allows passing the exact type of write\nflag required.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d0bf00512b3b1b5d09d9a44919983eec1cc6fd0",
      "tree": "4aef98bb3b212cc04f1dbb011548d83f9ab77c3e",
      "parents": [
        "45d7f32c7a43cbb9592886d38190e379e2eb2226"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 09 17:28:38 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 09 17:28:38 2010 -0400"
      },
      "message": "ext4: clean up compiler warning in start_this_handle()\n\nFix the compiler warning:\n\n  fs/jbd2/transaction.c: In function ‘start_this_handle’:\n  fs/jbd2/transaction.c:98: warning: unused variable ‘ts’\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
      "tree": "d310c118467c90c264e953bdc320ae08394c662a",
      "parents": [
        "90e0c225968f0878e090c7ff3f88323973476cee",
        "6c7a120ac6c62316ab1fc78dfc0a7b13f3bfcbff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Adding error check after calling ext4_mb_regular_allocator()\n  ext4: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext4: re-inline ext4_rec_len_(to|from)_disk functions\n  jbd2: Remove t_handle_lock from start_this_handle()\n  jbd2: Change j_state_lock to be a rwlock_t\n  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n  ext4: Add mount options in superblock\n  ext4: force block allocation on quota_off\n  ext4: fix freeze deadlock under IO\n  ext4: drop inode from orphan list if ext4_delete_inode() fails\n  ext4: check to make make sure bd_dev is set before dereferencing it\n  jbd2: Make barrier messages less scary\n  ext4: don\u0027t print scary messages for allocation failures post-abort\n  ext4: fix EFBIG edge case when writing to large non-extent file\n  ext4: fix ext4_get_blocks references\n  ext4: Always journal quota file modifications\n  ext4: Fix potential memory leak in ext4_fill_super\n  ext4: Don\u0027t error out the fs if the user tries to make a file too big\n  ext4: allocate stripe-multiple IOs on stripe boundaries\n  ext4: move aio completion after unwritten extent conversion\n  ...\n\nFix up conflicts in fs/ext4/inode.c as per Ted.\n\nFix up xfs conflicts as per earlier xfs merge.\n"
    },
    {
      "commit": "8dd420466c7bfc459fa04680bd5690bfc41a4553",
      "tree": "6004eaaa7266979397a9d87e30066fc91d3650c3",
      "parents": [
        "a931da6ac9331a6c80dd91c199105806f2336188"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:38:29 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:38:29 2010 -0400"
      },
      "message": "jbd2: Remove t_handle_lock from start_this_handle()\n\nThis should remove the last exclusive lock from start_this_handle(),\nso that we should now be able to start multiple transactions at the\nsame time on large SMP systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a931da6ac9331a6c80dd91c199105806f2336188",
      "tree": "2d4ea766def9a98d21c2379f41e796b0e57ccd6b",
      "parents": [
        "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "message": "jbd2: Change j_state_lock to be a rwlock_t\n\nLockstat reports have shown that j_state_lock is a major source of\nlock contention, especially on systems with more than 4 CPU cores.  So\nchange it to be a read/write spinlock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37",
      "tree": "31256b4fa3ec1d0e1e27196607499877c662ee86",
      "parents": [
        "8b67f04ab9de5d8f3a71aef72bf02c995a506db5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 02 08:43:25 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 02 08:43:25 2010 -0400"
      },
      "message": "jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n\nBy using an atomic_t for t_updates and t_outstanding credits, this\nshould allow us to not need to take transaction t_handle_lock in\njbd2_journal_stop().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cc937db74bd5fe75f4cfebbfc4a04c1da10f0695",
      "tree": "53c314f54e5904fdfe7768adc6f852bdc60040e3",
      "parents": [
        "e3570639c8b5f2c6a5018a2649c2b7c276af76d7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "message": "jbd2: Make barrier messages less scary\n\nSaying things like \"sync failed\" when a device does\nnot support barriers makes users slightly more worried than\nthey need to be; rather than talking about sync failures,\nlet\u0027s just state the barrier-based facts.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "47def82672b3ba4e7c5e9a4fe48a556f8684d0d6",
      "tree": "a0cfdaca8be99980c09d2b38ff676834c85ab2c4",
      "parents": [
        "40389687382bf0ae71458e7c0f828137a438a956"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "message": "jbd2: Remove __GFP_NOFAIL from jbd2 layer\n\n__GFP_NOFAIL is going away, so add our own retry loop.  Also add\njbd2__journal_start() and jbd2__journal_restart() which take a gfp\nmask, so that file systems can optionally (re)start transaction\nhandles using GFP_KERNEL.  If they do this, then they need to be\nprepared to handle receiving an PTR_ERR(-ENOMEM) error, and be ready\nto reflect that error up to userspace.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096",
      "tree": "5d65c397e9e85abe11a6fb0ebf3a69e8a4e91e0d",
      "parents": [
        "a39953dd95ff10e311083d94f4f95c348cb22464"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 14 07:56:33 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 15:17:47 2010 -0700"
      },
      "message": "jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n\nOCFS2 uses t_commit trigger to compute and store checksum of the just\ncommitted blocks. When a buffer has b_frozen_data, checksum is computed\nfor it instead of b_data but this can result in an old checksum being\nwritten to the filesystem in the following scenario:\n\n1) transaction1 is opened\n2) handle1 is opened\n3) journal_access(handle1, bh)\n    - This sets jh-\u003eb_transaction to transaction1\n4) modify(bh)\n5) journal_dirty(handle1, bh)\n6) handle1 is closed\n7) start committing transaction1, opening transaction2\n8) handle2 is opened\n9) journal_access(handle2, bh)\n    - This copies off b_frozen_data to make it safe for transaction1 to commit.\n      jh-\u003eb_next_transaction is set to transaction2.\n10) jbd2_journal_write_metadata() checksums b_frozen_data\n11) the journal correctly writes b_frozen_data to the disk journal\n12) handle2 is closed\n    - There was no dirty call for the bh on handle2, so it is never queued for\n      any more journal operation\n13) Checkpointing finally happens, and it just spools the bh via normal buffer\nwriteback.  This will write b_data, which was never triggered on and thus\ncontains a wrong (old) checksum.\n\nThis patch fixes the problem by calling the trigger at the moment data is\nfrozen for journal commit - i.e., either when b_frozen_data is created by\ndo_get_write_access or just before we write a buffer to the log if\nb_frozen_data does not exist. We also rename the trigger to t_frozen as\nthat better describes when it is called.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5a0790c2c4a18435759a70e1562450035d778339",
      "tree": "80acb12d0e37196cf60ae4ca150c6b556115f302",
      "parents": [
        "07a038245b28df9196ffb2e8cc626e9b956a4e23"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "message": "ext4: remove initialized but not read variables\n\nNo real bugs found, just removed some dead code.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5"
}
