)]}'
{
  "log": [
    {
      "commit": "536fc240e7147858255bdb08e7a999a3351a9fb4",
      "tree": "16bf7a9e1bf506c1944d1e2e13a18a2b3c9bab8f",
      "parents": [
        "4159175058987cb68aefd0e9eec2598b795363b4"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Wed Jun 17 20:08:51 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 20:08:51 2009 -0400"
      },
      "message": "jbd2: clean up jbd2_journal_try_to_free_buffers()\n\nThis patch reverts 3f31fddf, which is no longer needed because if a\nrace between freeing buffer and committing transaction functionality\noccurs and dio gets error, currently dio falls back to buffered IO due\nto the commit 6ccfa806.\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "879c5e6b7cb4c689d08ca9b2e353d8ab3dc425d5",
      "tree": "8b58103d6773a47d6fc29b47024e8b4092487c88",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 11:47:48 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 11:47:48 2009 -0400"
      },
      "message": "jbd2: convert instrumentation from markers to tracepoints\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bfcd3555af478dbf04c87adc9bb1a739d0a6ccff",
      "tree": "8b44c6675886186c91fb1d5ab414f48298526c1a",
      "parents": [
        "88b6edd17c62b7d346d21f4087893ce7d4ef828a"
      ],
      "author": {
        "name": "Alberto Bertogli",
        "email": "albertito@blitiri.com.ar",
        "time": "Tue Jun 09 00:06:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 09 00:06:20 2009 -0400"
      },
      "message": "jbd2: Fix minor typos in comments in fs/jbd2/journal.c\n\nSigned-off-by: Alberto Bertogli \u003calbertito@blitiri.com.ar\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "67c457a8c378a006a34d92f9bd3078a80a92f250",
      "tree": "63028e792b62fa42724507b86acded4da356c185",
      "parents": [
        "6b82f3cb2d480b7714eb0ff61aee99c22160389e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 14 07:50:56 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 14 07:50:56 2009 -0400"
      },
      "message": "jbd2: use SWRITE_SYNC_PLUG when writing synchronous revoke records\n\nThe revoke records must be written using the same way as the rest of\nthe blocks during the commit process; that is, either marked as\nsynchronous writes or as asynchornous writes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4194b1eaf18ddc3eee9597e8800b6d2ffdfd3614",
      "tree": "34083152f17c6dbf61729a2194658ebcc041a62c",
      "parents": [
        "6c4bac6b3351fd278dc3537dae42f88f733ff12e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:05 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:54 2009 -0700"
      },
      "message": "jbd2: use WRITE_SYNC_PLUG instead of WRITE_SYNC\n\nWhen you are going to be submitting several sync writes, we want to\ngive the IO scheduler a chance to merge some of them. Instead of\nusing the implicitly unplugging WRITE_SYNC variant, use WRITE_SYNC_PLUG\nand rely on sync_buffer() doing the unplug when someone does a\nwait_on_buffer()/lock_buffer().\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86db97c87f744364d5889ca8a4134ca2048b8f83",
      "tree": "420c3c60be2c1a7e644fe4082226d79f31d8b911",
      "parents": [
        "cc0fb9ad7dbc5a149f4957a0dd6d65881d3d385b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 27 17:20:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 17:20:40 2009 -0400"
      },
      "message": "jbd2: Update locking coments\n\nUpdate information about locking in JBD2 revoke code. Inconsistency in\ncomments found by Lin Tan \u003ctammy000@gmail.com\u003e.\n\nCC: Lin Tan \u003ctammy000@gmail.com\u003e.\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7058548cd50e5bda8db086bb2e5c1d82f746d047",
      "tree": "acd095e9f13fcb10deab00e5da5c22d35fda646d",
      "parents": [
        "afd4672dc7610b7feef5190168aa917cc2e417e4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 25 23:35:46 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 25 23:35:46 2009 -0400"
      },
      "message": "ext4: Use WRITE_SYNC for commits which are caused by fsync()\n\nIf a commit is triggered by fsync(), set a flag indicating the journal\nblocks associated with the transaction should be flushed out using\nWRITE_SYNC.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f5aa215088b817add9c71914b83650bdd49f8a9",
      "tree": "9b811d1f0b41a2738fc68654ae605bf5d8cf2a72",
      "parents": [
        "9eddacf9e9c03578ef2c07c9534423e823d677f8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "message": "jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n\nIf we race with commit code setting i_transaction to NULL, we could\npossibly dereference it.  Proper locking requires the journal pointer\n(to access journal-\u003ej_list_lock), which we don\u0027t have.  So we have to\nchange the prototype of the function so that filesystem passes us the\njournal pointer.  Also add a more detailed comment about why the\nfunction jbd2_journal_begin_ordered_truncate() does what it does and\nhow it should be used.\n\nThanks to Dan Carpenter \u003cerror27@gmail.com\u003e for pointing to the\nsuspitious code.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCC: linux-ext4@vger.kernel.org\nCC: ocfs2-devel@oss.oracle.com\nCC: mfasheh@suse.de\nCC: Dan Carpenter \u003cerror27@gmail.com\u003e\n"
    },
    {
      "commit": "c88ccea3143975294f5a52097546bcbb75975f52",
      "tree": "b8aad20536941279a7b9bd80dc00729d6ac92da9",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "message": "jbd2: Fix return value of jbd2_journal_start_commit()\n\nThe function jbd2_journal_start_commit() returns 1 if either a\ntransaction is committing or the function has queued a transaction\ncommit. But it returns 0 if we raced with somebody queueing the\ntransaction commit as well. This resulted in ext4_sync_fs() not\nfunctioning correctly (description from Arthur Jones): \n\n   In the case of a data\u003dordered umount with pending long symlinks\n   which are delayed due to a long list of other I/O on the backing\n   block device, this causes the buffer associated with the long\n   symlinks to not be moved to the inode dirty list in the second\n   phase of fsync_super.  Then, before they can be dirtied again,\n   kjournald exits, seeing the UMOUNT flag and the dirty pages are\n   never written to the backing block device, causing long symlink\n   corruption and exposing new or previously freed block data to\n   userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes jbd2_journal_start_commit() to always return 1 when\nthere\u0027s a transaction committing or queued for commit.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: Eric Sandeen \u003csandeen@redhat.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "c225aa57ff4ffe715df4692676b77c815a337236",
      "tree": "af70801def246873525ca5003b1a91adf91e024b",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2"
      ],
      "author": {
        "name": "Simon Holm Thøgersen",
        "email": "odie@cs.aau.dk",
        "time": "Sun Jan 11 22:34:01 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jan 11 22:34:01 2009 -0500"
      },
      "message": "ext4: fix wrong use of do_div\n\nthe following warning:\n\nfs/jbd2/journal.c: In function ‘jbd2_seq_info_show’:\nfs/jbd2/journal.c:850: warning: format ‘%lu’ expects type ‘long\nunsigned int’, but argument 3 has type ‘uint32_t’\n\nis caused by wrong usage of do_div that modifies the dividend in-place\nand returns the quotient. So not only would an incorrect value be\ndisplayed, but s-\u003ejournal-\u003ej_average_commit_time would also be changed\nto a wrong value!\n\nFix it by using div_u64 instead.\n\nSigned-off-by: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f",
      "tree": "f72a0d85e66f500b4cead348a231e3d3b9f357bc",
      "parents": [
        "cd764695b67386a81964f68e9c66efd9f13f4d29",
        "4b905671d2ea09fd48fed72c581df17e40823f39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 17:14:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 17:14:59 2009 -0800"
      },
      "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: (57 commits)\n  jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs\n  ext4: Remove \"extents\" mount option\n  block: Add Kconfig help which notes that ext4 needs CONFIG_LBD\n  ext4: Make printk\u0027s consistently prefixed with \"EXT4-fs: \"\n  ext4: Add sanity checks for the superblock before mounting the filesystem\n  ext4: Add mount option to set kjournald\u0027s I/O priority\n  jbd2: Submit writes to the journal using WRITE_SYNC\n  jbd2: Add pid and journal device name to the \"kjournald2 starting\" message\n  ext4: Add markers for better debuggability\n  ext4: Remove code to create the journal inode\n  ext4: provide function to release metadata pages under memory pressure\n  ext3: provide function to release metadata pages under memory pressure\n  add releasepage hooks to block devices which can be used by file systems\n  ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc\n  ext4: Init the complete page while building buddy cache\n  ext4: Don\u0027t allow new groups to be added during block allocation\n  ext4: mark the blocks/inode bitmap beyond end of group as used\n  ext4: Use new buffer_head flag to check uninit group bitmaps initialization\n  ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()\n  ext4: code cleanup\n  ...\n"
    },
    {
      "commit": "4b905671d2ea09fd48fed72c581df17e40823f39",
      "tree": "62fcc9de092b2161b449f9205d516cba2e82b0b7",
      "parents": [
        "83982b6f47201c4c7767210d24d7d8c99567a0b3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 06 14:53:35 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 06 14:53:35 2009 -0500"
      },
      "message": "jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs\n\nOn 32-bit system with CONFIG_LBD getblk can fail because provided\nblock number is too big.  Add error checks so we fail gracefully if\ngetblk() returns NULL (which can also happen on memory allocation\nfailures).\n\nThanks to David Maciejak from Fortinet\u0027s FortiGuard Global Security\nResearch Team for reporting this bug.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12370\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "e06c8227fd94ec181849ba206bf032be31c4295c",
      "tree": "67261cd94aa86dc6112d7de74304c2a1af5b64fb",
      "parents": [
        "754938c142ae0c28360426c43f965ddc5164b21e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Sep 11 15:35:47 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:30 2009 -0800"
      },
      "message": "jbd2: Add buffer triggers\n\nFilesystems often to do compute intensive operation on some\nmetadata.  If this operation is repeated many times, it can be very\nexpensive.  It would be much nicer if the operation could be performed\nonce before a buffer goes to disk.\n\nThis adds triggers to jbd2 buffer heads.  Just before writing a metadata\nbuffer to the journal, jbd2 will optionally call a commit trigger associated\nwith the buffer.  If the journal is aborted, an abort trigger will be\ncalled on any dirty buffers as they are dropped from pending\ntransactions.\n\nocfs2 will use this feature.\n\nInitially I tried to come up with a more generic trigger that could be\nused for non-buffer-related events like transaction completion.  It\ndoesn\u0027t tie nicely, because the information a buffer trigger needs\n(specific to a journal_head) isn\u0027t the same as what a transaction\ntrigger needs (specific to a tranaction_t or perhaps journal_t).  So I\nimplemented a buffer set, with the understanding that\njournal/transaction wide triggers should be implemented separately.\n\nThere is only one trigger set allowed per buffer.  I can\u0027t think of any\nreason to attach more than one set.  Contrast this with a journal or\ntransaction in which multiple places may want to watch the entire\ntransaction separately.\n\nThe trigger sets are considered static allocation from the jbd2\nperspective.  ocfs2 will just have one trigger set per block type,\nsetting the same set on every bh of the same type.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "40a1984d22294ab202f616e432bb8d3481897675",
      "tree": "42d9970637c0c26b723b51115a6a290d8761eb8e",
      "parents": [
        "4a9bf99b205448ec1f0cbdee1776a29f9c503ce4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jan 04 19:55:57 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jan 04 19:55:57 2009 -0500"
      },
      "message": "jbd2: Submit writes to the journal using WRITE_SYNC\n\nSince we will be waiting the write of the commit record to the journal\nto complete in journal_submit_commit_record(), submit it using\nWRITE_SYNC.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4a9bf99b205448ec1f0cbdee1776a29f9c503ce4",
      "tree": "a1bd3a27526debaf972460c4ea0df0fd423c4026",
      "parents": [
        "ba80b1019aa722b24506db1ee755e0bb2f513022"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jan 03 22:56:44 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jan 03 22:56:44 2009 -0500"
      },
      "message": "jbd2: Add pid and journal device name to the \"kjournald2 starting\" message\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c31910672376dfb8d020e32afa7249763bcd924a",
      "tree": "3f2b95a1d4a4da76d85d5bf32534fa3d15a82eac",
      "parents": [
        "c39a7f84d7845aa95d1c7c168f38215aedcc13c2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 06 11:14:25 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 06 11:14:25 2009 -0500"
      },
      "message": "ext4: Remove code to create the journal inode\n\nThis code has been obsolete in quite some time, since the supported\nmethod for adding a journal inode is to use tune2fs (or to creating\nnew filesystem with a journal via mke2fs or mkfs.ext4).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fb68407b0d9efba962c03f55009c797e22f024bc",
      "tree": "b3f33f513969d6f77c5b6a6f71b662057d3440a5",
      "parents": [
        "c3a326a657562dab81acf05aee106dc1fe345eb4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Nov 06 17:50:21 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 06 17:50:21 2008 -0500"
      },
      "message": "jbd2: Call journal commit callback without holding j_list_lock\n\nAvoid freeing the transaction in __jbd2_journal_drop_transaction() so\nthe journal commit callback can run without holding j_list_lock, to\navoid lock contention on this spinlock.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1a0d3786dd57dbd74f340322054c3d618b999dcf",
      "tree": "b10b3ed6cb60ee34a4e8140e60da2ecc34b52f32",
      "parents": [
        "498e5f24158da7bf8fa48074a70e370e22844492"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:09:22 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:09:22 2008 -0500"
      },
      "message": "jbd2: Remove a large array of bh\u0027s from the stack of the checkpoint routine\n\njbd2_log_do_checkpoint()n is one of the kernel\u0027s largest stack users.\nMove the array of buffer head\u0027s from the stack of jbd2_log_do_checkpoint()\nto the in-core journal structure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "30773840c19cea60dcef39545960d541b1ac1cf8",
      "tree": "f220a2dce451a40dc7264e8fd70c77c5a3908873",
      "parents": [
        "d7cfa4684d82f58e5d7cb73b8a3c88c169937f25"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jan 03 20:27:38 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jan 03 20:27:38 2009 -0500"
      },
      "message": "ext4: add fsync batch tuning knobs\n\nAdd new mount options, min_batch_time and max_batch_time, which\ncontrols how long the jbd2 layer should wait for additional filesystem\noperations to get batched with a synchronous write transaction.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d7cfa4684d82f58e5d7cb73b8a3c88c169937f25",
      "tree": "1a47a0b3f6a9964c965e590fb3c438c8916bc357",
      "parents": [
        "e07f7183a486cf9783d1f8c9d2997b5b39eeb2d4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 17 00:20:45 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 17 00:20:45 2008 -0500"
      },
      "message": "ext4: display average commit time\n\nDisplay the average commit time (which is used by the ext4 fsync\nbatching patch) in /proc/fs/jbd2/*/info for performance tuning\npurposes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e07f7183a486cf9783d1f8c9d2997b5b39eeb2d4",
      "tree": "74ed3a563add5fa57e80af03f3f712f2910ac39f",
      "parents": [
        "032115fcef837a00336ddf7bda584e89789ea498"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Nov 26 01:14:26 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 26 01:14:26 2008 -0500"
      },
      "message": "jbd2: improve jbd2 fsync batching\n\nThis patch removes the static sleep time in favor of a more self\noptimizing approach where we measure the average amount of time it\ntakes to commit a transaction to disk and the ammount of time a\ntransaction has been running.  If somebody does a sync write or an\nfsync() traditionally we would sleep for 1 jiffies, which depending on\nthe value of HZ could be a significant amount of time compared to how\nlong it takes to commit a transaction to the underlying storage.  With\nthis patch instead of sleeping for a jiffie, we check to see if the\namount of time this transaction has been running is less than the\naverage commit time, and if it is we sleep for the delta using\nschedule_hrtimeout to give us a higher precision sleep time.  This\ngreatly benefits high end storage where you could end up sleeping for\nlonger than it takes to commit the transaction and therefore sitting\nidle instead of allowing the transaction to be committed by keeping\nthe sleep time to a minimum so you are sure to always be doing\nsomething.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "fd98496f467b3d26d05ab1498f41718b5ef13de5",
      "tree": "27e29934f5c2ee5ccc060de27dee261d31d6842c",
      "parents": [
        "0390131ba84fd3f726f9e24fc4553828125700bb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 21:34:13 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 21:34:13 2009 -0500"
      },
      "message": "jbd2: Add barrier not supported test to journal_wait_on_commit_record\n\nXen doesn\u0027t report that barriers are not supported until buffer I/O is\nreported as completed, instead of when the buffer I/O is submitted.\nAdd a check and a fallback codepath to journal_wait_on_commit_record()\nto detect this case, so that attempts to mount ext4 filesystems on\nLVM/devicemapper devices on Xen guests don\u0027t blow up with an \"Aborting\njournal on device XXX\"; \"Remounting filesystem read-only\" error.\n\nThanks to Andreas Sundstrom for reporting this issue.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2423840ded13e6d3b52d88aff8d033bb78fafd08",
      "tree": "9c82375eb1f17a635de090aa0f944b67c41fc981",
      "parents": [
        "8c3f25d8950c3e9fe6c9849f88679b3f2a071550"
      ],
      "author": {
        "name": "Sami Liedes",
        "email": "sliedes@cc.hut.fi",
        "time": "Sun Nov 02 19:23:30 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 02 19:23:30 2008 -0500"
      },
      "message": "jbd2: deregister proc on failure in jbd2_journal_init_inode\n\njbd2_journal_init_inode() does not call jbd2_stats_proc_exit() on all\nfailure paths after calling jbd2_stats_proc_init(). This leaves\ndangling references to the fs in proc.\n\nThis patch fixes a bug reported by Sami Leides at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11493\n\nSigned-off-by: Sami Liedes \u003csliedes@cc.hut.fi\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8c3f25d8950c3e9fe6c9849f88679b3f2a071550",
      "tree": "61b51da53175a5dafb3607bdc04609d04370d74c",
      "parents": [
        "e219cca082f52e7dfea41f3be264b7b5eb204227"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 06 22:38:07 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 06 22:38:07 2008 -0500"
      },
      "message": "jbd2: don\u0027t give up looking for space so easily in __jbd2_log_wait_for_space\n\nCommit 23f8b79e introducd a regression because it assumed that if\nthere were no transactions ready to be checkpointed, that no progress\ncould be made on making space available in the journal, and so the\njournal should be aborted.  This assumption is false; it could be the\ncase that simply calling jbd2_cleanup_journal_tail() will recover the\nnecessary space, or, for small journals, the currently committing\ntransaction could be responsible for chewing up the required space in\nthe log, so we need to wait for the currently committing transaction\nto finish before trying to force a checkpoint operation.\n\nThis patch fixes a bug reported by Mihai Harpau at:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d469582\n\nThis patch fixes a bug reported by François Valenduc at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11840\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "6c20ec850360bc6e5c66a787f0523a80450d65ab",
      "tree": "567f496cf53dbfbc235809edac134e0247a062c8",
      "parents": [
        "ef2cabf7c6d838eb0ee2b4fb8ef84f7c06ce16d9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 21:08:20 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 21:08:20 2008 -0400"
      },
      "message": "jbd2: Call the commit callback before the transaction could get dropped\n\nThe transaction can potentially get dropped if there are no buffers\nthat need to be written.  Make sure we call the commit callback before\npotentially deciding to drop the transaction.  Also avoid\ndereferencing the commit_transaction pointer in the marker for the\nsame reason.\n\nThis patch fixes the bug reported by Eric Paris at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11838\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nTested-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6da0b38f4433fb0f24615449d7966471b6e5eae0",
      "tree": "9f163fbbc7342406bb602de447293c0b11628c6f",
      "parents": [
        "0d468300dc97d6aec084799ffe39253ac366f1e4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 20 22:28:45 2008 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 11:43:59 2008 -0700"
      },
      "message": "fs/Kconfig: move ext2, ext3, ext4, JBD, JBD2 out\n\nUse fs/*/Kconfig more, which is good because everything related to one\nfilesystem is in one place and fs/Kconfig is quite fat.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e624fc72fba09b6f999a9fbb87b64efccd38036",
      "tree": "f0a1feac377788b27ea704519a33f367a6d415f9",
      "parents": [
        "22359f5745eb26bd3205a1ede7968c8944398220"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 20:00:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 20:00:24 2008 -0400"
      },
      "message": "ext4: Replace hackish ext4_mb_poll_new_transaction with commit callback\n\nThe multiblock allocator needs to be able to release blocks (and issue\na blkdev discard request) when the transaction which freed those\nblocks is committed.  Previously this was done via a polling mechanism\nwhen blocks are allocated or freed.  A much better way of doing things\nis to create a jbd2 callback function and attaching the list of blocks\nto be freed directly to the transaction structure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5bf5683a33f3584da6eced480967c4f7e11515a8",
      "tree": "4986ba3932d9f259fa1bc674deff3e35f689b243",
      "parents": [
        "7ad7445f60fe4d46c4c9d2a9463db180d2a3b270"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 22:12:43 2008 -0400"
      },
      "message": "ext4: add an option to control error handling on file data\n\nIf the journal doesn\u0027t abort when it gets an IO error in file data\nblocks, the file data corruption will spread silently.  Because\nmost of applications and commands do buffered writes without fsync(),\nthey don\u0027t notice the IO error.  It\u0027s scary for mission critical\nsystems.  On the other hand, if the journal aborts whenever it gets\nan IO error in file data blocks, the system will easily become\ninoperable.  So this patch introduces a filesystem option to\ndetermine whether it aborts the journal or just call printk() when\nit gets an IO error in file data.\n\nIf you mount an ext4 fs with data_err\u003dabort option, it aborts on file\ndata write error.  If you mount it with data_err\u003dignore, it doesn\u0027t\nabort, just call printk().  data_err\u003dignore is the default.\n\nHere is the corresponding patch of the ext3 version:\nhttp://kerneltrap.org/mailarchive/linux-kernel/2008/9/9/3239374\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7ad7445f60fe4d46c4c9d2a9463db180d2a3b270",
      "tree": "cd4e0f69f90664e5ca4185271fbacbb7b4f59491",
      "parents": [
        "7ffe1ea8949c75ecffb7a4d988bb881a9fa62fbe"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:31 2008 -0400"
      },
      "message": "jbd2: don\u0027t dirty original metadata buffer on abort\n\nCurrently, original metadata buffers are dirtied when they are\nunfiled whether the journal has aborted or not.  Eventually these\nbuffers will be written-back to the filesystem by pdflush.  This\nmeans some metadata buffers are written to the filesystem without\njournaling if the journal aborts.  So if both journal abort and\nsystem crash happen at the same time, the filesystem would become\ninconsistent state.  Additionally, replaying journaled metadata\ncan overwrite the latest metadata on the filesystem partly.\nBecause, if the journal gets aborted, journaled metadata are\npreserved and replayed during the next mount not to lose\nuncheckpointed metadata.  This would also break the consistency\nof the filesystem.\n\nThis patch prevents original metadata buffers from being dirtied\non abort by clearing BH_JBDDirty flag from those buffers.  Thus,\nno metadata buffers are written to the filesystem without journaling.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "44519faf22ad6ce924ad0352d3dc200d9e0b66e8",
      "tree": "332dd28cf16439fc4c78ad198e04c12ff7c16e66",
      "parents": [
        "77e841de8abac4755cc83ca224fdf71418d65380"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Fri Oct 10 20:29:13 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:29:13 2008 -0400"
      },
      "message": "jbd2: fix error handling for checkpoint io\n\nWhen a checkpointing IO fails, current JBD2 code doesn\u0027t check the\nerror and continue journaling.  This means latest metadata can be\nlost from both the journal and filesystem.\n\nThis patch leaves the failed metadata blocks in the journal space\nand aborts journaling in the case of jbd2_log_do_checkpoint().\nTo achieve this, we need to do:\n\n1. don\u0027t remove the failed buffer from the checkpoint list where in\n   the case of __try_to_free_cp_buf() because it may be released or\n   overwritten by a later transaction\n2. jbd2_log_do_checkpoint() is the last chance, remove the failed\n   buffer from the checkpoint list and abort the journal\n3. when checkpointing fails, don\u0027t update the journal super block to\n   prevent the journaled contents from being cleaned.  For safety,\n   don\u0027t update j_tail and j_tail_sequence either\n4. when checkpointing fails, notify this error to the ext4 layer so\n   that ext4 don\u0027t clear the needs_recovery flag, otherwise the\n   journaled contents are ignored and cleaned in the recovery phase\n5. if the recovery fails, keep the needs_recovery flag\n6. prevent jbd2_cleanup_journal_tail() from being called between\n   __jbd2_journal_drop_transaction() and jbd2_journal_abort()\n   (a possible race issue between jbd2_log_do_checkpoint()s called by\n   jbd2_journal_flush() and __jbd2_log_wait_for_space())\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "77e841de8abac4755cc83ca224fdf71418d65380",
      "tree": "937694b6bfb13b2ef6e154e8ab25f5f7200159fb",
      "parents": [
        "fd048088306656824958e7783ffcee27e241b361"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Sun Oct 12 16:39:16 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 12 16:39:16 2008 -0400"
      },
      "message": "jbd2: abort when failed to log metadata buffers\n\nIf we failed to write metadata buffers to the journal space and\nsucceeded to write the commit record, stale data can be written\nback to the filesystem as metadata in the recovery phase.\n\nTo avoid this, when we failed to write out metadata buffers,\nabort the journal before writing the commit record.\n\nWe can also avoid this kind of corruption by using the journal\nchecksum feature because it can detect invalid metadata blocks in the\njournal and avoid them from being replayed.  So we don\u0027t need to care\nabout asynchronous commit record writeout with a checksum.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "45a90bfd90c1215bf824c0f705b409723f52361b",
      "tree": "e314c36e14c380b87d19e3054494768f4c14e458",
      "parents": [
        "ede86cc473defab74d778aeac14b19f43129d4d1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 12:04:02 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 12:04:02 2008 -0400"
      },
      "message": "jbd2: Fix buffer head leak when writing the commit block\n\nAlso make sure the buffer heads are marked clean before submitting bh\nfor writing.  The previous code was marking the buffer head dirty,\nwhich would have forced an unneeded write (and seek) to the journal\nfor no good reason.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ede86cc473defab74d778aeac14b19f43129d4d1",
      "tree": "19da8009accf1737171f5949413e46a9086d5fdc",
      "parents": [
        "23f8b79eae8a74e42a006ffa7c456e295c7e1c0d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 05 20:50:06 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 05 20:50:06 2008 -0400"
      },
      "message": "ext4: Add debugging markers that can be used by systemtap\n\nThis debugging markers are designed to debug problems such as the\nrandom filesystem latency problems reported by Arjan.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "23f8b79eae8a74e42a006ffa7c456e295c7e1c0d",
      "tree": "b62700cd7ff65268a50cfd8d8652d220f7c5c9a4",
      "parents": [
        "c806e68f5647109350ec546fee5b526962970fd2"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Wed Oct 08 23:28:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:28:31 2008 -0400"
      },
      "message": "jbd2: abort instead of waiting for nonexistent transaction\n\nThe __jbd2_log_wait_for_space function sits in a loop checkpointing\ntransactions until there is sufficient space free in the journal. \nHowever, if there are no transactions to be processed (e.g.  because the\nfree space calculation is wrong due to a corrupted filesystem) it will\nnever progress.\n\nCheck for space being required when no transactions are outstanding and\nabort the journal instead of endlessly looping.\n\nThis patch fixes the bug reported by Sami Liedes at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10976\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: Sami Liedes \u003csliedes@cc.hut.fi\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "914258bf2cb22bf4336a1b1d90c551b4b11ca5aa",
      "tree": "66a3068b53059154b4584166c4b2ce90ae833b42",
      "parents": [
        "730c213c79a638137b47a90624e4bac252f07ae7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 21:35:40 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 06 21:35:40 2008 -0400"
      },
      "message": "ext4/jbd2: Avoid WARN() messages when failing to write to the superblock\n\nThis fixes some very common warnings reported by kerneloops.org\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "05496769e5da83ce22ed97345afd9c7b71d6bd24",
      "tree": "545c4d66296fe69ab24d34fd2f0298fb8ee66e4f",
      "parents": [
        "899fc1a4cf404747de2666534d508804597ee22f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 16 14:36:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 16 14:36:17 2008 -0400"
      },
      "message": "jbd2: clean up how the journal device name is printed\n\nCalculate the journal device name once and stash it away in the\njournal_s structure.  This avoids needing to call bdevname()\neverywhere and reduces stack usage by not needing to allocate an\non-stack buffer.  In addition, we eliminate the \u0027/\u0027 that can appear in\ndevice names (e.g. \"cciss/c0d0p9\" --- see kernel bugzilla #11321) that\ncan cause problems when creating proc directory names, and include the\ninode number to support ocfs2 which creates multiple journals with\ndifferent inode numbers.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "23a0ee908cbfba3264d19729c67c22b20fa73886",
      "tree": "541103f6283cbac6b82cff88a7b91128acfce046",
      "parents": [
        "cc7a486cac78f6fc1a24e8cd63036bae8d2ab431",
        "0f2bc27be27ca1dcc66b96131e44bf7648b959c6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 12 00:11:49 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 12 00:11:49 2008 +0200"
      },
      "message": "Merge branch \u0027core/locking\u0027 into core/urgent\n"
    },
    {
      "commit": "3295f0ef9ff048a4619ede597ad9ec9cab725654",
      "tree": "f39a8ecf1958130a0b86c554399d23a65b1c3991",
      "parents": [
        "8bfe0298f7a04952d19f4a2cf510d7a6311eeed0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 10:30:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 10:30:30 2008 +0200"
      },
      "message": "lockdep: rename map_[acquire|release]() \u003d\u003e lock_map_[acquire|release]()\n\nthe names were too generic:\n\n drivers/uio/uio.c:87: error: expected identifier or \u0027(\u0027 before \u0027do\u0027\n drivers/uio/uio.c:87: error: expected identifier or \u0027(\u0027 before \u0027while\u0027\n drivers/uio/uio.c:113: error: \u0027map_release\u0027 undeclared here (not in a function)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f3e7524b2e703d9f8b02ac338153a53dd7ede66",
      "tree": "0033ade94f230d6044ad318e3791c55ad611069e",
      "parents": [
        "f82b217e3513fe3af342c0f3ee1494e86250c21c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 11 09:30:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 09:30:23 2008 +0200"
      },
      "message": "lockdep: map_acquire\n\nMost the free-standing lock_acquire() usages look remarkably similar, sweep\nthem into a new helper.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce",
      "tree": "d3ae998f9876c72a83a022805103a92111852b21",
      "parents": [
        "e9ba9698187ddbc0c5bfcf41de0349a662d23d02"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:01:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:31:34 2008 -0700"
      },
      "message": "mm: rename page trylock\n\nConverting page lock to new locking bitops requires a change of page flag\noperation naming, so we might as well convert it to something nicer\n(!TestSetPageLocked_Lock \u003d\u003e trylock_page, SetPageLocked \u003d\u003e set_page_locked).\n\nThis also facilitates lockdeping of page lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b32b7fb671e797bdd2736524a497f18a8df7bf",
      "tree": "0116370b867d6c1138d637e847a5b5e20c530e53",
      "parents": [
        "2b2d6d019724de6e51ac5bcf22b5ef969daefa8b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 17:33:53 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 26 17:33:53 2008 -0400"
      },
      "message": "ext4: unexport jbd2_journal_update_superblock\n\nRemove the unused EXPORT_SYMBOL(jbd2_journal_update_superblock).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e9e34f4e8f42177c66754fec1edfd35e70c18f99",
      "tree": "659e21aa3ea54c7643c0e3112aa3aba54ca7b4cf",
      "parents": [
        "9c83a923c67df311c467ec956009f0eb4019195d"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 31 22:26:04 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jul 31 22:26:04 2008 -0400"
      },
      "message": "jbd2: don\u0027t abort if flushing file data failed\n\nIn ordered mode, the current jbd2 aborts the journal if a file data buffer\nhas an error.  But this behavior is unintended, and we found that it has\nbeen adopted accidentally.\n\nThis patch undoes it and just calls printk() instead of aborting the\njournal.  Unlike a similar patch for ext3/jbd, file data buffers are\nwritten via generic_writepages().  But we also need to set AS_EIO\ninto their mappings because wait_on_page_writeback_range() clears\nAS_EIO before a user process sees it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cd1aac32923a9c8adcc0ae85e33c1ca0c5855838",
      "tree": "3d55d9249ef960a7e345969404d537e36dbd9609",
      "parents": [
        "61628a3f3a37af2bf25daf8e26fd6b76a78c4f76"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Add ordered mode support for delalloc\n\nThis provides a new ordered mode implementation which gets rid of using\nbuffer heads to enforce the ordering between metadata change with the\nrelated data chage.  Instead, in the new ordering mode, it keeps track\nof all of the inodes touched by each transaction on a list, and when\nthat transaction is committed, it flushes all of the dirty pages for\nthose inodes.  In addition, the new ordered mode reverses the lock\nordering of the page lock and transaction lock, which provides easier\nsupport for delayed allocation.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "87c89c232c8f7b3820c33c3b9bc803e9358027da",
      "tree": "9a714242513ec3e5e1c28fad1bfff852efd033d5",
      "parents": [
        "678aaf481496b01473b778685eca231d6784098b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "jbd2: Remove data\u003dordered mode support using jbd buffer heads\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c851ed540173736e60d48b53b91a16ea5c903896",
      "tree": "828fe0d71b7f18dc170090dbb2fb5ac9deae4ee0",
      "parents": [
        "f4c0a0fdfae708f7aa438c27a380ed4071294e11"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "jbd2: Implement data\u003dordered mode handling via inodes\n\nThis patch adds necessary framework into JBD2 to be able to track inodes\nwith each transaction and write-out their dirty data during transaction\ncommit time.\n\nThis new ordered mode brings all sorts of advantages such as possibility \nto get rid of journal heads and buffer heads for data buffers in ordered \nmode, better ordering of writes on transaction commit, simplification of\n some JBD code, no more anonymous pages when truncate of data being \ncommitted happens.  Also with this new ordered mode, delayed allocation \non ordered mode is much simpler.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "530576bbf379fc45cfb34f246257d8526db44567",
      "tree": "d4a89bf6f2736816e1b43abfdafcf2d61bbd19ef",
      "parents": [
        "772cb7c83ba256a11c7bf99a11bef3858d23767c"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Sun Jul 13 21:06:39 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jul 13 21:06:39 2008 -0400"
      },
      "message": "jbd2: fix race between jbd2_journal_try_to_free_buffers() and jbd2 commit transaction\n\njournal_try_to_free_buffers() could race with jbd commit transaction\nwhen the later is holding the buffer reference while waiting for the\ndata buffer to flush to disk. If the caller of\njournal_try_to_free_buffers() request tries hard to release the buffers,\nit will treat the failure as error and return back to the caller. We\nhave seen the directo IO failed due to this race.  Some of the caller of\nreleasepage() also expecting the buffer to be dropped when passed with\nGFP_KERNEL mask to the releasepage()-\u003ejournal_try_to_free_buffers().\n\nWith this patch, if the caller is passing the GFP_KERNEL to indicating\nthis call could wait, in case of try_to_free_buffers() failed, let\u0027s\nwaiting for journal_commit_transaction() to finish commit the current\ncommitting transaction , then try to free those buffers again with\njournal locked.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e \nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "736603ab297506f4396cb5af592004499950fcfd",
      "tree": "80d1f84702e1bfaca5d60482540b8294acd30bd3",
      "parents": [
        "4db9c54a53135b7c1c1f403f1aeaf9fc0d7738b8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "jbd2: Add commit time into the commit block\n\nCarlo Wood has demonstrated that it\u0027s possible to recover deleted\nfiles from the journal.  Something that will make this easier is if we\ncan put the time of the commit into commit block.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "034772b068be62a79470d6c1b81b01fbe27793ac",
      "tree": "408b55ae9241d1dca1145e16ff781b5f0112dd35",
      "parents": [
        "cd0b6a39a1d68b61b1073662f40f747c8b728f98"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 03 22:31:11 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 03 22:31:11 2008 -0400"
      },
      "message": "jbd2: Fix barrier fallback code to re-lock the buffer head\n\nIf the device doesn\u0027t support write barriers, the write is retried\nwithout ordered mode.  But the buffer head needs to be re-locked or\nsubmit_bh will fail with on BUG(!buffer_locked(bh)).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "624080eded68738daee041ad64672a9d2614754f",
      "tree": "c1350c70233c1f7536a1927bacabe4084770d3c7",
      "parents": [
        "8ea76900be3b4522396e2021260d2818a27b3a5b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 06 17:50:40 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 06 17:50:40 2008 -0400"
      },
      "message": "jbd2: If a journal checksum error is detected, propagate the error to ext4\n\nIf a journal checksum error is detected, the ext4 filesystem will call\next4_error(), and the mount will either continue, become a read-only\nmount, or cause a kernel panic based on the superblock flags\nindicating the user\u0027s preference of what to do in case of filesystem\ncorruption being detected.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8ea76900be3b4522396e2021260d2818a27b3a5b",
      "tree": "309d11d55a90e1249a23c98b14f859eb1c5f7334",
      "parents": [
        "944600930a37aa725ba6f93c3244e2d77a1e3581"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 26 10:28:09 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 26 10:28:09 2008 -0400"
      },
      "message": "jbd2: Fix memory leak when verifying checksums in the journal\n\nCc: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nCc: Girish Shilamkar \u003cgirish@clusterfs.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "02c471cb17203c748e9bc87003052c1f46e5df69",
      "tree": "a9d389f614d8d9d230920f6cf258f4d640a44662",
      "parents": [
        "519deca0496a4df07d15acf3181ca5d573bffdec"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu May 15 14:46:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 15 14:46:17 2008 -0400"
      },
      "message": "jbd2: update transaction t_state to T_COMMIT fix\n\nUpdating the current transaction\u0027s t_state is protected by j_state_lock.  We\nneed to do the same when updating the t_state to T_COMMIT.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f36f21ecca9ee688301174e5f2e0827827a7a7ff",
      "tree": "b147bb5cc37683dfe01c86fba634808aa2ff567d",
      "parents": [
        "78bb6cb9a890d3d50ca3b02fce9223d3e734ab9b"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon May 12 14:02:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:26 2008 -0700"
      },
      "message": "Fix misuses of bdevname()\n\nbdevname() fills the buffer that it is given as a parameter, so calling\nstrcpy() or snprintf() on the returned value is redundant (and probably not\nguaranteed to work - I don\u0027t think strcpy and snprintf support overlapping\nbuffers.)\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "329d291f50d53f77d15769051f3eb494a9fd54b7",
      "tree": "a6ba58859d4fa13e39d4b193c41147daaa750d4d",
      "parents": [
        "46e665e9d297525d286989640cf4247cbe941df6"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jdb2: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "620de4e19890c623eb4ba293ec19b42e2e391b89",
      "tree": "aa10ed1a0f8321ab91b68568a2a9ece4b74e51a3",
      "parents": [
        "5648ba5b2dc0d07a8108fabc7b9100962e9e1d88"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Tue Apr 29 22:02:47 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 29 22:02:47 2008 -0400"
      },
      "message": "jbd2: only create debugfs and stats entries if init is successful\n\njbd2 debugfs and stats entries should only be created if cache initialisation\nis successful.  At the moment they are being created unconditionally which\nwill leave them dangling if cache (and hence module) initialisation fails.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5648ba5b2dc0d07a8108fabc7b9100962e9e1d88",
      "tree": "d6965923102789d645d93deef6e90d6fffd03b99",
      "parents": [
        "8a9362eb405e380432e6883cb83830df3b6cdf78"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jbd2: fix kernel-doc notation\n\nFix kernel-doc notation in jbd2.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8a9362eb405e380432e6883cb83830df3b6cdf78",
      "tree": "1d08110f16c6464fea804fc1dfb59e0573c559b3",
      "parents": [
        "83c49523c91fff10493f5b3c102063b02ab76907"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jbd2: replace potentially false assertion with if block\n\nIf an error occurs during jbd2 cache initialisation it is possible for the\njournal_head_cache to be NULL when jbd2_journal_destroy_journal_head_cache is\ncalled.  Replace the J_ASSERT with an if block to handle the situation\ncorrectly.\n\nNote that even with this fix things will break badly if jbd2 is statically\ncompiled in and cache initialisation fails.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "83c49523c91fff10493f5b3c102063b02ab76907",
      "tree": "8223a729c10feef5387f18b10942542afc7861ba",
      "parents": [
        "9fa27c85de57d38ca698f4e34fdd1ab06b6c8e49"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jbd2: eliminate duplicated code in revocation table init/destroy functions\n\nThe revocation table initialisation/destruction code is repeated for each of\nthe two revocation tables stored in the journal. Refactoring the duplicated\ncode into functions is tidier, simplifies the logic in initialisation in\nparticular, and slightly reduces the code size.\n\nThere should not be any functional change.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9fa27c85de57d38ca698f4e34fdd1ab06b6c8e49",
      "tree": "16210fafaf4a83b7e5796cd3ed0144e279d14019",
      "parents": [
        "418f6e9e5b77443a66f4457bc60f391e4fba8ad8"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Mon Apr 28 09:40:00 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 28 09:40:00 2008 -0400"
      },
      "message": "jbd2: tidy up revoke cache initialisation and destruction\n\nMake revocation cache destruction safe to call if initialisation fails\npartially or entirely.  This allows it to be used to cleanup in the case of\ninitialisation failure, simplifying the code slightly.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1dfc3220d963385a317264b11154c462a83596ed",
      "tree": "8c35f3233c3d10110b3b48d8f476ddf9404d7192",
      "parents": [
        "9fc7c63a1d6e9920038ced782390a54888ed70a6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jbd2: fix possible journal overflow issues\n\nThere are several cases where the running transaction can get buffers\nadded to its BJ_Metadata list which it never dirtied, which makes its\nt_nr_buffers counter end up larger than its t_outstanding_credits\ncounter.\n\nThis will cause issues when starting new transactions as while we are\nlogging buffers we decrement t_outstanding_buffers, so when\nt_outstanding_buffers goes negative, we will report that we need less\nspace in the journal than we actually need, so transactions will be\nstarted even though there may not be enough room for them.  In the worst\ncase scenario (which admittedly is almost impossible to reproduce) this\nwill result in the journal running out of space.\n\nThe fix is to only refile buffers from the committing transaction to the\nrunning transactions BJ_Modified list when b_modified is set on that\njournal, which is the only way to be sure if the running transaction has\nmodified that buffer.\n\nThis patch also fixes an accounting error in journal_forget, it is\npossible that we can call journal_forget on a buffer without having\nmodified it, only gotten write access to it, so instead of freeing a\ncredit, we only do so if the buffer was modified.  The assert will help\ncatch if this problem occurs.  Without these two patches I could hit\nthis assert within minutes of running postmark, with them this issue no\nlonger arises.\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "9fc7c63a1d6e9920038ced782390a54888ed70a6",
      "tree": "d378eb9089fe1618e180a4bfe38f3fc6d4d1a6c5",
      "parents": [
        "33ae0cdd3eaba219e7c2f0647b6db4be540e2130"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "jbd2: fix the way the b_modified flag is cleared\n\nCurrently at the start of a journal commit we loop through all of the buffers\non the committing transaction and clear the b_modified flag (the flag that is\nset when a transaction modifies the buffer) under the j_list_lock.\n\nThe problem is that everywhere else this flag is modified only under the jbd2\nlock buffer flag, so it will race with a running transaction who could\npotentially set it, and have it unset by the committing transaction.\n\nThis is also a big waste, you can have several thousands of buffers that you\nare clearing the modified flag on when you may not need to.  This patch\nremoves this code and instead clears the b_modified flag upon entering\ndo_get_write_access/journal_get_create_access, so if that transaction does\nindeed use the buffer then it will be accounted for properly, and if it does\nnot then we know we didn\u0027t use it.\n\nThat will be important for the next patch in this series.  Tested thoroughly\nby myself using postmark/iozone/bonnie++.\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "79da3664f61640057041bf172b1457e2d1969330",
      "tree": "5ece267f93f91fd1183998b03af986f6afc7450c",
      "parents": [
        "19b4fc52d63b77adf700a215bfbabd680a8f1718"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:20 2008 -0700"
      },
      "message": "jbd2: use non-racy method for proc entries creation\n\nUse proc_create()/proc_create_data() to make sure that -\u003eproc_fops and -\u003edata\nbe setup before gluing PDE to main tree.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1076d17ac70d1bb28fadc6f4bd96977b56897025",
      "tree": "17327e19c0bf6280d5c50996f96d14f38b55841a",
      "parents": [
        "af8be4e4b316df36a00c1e52a9970c253783b57e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Mar 29 03:07:18 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:18:41 2008 -0700"
      },
      "message": "jbd/jbd2 NULL noise\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d00256766a0b4f1441931a7f569a13edf6c68200",
      "tree": "114914bc2d531cad2c391d0f133494b7c7f3b811",
      "parents": [
        "439aeec639d7c57f3561054a6d315c40fd24bb74"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Wed Mar 19 17:00:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:36 2008 -0700"
      },
      "message": "jbd2: correctly unescape journal data blocks\n\nFix a long-standing typo (predating git) that will cause data corruption if a\njournal data block needs unescaping.  At the moment the wrong buffer head\u0027s\ndata is being unescaped.\n\nTo test this case mount a filesystem with data\u003djournal, start creating and\ndeleting a bunch of files containing only JBD2_MAGIC_NUMBER (0xc03b3998), then\npull the plug on the device.  Without this patch the files will contain zeros\ninstead of the correct data after recovery.\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4e35e07af162ea4d642b1c6ffacbb63c3ed1804",
      "tree": "c1f74ee04e54f705d0b18c947a2efa9eea8344a2",
      "parents": [
        "7fb5409df092589b86cc9412d926879cb572b7f0"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Sun Feb 10 01:09:32 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 10 01:09:32 2008 -0500"
      },
      "message": "JBD2:  Clear buffer_ordered flag for barried IO request on success\n\nIn JBD2 jbd2_journal_write_commit_record(), clear the buffer_ordered\nflag for the bh after barried IO has succeed. This prevents later, if\nthe same buffer head were submitted to the underlying device, which has\nbeen reconfigured to not support barrier request, the JBD2 commit code\ncould treat it as a normal IO (without barrier).\n\nThis is a port from JBD/ext3 fix from Neil Brown.\n\nMore details from Neil:\n\nSome devices - notably dm and md - can change their behaviour in\nresponse to BIO_RW_BARRIER requests.  They might start out accepting\nsuch requests but on reconfiguration, they find out that they cannot\nany more. JBD2 deal with this by always testing if BIO_RW_BARRIER\nrequests fail with EOPNOTSUPP, and retrying the write\nrequests without the barrier (probably after waiting for any pending\nwrites to complete).\n\nHowever there is a bug in the handling this in JBD2 for ext4 .\n\nWhen ext4/JBD2 to submit a BIO_RW_BARRIER request,\nit sets the buffer_ordered flag on the buffer head.\nIf the request completes successfully, the flag STAYS SET.\n\nOther code might then write the same buffer_head after the device has\nbeen reconfigured to not accept barriers.  This write will then fail,\nbut the \"other code\" is not ready to handle EOPNOTSUPP errors and the\nerror will be treated as fatal.\n\nCc:  Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4d605179723a3fb8ba594d9516897426e6629a5b",
      "tree": "42f7b1a77dcb9a7c348a3ebde0c49f9e8878a707",
      "parents": [
        "c4b8e635f525441b9cb0bab428b527858d977e8f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Feb 05 10:56:15 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 05 10:56:15 2008 -0500"
      },
      "message": "JBD2: Use the incompat macro for testing the incompat feature.\n\nJBD2_FEATURE_INCOMPAT_ASYNC_COMMIT needs to be checked with\nJBD2_HAS_INCOMPAT_FEATURE\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "c4b8e635f525441b9cb0bab428b527858d977e8f",
      "tree": "3ebf433583c1a456d251fdcffd524fdc2f5518d3",
      "parents": [
        "5315217efea54a07950758005686adedb8e8e680"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Feb 05 10:55:26 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 05 10:55:26 2008 -0500"
      },
      "message": "jbd2: Fix reference counting on the journal commit block\u0027s buffer head\n\nWith journal checksum patch we added asynchronous commits of journal\ncommit headers, and accidentally dropped taking a reference on the\nbuffer head.\n\n(Before the change, sync_dirty_buffer did the get_bh(). The associative\nput_bh is done by journal_wait_on_commit_record().)\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b048d8462652159c5314d19b191220b0ec384edb",
      "tree": "06198272d89d7263d4d13df0ed00c3d0cf4e8aa0",
      "parents": [
        "531021f2ca681faf58f926771f85bb5c76f13eba"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@u.ibm.com",
        "time": "Tue Feb 05 08:52:45 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 05 08:52:45 2008 -0500"
      },
      "message": "jbd2: Add error check to journal_wait_on_commit_record to avoid oops\n\nThe buffer head pointer passed to journal_wait_on_commit_record() could\nbe NULL if the previous journal_submit_commit_record() failed or journal\nhas already aborted.\n\nLooking at the jbd2 debug messages, before the oops happened, the jbd2\nis aborted due to trying to access the next log block beyond the end\nof device. This might be caused by using a corrupted image.\n\nWe need to check the error returns from journal_submit_commit_record()\nand avoid calling journal_wait_on_commit_record() in the failure case.\n\nThis addresses Kernel Bugzilla #9849\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e86e14385d8473a71809ff5c2be4b06867af4b5e",
      "tree": "cfc3886f967e8a7721797477b5d6eff7e41bff5b",
      "parents": [
        "d71cadd6bc9834710c0b045e3abedd0c56ff1c37"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Feb 06 01:40:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:20 2008 -0800"
      },
      "message": "BKL-removal: remove incorrect comment refering to lock_kernel() from jbd/jbd2\n\nNone of the callers of this function does actually take the BKL as far as I\ncan see.  So remove the comment refering to the BKL.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95c354fe9f7d6decc08a92aa26eb233ecc2155bf",
      "tree": "ec9267032ea875e84216cfb20acb2cfc7c62149f",
      "parents": [
        "a95d67f87e1a5f1b4429be3ba3bf7b4051657908"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "message": "spinlock: lockbreak cleanup\n\nThe break_lock data structure and code for spinlocks is quite nasty.\nNot only does it double the size of a spinlock but it changes locking to\na potentially less optimal trylock.\n\nPut all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a\n__raw_spin_is_contended that uses the lock data itself to determine whether\nthere are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is\nnot set.\n\nRename need_lockbreak to spin_needbreak, make it use spin_is_contended to\ndecouple it from the spinlock implementation, and make it typesafe (rwlocks\ndo not have any need_lockbreak sites -- why do they even get bloated up\nwith that break_lock then?).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4019191be7316ed4a39e1c1c2b623baa7dc6c843",
      "tree": "60e86b4c004a4f5206369f099302c38ad621e86a",
      "parents": [
        "db857da3369cd4eb6a28be1cce89d33162caa4a0"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: sparse pointer use of zero as null\n\nGet rid of sparse related warnings from places that use integer as NULL\npointer.  (Ported from upstream ext3/jbd changes.)\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "db857da3369cd4eb6a28be1cce89d33162caa4a0",
      "tree": "08dcac7ef1db552a771df1a9dd12c13ca70224b0",
      "parents": [
        "77160957e29e9413f7420e85fca37a47d4ffac7f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: Use round-jiffies() function for the \"5 second\" ext4/jbd2 wakeup\n\nWhile \"every 5 seconds\" doesn\u0027t sound as a problem, there can be many\nof these (and these timers do add up over all the kernel).  The \"5\nsecond\" wakeup isn\u0027t really timing sensitive; in addition even with\nrounding it\u0027ll still happen every 5 seconds (with the exception of the\nvery first time, which is likely to be rounded up to somewhere closer\nto 6 seconds)\n\n(Ported from similar JBD patch made by Arjan van de Ven to\nfs/jbd/transaction.c)\n\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "77160957e29e9413f7420e85fca37a47d4ffac7f",
      "tree": "d7930fbe9129dcadcda2941fd38a27692b6870ba",
      "parents": [
        "7b7510662f4d05ddcc45d435769860e73e6aa20e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: Mark jbd2 slabs as SLAB_TEMPORARY\n\nThis patch marks slab allocations by jbd2 as short-lived in support of\nMel Gorman\u0027s \"Group short-lived and reclaimable kernel allocations\"\npatch.  (Ported from similar changes made to fs/jbd/journal.c and\nfs/jbd/revoke.c in Mel\u0027s patch.)\n\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "7b7510662f4d05ddcc45d435769860e73e6aa20e",
      "tree": "adf0fe32c57c53099b6604bcf40d914398a5504c",
      "parents": [
        "b939e3766ec19eb556cb784c2faace253c6e1560"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: add lockdep support\n\nPorted from similar patch for the jbd layer.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "818d276ceb83aa9fdebb5e0a53188290312de987",
      "tree": "de3fb4ffadd72caea2876c5232ce76cd14b3646e",
      "parents": [
        "8e85fb3f305b24b79c6d9cb7a56d22b062335ad3"
      ],
      "author": {
        "name": "Girish Shilamkar",
        "email": "girish@clusterfs.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Add the journal checksum feature\n\nThe journal checksum feature adds two new flags i.e\nJBD2_FEATURE_INCOMPAT_ASYNC_COMMIT and JBD2_FEATURE_COMPAT_CHECKSUM.\n\nJBD2_FEATURE_CHECKSUM flag indicates that the commit block contains the\nchecksum for the blocks described by the descriptor blocks.\nDue to checksums, writing of the commit record no longer needs to be\nsynchronous. Now commit record can be sent to disk without waiting for\ndescriptor blocks to be written to disk. This behavior is controlled\nusing JBD2_FEATURE_ASYNC_COMMIT flag. Older kernels/e2fsck should not be\nable to recover the journal with _ASYNC_COMMIT hence it is made\nincompat.\nThe commit header has been extended to hold the checksum along with the\ntype of the checksum.\n\nFor recovery in pass scan checksums are verified to ensure the sanity\nand completeness(in case of _ASYNC_COMMIT) of every transaction.\n\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Girish Shilamkar \u003cgirish@clusterfs.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "8e85fb3f305b24b79c6d9cb7a56d22b062335ad3",
      "tree": "9b037c1b1649bce1338911fd8ca3980229c1548a",
      "parents": [
        "4df3d265bf8f3762e1d77f554ee279c39dedb020"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann.lombardi@bull.net",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: jbd2 stats through procfs\n\nThe patch below updates the jbd stats patch to 2.6.20/jbd2.\nThe initial patch was posted by Alex Tomas in December 2005\n(http://marc.info/?l\u003dlinux-ext4\u0026m\u003d113538565128617\u0026w\u003d2).\nIt provides statistics via procfs such as transaction lifetime and size.\n\nSometimes, investigating performance problems, i find useful to have\nstats from jbd about transaction\u0027s lifetime, size, etc. here is a\npatch for review and inclusion probably.\n\nfor example, stats after creation of 3M files in htree directory:\n\n[root@bob ~]# cat /proc/fs/jbd/sda/history\nR/C  tid   wait  run   lock  flush log   hndls  block inlog ctime write drop  close\nR    261   8260  2720  0     0     750   9892   8170  8187\nC    259                                                    750   0     4885  1\nR    262   20    2200  10    0     770   9836   8170  8187\nR    263   30    2200  10    0     3070  9812   8170  8187\nR    264   0     5000  10    0     1340  0      0     0\nC    261                                                    8240  3212  4957  0\nR    265   8260  1470  0     0     4640  9854   8170  8187\nR    266   0     5000  10    0     1460  0      0     0\nC    262                                                    8210  2989  4868  0\nR    267   8230  1490  10    0     4440  9875   8171  8188\nR    268   0     5000  10    0     1260  0      0     0\nC    263                                                    7710  2937  4908  0\nR    269   7730  1470  10    0     3330  9841   8170  8187\nR    270   0     5000  10    0     830   0      0     0\nC    265                                                    8140  3234  4898  0\nC    267                                                    720   0     4849  1\nR    271   8630  2740  20    0     740   9819   8170  8187\nC    269                                                    800   0     4214  1\nR    272   40    2170  10    0     830   9716   8170  8187\nR    273   40    2280  0     0     3530  9799   8170  8187\nR    274   0     5000  10    0     990   0      0     0\n\n\nwhere,\n\nR     - line for transaction\u0027s life from T_RUNNING to T_FINISHED\nC     - line for transaction\u0027s checkpointing\ntid   - transaction\u0027s id\nwait  - for how long we were waiting for new transaction to start\n         (the longest period journal_start() took in this transaction)\nrun   - real transaction\u0027s lifetime (from T_RUNNING to T_LOCKED\nlock  - how long we were waiting for all handles to close\n         (time the transaction was in T_LOCKED)\nflush - how long it took to flush all data (data\u003dordered)\nlog   - how long it took to write the transaction to the log\nhndls - how many handles got to the transaction\nblock - how many blocks got to the transaction\ninlog - how many blocks are written to the log (block + descriptors)\nctime - how long it took to checkpoint the transaction\nwrite - how many blocks have been written during checkpointing\ndrop  - how many blocks have been dropped during checkpointing\nclose - how many running transactions have been closed to checkpoint this one\n\nall times are in msec.\n\n\n[root@bob ~]# cat /proc/fs/jbd/sda/info\n280 transaction, each upto 8192 blocks\naverage:\n  1633ms waiting for transaction\n  3616ms running transaction\n  5ms transaction was being locked\n  1ms flushing data (in ordered mode)\n  1799ms logging transaction\n  11781 handles per transaction\n  5629 blocks per transaction\n  5641 logged blocks per transaction\n\nSigned-off-by: Johann Lombardi \u003cjohann.lombardi@bull.net\u003e\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "f5a7a6b0d9b6af7d46124ed3f6b3995225cb62d0",
      "tree": "cbb2bc79a488461bf3bec9b60d15e21717dc8360",
      "parents": [
        "36df53f4a3e445175fc1e9d7f433599482ec6d7f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "jbd2: Fix assertion failure in fs/jbd2/checkpoint.c\n\nBefore we start committing a transaction, we call\n__journal_clean_checkpoint_list() to cleanup transaction\u0027s written-back\nbuffers.\n\nIf this call happens to remove all of them (and there were already some\nbuffers), __journal_remove_checkpoint() will decide to free the transaction\nbecause it isn\u0027t (yet) a committing transaction and soon we fail some\nassertion - the transaction really isn\u0027t ready to be freed :).\n\nWe change the check in __journal_remove_checkpoint() to free only a\ntransaction in T_FINISHED state.  The locking there is subtle though (as\neverywhere in JBD ;().  We use j_list_lock to protect the check and a\nsubsequent call to __journal_drop_transaction() and do the same in the end\nof journal_commit_transaction() which is the only place where a transaction\ncan get to T_FINISHED state.\n\nProbably I\u0027m too paranoid here and such locking is not really necessary -\ncheckpoint lists are processed only from log_do_checkpoint() where a\ntransaction must be already committed to be processed or from\n__journal_clean_checkpoint_list() where kjournald itself calls it and thus\ntransaction cannot change state either.  Better be safe if something\nchanges in future...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f38c74f5a01c7bccf58f9d7ee47ea24fb45752f",
      "tree": "6072107f72ef7849cc1abcdb69d04e6d56161ba2",
      "parents": [
        "a7fa2baf8e2a6c0eb0a21f75e919c226179e8ff4"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:59 2007 -0400"
      },
      "message": "JBD2: debug code cleanup.\n\nMostly stolen from akpm\u0027s JBD cleanup patch.\n\n- use `#ifdef foo\u0027 instead of `#if defined(foo)\u0027\n\n- Make journal_enable_debug __read_mostly just for the heck of it\n\n- Make jbd_debugfs_dir and jbd_debug static\n\n- debugfs_remove(NULL) is legal: remove unneeded tests\n\n- remove unnecessary empty loops\n\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7fa2baf8e2a6c0eb0a21f75e919c226179e8ff4",
      "tree": "3e41a4b90821d95835986945f1191e0f226a56a5",
      "parents": [
        "cd02ff0b14b7e27cbdfd7ff2814b08199a2b7168"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:58 2007 -0400"
      },
      "message": "jbd2: fix commit code to properly abort journal\n\nWe should really call journal_abort() and not __journal_abort_hard() in\ncase of errors.  The latter call does not record the error in the journal\nsuperblock and thus filesystem won\u0027t be marked as with errors later (and\nuser could happily mount it without any warning).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd02ff0b14b7e27cbdfd7ff2814b08199a2b7168",
      "tree": "fd9158bb92d086838a1b81b549243f3cdc23a7b8",
      "parents": [
        "d802ffa8850f2a80d141457d7221809182ed8c9f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:58 2007 -0400"
      },
      "message": "jbd2: JBD_XXX to JBD2_XXX naming cleanup\n\nchange JBD_XXX macros to JBD2_XXX in JBD2/Ext4\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d802ffa8850f2a80d141457d7221809182ed8c9f",
      "tree": "e5a3e9974f0242658ae41391990a28178cc42495",
      "parents": [
        "2d917969bc8dbde45900f5cbc2558e2cf1f8ec32"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:57 2007 -0400"
      },
      "message": "JBD2/Ext4: Convert kmalloc to kzalloc in jbd2/ext4\n\nConvert kmalloc to kzalloc() and get rid of the memset().\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "2d917969bc8dbde45900f5cbc2558e2cf1f8ec32",
      "tree": "4478fb3bcaa3d5fcae71cde791f15b7cae0991d8",
      "parents": [
        "a5005da204289ce01ca37be59e902100ef247a4d"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:57 2007 -0400"
      },
      "message": "JBD2: replace jbd_kmalloc with kmalloc directly.\n\nThis patch cleans up jbd_kmalloc and replace it with kmalloc directly\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "af1e76d6b3f37cb89d9192eaf83588adaf4728eb",
      "tree": "8b30dd421361a61c3f2e9c96bd574986b4e78c9e",
      "parents": [
        "c089d490dfbf53bc0893dc9ef57cf3ee6448314d"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:56 2007 -0400"
      },
      "message": "JBD2: jbd2 slab allocation cleanups\n\nJBD2: Replace slab allocations with page allocations\n\nJBD2 allocate memory for committed_data and frozen_data from slab. However\nJBD2 should not pass slab pages down to the block layer. Use page allocator\npages instead. This will also prepare JBD for the large blocksize patchset.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b38bd33a6bf5095736620ca8e85fe61820c2d312",
      "tree": "86ba1d0c28dedc87ced6d1f06c7a80d944650559",
      "parents": [
        "f0a594c1c74fedbd838402e7372030311be8cc6e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu Jul 19 01:48:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "fix ext4/JBD2 build warnings\n\nLooking at the current linus-git tree jbd_debug() define in\ninclude/linux/jbd2.h\n\nextern u8 journal_enable_debug;\n\n#define jbd_debug(n, f, a...)                                           \\\n        do {                                                            \\\n                if ((n) \u003c\u003d journal_enable_debug) {                      \\\n                        printk (KERN_DEBUG \"(%s, %d): %s: \",            \\\n                                __FILE__, __LINE__, __FUNCTION__);      \\\n                        printk (f, ## a);                               \\\n                }                                                       \\\n        } while (0)\n\u003e fs/ext4/inode.c: In function âext4_write_inodeâ:\n\u003e fs/ext4/inode.c:2906: warning: comparison is always true due to limited\n\u003e range of data type\n\u003e\n\u003e fs/jbd2/recovery.c: In function âjbd2_journal_recoverâ:\n\u003e fs/jbd2/recovery.c:254: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e fs/jbd2/recovery.c:257: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e\n\u003e fs/jbd2/recovery.c: In function âjbd2_journal_skip_recoveryâ:\n\u003e fs/jbd2/recovery.c:301: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e\nNoticed all warnings are occurs when the debug level is 0. Then found\nthe \"jbd2: Move jbd2-debug file to debugfs\" patch\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommit;h\u003d0f49d5d019afa4e94253bfc92f0daca3badb990b\n\nchanged the jbd2_journal_enable_debug from int type to u8, makes the\njbd_debug comparision is always true when the debugging level is 0. Thus\nthe compile warning occurs.\n\nThought about changing the jbd2_journal_enable_debug data type back to\nint, but can\u0027t, because the jbd2-debug is moved to debug fs, where\ncalling debugfs_create_u8() to create the debugfs entry needs the value\nto be u8 type.\n\nEven if we changed the data type back to int, the code is still buggy,\nkernel should not print jbd2 debug message if the\njbd2_journal_enable_debug is set to 0. But this is not the case.\n\nThe fix is change the level of debugging to 1. The same should fixed in\next3/JBD, but currently ext3 jbd-debug via /proc fs is broken, so we\nprobably should fix it all together.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f49d5d019afa4e94253bfc92f0daca3badb990b",
      "tree": "9a8266d3a7292a0632df0f970f6377a8b8b98658",
      "parents": [
        "e23291b9120c11aafb2ee76fb71a062eb3c1056c"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Wed Jul 18 08:50:18 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 18 08:50:18 2007 -0400"
      },
      "message": "jbd2: Move jbd2-debug file to debugfs\n\nThe jbd2-debug file used to be located in /proc/sys/fs/jbd2-debug, but it\nincorrectly used create_proc_entry() instead of the sysctl routines, and\nno proc entry was ever created.\n\nInstead of fixing this we might as well move the jbd2-debug file to\ndebugfs which would be the preferred location for this kind of tunable.\nThe new location is now /sys/kernel/debug/jbd2/jbd2-debug.\n\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e23291b9120c11aafb2ee76fb71a062eb3c1056c",
      "tree": "1a0f458c5c2803eb9a959e79622974cd5db4f985",
      "parents": [
        "eb40a09c679d7f9709f7087add57f2e1c7122bb3"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Wed Jul 18 08:57:06 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jul 18 08:57:06 2007 -0400"
      },
      "message": "jbd2: Fix CONFIG_JBD_DEBUG ifdef to be CONFIG_JBD2_DEBUG\n\nWhen the JBD code was forked to create the new JBD2 code base, the\nreferences to CONFIG_JBD_DEBUG where never changed to\nCONFIG_JBD2_DEBUG.  This patch fixes that.\n\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "f482394ccbca7234d29cc146d4a2b94f976ce5a1",
      "tree": "65a15d5f47a8a5c4ddad16d10971f671277b12e8",
      "parents": [
        "3fc74269c8910573a0e9a7bc303752194ce5cae0"
      ],
      "author": {
        "name": "vignesh babu",
        "email": "vignesh.babu@wipro.com",
        "time": "Sun Jul 15 23:41:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:48 2007 -0700"
      },
      "message": "is_power_of_2(): jbd\n\nReplace (n \u0026 (n-1)) in the context of power of 2 checks with\nis_power_of_2().\n\nSigned-off-by: vignesh babu \u003cvignesh.babu@wipro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f89b779508f457b2af05dd5ac82a425db4a56ee3",
      "tree": "868baf5eb5cdb8ddce1b8e0512238b596c83c438",
      "parents": [
        "fe28e42b99173ba088b1d8448e53029e100bff27"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Jul 15 23:37:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "jbd2 commit: fix transaction dropping\n\nWe have to check that also the second checkpoint list is non-empty before\ndropping the transaction.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5886269962f94fa9185c32db3ec936c612503235",
      "tree": "2f24dabcf5791319ebb1fbdfb5dbc58284714275",
      "parents": [
        "01afd80626e98c2347bc25be92ee4a3faf314514"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Wed May 09 07:51:49 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:16 2007 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "97f067846786d255888ccad14e2f38a1f63d8e9b",
      "tree": "ebff291172a51b25a0a0c69c85463f0c789bb2ce",
      "parents": [
        "ee6f958291e2a768fd727e7a67badfff0b67711a"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "jbd: check for error returned by kthread_create on creating journal thread\n\nIf the thread failed to create the subsequent wait_event will hang forever.\n\nThis is likely to happen if kernel hits max_threads limit.\n\nWill be critical for virtualization systems that limit the number of tasks\nand kernel memory usage within the container.\n\n(akpm: JBD should be converted fully to the kthread API: kthread_should_stop()\nand kthread_stop()).\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "126039256cf164f69d8cfa20f1952d00fa61f52f",
      "tree": "cb0467f1d0bd7a80e10946d51a0605df3e274b74",
      "parents": [
        "702a28b1e64be3dc313f5f0ceb6dc95edfbc5e18"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Wed Dec 06 20:39:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:42 2006 -0800"
      },
      "message": "[PATCH] jbd2: wait for already submitted t_sync_datalist buffer to complete\n\nIn the current jbd code, if a buffer on BJ_SyncData list is dirty and not\nlocked, the buffer is refiled to BJ_Locked list, submitted to the IO and\nwaited for IO completion.\n\nBut the fsstress test showed the case that when a buffer was already\nsubmitted to the IO just before the buffer_dirty(bh) check, the buffer was\nnot waited for IO completion.\n\nFollowing patch solves this problem.  If it is assumed that a buffer is\nsubmitted to the IO before the buffer_dirty(bh) check and still being\nwritten to disk, this buffer is refiled to BJ_Locked list.\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ddae86095794cce4364740edd8463c77654a265",
      "tree": "162617865d65cdd374aba12c11c25bf22ac0faaa",
      "parents": [
        "d394e122bc1adba0f3eb1ebec1cedb8a8c524741"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:40 2006 -0800"
      },
      "message": "[PATCH] make fs/jbd2/transaction.c:__kbd2_journal_temp_unlink_buffer() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7dfb71030f7636a0d65200158113c37764552f93",
      "tree": "276b812903d377b16d8828e888552fd256f48aab",
      "parents": [
        "8a05aac2631aa0e6494d9dc990f8c68ed8b8fde7"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] Add include/linux/freezer.h and move definitions from sched.h\n\nMove process freezing functions from include/linux/sched.h to freezer.h, so\nthat modifications to the freezer or the kernel configuration don\u0027t require\nrecompiling just about everything.\n\n[akpm@osdl.org: fix ueagle driver]\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b57988db9b2c81794546cb792133f0cfd064ea8",
      "tree": "87ff86100cc08971958a6bd8796eceb755273707",
      "parents": [
        "f58a74dca88d48b0669609b4957f3dd757bdc898"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sat Oct 28 10:38:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:51 2006 -0700"
      },
      "message": "[PATCH] jbd2: journal_dirty_data re-check for unmapped buffers\n\nWhen running several fsx\u0027s and other filesystem stress tests, we found\ncases where an unmapped buffer was still being sent to submit_bh by the\next3 dirty data journaling code.\n\nI saw this happen in two ways, both related to another thread doing a\ntruncate which would unmap the buffer in question.\n\nEither we would get into journal_dirty_data with a bh which was already\nunmapped (although journal_dirty_data_fn had checked for this earlier, the\nstate was not locked at that point), or it would get unmapped in the middle\nof journal_dirty_data when we dropped locks to call sync_dirty_buffer.\n\nBy re-checking for mapped state after we\u0027ve acquired the bh state lock, we\nshould avoid these races.  If we find a buffer which is no longer mapped,\nwe essentially ignore it, because journal_unmap_buffer has already decided\nthat this buffer can go away.\n\nI\u0027ve also added tracepoints in these two cases, and made a couple other\ntracepoint changes that I found useful in debugging this.\n\nSigned-off-by: Eric Sandeen \u003cesandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e2a532b26b491706bd8b5c7cfc8d767b43b8f36",
      "tree": "641db5da4c1adbeee04ce6594746cec51f581ff0",
      "parents": [
        "82591e6ea234762eeaa8b2337fe060ed438c18dc"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Oct 19 23:29:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:44 2006 -0700"
      },
      "message": "[PATCH] ext3/4: fix J_ASSERT(transaction-\u003et_updates \u003e 0) in journal_stop()\n\nA disk generated some I/O error, after it, I hitted\nJ_ASSERT(transaction-\u003et_updates \u003e 0) in journal_stop().\n\nIt seems to happened on ext3_truncate() path from stack trace. Then,\nmaybe the following case may trigger J_ASSERT(transaction-\u003et_updates \u003e 0).\n\next3_truncate()\n    -\u003e ext3_free_branches()\n        -\u003e ext3_journal_test_restart()\n\t    -\u003e ext3_journal_restart()\n                -\u003e journal_restart()\n                transaction-\u003et_updates--;\n                /* another process aborted journal */\n                    -\u003e start_this_handle()\n\t\t    returns -EROFS without transaction-\u003et_updates++;\n\n    -\u003e ext3_journal_stop()\n        -\u003e journal_stop()\n\tJ_ASSERT(transaction-\u003et_updates \u003e 0)\n\nIf journal was aborted in middle of journal_restart(), ext3_truncate()\nmay trigger J_ASSERT().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5eb30790d4ccd3409240a80eaf9ab76b4fb75fd8",
      "tree": "cab8f6c10fc4e63f3ffe2df1c67591adbb5c86a0",
      "parents": [
        "3f4a0b917ce72ef47e438d354c433eb645218e87"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Tue Oct 17 00:09:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] null dereference in fs/jbd2/journal.c\n\nThis is Eric Sesterhenn\u0027s jbd patch applied to jbd2.\nCommit: 41716c7c21b15e7ecf14f0caf1eef3980707fb74\n\nHis words:\n\nSince commit d1807793e1e7e502e3dc047115e9dbc3b50e4534 we dereference a NULL\npointer.  Coverity id #1432.  We set journal to NULL, and use it directly\nafterwards.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "18eba7aae080d4a5c0d850ea810e83d11f0a8d77",
      "tree": "58277e871787fad73c588b3ba81899f9c8b98553",
      "parents": [
        "9b8f1f0106ab39ad58765d4e7c57189835f51127"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:21:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:18 2006 -0700"
      },
      "message": "[PATCH] jbd2: switch blks_type from sector_t to ull\n\nSimilar to ext4, change blocks in JBD2 from sector_t to unsigned long long.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "299717696d48531d70aeb4614c3939e4a28456c1",
      "tree": "d63c05b0192e480917c48126b2ac7c0f74d08018",
      "parents": [
        "b517bea1c74e4773482b3f41b3f493522a8c8e30"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:21:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:17 2006 -0700"
      },
      "message": "[PATCH] jbd2: sector_t conversion\n\nJBD layer in-kernel block varibles type fixes to support \u003e32 bit block number\nand convert to sector_t type.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "b517bea1c74e4773482b3f41b3f493522a8c8e30"
}
