)]}'
{
  "log": [
    {
      "commit": "de1b794130b130e77ffa975bb58cb843744f9ae5",
      "tree": "8c4b37582128dc36c2b7385294fba58d017ce3e8",
      "parents": [
        "1fb74cda1b5e9c6207225fda5ef7504e815ce0e0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jun 13 15:38:22 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 13 15:38:22 2011 -0400"
      },
      "message": "jbd2: Fix oops in jbd2_journal_remove_journal_head()\n\njbd2_journal_remove_journal_head() can oops when trying to access\njournal_head returned by bh2jh(). This is caused for example by the\nfollowing race:\n\n\tTASK1\t\t\t\t\tTASK2\n  jbd2_journal_commit_transaction()\n    ...\n    processing t_forget list\n      __jbd2_journal_refile_buffer(jh);\n      if (!jh-\u003eb_transaction) {\n        jbd_unlock_bh_state(bh);\n\t\t\t\t\tjbd2_journal_try_to_free_buffers()\n\t\t\t\t\t  jbd2_journal_grab_journal_head(bh)\n\t\t\t\t\t  jbd_lock_bh_state(bh)\n\t\t\t\t\t  __journal_try_to_free_buffer()\n\t\t\t\t\t  jbd2_journal_put_journal_head(jh)\n        jbd2_journal_remove_journal_head(bh);\n\njbd2_journal_put_journal_head() in TASK2 sees that b_jcount \u003d\u003d 0 and\nbuffer is not part of any transaction and thus frees journal_head\nbefore TASK1 gets to doing so. Note that even buffer_head can be\nreleased by try_to_free_buffers() after\njbd2_journal_put_journal_head() which adds even larger opportunity for\noops (but I didn\u0027t see this happen in reality).\n\nFix the problem by making transactions hold their own journal_head\nreference (in b_jcount). That way we don\u0027t have to remove journal_head\nexplicitely via jbd2_journal_remove_journal_head() and instead just\nremove journal_head when b_jcount drops to zero. The result of this is\nthat [__]jbd2_journal_refile_buffer(),\n[__]jbd2_journal_unfile_buffer(), and\n__jdb2_journal_remove_checkpoint() can free journal_head which needs\nmodification of a few callers. Also we have to be careful because once\njournal_head is removed, buffer_head might be freed as well. So we\nhave to get our own buffer_head reference where it matters.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1fb74cda1b5e9c6207225fda5ef7504e815ce0e0",
      "tree": "9a4d05e917f6204e5edf6cd4044715847e0ba6b3",
      "parents": [
        "a9c667f8f0656631ee5438baaf21bf30d5f67375"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Jun 12 22:44:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 12 22:44:10 2011 -0400"
      },
      "message": "jbd2: Remove obsolete parameters in the comments for some jbd2 functions\n\ncredits isn\u0027t a parameter for jbd2_journal_get_write_access and\njbd2_journal_get_undo_access. So remove the corresponding comments.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "35806b4f7c5620b547f183e9d53f7cfaeabb582b",
      "tree": "dc966f5edd9e482fdc85b8fb886ae39ce5c5ec80",
      "parents": [
        "32e51f141fd8d880f57b6a2eb53ce72856254d4a",
        "d183e11a4a66d80e10d60b0918a47cf073135379"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:53:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:53:20 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (61 commits)\n  jbd2: Add MAINTAINERS entry\n  jbd2: fix a potential leak of a journal_head on an error path\n  ext4: teach ext4_ext_split to calculate extents efficiently\n  ext4: Convert ext4 to new truncate calling convention\n  ext4: do not normalize block requests from fallocate()\n  ext4: enable \"punch hole\" functionality\n  ext4: add \"punch hole\" flag to ext4_map_blocks()\n  ext4: punch out extents\n  ext4: add new function ext4_block_zero_page_range()\n  ext4: add flag to ext4_has_free_blocks\n  ext4: reserve inodes and feature code for \u0027quota\u0027 feature\n  ext4: add support for multiple mount protection\n  ext4: ensure f_bfree returned by ext4_statfs() is non-negative\n  ext4: protect bb_first_free in ext4_trim_all_free() with group lock\n  ext4: only load buddy bitmap in ext4_trim_fs() when it is needed\n  jbd2: Fix comment to match the code in jbd2__journal_start()\n  ext4: fix waiting and sending of a barrier in ext4_sync_file()\n  jbd2: Add function jbd2_trans_will_send_data_barrier()\n  jbd2: fix sending of data flush on journal commit\n  ext4: fix ext4_ext_fiemap_cb() to handle blocks before request range correctly\n  ...\n"
    },
    {
      "commit": "3991b4008cb12f3abfe8dbb049b03d1cc39a8440",
      "tree": "44a6de3b438813925a2992c68aed82f0f04ef27b",
      "parents": [
        "1b16da77f90328661fc7e556ad591f9ee6b7ef6a"
      ],
      "author": {
        "name": "Ding Dinghua",
        "email": "dingdinghua@nrchpc.ac.cn",
        "time": "Wed May 25 17:43:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 17:43:48 2011 -0400"
      },
      "message": "jbd2: fix a potential leak of a journal_head on an error path\n\ndrop jh-\u003eb_jcount in error path\n\nSigned-off-by: Ding Dinghua \u003cdingdinghua@nrchpc.ac.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c867516de5256e9cfba2ec5847fa27e0f0ddd2c5",
      "tree": "701c4b48b81e7063efb1a3d014dfb9c11437a7f9",
      "parents": [
        "93628ffb9ba67c154849ac6c387f98f5e3198b84"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "message": "jbd2: Fix comment to match the code in jbd2__journal_start()\n\njbd2__journal_start() returns an ERR_PTR() value rather than NULL on\nfailure.\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bbd2be36910728f485ac78ea36e0f4f5a38e691e",
      "tree": "6a45da5a6ef8bafe9614de5fac68cce1fe4e13ec",
      "parents": [
        "81be12c8179c1c397d3f179cdd9b3f7146cf47f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "message": "jbd2: Add function jbd2_trans_will_send_data_barrier()\n\nProvide a function which returns whether a transaction with given tid\nwill send a flush to the filesystem device.  The function will be used\nby ext4 to detect whether fsync needs to send a separate flush or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "81be12c8179c1c397d3f179cdd9b3f7146cf47f1",
      "tree": "b535687e88af17fc6b25329decf28563ed519395",
      "parents": [
        "b221349fa8b45d13c3650089f0514df7d1eb36c3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "message": "jbd2: fix sending of data flush on journal commit\n\n\nIn data\u003dordered mode, it\u0027s theoretically possible (however rare) that\nan inode is filed to transaction\u0027s t_inode_list and a flusher thread\nwrites all the data and inode is reclaimed before the transaction\nstarts to commit.  In such a case, we could erroneously omit sending a\nflush to file system device when it is different from the journal\ndevice (because data can still be in disk cache only).\n\nFix the problem by setting a flag in a transaction when some inode is added\nto it and then send disk flush in the commit code when the flag is set.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "28e35e42fb255cbaeee8b9f89643f26fe376374d",
      "tree": "db83cfc348e1ff652aea17eff6ff4eb07d8cd8a9",
      "parents": [
        "f6d2f6b327ceef5c689581529a852dc6ec3b74a6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "message": "jbd2: Fix the wrong calculation of t_max_wait in update_t_max_wait\n\nt_max_wait is added in commit 8e85fb3f to indicate how long we\nwere waiting for new transaction to start. In commit 6d0bf005,\nit is moved to another function named update_t_max_wait to\navoid a build warning. But the wrong thing is that the original\n\u0027ts\u0027 is initialized in the start of function start_this_handle\nand we can calculate t_max_wait in the right way. while with\nthis change, ts is initialized within the function and t_max_wait\ncan never be calculated right.\n\nThis patch moves the initialization of ts to the original beginning\nof start_this_handle and pass it to function update_t_max_wait so\nthat it can be calculated right and the build warning is avoided also.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "9199e66528f61a06abe09f0589bbe1eecaa301a7",
      "tree": "9638e08371e859fcf38d6bc407859f09a0164a30",
      "parents": [
        "2842bb20eed2e25cde5114298edc62c8883a1d9a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu May 05 23:54:19 2011 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 17 13:47:42 2011 +0200"
      },
      "message": "jbd/jbd2: remove obsolete summarise_journal_usage.\n\nsummarise_journal_usage seems to be obsolete for a long time,\nso remove it.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1be2add685181ba31554ffefa428b0f80a408bff",
      "tree": "1556ae76056f50460af2db7018816b96b4676c63",
      "parents": [
        "229309caebe4508d650bb6d8f7d51f2b116f5bbd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "message": "jbd2: only print the debugging information for tid wraparound once\n\nIf we somehow wrap, we don\u0027t want to keep printing the warning message\nover and over again.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "229309caebe4508d650bb6d8f7d51f2b116f5bbd",
      "tree": "6b9612369cac17205b21ca0b4d93ebbd25863f6d",
      "parents": [
        "667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "message": "jbd2: Fix forever sleeping process in do_get_write_access()\n\nIn do_get_write_access() we wait on BH_Unshadow bit for buffer to get\nfrom shadow state. The waking code in journal_commit_transaction() has\na bug because it does not issue a memory barrier after the buffer is\nmoved from the shadow state and before wake_up_bit() is called. Thus a\nwaitqueue check can happen before the buffer is actually moved from\nthe shadow state and waiting process may never be woken. Fix the\nproblem by issuing proper barrier.\n\nReported-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "deeeaf13b291420fe4a4a52606b9fc9128387340",
      "tree": "2e7cbab5f598839771022453e8ed4ea18fb1e0af",
      "parents": [
        "59802db0745ddfe5cfd0d965e9d489f1b4713868"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "message": "jbd2: fix fsync() tid wraparound bug\n\nIf an application program does not make any changes to the indirect\nblocks or extent tree, i_datasync_tid will not get updated.  If there\nare enough commits (i.e., 2**31) such that tid_geq()\u0027s calculations\nwrap, and there isn\u0027t a currently active transaction at the time of\nthe fdatasync() call, this can end up triggering a BUG_ON in\nfs/jbd2/commit.c:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nIt\u0027s pretty rare that this can happen, since it requires the use of\nfdatasync() plus *very* frequent and excessive use of fsync().  But\nwith the right workload, it can.\n\nWe fix this by replacing the use of tid_geq() with an equality test,\nsince there\u0027s only one valid transaction id that we is valid for us to\nwait until it is commited: namely, the currently running transaction\n(if it exists).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d",
      "tree": "1a35544915a5704fa59c63b43e9f46e20be1e296",
      "parents": [
        "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
        "c8205636029fc869278c55b7336053b3e7ae3ef4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix data corruption regression by reverting commit 6de9843dab3f\n  ext4: Allow indirect-block file to grow the file size to max file size\n  ext4: allow an active handle to be started when freezing\n  ext4: sync the directory inode in ext4_sync_parent()\n  ext4: init timer earlier to avoid a kernel panic in __save_error_info\n  jbd2: fix potential memory leak on transaction commit\n  ext4: fix a double free in ext4_register_li_request\n  ext4: fix credits computing for indirect mapped files\n  ext4: remove unnecessary [cm]time update of quota file\n  jbd2: move bdget out of critical section\n"
    },
    {
      "commit": "6cba611e600ded15f642552ce6b5f7ee243bacf0",
      "tree": "5ffde3bc5fb87bbf9693bc83a53d9212ae04f267",
      "parents": [
        "46e4690bbd9a4f8d9e7c4f34e34b48f703ad47e0"
      ],
      "author": {
        "name": "Zhang Huan",
        "email": "zhhuan@gmail.com",
        "time": "Tue Apr 05 19:16:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 05 19:16:20 2011 -0400"
      },
      "message": "jbd2: fix potential memory leak on transaction commit\n\nThere is potential memory leak of journal head in function\njbd2_journal_commit_transaction. The problem is that JBD2 will not\nreclaim the journal head of commit record if error occurs or journal\nis abotred.\n\nI use the following script to reproduce this issue, on a RHEL6\nsystem. I found it very easy to reproduce with async commit enabled.\n\nmount /dev/sdb /mnt -o journal_checksum,journal_async_commit\ntouch /mnt/xxx\necho offline \u003e /sys/block/sdb/device/state\nsync\numount /mnt\nrmmod ext4\nrmmod jbd2\n\nRemoval of the jbd2 module will make slab complaining that\n\"cache `jbd2_journal_head\u0027: can\u0027t free all objects\".\n\nSigned-off-by: Zhang Huan \u003czhhuan@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "50f689af019b19f9b9a39be782c21b6f52b1615a",
      "tree": "40b80bb3acc51ebfba7199c0fadff25da2ee6d51",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "zhu.yanhai@gmail.com",
        "time": "Mon Apr 04 12:58:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 12:58:12 2011 -0400"
      },
      "message": "jbd2: move bdget out of critical section\n\nbdget() should not be called when we hold spinlocks since\nit might sleep.\n\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Zhu Yanhai \u003cgaoyang.zyh@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "82f04ab47e1d94d78503591a7460b2cad9601ede",
      "tree": "a79fd1ba1c8dce2147cb3bea54357321f73e642d",
      "parents": [
        "65ab80279d7c323ce151e858d951e2684df72a97"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:01:52 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:01:52 2011 +0100"
      },
      "message": "jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n\n\u0027write_op\u0027 was still used, even though it was always WRITE_SYNC now.\nAdd plugging around the cases where it submits IO, and flush them\nbefore we end up waiting for that IO.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3c26bdb42320f9f39d30c6f115476bbb66b74dc5",
      "tree": "464b9ce0d2eb1875ef7cb676d5ec4f25645934a9",
      "parents": [
        "ce654b37f87980d95f339080e4c3bdb2370bdf22"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Sat Feb 26 20:34:05 2011 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 28 21:55:58 2011 +0100"
      },
      "message": "jbd: Remove one to many n\u0027s in a word.\n\nThe Patch below removes one to many \"n\u0027s\" in a word..\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: linux-ext4@vger.kernel.org\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e44718318004a5618d1dfe2d080e2862532d8e5f",
      "tree": "c1a6af07da3184f5785a62062510ac8e86b8050a",
      "parents": [
        "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "message": "jbd2: call __jbd2_log_start_commit with j_state_lock write locked\n\nOn an SMP ARM system running ext4, I\u0027ve received a report that the\nfirst J_ASSERT in jbd2_journal_commit_transaction has been triggering:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nWhile investigating possible causes for this problem, I noticed that\n__jbd2_log_start_commit() is getting called with j_state_lock only\nread-locked, in spite of the fact that it\u0027s possible for it might\nj_commit_request.  Fix this by grabbing the necessary information so\nwe can test to see if we need to start a new transaction before\ndropping the read lock, and then calling jbd2_log_start_commit() which\nwill grab the write lock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "008d23e4852d78bb2618f2035f8b2110b6a6b968",
      "tree": "81c88f744f6f3fc84132527c1ddc0b4da410c5e2",
      "parents": [
        "8f685fbda43deccd130d192c9fcef1444649eaca",
        "bfc672dcf323877228682aff79dff8ecd9f30ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  Documentation/trace/events.txt: Remove obsolete sched_signal_send.\n  writeback: fix global_dirty_limits comment runtime -\u003e real-time\n  ppc: fix comment typo singal -\u003e signal\n  drivers: fix comment typo diable -\u003e disable.\n  m68k: fix comment typo diable -\u003e disable.\n  wireless: comment typo fix diable -\u003e disable.\n  media: comment typo fix diable -\u003e disable.\n  remove doc for obsolete dynamic-printk kernel-parameter\n  remove extraneous \u0027is\u0027 from Documentation/iostats.txt\n  Fix spelling milisec -\u003e ms in snd_ps3 module parameter description\n  Fix spelling mistakes in comments\n  Revert conflicting V4L changes\n  i7core_edac: fix typos in comments\n  mm/rmap.c: fix comment\n  sound, ca0106: Fix assignment to \u0027channel\u0027.\n  hrtimer: fix a typo in comment\n  init/Kconfig: fix typo\n  anon_inodes: fix wrong function name in comment\n  fix comment typos concerning \"consistent\"\n  poll: fix a typo in comment\n  ...\n\nFix up trivial conflicts in:\n - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)\n - fs/ext4/ext4.h\n\nAlso fix missed \u0027diabled\u0027 typo in drivers/net/bnx2x/bnx2x.h while at it.\n"
    },
    {
      "commit": "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b",
      "tree": "e13143306cd64525cddd2cc2513c448275a1d95a",
      "parents": [
        "353eb83c1422c6326eaab30ce044a179c6018169"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "message": "ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n\nReplace the jbd2_inode structure (which is 48 bytes) with a pointer\nand only allocate the jbd2_inode when it is needed --- that is, when\nthe file system has a journal present and the inode has been opened\nfor writing.  This allows us to further slim down the ext4_inode_info\nstructure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4b7bd364700d9ac8372eff48832062b936d0793b",
      "tree": "0dbf78c95456a0b02d07fcd473281f04a87e266d",
      "parents": [
        "c0d8768af260e2cbb4bf659ae6094a262c86b085",
        "90a8a73c06cc32b609a880d48449d7083327e11a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tMAINTAINERS\n\tarch/arm/mach-omap2/pm24xx.c\n\tdrivers/scsi/bfa/bfa_fcpim.c\n\nNeeded to update to apply fixes for which the old branch was too\noutdated.\n"
    },
    {
      "commit": "b7271b0a39947f757d7969f6150dcb16c1976b91",
      "tree": "298f473585df2253af8897cad7ff2bb6a49a6b14",
      "parents": [
        "9a4f6271b68b9693290963b97b320d2e6e6f3446"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:39:38 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:39:38 2010 -0500"
      },
      "message": "jbd2: simplify return path of journal_init_common\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9a4f6271b68b9693290963b97b320d2e6e6f3446",
      "tree": "44113f838fe7b0bacf590d81ff170fc41fcec9bd",
      "parents": [
        "ae00b267f3827ba88309fb74bdf7527396f0acf9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:36:33 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:36:33 2010 -0500"
      },
      "message": "jbd2: move debug message into debug #ifdef\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ae00b267f3827ba88309fb74bdf7527396f0acf9",
      "tree": "7313f6e374d1c4cc2a0b5a350978ab56a5256436",
      "parents": [
        "a1dd53318409ed6a27a8ce4fecf52e1326a100c0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:34:20 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:34:20 2010 -0500"
      },
      "message": "jbd2: remove unnecessary goto statement\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1dd53318409ed6a27a8ce4fecf52e1326a100c0",
      "tree": "38befc96ddbd6bb1aaeea3063ba47bc19dab09d9",
      "parents": [
        "cfef2c6a559b1e37cbc7e7c1b51f82d26abf24ec"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:13:40 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:13:40 2010 -0500"
      },
      "message": "jbd2: use offset_in_page() instead of manual calculation\n\nThis is a port to jbd2 of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e\noriginally made to fs/jbd.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cfef2c6a559b1e37cbc7e7c1b51f82d26abf24ec",
      "tree": "f5ea989a2f5935638550b56ede02b78002e2f34f",
      "parents": [
        "670be5a78ac7c80f0d6009d648c84c65a03f373a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:07:34 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Dec 18 13:07:34 2010 -0500"
      },
      "message": "jbd2: Fix a debug message in do_get_write_access()\n\n\u0027buffer_head\u0027 should be \u0027journal_head\u0027\n\nThis is a port of a patch which Namhyung Kim \u003cnamhyung@gmail.com\u003e made\nto fs/jbd to jbd2.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "670be5a78ac7c80f0d6009d648c84c65a03f373a",
      "tree": "e74adf62ba7d69540ddcb620cf45b6cf99cdedf8",
      "parents": [
        "a8901d34872dafcafa23efa0865dcecfd4fddf8c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 17 10:44:16 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 17 10:44:16 2010 -0500"
      },
      "message": "jbd2: Use pr_notice_ratelimited() in journal_alloc_journal_head()\n\nWe had an open-coded version of printk_ratelimited(); use the provided\nabstraction to make the code cleaner and easier to understand.\n\nBased on a similar patch for fs/jbd from Namhyung Kim \u003cnamhyung@gmail.com\u003e\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a34f0b31398020e2d3be653eb695bd17a9cf3b55",
      "tree": "a049085d3b21a55f3138ed2cc78552cad828748d",
      "parents": [
        "dac36dd87de10d1fd81dc7b7a40256cb2e965abc"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Dec 10 14:55:42 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 10 16:04:28 2010 +0100"
      },
      "message": "fix comment typos concerning \"consistent\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0587aa3d11f9769a301b21bff2c3ed8365606b8d",
      "tree": "c02512f57fc11b37da4764c10a5e2ef42cc5ecbe",
      "parents": [
        "f4c8cc652d9f70680dd91be60a7a455040d0a282"
      ],
      "author": {
        "name": "yangsheng",
        "email": "sheng.yang@oracle.com",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 17 21:46:26 2010 -0500"
      },
      "message": "jbd2: fix /proc/fs/jbd2/\u003cdev\u003e when using an external journal\n\nIn jbd2_journal_init_dev(), we need make sure the journal structure is\nfully initialzied before calling jbd2_stats_proc_init().\n\nReviewed-by: Andreas Dilger \u003candreas.dilger@oracle.com\u003e\nSigned-off-by: yangsheng \u003csheng.yang@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "51dfacdef38b1dd6fc58b03dd1725d517516b115",
      "tree": "71db75044a42f316c5956bb807f9846c14d12b16",
      "parents": [
        "117bf5fbdbdc7a5394e5718b3354238961c83067"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 16 22:34:39 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 30 12:12:50 2010 +0200"
      },
      "message": "jbd2: Convert jbd2_slab_create_sem to mutex\n\njbd2_slab_create_sem is used as a mutex, so make it one.\n\n[ akpm muttered: We may as well make it local to\njbd2_journal_create_slab() also. ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1010162231480.2496@localhost6.localdomain6\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "81280572ca6f54009edfa4deee563e8678784218",
      "tree": "4fac10bcb71261823d261e5f8551fdb16ab653ba",
      "parents": [
        "b83db1deb29eb4eea9bf5992431d26978e039ce6",
        "a107e5a3a473a2ea62bd5af24e11b84adf1486ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (50 commits)\n  ext4,jbd2: convert tracepoints to use major/minor numbers\n  ext4: optimize orphan_list handling for ext4_setattr\n  ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n  ext4: fix compile error in ext4_fallocate()\n  ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static\n  ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n  ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static\n  ext4: rename {ext,idx}_pblock and inline small extent functions\n  ext4: make various ext4 functions be static\n  ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n  ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n  ext4: update writeback_index based on last page scanned\n  ext4: implement writeback livelock avoidance using page tagging\n  ext4: tidy up a void argument in inode.c\n  ext4: add batched_discard into ext4 feature list\n  ext4: Add batched discard support for ext4\n  fs: Add FITRIM ioctl\n  ext4: Use return value from sb_issue_discard()\n  ext4: Check return value of sb_getblk() and friends\n  ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n  ...\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "7d2f280e75f05919314e250cadf361a327ed555c",
      "tree": "47db5a9a0ceaf31adf49c18b663b1e08184f7cff",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "4408ea41c0ab4b711d4da44dd954fb06dce6c3f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (24 commits)\n  quota: Fix possible oops in __dquot_initialize()\n  ext3: Update kernel-doc comments\n  jbd/2: fixed typos\n  ext2: fixed typo.\n  ext3: Fix debug messages in ext3_group_extend()\n  jbd: Convert atomic_inc() to get_bh()\n  ext3: Remove misplaced BUFFER_TRACE() in ext3_truncate()\n  jbd: Fix debug message in do_get_write_access()\n  jbd: Check return value of __getblk()\n  ext3: Use DIV_ROUND_UP() on group desc block counting\n  ext3: Return proper error code on ext3_fill_super()\n  ext3: Remove unnecessary casts on bh-\u003eb_data\n  ext3: Cleanup ext3_setup_super()\n  quota: Fix issuing of warnings from dquot_transfer\n  quota: fix dquot_disable vs dquot_transfer race v2\n  jbd: Convert bitops to buffer fns\n  ext3/jbd: Avoid WARN() messages when failing to write the superblock\n  jbd: Use offset_in_page() instead of manual calculation\n  jbd: Remove unnecessary goto statement\n  jbd: Use printk_ratelimited() in journal_alloc_journal_head()\n  ...\n"
    },
    {
      "commit": "5c2178e785244341d1e6f2bc3b62f20a337cc44f",
      "tree": "669b8108fbe2708dff06dce25be6d70f68c553c4",
      "parents": [
        "a1c6c5698d53db4c47a25c3a8d11731a4d7b8370"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "jbd2: Add sanity check for attempts to start handle during umount\n\nAn attempt to modify the file system during the call to\njbd2_destroy_journal() can lead to a system lockup.  So add some\nchecking to make it much more obvious when this happens to and to\ndetermine where the offending code is located.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39e3ac2599a5f9aba499b5f8af809108e70a6163",
      "tree": "16c9d790029c36f217b1689b42869c8739e8ac5e",
      "parents": [
        "58590b06d79f7ce5ab64ff3b6d537180fa50dc84"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:25:12 2010 -0400"
      },
      "message": "jbd2: Fix I/O hang in jbd2_journal_release_jbd_inode\n\nThis fixes a hang seen in jbd2_journal_release_jbd_inode\non a lot of Power 6 systems running with ext4. When we get\nin the hung state, all I/O to the disk in question gets blocked\nwhere we stay indefinitely. Looking at the task list, I can see\nwe are stuck in jbd2_journal_release_jbd_inode waiting on a\nwake up. I added some debug code to detect this scenario and\ndump additional data if we were stuck in jbd2_journal_release_jbd_inode\nfor longer than 30 minutes. When it hit, I was able to see that\ni_flags was 0, suggesting we missed the wake up.\n\nThis patch changes i_flags to be an unsigned long, uses bit operators\nto access it, and adds barriers around the accesses. Prior to applying\nthis patch, we were regularly hitting this hang on numerous systems\nin our test environment. After applying the patch, the hangs no longer\noccur.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bcf3d0bcff9c2ab5794d9a2c5f0ebc9ce63cc63f",
      "tree": "e52f9059e1d0aab064a7a40dd214bab0e64e09d0",
      "parents": [
        "58c6ed38a16cd235588ed4a5ca3b213f055bc14c"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sat Oct 16 15:19:14 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:05 2010 +0200"
      },
      "message": "jbd/2: fixed typos\n\n\"wakup\"\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e",
      "tree": "f42fd892495bfc4cbb740d06b016d267c9c42d00",
      "parents": [
        "4f3a29dadaf999a273f1e7fe2476595d0283eef3",
        "b4627321e18582dcbdeb45d77df29d3177107c65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:00:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/core\u0027 of git://git.kernel.dk/linux-2.6-block: (39 commits)\n  cfq-iosched: Fix a gcc 4.5 warning and put some comments\n  block: Turn bvec_k{un,}map_irq() into static inline functions\n  block: fix accounting bug on cross partition merges\n  block: Make the integrity mapped property a bio flag\n  block: Fix double free in blk_integrity_unregister\n  block: Ensure physical block size is unsigned int\n  blkio-throttle: Fix possible multiplication overflow in iops calculations\n  blkio-throttle: limit max iops value to UINT_MAX\n  blkio-throttle: There is no need to convert jiffies to milli seconds\n  blkio-throttle: Fix link failure failure on i386\n  blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n  blkio: Add root group to td-\u003etg_list\n  blkio: deletion of a cgroup was causes oops\n  blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING\u003dn\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: revert bad fix for memory hotplug causing bounces\n  Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK\n  block: set the bounce_pfn to the actual DMA limit rather than to max memory\n  block: Prevent hang_check firing during long I/O\n  cfq: improve fsync performance for small files\n  ...\n\nFix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h\n"
    },
    {
      "commit": "749ef9f8423054e326f3a246327ed2db4b6d395f",
      "tree": "388df763e4e731f5d9b4d8dcaedca641521571e3",
      "parents": [
        "6d0aed7a38d06284db2a0e46c0a072b0c1c3299b"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Sep 20 15:24:50 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 20 15:24:50 2010 +0200"
      },
      "message": "cfq: improve fsync performance for small files\n\nFsync performance for small files achieved by cfq on high-end disks is\nlower than what deadline can achieve, due to idling introduced between\nthe sync write happening in process context and the journal commit.\n\nMoreover, when competing with a sequential reader, a process writing\nsmall files and fsync-ing them is starved.\n\nThis patch fixes the two problems by:\n- marking journal commits as WRITE_SYNC, so that they get the REQ_NOIDLE\n  flag set,\n- force all queues that have REQ_NOIDLE requests to be put in the noidle\n  tree.\n\nHaving the queue associated to the fsync-ing process and the one associated\n to journal commits in the noidle tree allows:\n- switching between them without idling,\n- fairness vs. competing idling queues, since they will be serviced only\n  after the noidle tree expires its slice.\n\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "1113e1b504f6e8d4364c0b73c9097828067d4617",
      "tree": "15f606a79b486170992719e1d290d36f61ae409a",
      "parents": [
        "30ca22c70e3ef0a96ff84de69cd7e8561b416cb2"
      ],
      "author": {
        "name": "Patrick J. LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Thu Jul 22 15:04:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:41:54 2010 -0700"
      },
      "message": "JBD2: Allow feature checks before journal recovery\n\nBefore we start accessing a huge (\u003e 16 TiB) OCFS2 volume, we need to\nconfirm that its journal supports 64-bit offsets.  In particular, we\nneed to check the journal\u0027s feature bits before recovering the journal.\n\nThis is not possible with JBD2 at present, because the journal\nsuperblock (where the feature bits reside) is not loaded from disk until\nthe journal is recovered.\n\nThis patch loads the journal superblock in\njbd2_journal_check_used_features() if it has not already been loaded,\nallowing us to check the feature bits before journal recovery.\n\nSigned-off-by: Patrick LoPresti \u003clopresti@gmail.com\u003e\nCc: linux-ext4@vger.kernel.org\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9c35575bbe6b1dd4914a5323c8df8b3159edcc75",
      "tree": "537c521af9d3cfcd1d9031cad99ac349b586fc03",
      "parents": [
        "f73bee49855fe968e87af18e44f2d17e1e675e74"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:17 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "jbd2: replace barriers with explicit flush / FUA usage\n\nSwitch to the WRITE_FLUSH_FUA flag for journal commits and remove the\nEOPNOTSUPP detection for barriers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f73bee49855fe968e87af18e44f2d17e1e675e74",
      "tree": "b8c4bc3ac8fcc6c2ef066bf641e70b7522392c12",
      "parents": [
        "4524451ef7e88c64a868a8f5a0b49bda73beb2a3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 18 15:56:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n\nCurrently JBD2 relies blkdev_issue_flush() draining the queue when ASYNC_COMMIT\nfeature is set. This property is going away so make JBD2 wait for buffers it\nneeds on its own before submitting the cache flush.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "87e99511ea54510ffb60b98001d108794d5037f8",
      "tree": "359228828515e02302d9b259a066a1f1118eba0a",
      "parents": [
        "dad5eb6daa7eeb63d4fc9d982892c59faa07e797"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:05:45 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:00 2010 -0400"
      },
      "message": "kill BH_Ordered flag\n\nInstead of abusing a buffer_head flag just add a variant of\nsync_dirty_buffer which allows passing the exact type of write\nflag required.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d0bf00512b3b1b5d09d9a44919983eec1cc6fd0",
      "tree": "4aef98bb3b212cc04f1dbb011548d83f9ab77c3e",
      "parents": [
        "45d7f32c7a43cbb9592886d38190e379e2eb2226"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 09 17:28:38 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 09 17:28:38 2010 -0400"
      },
      "message": "ext4: clean up compiler warning in start_this_handle()\n\nFix the compiler warning:\n\n  fs/jbd2/transaction.c: In function ‘start_this_handle’:\n  fs/jbd2/transaction.c:98: warning: unused variable ‘ts’\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
      "tree": "d310c118467c90c264e953bdc320ae08394c662a",
      "parents": [
        "90e0c225968f0878e090c7ff3f88323973476cee",
        "6c7a120ac6c62316ab1fc78dfc0a7b13f3bfcbff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Adding error check after calling ext4_mb_regular_allocator()\n  ext4: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext4: re-inline ext4_rec_len_(to|from)_disk functions\n  jbd2: Remove t_handle_lock from start_this_handle()\n  jbd2: Change j_state_lock to be a rwlock_t\n  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n  ext4: Add mount options in superblock\n  ext4: force block allocation on quota_off\n  ext4: fix freeze deadlock under IO\n  ext4: drop inode from orphan list if ext4_delete_inode() fails\n  ext4: check to make make sure bd_dev is set before dereferencing it\n  jbd2: Make barrier messages less scary\n  ext4: don\u0027t print scary messages for allocation failures post-abort\n  ext4: fix EFBIG edge case when writing to large non-extent file\n  ext4: fix ext4_get_blocks references\n  ext4: Always journal quota file modifications\n  ext4: Fix potential memory leak in ext4_fill_super\n  ext4: Don\u0027t error out the fs if the user tries to make a file too big\n  ext4: allocate stripe-multiple IOs on stripe boundaries\n  ext4: move aio completion after unwritten extent conversion\n  ...\n\nFix up conflicts in fs/ext4/inode.c as per Ted.\n\nFix up xfs conflicts as per earlier xfs merge.\n"
    },
    {
      "commit": "8dd420466c7bfc459fa04680bd5690bfc41a4553",
      "tree": "6004eaaa7266979397a9d87e30066fc91d3650c3",
      "parents": [
        "a931da6ac9331a6c80dd91c199105806f2336188"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:38:29 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:38:29 2010 -0400"
      },
      "message": "jbd2: Remove t_handle_lock from start_this_handle()\n\nThis should remove the last exclusive lock from start_this_handle(),\nso that we should now be able to start multiple transactions at the\nsame time on large SMP systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a931da6ac9331a6c80dd91c199105806f2336188",
      "tree": "2d4ea766def9a98d21c2379f41e796b0e57ccd6b",
      "parents": [
        "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "message": "jbd2: Change j_state_lock to be a rwlock_t\n\nLockstat reports have shown that j_state_lock is a major source of\nlock contention, especially on systems with more than 4 CPU cores.  So\nchange it to be a read/write spinlock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37",
      "tree": "31256b4fa3ec1d0e1e27196607499877c662ee86",
      "parents": [
        "8b67f04ab9de5d8f3a71aef72bf02c995a506db5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 02 08:43:25 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 02 08:43:25 2010 -0400"
      },
      "message": "jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n\nBy using an atomic_t for t_updates and t_outstanding credits, this\nshould allow us to not need to take transaction t_handle_lock in\njbd2_journal_stop().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cc937db74bd5fe75f4cfebbfc4a04c1da10f0695",
      "tree": "53c314f54e5904fdfe7768adc6f852bdc60040e3",
      "parents": [
        "e3570639c8b5f2c6a5018a2649c2b7c276af76d7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "message": "jbd2: Make barrier messages less scary\n\nSaying things like \"sync failed\" when a device does\nnot support barriers makes users slightly more worried than\nthey need to be; rather than talking about sync failures,\nlet\u0027s just state the barrier-based facts.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "47def82672b3ba4e7c5e9a4fe48a556f8684d0d6",
      "tree": "a0cfdaca8be99980c09d2b38ff676834c85ab2c4",
      "parents": [
        "40389687382bf0ae71458e7c0f828137a438a956"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:05 2010 -0400"
      },
      "message": "jbd2: Remove __GFP_NOFAIL from jbd2 layer\n\n__GFP_NOFAIL is going away, so add our own retry loop.  Also add\njbd2__journal_start() and jbd2__journal_restart() which take a gfp\nmask, so that file systems can optionally (re)start transaction\nhandles using GFP_KERNEL.  If they do this, then they need to be\nprepared to handle receiving an PTR_ERR(-ENOMEM) error, and be ready\nto reflect that error up to userspace.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096",
      "tree": "5d65c397e9e85abe11a6fb0ebf3a69e8a4e91e0d",
      "parents": [
        "a39953dd95ff10e311083d94f4f95c348cb22464"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 14 07:56:33 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 15:17:47 2010 -0700"
      },
      "message": "jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n\nOCFS2 uses t_commit trigger to compute and store checksum of the just\ncommitted blocks. When a buffer has b_frozen_data, checksum is computed\nfor it instead of b_data but this can result in an old checksum being\nwritten to the filesystem in the following scenario:\n\n1) transaction1 is opened\n2) handle1 is opened\n3) journal_access(handle1, bh)\n    - This sets jh-\u003eb_transaction to transaction1\n4) modify(bh)\n5) journal_dirty(handle1, bh)\n6) handle1 is closed\n7) start committing transaction1, opening transaction2\n8) handle2 is opened\n9) journal_access(handle2, bh)\n    - This copies off b_frozen_data to make it safe for transaction1 to commit.\n      jh-\u003eb_next_transaction is set to transaction2.\n10) jbd2_journal_write_metadata() checksums b_frozen_data\n11) the journal correctly writes b_frozen_data to the disk journal\n12) handle2 is closed\n    - There was no dirty call for the bh on handle2, so it is never queued for\n      any more journal operation\n13) Checkpointing finally happens, and it just spools the bh via normal buffer\nwriteback.  This will write b_data, which was never triggered on and thus\ncontains a wrong (old) checksum.\n\nThis patch fixes the problem by calling the trigger at the moment data is\nfrozen for journal commit - i.e., either when b_frozen_data is created by\ndo_get_write_access or just before we write a buffer to the log if\nb_frozen_data does not exist. We also rename the trigger to t_frozen as\nthat better describes when it is called.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5a0790c2c4a18435759a70e1562450035d778339",
      "tree": "80acb12d0e37196cf60ae4ca150c6b556115f302",
      "parents": [
        "07a038245b28df9196ffb2e8cc626e9b956a4e23"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 14 13:28:03 2010 -0400"
      },
      "message": "ext4: remove initialized but not read variables\n\nNo real bugs found, just removed some dead code.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5",
      "tree": "cc64c1dcd16b5dbf71ebc8338b339e6fb04abaee",
      "parents": [
        "b899ebeb05da4287ce845976727e3e83dadd25d5",
        "14ece1028b3ed53ffec1b1213ffc6acaf79ad77c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Make fsync sync new parent directories in no-journal mode\n  ext4: Drop whitespace at end of lines\n  ext4: Fix compat EXT4_IOC_ADD_GROUP\n  ext4: Conditionally define compat ioctl numbers\n  tracing: Convert more ext4 events to DEFINE_EVENT\n  ext4: Add new tracepoints to track mballoc\u0027s buddy bitmap loads\n  ext4: Add a missing trace hook\n  ext4: restart ext4_ext_remove_space() after transaction restart\n  ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted\n  ext4: Avoid crashing on NULL ptr dereference on a filesystem error\n  ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n  ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()\n  ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()\n  ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()\n  ext4: Use our own write_cache_pages()\n  ext4: Show journal_checksum option\n  ext4: Fix for ext4_mb_collect_stats()\n  ext4: check for a good block group before loading buddy pages\n  ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate\n  ext4: Remove extraneous newlines in ext4_msg() calls\n  ...\n\nFixed up trivial conflict in fs/ext4/fsync.c\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c35a56a090eacefca07afeb994029b57d8dd8025",
      "tree": "2a42c07c270b07725d9798bc89bc9aa0aaf2c184",
      "parents": [
        "c445e3e0a5c2804524dec6e55f66d63f6bc5bc3e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 05:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 05:00:00 2010 -0400"
      },
      "message": "jbd2: Improve scalability by not taking j_state_lock in jbd2_journal_stop()\n\nOne of the most contended locks in the jbd2 layer is j_state_lock when\nrunning dbench.  This is especially true if using the real-time kernel\nwith its \"sleeping spinlocks\" patch that replaces spinlocks with\npriority inheriting mutexes --- but it also shows up on large SMP\nbenchmarks.\n\nThanks to John Stultz for pointing this out.\n\nReviewed by Mingming Cao and Jan Kara.\n\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": "fbd9b09a177a481eda256447c881f014f29034fe",
      "tree": "ef7e213045382f82a1e3e3cf134d196a1045dd7a",
      "parents": [
        "6b4517a7913a09d3259bb1d21c9cb300f12294bd"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:06 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: generalize flags for blkdev_issue_fn functions\n\nThe patch just convert all blkdev_issue_xxx function to common\nset of flags. Wait/allocation semantics preserved.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "23e2af3518facab6838d7aac1f46fbd7a5a290ce",
      "tree": "97a45b7d17bd0f4f5c8a65a9583b66886351cf7a",
      "parents": [
        "56c50f11f4d11cb14d78fe52330efb69d219c62f"
      ],
      "author": {
        "name": "dingdinghua",
        "email": "dingdinghua@nrchpc.ac.cn",
        "time": "Wed Feb 24 12:11:20 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 24 12:11:20 2010 -0500"
      },
      "message": "jbd2: clean up an assertion in jbd2_journal_commit_transaction()\n\ncommit_transaction has the same value as journal-\u003ej_running_transaction,\nso we can simplify the assert statement.\n\nSigned-off-by: dingdinghua \u003cdingdinghua@nrchpc.ac.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ba869023eac8354b17acdcff82b851ea8e7b1809",
      "tree": "c461ae44ed5f9fc45573c14c74548f3f50109547",
      "parents": [
        "aca92ff6f57c000d1b4523e383c8bd6b8269b8b1"
      ],
      "author": {
        "name": "dingdinghua",
        "email": "dingdinghua@nrchpc.ac.cn",
        "time": "Mon Feb 15 16:35:42 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 15 16:35:42 2010 -0500"
      },
      "message": "jbd2: delay discarding buffers in journal_unmap_buffer\n\nDelay discarding buffers in journal_unmap_buffer until\nwe know that \"add to orphan\" operation has definitely been\ncommitted, otherwise the log space of committing transation\nmay be freed and reused before truncate get committed, updates\nmay get lost if crash happens.\n\nSigned-off-by: dingdinghua \u003cdingdinghua@nrchpc.ac.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "71f2be213a0009098819e5c04f75ff19f84f2122",
      "tree": "af3dcbb307a8cccc24670945c14c4b3d32bbd2c0",
      "parents": [
        "1f2acb6017d8528135ec3b01ab7cd2be6ea0630b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 07:45:44 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 07:45:44 2009 -0500"
      },
      "message": "ext4: Add new tracepoint for jbd2_cleanup_journal_tail\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\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": "cc3e1bea5d87635c519da657303690f5538bb4eb",
      "tree": "727b348d0389a2fe6618fb224fe1d81d207668c4",
      "parents": [
        "034fb4c95fc0fed4ec4a50778127b92c6f2aec01"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 06:52:08 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 06:52:08 2009 -0500"
      },
      "message": "ext4, jbd2: Add barriers for file systems with exernal journals\n\nThis is a bit complicated because we are trying to optimize when we\nsend barriers to the fs data disk.  We could just throw in an extra\nbarrier to the data disk whenever we send a barrier to the journal\ndisk, but that\u0027s not always strictly necessary.\n\nWe only need to send a barrier during a commit when there are data\nblocks which are must be written out due to an inode written in\nordered mode, or if fsync() depends on the commit to force data blocks\nto disk.  Finally, before we drop transactions from the beginning of\nthe journal during a checkpoint operation, we need to guarantee that\nany blocks that were flushed out to the data disk are firmly on the\nrust platter before we drop the transaction from the journal.\n\nThanks to Oleg Drokin for pointing out this flaw in ext3/ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\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": "b6e3224fb20954f155e41ec5709b2ab70b50ae2d",
      "tree": "96302d1b564c879779b9cc5d7aae7c3c4471ed14",
      "parents": [
        "a2770d86b33024f71df269fde2de096df89d6a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "message": "Revert \"task_struct: make journal_info conditional\"\n\nThis reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as\nrequested by Alexey:\n\n \"I think I gave a good enough arguments to not merge it.\n  To iterate:\n   * patch makes impossible to start using ext3 on EXT3_FS\u003dn kernels\n     without reboot.\n   * this is done only for one pointer on task_struct\"\n\n  None of config options which define task_struct are tristate directly\n  or effectively.\"\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319",
      "tree": "ce2be0a79fa2e8d8271426f0fc27b25e83c050b4",
      "parents": [
        "8420e7efa1cf155765c6d77c91d3e3547c7aa557"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Dec 14 18:00:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:27 2009 -0800"
      },
      "message": "task_struct: make journal_info conditional\n\njournal_info in task_struct is used in journaling file system only.  So\nintroduce CONFIG_FS_JOURNAL_INFO and make it conditional.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3126c136bc30225d7a43af741778aa50e95e467a",
      "tree": "71e6f0de6e1f4cde200dd632da4d2f61180289bf",
      "parents": [
        "f4d544ee5720d336a8c64f9fd33efb888c302309",
        "8e0eb4011bd73d5f91b215b532f74eef478ef795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "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: (21 commits)\n  ext3: PTR_ERR return of wrong pointer in setup_new_group_blocks()\n  ext3: Fix data / filesystem corruption when write fails to copy data\n  ext4: Support for 64-bit quota format\n  ext3: Support for vfsv1 quota format\n  quota: Implement quota format with 64-bit space and inode limits\n  quota: Move definition of QFMT_OCFS2 to linux/quota.h\n  ext2: fix comment in ext2_find_entry about return values\n  ext3: Unify log messages in ext3\n  ext2: clear uptodate flag on super block I/O error\n  ext2: Unify log messages in ext2\n  ext3: make \"norecovery\" an alias for \"noload\"\n  ext3: Don\u0027t update the superblock in ext3_statfs()\n  ext3: journal all modifications in ext3_xattr_set_handle\n  ext2: Explicitly assign values to on-disk enum of filetypes\n  quota: Fix WARN_ON in lookup_one_len\n  const: struct quota_format_ops\n  ubifs: remove manual O_SYNC handling\n  afs: remove manual O_SYNC handling\n  kill wait_on_page_writeback_range\n  vfs: Implement proper O_SYNC semantics\n  ...\n"
    },
    {
      "commit": "94004ed726f38a841cc51f97c4a3f9eda9fbd0d9",
      "tree": "786689e9fc9e686a5b54c1a1b1efcbb7d043b5ab",
      "parents": [
        "6b2f3d1f769be5779b479c37800229d9a4809fc3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Sep 30 22:16:33 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:50 2009 +0100"
      },
      "message": "kill wait_on_page_writeback_range\n\nAll callers really want the more logical filemap_fdatawait_range interface,\nso convert them to use it and merge wait_on_page_writeback_range into\nfilemap_fdatawait_range.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\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": "0e3d2a6313d03413d93327202a60256d1d726fdc",
      "tree": "3b4165751568e4332edad89a82e76bc6708c8ccd",
      "parents": [
        "71290b368ad5e1e0b0b300c9d5638490a9fd1a2d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 11 09:30:12 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 11 09:30:12 2009 -0400"
      },
      "message": "ext4: Fix async commit mode to be safe by using a barrier\n\nPreviously the journal_async_commit mount option was equivalent to\nusing barrier\u003d0 (and just as unsafe).  This patch fixes it so that we\neliminate the barrier before the commit block (by not using ordered\nmode), and explicitly issuing an empty barrier bio after writing the\ncommit block.  Because of the journal checksum, it is safe to do this;\nif the journal blocks are not all written before a power failure, the\nchecksum in the commit block will prevent the last transaction from\nbeing replayed.\n\nUsing the fs_mark benchmark, using journal_async_commit shows a 50%\nimprovement:\n\nFSUse%        Count         Size    Files/sec     App Overhead\n     8         1000        10240         30.5            28242\n\nvs.\n\nFSUse%        Count         Size    Files/sec     App Overhead\n     8         1000        10240         45.8            28620\n\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9599b0e597d810be9b8f759ea6e9619c4f983c5e",
      "tree": "101bb8b6987cc9c8dddaaac9e7e94e19bbc97f25",
      "parents": [
        "553f9008939638335836eec834f4dea310c17eae"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 17 21:23:17 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 21:23:17 2009 -0400"
      },
      "message": "jbd2: Annotate transaction start also for jbd2_journal_restart()\n\nlockdep annotation for a transaction start has been at the end of\njbd2_journal_start(). But a transaction is also started from\njbd2_journal_restart(). Move the lockdep annotation to start_this_handle()\nwhich covers both cases.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b1f485f20eb9b02cc7d2009556287f3939d480cc",
      "tree": "08406f7f1ea6ec37fce67e5e592c657a00084f3c",
      "parents": [
        "c333e073b7bf76dc819a6b4ce6bef88ee5fa5e50"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@sun.com",
        "time": "Mon Aug 10 22:51:53 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 10 22:51:53 2009 -0400"
      },
      "message": "jbd2: round commit timer up to avoid uncommitted transaction\n\nfix jiffie rounding in jbd commit timer setup code.  Rounding down\ncould cause the timer to be fired before the corresponding transaction\nhas expired.  That transaction can stay not committed forever if no\nnew transaction is created or expicit sync/umount happens.\n\nSigned-off-by: Alex Zhuravlev (Tomas) \u003calex.zhuravlev@sun.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "1fe06ad89255c211fe100d7f690d10b161398df8",
      "tree": "826d32bf081a6729aeaa08fe42422e49a9b86f6f",
      "parents": [
        "2c96ce9f2084c1e04d02883e622f74a537a63aea"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 15 15:10:20 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:16:18 2009 +0200"
      },
      "message": "writeback: get rid of wbc-\u003efor_writepages\n\nIt\u0027s only set, it\u0027s never checked. Kill it.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "f91d1d04171026e56c7e343ee3cdcc801dd85cfb",
      "tree": "282341868e06cb09ecd6c0838ea027feec514c2c",
      "parents": [
        "3e03f9ca6a2599db1823bb0ea24e0845219a0e69"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jul 13 16:16:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 13 16:16:20 2009 -0400"
      },
      "message": "jbd2: Fix a race between checkpointing code and journal_get_write_access()\n\nThe following race can happen:\n\n CPU1                          CPU2\n                               checkpointing code checks the buffer, adds\n                                 it to an array for writeback\n do_get_write_access()\n ...\n lock_buffer()\n unlock_buffer()\n                               flush_batch() submits the buffer for IO\n __jbd2_journal_file_buffer()\n\nSo a buffer under writeout is returned from\ndo_get_write_access(). Since the filesystem code relies on the fact\nthat journaled buffers cannot be written out, it does not take the\nbuffer lock and so it can modify buffer while it is under\nwriteout. That can lead to a filesystem corruption if we crash at the\nright moment.\n\nWe fix the problem by clearing the buffer dirty bit under buffer_lock\neven if the buffer is on BJ_None list. Actually, we clear the dirty\nbit regardless the list the buffer is in and warn about the fact if\nthe buffer is already journalled.\n\nThanks for spotting the problem goes to dingdinghua \u003cdingdinghua85@gmail.com\u003e.\n\nReported-by: dingdinghua \u003cdingdinghua85@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "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"
    }
  ],
  "next": "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f"
}
