)]}'
{
  "log": [
    {
      "commit": "0587aa3d11f9769a301b21bff2c3ed8365606b8d",
      "tree": "c02512f57fc11b37da4764c10a5e2ef42cc5ecbe",
      "parents": [
        "f4c8cc652d9f70680dd91be60a7a455040d0a282"
      ],
      "author": {
        "name": "yangsheng",
        "email": "sheng.yang@oracle.com",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "message": "jbd2: fix /proc/fs/jbd2/\u003cdev\u003e when using an external journal\n\nIn jbd2_journal_init_dev(), we need make sure the journal structure is\nfully initialzied before calling jbd2_stats_proc_init().\n\nReviewed-by: Andreas Dilger \u003candreas.dilger@oracle.com\u003e\nSigned-off-by: yangsheng \u003csheng.yang@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "51dfacdef38b1dd6fc58b03dd1725d517516b115",
      "tree": "71db75044a42f316c5956bb807f9846c14d12b16",
      "parents": [
        "117bf5fbdbdc7a5394e5718b3354238961c83067"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 16 22:34:39 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 30 12:12:50 2010 +0200"
      },
      "message": "jbd2: Convert jbd2_slab_create_sem to mutex\n\njbd2_slab_create_sem is used as a mutex, so make it one.\n\n[ akpm muttered: We may as well make it local to\njbd2_journal_create_slab() also. ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1010162231480.2496@localhost6.localdomain6\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "81280572ca6f54009edfa4deee563e8678784218",
      "tree": "4fac10bcb71261823d261e5f8551fdb16ab653ba",
      "parents": [
        "b83db1deb29eb4eea9bf5992431d26978e039ce6",
        "a107e5a3a473a2ea62bd5af24e11b84adf1486ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (50 commits)\n  ext4,jbd2: convert tracepoints to use major/minor numbers\n  ext4: optimize orphan_list handling for ext4_setattr\n  ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n  ext4: fix compile error in ext4_fallocate()\n  ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static\n  ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n  ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static\n  ext4: rename {ext,idx}_pblock and inline small extent functions\n  ext4: make various ext4 functions be static\n  ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n  ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n  ext4: update writeback_index based on last page scanned\n  ext4: implement writeback livelock avoidance using page tagging\n  ext4: tidy up a void argument in inode.c\n  ext4: add batched_discard into ext4 feature list\n  ext4: Add batched discard support for ext4\n  fs: Add FITRIM ioctl\n  ext4: Use return value from sb_issue_discard()\n  ext4: Check return value of sb_getblk() and friends\n  ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n  ...\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "7d2f280e75f05919314e250cadf361a327ed555c",
      "tree": "47db5a9a0ceaf31adf49c18b663b1e08184f7cff",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "4408ea41c0ab4b711d4da44dd954fb06dce6c3f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (24 commits)\n  quota: Fix possible oops in __dquot_initialize()\n  ext3: Update kernel-doc comments\n  jbd/2: fixed typos\n  ext2: fixed typo.\n  ext3: Fix debug messages in ext3_group_extend()\n  jbd: Convert atomic_inc() to get_bh()\n  ext3: Remove misplaced BUFFER_TRACE() in ext3_truncate()\n  jbd: Fix debug message in do_get_write_access()\n  jbd: Check return value of __getblk()\n  ext3: Use DIV_ROUND_UP() on group desc block counting\n  ext3: Return proper error code on ext3_fill_super()\n  ext3: Remove unnecessary casts on bh-\u003eb_data\n  ext3: Cleanup ext3_setup_super()\n  quota: Fix issuing of warnings from dquot_transfer\n  quota: fix dquot_disable vs dquot_transfer race v2\n  jbd: Convert bitops to buffer fns\n  ext3/jbd: Avoid WARN() messages when failing to write the superblock\n  jbd: Use offset_in_page() instead of manual calculation\n  jbd: Remove unnecessary goto statement\n  jbd: Use printk_ratelimited() in journal_alloc_journal_head()\n  ...\n"
    },
    {
      "commit": "39e3ac2599a5f9aba499b5f8af809108e70a6163",
      "tree": "16c9d790029c36f217b1689b42869c8739e8ac5e",
      "parents": [
        "58590b06d79f7ce5ab64ff3b6d537180fa50dc84"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "message": "jbd2: Fix I/O hang in jbd2_journal_release_jbd_inode\n\nThis fixes a hang seen in jbd2_journal_release_jbd_inode\non a lot of Power 6 systems running with ext4. When we get\nin the hung state, all I/O to the disk in question gets blocked\nwhere we stay indefinitely. Looking at the task list, I can see\nwe are stuck in jbd2_journal_release_jbd_inode waiting on a\nwake up. I added some debug code to detect this scenario and\ndump additional data if we were stuck in jbd2_journal_release_jbd_inode\nfor longer than 30 minutes. When it hit, I was able to see that\ni_flags was 0, suggesting we missed the wake up.\n\nThis patch changes i_flags to be an unsigned long, uses bit operators\nto access it, and adds barriers around the accesses. Prior to applying\nthis patch, we were regularly hitting this hang on numerous systems\nin our test environment. After applying the patch, the hangs no longer\noccur.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bcf3d0bcff9c2ab5794d9a2c5f0ebc9ce63cc63f",
      "tree": "e52f9059e1d0aab064a7a40dd214bab0e64e09d0",
      "parents": [
        "58c6ed38a16cd235588ed4a5ca3b213f055bc14c"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sat Oct 16 15:19:14 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:05 2010 +0200"
      },
      "message": "jbd/2: fixed typos\n\n\"wakup\"\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1113e1b504f6e8d4364c0b73c9097828067d4617",
      "tree": "15f606a79b486170992719e1d290d36f61ae409a",
      "parents": [
        "30ca22c70e3ef0a96ff84de69cd7e8561b416cb2"
      ],
      "author": {
        "name": "Patrick J. LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Thu Jul 22 15:04:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:41:54 2010 -0700"
      },
      "message": "JBD2: Allow feature checks before journal recovery\n\nBefore we start accessing a huge (\u003e 16 TiB) OCFS2 volume, we need to\nconfirm that its journal supports 64-bit offsets.  In particular, we\nneed to check the journal\u0027s feature bits before recovering the journal.\n\nThis is not possible with JBD2 at present, because the journal\nsuperblock (where the feature bits reside) is not loaded from disk until\nthe journal is recovered.\n\nThis patch loads the journal superblock in\njbd2_journal_check_used_features() if it has not already been loaded,\nallowing us to check the feature bits before journal recovery.\n\nSigned-off-by: Patrick LoPresti \u003clopresti@gmail.com\u003e\nCc: linux-ext4@vger.kernel.org\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
      "tree": "d310c118467c90c264e953bdc320ae08394c662a",
      "parents": [
        "90e0c225968f0878e090c7ff3f88323973476cee",
        "6c7a120ac6c62316ab1fc78dfc0a7b13f3bfcbff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Adding error check after calling ext4_mb_regular_allocator()\n  ext4: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext4: re-inline ext4_rec_len_(to|from)_disk functions\n  jbd2: Remove t_handle_lock from start_this_handle()\n  jbd2: Change j_state_lock to be a rwlock_t\n  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n  ext4: Add mount options in superblock\n  ext4: force block allocation on quota_off\n  ext4: fix freeze deadlock under IO\n  ext4: drop inode from orphan list if ext4_delete_inode() fails\n  ext4: check to make make sure bd_dev is set before dereferencing it\n  jbd2: Make barrier messages less scary\n  ext4: don\u0027t print scary messages for allocation failures post-abort\n  ext4: fix EFBIG edge case when writing to large non-extent file\n  ext4: fix ext4_get_blocks references\n  ext4: Always journal quota file modifications\n  ext4: Fix potential memory leak in ext4_fill_super\n  ext4: Don\u0027t error out the fs if the user tries to make a file too big\n  ext4: allocate stripe-multiple IOs on stripe boundaries\n  ext4: move aio completion after unwritten extent conversion\n  ...\n\nFix up conflicts in fs/ext4/inode.c as per Ted.\n\nFix up xfs conflicts as per earlier xfs merge.\n"
    },
    {
      "commit": "a931da6ac9331a6c80dd91c199105806f2336188",
      "tree": "2d4ea766def9a98d21c2379f41e796b0e57ccd6b",
      "parents": [
        "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "message": "jbd2: Change j_state_lock to be a rwlock_t\n\nLockstat reports have shown that j_state_lock is a major source of\nlock contention, especially on systems with more than 4 CPU cores.  So\nchange it to be a read/write spinlock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "47def82672b3ba4e7c5e9a4fe48a556f8684d0d6",
      "tree": "a0cfdaca8be99980c09d2b38ff676834c85ab2c4",
      "parents": [
        "40389687382bf0ae71458e7c0f828137a438a956"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "message": "jbd2: Remove __GFP_NOFAIL from jbd2 layer\n\n__GFP_NOFAIL is going away, so add our own retry loop.  Also add\njbd2__journal_start() and jbd2__journal_restart() which take a gfp\nmask, so that file systems can optionally (re)start transaction\nhandles using GFP_KERNEL.  If they do this, then they need to be\nprepared to handle receiving an PTR_ERR(-ENOMEM) error, and be ready\nto reflect that error up to userspace.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096",
      "tree": "5d65c397e9e85abe11a6fb0ebf3a69e8a4e91e0d",
      "parents": [
        "a39953dd95ff10e311083d94f4f95c348cb22464"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 14 07:56:33 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 15:17:47 2010 -0700"
      },
      "message": "jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n\nOCFS2 uses t_commit trigger to compute and store checksum of the just\ncommitted blocks. When a buffer has b_frozen_data, checksum is computed\nfor it instead of b_data but this can result in an old checksum being\nwritten to the filesystem in the following scenario:\n\n1) transaction1 is opened\n2) handle1 is opened\n3) journal_access(handle1, bh)\n    - This sets jh-\u003eb_transaction to transaction1\n4) modify(bh)\n5) journal_dirty(handle1, bh)\n6) handle1 is closed\n7) start committing transaction1, opening transaction2\n8) handle2 is opened\n9) journal_access(handle2, bh)\n    - This copies off b_frozen_data to make it safe for transaction1 to commit.\n      jh-\u003eb_next_transaction is set to transaction2.\n10) jbd2_journal_write_metadata() checksums b_frozen_data\n11) the journal correctly writes b_frozen_data to the disk journal\n12) handle2 is closed\n    - There was no dirty call for the bh on handle2, so it is never queued for\n      any more journal operation\n13) Checkpointing finally happens, and it just spools the bh via normal buffer\nwriteback.  This will write b_data, which was never triggered on and thus\ncontains a wrong (old) checksum.\n\nThis patch fixes the problem by calling the trigger at the moment data is\nfrozen for journal commit - i.e., either when b_frozen_data is created by\ndo_get_write_access or just before we write a buffer to the log if\nb_frozen_data does not exist. We also rename the trigger to t_frozen as\nthat better describes when it is called.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5a0790c2c4a18435759a70e1562450035d778339",
      "tree": "80acb12d0e37196cf60ae4ca150c6b556115f302",
      "parents": [
        "07a038245b28df9196ffb2e8cc626e9b956a4e23"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "message": "ext4: remove initialized but not read variables\n\nNo real bugs found, just removed some dead code.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8ac97b74bca1fc8a63b28cc6121519d1cfa2af99",
      "tree": "04f00eada6c77edd95b6a56446e4a330266274e5",
      "parents": [
        "c2d45b4da042720ae94648b417d0e051742441d4"
      ],
      "author": {
        "name": "Bill Pemberton",
        "email": "wfp5p@virginia.edu",
        "time": "Fri Apr 30 09:34:31 2010 -0400"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 11 10:04:36 2010 +0200"
      },
      "message": "jbd2: use NULL instead of 0 when pointer is needed\n\nFixes sparse warning:\n\nfs/jbd2/journal.c:1892:9: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nCC: linux-ext4@vger.kernel.org\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d2eecb03936878ec574ade5532fa83df7d75dde7",
      "tree": "f7ef8bd29096ba6c073308cd3b674857be1545d4",
      "parents": [
        "f8ec9d6837241865cf99bed97bb99f4399fd5a03"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 07 10:36:20 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 07 10:36:20 2009 -0500"
      },
      "message": "ext4: Use slab allocator for sub-page sized allocations\n\nNow that the SLUB seems to be fixed so that it respects the requested\nalignment, use kmem_cache_alloc() to allocator if the block size of\nthe buffer heads to be allocated is less than the page size.\nPreviously, we were using 16k page on a Power system for each buffer,\neven when the file system was using 1k or 4k block size.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "3ebfdf885acedafcadceb4007e77438479094135",
      "tree": "1bd9a4b223aa22e201af9a87868a33ec53605daf",
      "parents": [
        "c8afb44682fcef6273e8b8eb19fab13ddd05b386"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Dec 23 08:05:15 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 08:05:15 2009 -0500"
      },
      "message": "jbd2: don\u0027t use __GFP_NOFAIL in journal_init_common()\n\nIt triggers the warning in get_page_from_freelist(), and it isn\u0027t\nappropriate to use __GFP_NOFAIL here anyway.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d14843\n\nReported-by: Christian Casteyde \u003ccasteyde.christian@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "765f8361902d015c864d5e62019b2f139452d7ef",
      "tree": "f872385ae91fc926b036038e583a7f72ab5f3459",
      "parents": [
        "39bc680a8160bb9d6743f7873b535d553ff61058"
      ],
      "author": {
        "name": "Yin Kangkai",
        "email": "kangkai.yin@intel.com",
        "time": "Tue Dec 15 14:48:25 2009 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:44:13 2009 +0100"
      },
      "message": "jbd: jbd-debug and jbd2-debug should be writable\n\njbd-debug and jbd2-debug is currently read-only (S_IRUGO), which is not\ncorrect. Make it writable so that we can start debuging.\n\nSigned-off-by: Yin Kangkai \u003ckangkai.yin@intel.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "3b799d15f2622c44bae93961892d90ab012ea2be",
      "tree": "200eda7f3615d354aba02b9f5183524d172006e5",
      "parents": [
        "4a58579b9e4e2a35d57e6c9c8483e52f6f1b7fd6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 20:42:53 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 20:42:53 2009 -0500"
      },
      "message": "jbd2: Export jbd2_log_start_commit to fix ext4 build\n    \n    This fixes:\n    ERROR: \"jbd2_log_start_commit\" [fs/ext4/ext4.ko] undefined!\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6ec116b67f46e0e7808276476554727b2e6240b",
      "tree": "ef80d636a8d45ff7779532e493916e2873adf390",
      "parents": [
        "3f0ca309858ee186435c608ee9eaafd1c8dcb53a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 01 09:04:42 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 01 09:04:42 2009 -0500"
      },
      "message": "jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()\n\nOOM happens.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6a47428de84e19fda52f21ab73fde2906c40d09",
      "tree": "7e6b7974861793f767a6e1cc73047d51197e29df",
      "parents": [
        "567f3e9a70d71e5c9be03701b8578be77857293b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 15 15:31:37 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 15 15:31:37 2009 -0500"
      },
      "message": "jbd2: don\u0027t wipe the journal on a failed journal checksum\n\nIf there is a failed journal checksum, don\u0027t reset the journal.  This\nallows for userspace programs to decide how to recover from this\nsituation.  It may be that ignoring the journal checksum failure might\nbe a better way of recovering the file system.  Once we add per-block\nchecksums, we can definitely do better.  Until then, a system\nadministrator can try backing up the file system image (or taking a\nsnapshot) and and trying to determine experimentally whether ignoring\nthe checksum failure or aborting the journal replay results in less\ndata loss.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7b02bec07efe1d6c7d48c786e0c1a38d28fe7245",
      "tree": "cb93e26c107052be83ba52a74652c44c3ba199da",
      "parents": [
        "fe8bc91c4c30122b357d197117705cfd4fabaf28"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Nov 10 17:13:22 2009 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:24:14 2009 +0100"
      },
      "message": "JBD/JBD2: free j_wbuf if journal init fails.\n\nIf journal init fails, we need to free j_wbuf.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf6993276f74d46776f35c45ddef29b981b1d1c6",
      "tree": "5c9cb128fed29a83add1932b12443edaa6fd06cc",
      "parents": [
        "296c355cd6443d89fa251885a8d78778fe111dc4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 00:32:06 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 30 00:32:06 2009 -0400"
      },
      "message": "jbd2: Use tracepoints for history file\n\nThe /proc/fs/jbd2/\u003cdev\u003e/history was maintained manually; by using\ntracepoints, we can get all of the existing functionality of the /proc\nfile plus extra capabilities thanks to the ftrace infrastructure.  We\nsave memory as a bonus.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "90576c0b9a0b5323fc4bd7f23f49be0d234f36d1",
      "tree": "d4a1ab6f923f1c9c7c87f13a828db72c1f4412c1",
      "parents": [
        "d3d1faf6a74496ea4435fd057c6a2cad49f3e523"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 15:51:30 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 29 15:51:30 2009 -0400"
      },
      "message": "ext4, jbd2: Drop unneeded printks at mount and unmount time\n\nThere are a number of kernel printk\u0027s which are printed when an ext4\nfilesystem is mounted and unmounted.  Disable them to economize space\nin the system logs.  In addition, disabling the mballoc stats by\ndefault saves a number of unneeded atomic operations for every block\nallocation or deallocation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6f50e28f0cb8d7bcdfaacc83129f005dede11b1",
      "tree": "f7a0ee7cc686c0687cd4020185265ae0cd29471b",
      "parents": [
        "78f1ddbb498283c2445c11b0dfa666424c301803"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 17 10:40:01 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 17 10:40:01 2009 -0400"
      },
      "message": "jbd2: Fail to load a journal if it is too short\n\nDue to on disk corruption, it can happen that journal is too short. Fail\nto load it in such case so that we don\u0027t oops somewhere later.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "96577c43827697ca1af5982fa256a34786d0c720",
      "tree": "aa752d4685f5702976683401dadb7557f161d62d",
      "parents": [
        "833576b362e15c38be3bfe43942cda693e56287c"
      ],
      "author": {
        "name": "dingdinghua",
        "email": "dingdinghua85@gmail.com",
        "time": "Mon Jul 13 17:55:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 17:55:35 2009 -0400"
      },
      "message": "jbd2: fix race between write_metadata_buffer and get_write_access\n\nThe function jbd2_journal_write_metadata_buffer() calls\njbd_unlock_bh_state(bh_in) too early; this could potentially allow\nanother thread to call get_write_access on the buffer head, modify the\ndata, and dirty it, and allowing the wrong data to be written into the\njournal.  Fortunately, if we lose this race, the only time this will\nactually cause filesystem corruption is if there is a system crash or\nother unclean shutdown of the system before the next commit can take\nplace.\n\nSigned-off-by: dingdinghua \u003cdingdinghua85@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b574480507460b8e31b8d38dd4642219fc3b9a10",
      "tree": "666d731d897ce463fcc6ccf46e82f200ae18e589",
      "parents": [
        "627ad9fd0733f0a31a266ff98a4a933eee710f0b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 20 23:34:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 20 23:34:44 2009 -0400"
      },
      "message": "jbd2: Remove GFP_ATOMIC kmalloc from inside spinlock critical region\n\nFix jbd2_dev_to_name(), a function used when pretty-printting jbd2 and\next4 tracepoints.\n\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "b517bea1c74e4773482b3f41b3f493522a8c8e30",
      "tree": "1e98110151f1a35cde84ce1a2cb6f0cb871e9551",
      "parents": [
        "d0d856e8bd6e697cb44b2b4dd038f3bec576a70e"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Wed Oct 11 01:21:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:16 2006 -0700"
      },
      "message": "[PATCH] 64-bit jbd2 core\n\nHere is the patch to JBD to handle 64 bit block numbers, originally from Zach\nBrown.  This patch is useful only after adding support for 64-bit block\nnumbers in the filesystem.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Zach Brown \u003czach.brown@oracle.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": "a920e9416b3469994860ab552dfd7fd5a5aff162",
      "tree": "9919991a89614a059fafd91b93666e8487606f3d",
      "parents": [
        "f7f4bccb729844a0fa873e224e3a6f7eeed095bb"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann.lombardi@bull.net",
        "time": "Wed Oct 11 01:21:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] jbd2: rename slab\n\njbd and jbd2 currently use the same slab names which must be unique.  The\npatch below just renames jbd2\u0027s slabs.\n\nSigned-off-by: Johann Lombardi \u003cjohann.lombardi@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7f4bccb729844a0fa873e224e3a6f7eeed095bb",
      "tree": "b5b8ce65b5c17b4a7d45e43a3530f2cc977fb894",
      "parents": [
        "470decc613ab2048b619a01028072d932d9086ee"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Oct 11 01:20:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] jbd2: rename jbd2 symbols to avoid duplication of jbd symbols\n\nMingming Cao originally did this work, and Shaggy reproduced it using some\nscripts from her.\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": "470decc613ab2048b619a01028072d932d9086ee",
      "tree": "5268576f5099040db94b8e984983c0bb28b2a9a7",
      "parents": [
        "02ea2104c55b625cf5b5d9ba8586a4fc17920f5c"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Wed Oct 11 01:20:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] jbd2: initial copy of files from jbd\n\nThis is a simple copy of the files in fs/jbd to fs/jbd2 and\n/usr/incude/linux/[ext4_]jbd.h to /usr/include/[ext4_]jbd2.h\n\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"
    }
  ]
}
