)]}'
{
  "log": [
    {
      "commit": "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc",
      "tree": "e5670070f007c4ad5300e93a4e36fa9a802e2bd9",
      "parents": [
        "446066724c3629664e29942a00b0aee0d6b1663a"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "message": "ext4: optimize ext4_ext_convert_to_initialized()\n\nThis patch introduces a fast path in ext4_ext_convert_to_initialized()\nfor the case when the conversion can be performed by transferring\nthe newly initialized blocks from the uninitialized extent into\nan adjacent initialized extent. Doing so removes the expensive\ninvocations of memmove() which occur during extent insertion and\nthe subsequent merge.\n\nIn practice this should be the common case for clients performing\nappend writes into files pre-allocated via\nfallocate(FALLOC_FL_KEEP_SIZE). In such a workload performed via\ndirect IO and when using a suboptimal implementation of memmove()\n(x86_64 prior to the 2.6.39 rewrite), this patch reduces kernel CPU\nconsumption by 32%.\n\nTwo new trace points are added to ext4_ext_convert_to_initialized()\nto offer visibility into its operations. No exit trace point has\nbeen added due to the multiplicity of return points. This can be\nrevisited once the upstream cleanup is backported.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "446066724c3629664e29942a00b0aee0d6b1663a",
      "tree": "277cae3f42649cdd32b4841949e74c5cf9212f1f",
      "parents": [
        "44705754610dbc63503bc7679ff9d9f84978a76f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 27 04:38:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 04:38:18 2011 -0400"
      },
      "message": "jdb/jbd2: factor out common functions from the jbd[2] header files\n\nThe state bits and the lock functions of jbd and jbd2 are\nidentical.  Share them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44705754610dbc63503bc7679ff9d9f84978a76f",
      "tree": "b3b58dbc315562ef16f5382ef2212106e7ce6938",
      "parents": [
        "b3ff05690845911cc40387176f0bc5a7af9ef3ff"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "message": "jbd2: fix build when CONFIG_BUG is not enabled\n\nFix build error when CONFIG_BUG is not enabled:\n\nfs/jbd2/transaction.c:1175:3: error: implicit declaration of function \u0027__WARN\u0027\n\nby changing __WARN() to WARN_ON(), as suggested by\nArnaud Lacombe \u003clacombar@gmail.com\u003e.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Arnaud Lacombe \u003clacombar@gmail.com\u003e\n"
    },
    {
      "commit": "b3ff05690845911cc40387176f0bc5a7af9ef3ff",
      "tree": "9ed6230ae4616d67d85aed9e9b8dc6477642312c",
      "parents": [
        "0a10da73e1fa6fb9b45f1166011ff3b04c27c010"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "message": "ext4: don\u0027t check io-\u003eflag when setting EXT4_STATE_DIO_UNWRITTEN inode state\n\nWhen we want to convert the unitialized extent in direct write, we can\neither do it in ext4_end_io_nolock(AIO case) or in\next4_ext_direct_IO(non AIO case) and EXT4_I(inode)-\u003ecur_aio_dio is a\nguard for ext4_ext_map_blocks to find the right case.  In e9e3bcecf,\nwe mistakenly change it by:\n\n-\t\t\tif (io)\n+\t\t\tif (io \u0026\u0026 !(io-\u003eflag \u0026 EXT4_IO_END_UNWRITTEN)) {\n \t\t\t\tio-\u003eflag \u003d EXT4_IO_END_UNWRITTEN;\n-\t\t\telse\n+\t\t\t\tatomic_inc(\u0026EXT4_I(inode)-\u003ei_aiodio_unwritten);\n+\t\t\t} else\n \t\t\t\text4_set_inode_state(inode,\n \t\t\t\t\t\t     EXT4_STATE_DIO_UNWRITTEN);\n\nSo now if we map 2 blocks, and the first one set the\nEXT_IO_END_UNWRITTEN, the 2nd mapping will set inode state because of\nthe check for the flag. This is wrong.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a10da73e1fa6fb9b45f1166011ff3b04c27c010",
      "tree": "d72a254eb5a9b983e60f6c8b6b1807c0139f123f",
      "parents": [
        "b051d8dc4e1f011e1b0543a875f5861be5d90222"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "message": "ext4: fix a wrong comment in __mb_check_buddy()\n\nThe comment says the bit should be 0, but the after code assert the\nbit to be 1.  This makes people confused, so fix it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b051d8dc4e1f011e1b0543a875f5861be5d90222",
      "tree": "3995e217a162f4d1882f6111ac2f1a8dca64c211",
      "parents": [
        "66a83cde47deb4e8874539326e12e88ed82158d3"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "message": "ext4: remove unused variable in mb_find_extent()\n\nThe variable \u0027ord\u0027 in function mb_find_extent() is redundant, so\nremove it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66a83cde47deb4e8874539326e12e88ed82158d3",
      "tree": "1edcff9e419358784db22b81a82c231f6aebe25f",
      "parents": [
        "ebbe027797f67d34708ccfabdb129886d549f9ce"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:29:21 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:29:21 2011 -0400"
      },
      "message": "ext4: remove unused variable in ext4_mb_generate_from_pa()\n\nThe variable \u0027count\u0027 in function ext4_mb_generate_from_pa() looks\nuseless, so remove it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ebbe027797f67d34708ccfabdb129886d549f9ce",
      "tree": "0195f72d056bc00abd71fce86ce3d6507e1abe76",
      "parents": [
        "fcbb5515825f1bb20b7a6f75ec48bee61416f879"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:14:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:14:27 2011 -0400"
      },
      "message": "ext4: use stream-alloc when mb_group_prealloc set to zero\n\nThe kernel will crash on \n\next4_mb_mark_diskspace_used:\n\tBUG_ON(ac-\u003eac_b_ex.fe_len \u003c\u003d 0);\n\nafter we set /sys/fs/ext4/sda/mb_group_prealloc to zero and create new files in an ext4 filesystem.\n\nThe reason is: ac_b_ex.fe_len also set to zero(mb_group_prealloc) in ext4_mb_normalize_group_request\nbecause the ac_flags contains EXT4_MB_HINT_GROUP_ALLOC.\n\nI think when someone set mb_group_prealloc to zero, it means DO NOT USE GROUP PREALLOCATION,\nso we should set alloc-strategy to STREAM in this case.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fcbb5515825f1bb20b7a6f75ec48bee61416f879",
      "tree": "1fbb172370314beb24129edb3d5e481d22bf7c76",
      "parents": [
        "6f8ff537266ee5396c920fb0c842a21df3055ff3"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Oct 26 05:00:19 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:00:19 2011 -0400"
      },
      "message": "ext4: let ext4_page_mkwrite stop started handle in failure\n\nThe started journal handle should be stopped in failure case.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6f8ff537266ee5396c920fb0c842a21df3055ff3",
      "tree": "a024979a4e8f718289e9bf36fc165b96b68d6209",
      "parents": [
        "f85b287a01237857a50c93868231f7e831581a27"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Wed Oct 26 04:38:59 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 04:38:59 2011 -0400"
      },
      "message": "ext4: handle NULL p_ext in ext4_ext_next_allocated_block()\n\nIn ext4_ext_next_allocated_block(), the path[depth] might\nhave a p_ext that is NULL -- see ext4_ext_binsearch().  In\nsuch a case, dereferencing it will crash the machine.\n\nThis patch checks for p_ext \u003d\u003d NULL in\next4_ext_next_allocated_block() before dereferencinging it.\n\nTested using a hand-crafted an inode with eh_entries \u003d\u003d 0 in\nan extent block, verified that running FIEMAP on it crashes\nwithout this patch, works fine with it.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f85b287a01237857a50c93868231f7e831581a27",
      "tree": "370cc4ce183e6321192ddd60b2a1e056932a235d",
      "parents": [
        "665436175c3ca9d35f135e1ba6bdd63745cff08a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Oct 26 03:42:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:42:36 2011 -0400"
      },
      "message": "ext4: error handling fix in ext4_ext_convert_to_initialized()\n\nWhen allocated is unsigned it breaks the error handling at the end\nof the function when we call:\n\tallocated \u003d ext4_split_extent(...);\n\tif (allocated \u003c 0)\n\t\terr \u003d allocated;\n\nI\u0027ve made it a signed int instead of unsigned.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "665436175c3ca9d35f135e1ba6bdd63745cff08a",
      "tree": "79202f22b3b3f9dc4fc71e2b7e34d056c0f5ee5c",
      "parents": [
        "909a4cf1ffe4b875c87abf38239a9bfd25167e0c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 26 03:32:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:32:07 2011 -0400"
      },
      "message": "ext4: use ext4_reserve_inode_write in ext4_xattr_set_handle\n\next4_mark_iloc_dirty() says:\n\n * The caller must have previously called ext4_reserve_inode_write().\n * Give this, we know that the caller already has write access to iloc-\u003ebh.\n\next4_xattr_set_handle, however, just open-codes it.  May as well use\nthe helper function for consistency.\n\nNo bug here, just tidiness.\n\n(Note: on cleanup path, ext4_reserve_inode_write sets\nthe bh to NULL if it returns an error, and brelse() of \na null bh is handled gracefully).\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "909a4cf1ffe4b875c87abf38239a9bfd25167e0c",
      "tree": "f29e8150d7f4b840b1cc6cd143a3d957604116b9",
      "parents": [
        "cf8039036a6e9c5f7144841925f212a957faf1aa"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@whamcloud.com",
        "time": "Wed Oct 26 03:22:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:22:31 2011 -0400"
      },
      "message": "ext4: avoid setting directory i_nlink to zero\n\nIf a directory with more than EXT4_LINK_MAX subdirectories, the nlink\ncount is set to 1.  Subsequently, if any subdirectories are deleted,\next4_dec_count() decrements the i_nlink count, which may go to 0\ntemporarily before being incremented back to 1.\n\nWhile this is done under i_mutex, which prevents races for directory\nand inode operations that check i_nlink, the temporary i_nlink \u003d\u003d 0\ncase is exposed to userspace via stat() and similar calls that do not\nhold i_mutex.\n\nInstead, change the code to not decrement i_nlink count for any\ndirectories that do not already have i_nlink larger than 2.\n\nReported-by: Cliff White \u003ccliffw@whamcloud.com\u003e\nReviewed-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cf8039036a6e9c5f7144841925f212a957faf1aa",
      "tree": "660c82cd18b64ba27d84edd13336ac42efc04040",
      "parents": [
        "a4e5d88b1b24827f4f6a3cba43228936a67d81ba"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Oct 25 09:18:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 09:18:41 2011 -0400"
      },
      "message": "ext4: prevent stack overrun in ext4_file_open\n\nIn ext4_file_open, the filesystem records the mountpoint of the first\nfile that is opened after mounting the filesystem.  It does this by\nallocating a 64-byte stack buffer, calling d_path() to grab the mount\npoint through which this file was accessed, and then memcpy()ing 64\nbytes into the superblock\u0027s s_last_mounted field, starting from the\nreturn value of d_path(), which is stored as \"cp\".  However, if cp \u003e\nbuf (which it frequently is since path components are prepended\nstarting at the end of buf) then we can end up copying stack data into\nthe superblock.\n\nWriting stack variables into the superblock doesn\u0027t sound like a great\nidea, so use strlcpy instead.  Andi Kleen suggested using strlcpy\ninstead of strncpy.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a4e5d88b1b24827f4f6a3cba43228936a67d81ba",
      "tree": "0f5b0309f290f5fc23478794c6f4adcd7c18896a",
      "parents": [
        "750c9c47a5f9daa88333ac435a1afe4d4b428230"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 25 08:15:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 08:15:12 2011 -0400"
      },
      "message": "ext4: update EOFBLOCKS flag on fallocate properly\n\nEOFBLOCK_FL should be updated if called w/o FALLOCATE_FL_KEEP_SIZE\nCurrently it happens only if new extent was allocated.\n\nTESTCASE:\nfallocate test_file -n -l4096\nfallocate test_file -l4096\nLast fallocate cmd has updated size, but keept EOFBLOCK_FL set. And\nfsck will complain about that.\n\nAlso remove ping pong in ext4_fallocate() in case of new extents,\nwhere ext4_ext_map_blocks() clear EOFBLOCKS bit, and later\next4_falloc_update_inode() restore it again.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "750c9c47a5f9daa88333ac435a1afe4d4b428230",
      "tree": "5782bce0abf292317f0f8a176c23d1dca822a985",
      "parents": [
        "1939dd84b3f52e9c8d1b46dffae2058f16a3ff6a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 25 05:35:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 05:35:05 2011 -0400"
      },
      "message": "ext4: remove messy logic from ext4_ext_rm_leaf\n\n- Both callers(truncate and punch_hole) already aligned left end point\n  so we no longer need split logic here.\n- Remove dead duplicated code.\n- Call ext4_ext_dirty only after we have updated eh_entries, otherwise\n  we\u0027ll loose entries update. Regression caused by d583fb87a3ff0\n  266\u0027th testcase in xfstests (http://patchwork.ozlabs.org/patch/120872)\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1939dd84b3f52e9c8d1b46dffae2058f16a3ff6a",
      "tree": "f1b30614ea4c4e991abb279c9d7d181e207c7148",
      "parents": [
        "45dc63e7d8412546567399b94caeb683af58843e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 22 01:26:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 22 01:26:05 2011 -0400"
      },
      "message": "ext4: cleanup ext4_ext_grow_indepth code\n\nCurrently code make an impression what grow procedure is very complicated\nand some mythical paths, blocks are involved. But in fact grow in depth\nit relatively simple procedure:\n 1) Just create new meta block and copy root data to that block.\n 2) Convert root from extent to index if old depth \u003d\u003d 0\n 3) Update root block pointer\n\nThis patch does:\n - Reorganize code to make it more self explanatory\n - Do not pass path parameter to new_meta_block() in order to\n   provoke allocation from inode\u0027s group because top-level block\n   should site closer to it\u0027s inode, but not to leaf data block.\n\n   [ This happens anyway, due to logic in mballoc; we should drop\n     the path parameter from new_meta_block() entirely.  -- tytso ]\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "45dc63e7d8412546567399b94caeb683af58843e",
      "tree": "62362154d15ef26f8fe0d206004b2b6e247e3c79",
      "parents": [
        "8de49e674a1133ab8998914a6e933ceb4b5f4b07"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Oct 20 20:07:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 20:07:23 2011 -0400"
      },
      "message": "ext4: Allow quota file use root reservation\n\nQuota file is fs\u0027s metadata, so it is reasonable  to permit use\nroot resevation if necessary. This patch fix 265\u0027th xfstest failure\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8de49e674a1133ab8998914a6e933ceb4b5f4b07",
      "tree": "19d7d5de54b166f0d4e0ea9f57d6bcf0b451e52b",
      "parents": [
        "09e0834fb0ce1ea2a63885177015bd5d7d2bc22d"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Thu Oct 20 19:23:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 19:23:08 2011 -0400"
      },
      "message": "ext4: fix the deadlock in mpage_da_map_and_submit()\n\nIf ext4_jbd2_file_inode() in mpage_da_map_and_submit() fails due to\njournal abort, this function returns to caller without unlocking the\npage.  It leads to the deadlock, and the patch fixes this issue by\ncalling mpage_da_submit_io().\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "09e0834fb0ce1ea2a63885177015bd5d7d2bc22d",
      "tree": "52f8efc4bd21cc93d27cfb9071decc6996065071",
      "parents": [
        "ee90d57e20bd4749dda3b14397392b18b89dc3ef"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Thu Oct 20 18:56:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 18:56:10 2011 -0400"
      },
      "message": "ext4: fix deadlock in ext4_ordered_write_end()\n\nIf ext4_jbd2_file_inode() in ext4_ordered_write_end() fails for some\nreasons, this function returns to caller without unlocking the page.\nIt leads to the deadlock, and the patch fixes this issue.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ee90d57e20bd4749dda3b14397392b18b89dc3ef",
      "tree": "907a2b9e6d96b5dc98037568775e04d0c0131dde",
      "parents": [
        "e6705f7c255d1ffae7cd161d0b657296f4dd62fd"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 11:01:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 11:01:51 2011 -0400"
      },
      "message": "ext4: quiet sparse noise about plain integer as NULL pointer\n\nThe third parameter to ext4_free_blocks is a struct buffer_head *.  This\nparameter should be NULL not 0.\n\nThis quiets the sparse noise:\n\nwarning: Using plain integer as NULL pointer\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6705f7c255d1ffae7cd161d0b657296f4dd62fd",
      "tree": "3c604c5c4b5221f794714aa9c8e926726bbb8c6e",
      "parents": [
        "e0cbee3e14195ef07b8ab6ff30930fb93d2e510a"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 10:59:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:59:51 2011 -0400"
      },
      "message": "ext4: add __user decoration to calls of copy_{from,to}_user()\n\nThis quiets the sparse noise:\n\nwarning: incorrect type in argument 2 (different address spaces)\n   expected void const [noderef] \u003casn:1\u003e*from\n   got struct fstrim_range *\u003cnoident\u003e\nwarning: incorrect type in argument 1 (different address spaces)\n   expected void [noderef] \u003casn:1\u003e*to\n   got struct fstrim_range *\u003cnoident\u003e\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e0cbee3e14195ef07b8ab6ff30930fb93d2e510a",
      "tree": "c1bdcede0da0bbc1f06b3335d5c35ebc8011e72b",
      "parents": [
        "1bce63d1a2a2c8929442b79acd4eab2e3db10a0b"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 10:57:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:57:51 2011 -0400"
      },
      "message": "ext4: functions should not be declared extern\n\nThe function declarations in ext4.h are already marked extern, so it\u0027s\nnot necessary to do so in the .c files.\n\nThis quiets the sparse noise:\n\nwarning: function \u0027ext4_flush_completed_IO\u0027 with external linkage has definition\nwarning: function \u0027ext4_init_inode_table\u0027 with external linkage has definition\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1bce63d1a2a2c8929442b79acd4eab2e3db10a0b",
      "tree": "2dfdd7f28440bca2ba5932c708f541c8a6a21d06",
      "parents": [
        "f6f96fdb8c2779f9bd8ed7b0b08405b4439c982b"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Oct 18 10:55:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:55:51 2011 -0400"
      },
      "message": "ext4: add block plug for .writepages\n\nAdd block plug for ext4 .writepages. Though ext4 .writepages\nalready handles request merge very well, block plug is still\nhelpful to reduce block lock contention.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f6f96fdb8c2779f9bd8ed7b0b08405b4439c982b",
      "tree": "310c22fa079a169a824910bd3c3b13464a22c12c",
      "parents": [
        "bdfc230f33a9dab316dcb6be4696ae59e1562e3c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Oct 18 10:53:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:53:51 2011 -0400"
      },
      "message": "ext4: Fix comparison endianness problem in MMP initialization\n\nAs part of startup, the MMP initialization code does this:\n\nmmp-\u003emmp_seq \u003d seq \u003d cpu_to_le32(mmp_new_seq());\n\nNext, mmp-\u003emmp_seq is written out to disk, a delay happens, and then\nthe MMP block is read back in and the sequence value is tested:\n\nif (seq !\u003d le32_to_cpu(mmp-\u003emmp_seq)) {\n\t/* fail the mount */\n\nOn a LE system such as x86, the *le32* functions do nothing and this\nworks.  Unfortunately, on a BE system such as ppc64, this comparison\nbecomes:\n\nif (cpu_to_le32(new_seq) !\u003d le32_to_cpu(cpu_to_le32(new_seq)) {\n\t/* fail the mount */\n\nExcept for a few palindromic sequence numbers, this test always causes\nthe mount to fail, which makes MMP filesystems generally unmountable\non ppc64.  The attached patch fixes this situation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bdfc230f33a9dab316dcb6be4696ae59e1562e3c",
      "tree": "6e5d3d17ed45f78b6597c42648cd57e0b4520103",
      "parents": [
        "215fc6af739d2dfdcad5496248d0d6302eb8a604"
      ],
      "author": {
        "name": "Nikitas Angelinas",
        "email": "nikitasangelinas@gmail.com",
        "time": "Tue Oct 18 10:51:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:51:51 2011 -0400"
      },
      "message": "ext4: MMP: fix error message rate-limiting logic in kmmpd\n\nCurrent logic would print an error message only once, and then\n\u0027failed_writes\u0027 would stay at 1.  Rework the loop to increment\n\u0027failed_writes\u0027 and print the error message every\ns_mmp_update_interval * 60 seconds, as intended according to the\ncomment.\n\nSigned-off-by: Nikitas Angelinas \u003cnikitas_angelinas@xyratex.com\u003e\nSigned-off-by: Andrew Perepechko \u003candrew_perepechko@xyratex.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n"
    },
    {
      "commit": "215fc6af739d2dfdcad5496248d0d6302eb8a604",
      "tree": "919d11683117ec90b623792f475f09017db1f45a",
      "parents": [
        "f472e02669073e4f1a388142bafa0f806fae841c"
      ],
      "author": {
        "name": "Nikitas Angelinas",
        "email": "nikitasangelinas@gmail.com",
        "time": "Tue Oct 18 10:49:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:49:51 2011 -0400"
      },
      "message": "ext4: MMP: kmmpd should use nodename from init_uts_ns.name, not sysname\n\nsysname holds \"Linux\" by default, i.e. what appears when doing a \"uname\n-s\"; nodename should be used to print the machine\u0027s hostname, i.e. what\nis returned when doing a \"uname -n\" or \"hostname\", and what\ngethostname(2)/sethostname(2) manipulate, in order to notify the\nadministrator of the node which is contending to mount the filesystem.\n\nAcked-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: Nikitas Angelinas \u003cnikitas_angelinas@xyratex.com\u003e\nSigned-off-by: Andrew Perepechko \u003candrew_perepechko@xyratex.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f472e02669073e4f1a388142bafa0f806fae841c",
      "tree": "766f26be99c1ffa5d3f0c93e233a60cc52e74094",
      "parents": [
        "d44651d0f922b7aaeddd9fc04f2f5700a65983dd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 17 10:13:46 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 17 10:13:46 2011 -0400"
      },
      "message": "ext4: avoid stamping on other memories in ext4_ext_insert_index()\n\nAdd a sanity check to make sure ix hasn\u0027t gone beyond the valid bounds\nof the extent block.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d44651d0f922b7aaeddd9fc04f2f5700a65983dd",
      "tree": "31387f8acab384d3211903d0abe6232fd7117fe6",
      "parents": [
        "6ee3b2122431fc75015c6114d4749de76422452b"
      ],
      "author": {
        "name": "Fabrice Jouhaud",
        "email": "yargil@free.fr",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "message": "ext4: fix ext4 so it works without CONFIG_PROC_FS\n\nThis fixes a bug which was introduced in dd68314ccf3fb.  The problem\ncame from the test of the return value of proc_mkdir which is always\nfalse without procfs, and this would initialization of ext4.\n\nSigned-off-by: Fabrice Jouhaud \u003cyargil@free.fr\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6ee3b2122431fc75015c6114d4749de76422452b",
      "tree": "f2e81738f94cde81d1e567e1597f8ce5b97dd0c2",
      "parents": [
        "7fd59c83b05dc1b8af2be4d991ee376f782cd8b0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 16:08:34 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 16:08:34 2011 -0400"
      },
      "message": "ext4: use le32_to_cpu for ext4_extent_idx.ei_block in ext4_ext_search_left()\n\next4_extent_idx.e_block is __le32, so use le32_to_cpu() in\next4_ext_search_left().\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7fd59c83b05dc1b8af2be4d991ee376f782cd8b0",
      "tree": "0d320a397b687f822167749afbb11d89d9f21a66",
      "parents": [
        "df3ab17072c31fbd394614711772682f0a956a2c"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 15:56:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 15:56:35 2011 -0400"
      },
      "message": "ext4: remove the obsolete/broken EXT4_IOC_WAIT_FOR_READONLY ioctl\n\nThere are no users of the EXT4_IOC_WAIT_FOR_READONLY ioctl, and it is\nalso broken.  No one sets the set_ro_timer, no one wakes up us and our\nstate is set to TASK_INTERRUPTIBLE not RUNNING.  So remove it.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "df3ab17072c31fbd394614711772682f0a956a2c",
      "tree": "bb9aa8d05dcbb6de15b79c0afd8c79a854a3d345",
      "parents": [
        "4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 15:53:49 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 15:53:49 2011 -0400"
      },
      "message": "ext4: fix the comment describing ext4_ext_search_right()\n\nThe comment describing what ext4_ext_search_right() does is incorrect.\nWe return 0 in *phys when *logical is the \u0027largest\u0027 allocated block,\nnot smallest.  \n\nFix a few other typos while we\u0027re at it.\n\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3",
      "tree": "b978be1044d72ab78739edd441385253f6c932ac",
      "parents": [
        "af909a57fde821627282204ba43f27331342bf26"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "message": "ext4: remove deprecated oldalloc\n\nFor a long time now orlov is the default block allocator in the\next4. It performs better than the old one and no one seems to claim\notherwise so we can safely drop it and make oldalloc and orlov mount\noption deprecated.\n\nThis is a part of the effort to reduce number of ext4 options hence the\ntest matrix.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "af909a57fde821627282204ba43f27331342bf26",
      "tree": "69780ac48b0e572b19771991f989dd9c04bd8f78",
      "parents": [
        "dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:01:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:01:08 2011 -0400"
      },
      "message": "ext4: documentation: remove acl and user_xattr mount options\n\nAcl and user_xattr mount options are no longer needed since those\nfeatures are enabled by default if configured in (seee commit\nea6633369458992241599c9d9ebadffaeddec164). We can not easily deprecate\nmount options itself (since it is probably too early), but we can\nremove it from documentation first.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4",
      "tree": "a15433ea17d943116c809c1a847e45a387120f19",
      "parents": [
        "7aa0baeaba4afc4fbed7aad2812a1116e6b0adcd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "message": "ext4: Free resources in some error path in ext4_fill_super\n\nSome of the error path in ext4_fill_super don\u0027t release the\nresouces properly. So this patch just try to release them\nin the right way.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7aa0baeaba4afc4fbed7aad2812a1116e6b0adcd",
      "tree": "a7237b599107d0adf137c465734d4b67ad83d6dd",
      "parents": [
        "5356f2615cd558c57a1f7d7528d1ad4de3640d96"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Oct 06 10:22:28 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 06 10:22:28 2011 -0400"
      },
      "message": "ext4: Free resources in ext4_mb_init()\u0027s error paths\n\nIn commit 79a77c5ac, we move ext4_mb_init_backend after the allocation\nof s_locality_group to avoid memory leak in error path, but there are\nstill some other error paths in ext4_mb_init that need to do the same\nwork. So this patch adds all the error patch for ext4_mb_init. And all\nthe pointers are reset to NULL in case the caller may double free them.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5356f2615cd558c57a1f7d7528d1ad4de3640d96",
      "tree": "e3590bf14d9a21c4eb365105886382bfb1131b95",
      "parents": [
        "d8990240d8c911064447f8aa5a440f9345a6d692"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:20:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:20:51 2011 -0400"
      },
      "message": "ext4: attempt to fix race in bigalloc code path\n\nCurrently, there exists a race between delayed allocated writes and\nthe writeback when bigalloc feature is in use. The race was because we\nwanted to determine what blocks in a cluster are under delayed\nallocation and we were using buffer_delayed(bh) check for it. But, the\nwriteback codepath clears this bit without any synchronization which\nresulted in a race and an ext4 warning similar to:\n\nEXT4-fs (ram1): ext4_da_update_reserve_space: ino 13, used 1 with only 0\n\t\treserved data blocks\n\nThe race existed in two places.\n(1) between ext4_find_delalloc_range() and ext4_map_blocks() when called from\n    writeback code path.\n(2) between ext4_find_delalloc_range() and ext4_da_get_block_prep() (where\n    buffer_delayed(bh) is set.\n\nTo fix (1), this patch introduces a new buffer_head state bit -\nBH_Da_Mapped.  This bit is set under the protection of\nEXT4_I(inode)-\u003ei_data_sem when we have actually mapped the delayed\nallocated blocks during the writeout time. We can now reliably check\nfor this bit inside ext4_find_delalloc_range() to determine whether\nthe reservation for the blocks have already been claimed or not.\n\nTo fix (2), it was necessary to set buffer_delay(bh) under the\nprotection of i_data_sem.  So, I extracted the very beginning of\next4_map_blocks into a new function - ext4_da_map_blocks() - and\nperformed the required setting of bh_delay bit and the quota\nreservation under the protection of i_data_sem.  These two fixes makes\nthe checking of buffer_delay(bh) and buffer_da_mapped(bh) consistent,\nthus removing the race.\n\nTested: I was able to reproduce the problem by running \u0027dd\u0027 and\n\u0027fsync\u0027 in parallel. Also, xfstests sometimes used to reproduce this\nrace. After the fix both my test and xfstests were successful and no\nrace (warning message) was observed.\n\nGoogle-Bug-Id: 4997027\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "d8990240d8c911064447f8aa5a440f9345a6d692",
      "tree": "c12cda27583eb9616d91ec38fdfd79c6eb490bd5",
      "parents": [
        "df55c99dc8ee4c3c886a5edc8a4aa6b131c95afc"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:18:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:18:51 2011 -0400"
      },
      "message": "ext4: add some tracepoints in ext4/extents.c\n\nThis patch adds some tracepoints in ext4/extents.c and updates a tracepoint in\next4/inode.c.\n\nTested: Built and ran the kernel and verified that these tracepoints work.\nAlso ran xfstests.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n    \n\n"
    },
    {
      "commit": "df55c99dc8ee4c3c886a5edc8a4aa6b131c95afc",
      "tree": "6e5ea5a435659fa2dee7410f0b0196bdaf3a2054",
      "parents": [
        "e7d5f3156e6827970f75ab27ad7eb0155826eb0b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "message": "ext4: rename ext4_has_free_blocks() to ext4_has_free_clusters()\n\nRename the function so it is more clear what is going on.  Also rename\nthe various variables so it\u0027s clearer what\u0027s happening.\n\nAlso fix a missing blocks to cluster conversion when reading the\nnumber of reserved blocks for root.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e7d5f3156e6827970f75ab27ad7eb0155826eb0b",
      "tree": "7eab0a0660052e4a3fe1bba57a869138fb29e7f4",
      "parents": [
        "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "message": "ext4: rename ext4_claim_free_blocks() to ext4_claim_free_clusters()\n\nThis function really claims a number of free clusters, not blocks, so\nrename it so it\u0027s clearer what\u0027s going on.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb",
      "tree": "ace05de33bb5d1e2062724818d57d89eae66004f",
      "parents": [
        "5dee54372c1ea15ab482b959634cda8c01b042bd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "message": "ext4: rename ext4_free_blocks_after_init() to ext4_free_clusters_after_init()\n\nThis function really returns the number of clusters after initializing\nan uninitalized block bitmap has been initialized.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dee54372c1ea15ab482b959634cda8c01b042bd",
      "tree": "512da0144f6a9f86b5817569d0521b60cddee4c9",
      "parents": [
        "021b65bb1e4e4b625c80bbb82651e5e155721ef3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "message": "ext4: rename ext4_count_free_blocks() to ext4_count_free_clusters()\n\nThis function really counts the free clusters reported in the block\ngroup descriptors, so rename it to reduce confusion.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "021b65bb1e4e4b625c80bbb82651e5e155721ef3",
      "tree": "e1826a0ec395ac2acf46c43113f2c6a64a5165d0",
      "parents": [
        "6f16b60690ba04cf476480a6f19b204e4b95b4a6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "message": "ext4: Rename ext4_free_blks_{count,set}() to refer to clusters\n\nThe field bg_free_blocks_count_{lo,high} in the block group\ndescriptor has been repurposed to hold the number of free clusters for\nbigalloc functions.  So rename the functions so it makes it easier to\nread and audit the block allocation and block freeing code.\n\nNote: at this point in bigalloc development we doesn\u0027t support\nonline resize, so this also makes it really obvious all of the places\nwe need to fix up to add support for online resize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6f16b60690ba04cf476480a6f19b204e4b95b4a6",
      "tree": "dbb3efd3912e0a81ea8f439deb561bfc9fc2a9bd",
      "parents": [
        "7b415bf60f6afb0499fd3dc0ee33444f54e28567"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:06:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:06:51 2011 -0400"
      },
      "message": "ext4: enable mounting bigalloc as read/write\n\nNow that we have implemented all of the changes needed for bigalloc,\nwe can finally enable it!\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7b415bf60f6afb0499fd3dc0ee33444f54e28567",
      "tree": "9c64fef2b8d60ce64865af6e4c2cc6008026e28c",
      "parents": [
        "27baebb849d46d901e756e6502b0a65a62e43771"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "message": "ext4: Fix bigalloc quota accounting and i_blocks value\n\nWith bigalloc changes, the i_blocks value was not correctly set (it was still\nset to number of blocks being used, but in case of bigalloc, we want i_blocks\nto represent the number of clusters being used). Since the quota subsystem sets\nthe i_blocks value, this patch fixes the quota accounting and makes sure that\nthe i_blocks value is set correctly.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "27baebb849d46d901e756e6502b0a65a62e43771",
      "tree": "ed72a295f62656beb29038358d99902b55b3438f",
      "parents": [
        "f975d6bcc7a698a10cc755115e27d3612dcfe322"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:02:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:02:51 2011 -0400"
      },
      "message": "ext4: tune mballoc\u0027s default group prealloc size for bigalloc file systems\n\nThe default group preallocation size had been previously set to 512\nblocks/clusters, regardless of the block/cluster size.  This is\nprobably too big for large cluster sizes.  So adjust the default so\nthat it is 2 megabytes or 32 clusters, whichever is larger.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f975d6bcc7a698a10cc755115e27d3612dcfe322",
      "tree": "859f688a1962209ef535ca79cf31433c7bc57135",
      "parents": [
        "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "message": "ext4: teach ext4_statfs() to deal with clusters if bigalloc is enabled\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5",
      "tree": "7f83cc8e52b5f2edc5d89d2d1808d0972831f9bf",
      "parents": [
        "5704265188ffe4290ed73b3cb685206c3ed8209d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "message": "ext4: convert the free_blocks field in s_flex_groups to be free_clusters\n\nConvert the free_blocks to be free_clusters to make the final revised\nbigalloc changes easier to read/understand.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "5704265188ffe4290ed73b3cb685206c3ed8209d",
      "tree": "6bc51bea59625b2a7c8e4b74bbb66884371f74dd",
      "parents": [
        "0aa060000e83ca3d09ddc446a7174fb0820d99bc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "message": "ext4: convert s_{dirty,free}blocks_counter to s_{dirty,free}clusters_counter\n\nConvert the percpu counters s_dirtyblocks_counter and\ns_freeblocks_counter in struct ext4_super_info to be\ns_dirtyclusters_counter and s_freeclusters_counter.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0aa060000e83ca3d09ddc446a7174fb0820d99bc",
      "tree": "c80077aed7b1df852d556965e2b36d3c956cdabe",
      "parents": [
        "4d33b1ef10995d7ba6191d67456202c697a92a32"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:54:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:54:51 2011 -0400"
      },
      "message": "ext4: teach ext4_ext_truncate() about the bigalloc feature\n\nWhen we are truncating (as opposed unlinking) a file, we need to worry\nabout partial truncates of a file, especially in the light of sparse\nfiles.  The changes here make sure that arbitrary truncates of sparse\nfiles works correctly.  Yeah, it\u0027s messy.\n\nNote that these functions will need to be revisted when the punch\nioctl is integrated --- in fact this commit will probably have merge\nconflicts with the punch changes which Allison Henders and the IBM LTC\nhave been working on.  I will need to fix this up when either patch\nhits mainline.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4d33b1ef10995d7ba6191d67456202c697a92a32",
      "tree": "3e47753f9ac48e9f4c80dac0b69bce9fb4ac6f52",
      "parents": [
        "84130193e0e6568dfdfb823f0e1e19aec80aff6e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:52:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:52:51 2011 -0400"
      },
      "message": "ext4: teach ext4_ext_map_blocks() about the bigalloc feature\n\nIf we need to allocate a new block in ext4_ext_map_blocks(), the\nfunction needs to see if the cluster has already been allocated.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "84130193e0e6568dfdfb823f0e1e19aec80aff6e",
      "tree": "799534ea6cd551ba346e32da2ee2f363851a3257",
      "parents": [
        "53accfa9f819c80056db6f03f9c5cfa4bcba1ed8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:50:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:50:51 2011 -0400"
      },
      "message": "ext4: teach ext4_free_blocks() about bigalloc and clusters\n\nThe ext4_free_blocks() function now has two new flags that indicate\nwhether a partial cluster at the beginning or the end of the block\nextents should be freed or not.  That will be up the caller (i.e.,\ntruncate), who can figure out whether partial clusters at the\nbeginning or the end of a block range can be freed.\n\nWe also have to update the ext4_mb_free_metadata() and\nrelease_blocks_on_commit() machinery to be cluster-based, since it is\nused by ext4_free_blocks().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "53accfa9f819c80056db6f03f9c5cfa4bcba1ed8",
      "tree": "a68dcd8ea8d286e07d31d4541311819a0082f78c",
      "parents": [
        "3212a80a58062056bb922811071062be58d8fee1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:48:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:48:51 2011 -0400"
      },
      "message": "ext4: teach mballoc preallocation code about bigalloc clusters\n\nIn most of mballoc.c, we do everything in units of clusters, since the\nblock allocation bitmaps and buddy bitmaps are all denominated in\nclusters.  The one place where we do deal with absolute block numbers\nis in the code that handles the preallocation regions, since in the\ncase of inode-based preallocation regions, the start of the\npreallocation region can\u0027t be relative to the beginning of the group.\n\nSo this adds a bit of complexity, where pa_pstart and pa_lstart are\nblock numbers, while pa_free, pa_len, and fe_len are denominated in\nunits of clusters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3212a80a58062056bb922811071062be58d8fee1",
      "tree": "0ae97cdc351f18e9090c8b33505eabe59c3da21c",
      "parents": [
        "d5b8f31007a93777cfb0603b665858fb7aebebfc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "message": "ext4: convert block group-relative offsets to use clusters\n\nCertain parts of the ext4 code base, primarily in mballoc.c, use a\nblock group number and offset from the beginning of the block group.\nThis offset is invariably used to index into the allocation bitmap, so\nchange the offset to be denominated in units of clusters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d5b8f31007a93777cfb0603b665858fb7aebebfc",
      "tree": "19d9dfed9314132302b8e3036a2ada26f9809036",
      "parents": [
        "fd034a84e1ea5c8c8d159cd2089c32e792c269b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "message": "ext4: bigalloc changes to block bitmap initialization functions\n\nAdd bigalloc support to ext4_init_block_bitmap() and\next4_free_blocks_after_init().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd034a84e1ea5c8c8d159cd2089c32e792c269b0",
      "tree": "5992d541a005137a57a44921fd1be6311ee841d2",
      "parents": [
        "49f7f9af4bb4d7972f3a35a74877937fec9f622d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "message": "ext4: split out ext4_free_blocks_after_init()\n\nThe function ext4_free_blocks_after_init() used to be a #define of\next4_init_block_bitmap().  This actually made it difficult to\nunderstand how the function worked, and made it hard make changes to\nsupport clusters.  So as an initial cleanup, I\u0027ve separated out the\nfunctionality of initializing block bitmap from calculating the number\nof free blocks in the new block group.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "49f7f9af4bb4d7972f3a35a74877937fec9f622d",
      "tree": "19ef79ae359e6524a1d8d9d303005c9e5dbf813c",
      "parents": [
        "7137d7a48e2213eb1f6d6529da14c2ed3706b795"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "message": "ext4: factor out block group accounting into functions\n\nThis makes it easier to understand how ext4_init_block_bitmap() works,\nand it will assist when we split out ext4_free_blocks_after_init() in\nthe next commit.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7137d7a48e2213eb1f6d6529da14c2ed3706b795",
      "tree": "7c5c164dc1e505129fefcac5c61b208fa1180a90",
      "parents": [
        "bab08ab9646288f1b0b72a7aaeecdff94bd62c18"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:38:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:38:51 2011 -0400"
      },
      "message": "ext4: convert instances of EXT4_BLOCKS_PER_GROUP to EXT4_CLUSTERS_PER_GROUP\n\nChange the places in fs/ext4/mballoc.c where EXT4_BLOCKS_PER_GROUP are\nused to indicate the number of bits in a block bitmap (which is really\na cluster allocation bitmap in bigalloc file systems).  There are\nstill some places in the ext4 codebase where usage of\nEXT4_BLOCKS_PER_GROUP needs to be audited/fixed, in code paths that\naren\u0027t used given the initial restricted assumptions for bigalloc.\nThese will need to be fixed before we can relax those restrictions.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bab08ab9646288f1b0b72a7aaeecdff94bd62c18",
      "tree": "e301377f1ce9093a44b2cfb331439e15d79789ed",
      "parents": [
        "281b59959707dfae03ce038cdf231bf4904e170c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "message": "ext4: enforce bigalloc restrictions (e.g., no online resizing, etc.)\n\nAt least initially if the bigalloc feature is enabled, we will not\nsupport non-extent mapped inodes, online resizing, online defrag, or\nthe FITRIM ioctl.  This simplifies the initial implementation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "281b59959707dfae03ce038cdf231bf4904e170c",
      "tree": "3a6b36d060a41b19351c29c51d079149cae7511c",
      "parents": [
        "7c2e70879fc0949b4220ee61b7c4553f6976a94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "message": "ext4: read-only support for bigalloc file systems\n\nThis adds supports for bigalloc file systems.  It teaches the mount\ncode just enough about bigalloc superblock fields that it will mount\nthe file system without freaking out that the number of blocks per\ngroup is too big.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7c2e70879fc0949b4220ee61b7c4553f6976a94d",
      "tree": "5eea688d4ca50ec27e9cf59144f257e1683cfeb7",
      "parents": [
        "02fac1297eb3f471a27368271aadd285548297b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "message": "ext4: add ext4-specific kludge to avoid an oops after the disk disappears\n\nThe del_gendisk() function uninitializes the disk-specific data\nstructures, including the bdi structure, without telling anyone\nelse.  Once this happens, any attempt to call mark_buffer_dirty()\n(for example, by ext4_commit_super), will cause a kernel OOPS.\n\nFix this for now until we can fix things in an architecturally correct\nway.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "02fac1297eb3f471a27368271aadd285548297b0",
      "tree": "d0008f0aa889dba759cb780e8e805b30953083cf",
      "parents": [
        "189e868fa8fdca702eb9db9d8afc46b5cb9144c9"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Tue Sep 06 21:53:01 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 21:53:01 2011 -0400"
      },
      "message": "ext4: fix partial page writes\n\nWhile running extended fsx tests to verify the preceeding patches,\na similar bug was also found in the write operation\n\nWhen ever a write operation begins or ends in a hole,\nor extends EOF, the partial page contained in the hole\nor beyond EOF needs to be zeroed out.\n\nTo correct this the new ext4_discard_partial_page_buffers_no_lock\nroutine is used to zero out the partial page, but only for buffer\nheads that are already unmapped.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "189e868fa8fdca702eb9db9d8afc46b5cb9144c9",
      "tree": "5b226cfe59cc9351b9d870a5c31cdfe4f5544652",
      "parents": [
        "decbd919f4bb9cb698486880c026c4104b13d3c3"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Tue Sep 06 21:49:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 21:49:44 2011 -0400"
      },
      "message": "ext4: fix fsx truncate failure\n\nWhile running extended fsx tests to verify the first\ntwo patches, a similar bug was also found in the\ntruncate operation.\n\nThis bug happens because the truncate routine only zeros\nthe unblock aligned portion of the last page.  This means\nthat the block aligned portions of the page appearing after\ni_size are left unzeroed, and the buffer heads still mapped.\n\nThis bug is corrected by using ext4_discard_partial_page_buffers\nin the truncate routine to zero the partial page and unmap\nthe buffer headers.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "decbd919f4bb9cb698486880c026c4104b13d3c3",
      "tree": "0181b9bcb627531ddd0601b751f6b968e28cdc9a",
      "parents": [
        "d2159fb7b8bac12684aabdf41d84b56da9f5c062"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 02:37:06 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 02:37:06 2011 -0400"
      },
      "message": "ext4: only call ext4_jbd2_file_inode when an inode has been extended\n\nIn delayed allocation mode, it\u0027s important to only call\next4_jbd2_file_inode when the file has been extended.  This is\nnecessary to avoid a race which first got introduced in commit\n678aaf481, but which was made much more common with the introduction\nof the \"punch hole\" functionality.  (Especially when dioread_nolock\nwas enabled; when I could reliably reproduce this problem with\nxfstests #74.)\n\nThe race is this: If while trying to writeback a delayed allocation\ninode, there is a need to map delalloc blocks, and we run out of space\nin the journal, *and* at the same time the inode is already on the\ncommitting transaction\u0027s t_inode_list (because for example while doing\nthe punch hole operation, ext4_jbd2_file_inode() is called), then the\ncommit operation will wait for the inode to finish all of its pending\nwritebacks by calling filemap_fdatawait(), but since that inode has\none or more pages with the PageWriteback flag set, the commit\noperation will wait forever, and the so the writeback of the inode can\nnever take place, and the kjournald thread and the writeback thread\nend up waiting for each other --- forever.\n\nIt\u0027s important at this point to recall why an inode is placed on the\nt_inode_list; it is to provide the data\u003dordered guarantees that we\ndon\u0027t end up exposing stale data.  In the case where we are truncating\nor punching a hole in the inode, there is no possibility that stale\ndata could be exposed in the first place, so we don\u0027t need to put the\ninode on the t_inode_list!\n\nThe right long-term fix is to get rid of data\u003dordered mode altogether,\nand only update the extent tree or indirect blocks after the data has\nbeen written.  Until then, this change will also avoid some\nunnecessary waiting in the commit operation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d2159fb7b8bac12684aabdf41d84b56da9f5c062",
      "tree": "32c061d113405936a3dc37ad47018b88393c1e66",
      "parents": [
        "9ea7a0df63630ad8197716cd313ea66e28906fc0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "message": "jbd2: use gfp_t instead of int\n\nThis silences some Sparse warnings:\nfs/jbd2/transaction.c:135:69: warning: incorrect type in argument 2 (different base types)\nfs/jbd2/transaction.c:135:69:    expected restricted gfp_t [usertype] flags\nfs/jbd2/transaction.c:135:69:    got int [signed] gfp_mask\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9ea7a0df63630ad8197716cd313ea66e28906fc0",
      "tree": "2f9cb8bb3f4c709aa666c7863b496f2757b261fb",
      "parents": [
        "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "message": "jbd2: add debugging information to jbd2_journal_dirty_metadata()\n\nAdd debugging information in case jbd2_journal_dirty_metadata() is\ncalled with a buffer_head which didn\u0027t have\njbd2_journal_get_write_access() called on it, or if the journal_head\nhas the wrong transaction in it.  In addition, return an error code.\nThis won\u0027t change anything for ocfs2, which will BUG_ON() the non-zero\nexit code.\n\nFor ext4, the caller of this function is ext4_handle_dirty_metadata(),\nand on seeing a non-zero return code, will call __ext4_journal_stop(),\nwhich will print the function and line number of the (buggy) calling\nfunction and abort the journal.  This will allow us to recover instead\nof bug halting, which is better from a robustness and reliability\npoint of view.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134",
      "tree": "5fb1be2d593fae0bb1a566397c58dc4f7ce010f2",
      "parents": [
        "2be4751b21ae1cacb002da48cfc5bf6743fee8c1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "message": "ext4: improve handling of conflicting mount options\n\nIf the user explicitly specifies conflicting mount options for\ndelalloc or dioread_nolock and data\u003djournal, fail the mount, instead\nof printing a warning and continuing (since many user\u0027s won\u0027t look at\ndmesg and notice the warning).\n\nAlso, print a single warning that data\u003djournal implies that delayed\nallocation is not on by default (since it\u0027s not supported), and\nfurthermore that O_DIRECT is not supported.  Improve the text in\nDocumentation/filesystems/ext4.txt so this is clear there as well.\n\nSimilarly, if the dioread_nolock mount option is specified when the\nfile system block size !\u003d PAGE_SIZE, fail the mount instead of\nprinting a warning message and ignoring the mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2be4751b21ae1cacb002da48cfc5bf6743fee8c1",
      "tree": "4a7ce445a963d54c572f1216b90bdef2df91cdeb",
      "parents": [
        "ba06208a1315ab2d2217e09c79582b886c9f629e"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:56:52 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:56:52 2011 -0400"
      },
      "message": "ext4: fix 2nd xfstests 127 punch hole failure\n\nThis patch fixes a second punch hole bug found by xfstests 127.\n\nThis bug happens because punch hole needs to flush the pages\nof the hole to avoid race conditions.  But if the end of the\nhole is in the same page as i_size, the buffer heads beyond\ni_size need to be unmapped and the page needs to be zeroed\nafter it is flushed.\n\nTo correct this, the new ext4_discard_partial_page_buffers\nroutine is used to zero and unmap the partial page\nbeyond i_size if the end of the hole appears in the same\npage as i_size.\n\nThe code has also been optimized to set the end of the hole\nto the page after i_size if the specified hole exceeds i_size,\nand the code that flushes the pages has been simplified.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ba06208a1315ab2d2217e09c79582b886c9f629e",
      "tree": "08410f6be28c6811aa17b1cde65cc31e79e01e83",
      "parents": [
        "4e96b2dbbf1d7e81f22047a50f862555a6cb87cb"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:55:59 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:55:59 2011 -0400"
      },
      "message": "ext4: fix xfstests 75, 112, 127 punch hole failure\n\nThis patch addresses a bug found by xfstests 75, 112, 127\nwhen blocksize \u003d 1k\n\nThis bug happens because the punch hole code only zeros\nout non block aligned regions of the page.  This means that if the\nblocks are smaller than a page, then the block aligned regions of\nthe page inside the hole are left un-zeroed, and their buffer heads\nare still mapped.  This bug is corrected by using\next4_discard_partial_page_buffers to properly zero the partial page\nat the head and tail of the hole, and unmap the corresponding buffer\nheads\n\nThis patch also addresses a bug reported by Lukas while working on a\nnew patch to add discard support for loop devices using punch hole.\nThe bug happened because of the first and last block number\nneeded to be cast to a larger data type before calculating the\nbyte offset, but since now we only need the byte offsets of the\npages, we no longer even need to be calculating the byte offsets\nof the blocks.  The code to do the block offset calculations is\nremoved in this patch.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4e96b2dbbf1d7e81f22047a50f862555a6cb87cb",
      "tree": "1f9c1d6712d1d16d3c6d04635019d2d1774c54d4",
      "parents": [
        "5930ea643805feb50a2f8383ae12eb6f10935e49"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:51:09 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:51:09 2011 -0400"
      },
      "message": "ext4: Add new ext4_discard_partial_page_buffers routines\n\nThis patch adds two new routines: ext4_discard_partial_page_buffers\nand ext4_discard_partial_page_buffers_no_lock.\n\nThe ext4_discard_partial_page_buffers routine is a wrapper\nfunction to ext4_discard_partial_page_buffers_no_lock.\nThe wrapper function locks the page and passes it to\next4_discard_partial_page_buffers_no_lock.\nCalling functions that already have the page locked can call\next4_discard_partial_page_buffers_no_lock directly.\n\nThe ext4_discard_partial_page_buffers_no_lock function\nzeros a specified range in a page, and unmaps the\ncorresponding buffer heads.  Only block aligned regions of the\npage will have their buffer heads unmapped.  Unblock aligned regions\nwill be mapped if needed so that they can be updated with the\npartial zero out.  This function is meant to\nbe used to update a page and its buffer heads to be zeroed\nand unmapped when the corresponding blocks have been released\nor will be released.\n\nThis routine is used in the following scenarios:\n* A hole is punched and the non page aligned regions\n  of the head and tail of the hole need to be discarded\n\n* The file is truncated and the partial page beyond EOF needs\n  to be discarded\n\n* The end of a hole is in the same page as EOF.  After the\n  page is flushed, the partial page beyond EOF needs to be\n  discarded.\n\n* A write operation begins or ends inside a hole and the partial\n  page appearing before or after the write needs to be discarded\n\n* A write operation extends EOF and the partial page beyond EOF\n  needs to be discarded\n\nThis function takes a flag EXT4_DISCARD_PARTIAL_PG_ZERO_UNMAPPED\nwhich is used when a write operation begins or ends in a hole.\nWhen the EXT4_DISCARD_PARTIAL_PG_ZERO_UNMAPPED flag is used, only\nbuffer heads that are already unmapped will have the corresponding\nregions of the page zeroed.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5930ea643805feb50a2f8383ae12eb6f10935e49",
      "tree": "9052dd47da0d9d6796342a07ebffe0329647b9cb",
      "parents": [
        "f9287c1f2d329f4d78a3bbc9cf0db0ebae6f146a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:02:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:02:51 2011 -0400"
      },
      "message": "ext4: call ext4_handle_dirty_metadata with correct inode in ext4_dx_add_entry\n\next4_dx_add_entry manipulates bh2 and frames[0].bh, which are two buffer_heads\nthat point to directory blocks assigned to the directory inode.  However, the\nfunction calls ext4_handle_dirty_metadata with the inode of the file that\u0027s\nbeing added to the directory, not the directory inode itself.  Therefore,\ncorrect the code to dirty the directory buffers with the directory inode, not\nthe file inode.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f9287c1f2d329f4d78a3bbc9cf0db0ebae6f146a",
      "tree": "a7bb496f63a0b65e8edbdc72b596f64dd9ecc1b6",
      "parents": [
        "bcaa992975041e40449be8c010c26192b8c8b409"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed Aug 31 12:00:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:00:51 2011 -0400"
      },
      "message": "ext4: ext4_mkdir should dirty dir_block with newly created directory inode\n\next4_mkdir calls ext4_handle_dirty_metadata with dir_block and the inode \"dir\".\nUnfortunately, dir_block belongs to the newly created directory (which is\n\"inode\"), not the parent directory (which is \"dir\").  Fix the incorrect\nassociation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bcaa992975041e40449be8c010c26192b8c8b409",
      "tree": "fc6db16042c92641dc8179b504033cb9cf73e744",
      "parents": [
        "84ebd795613488992b273220c2937d575d27d2a9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed Aug 31 11:58:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:58:51 2011 -0400"
      },
      "message": "ext4: ext4_rename should dirty dir_bh with the correct directory\n\nWhen ext4_rename performs a directory rename (move), dir_bh is a\nbuffer that is modified to update the \u0027..\u0027 link in the directory being\nmoved (old_inode).  However, ext4_handle_dirty_metadata is called with\nthe old parent directory inode (old_dir) and dir_bh, which is\nincorrect because dir_bh does not belong to the parent inode.  Fix\nthis error.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "84ebd795613488992b273220c2937d575d27d2a9",
      "tree": "102201c078c73d911f0a1eb656ee057fe2806489",
      "parents": [
        "1cd9f0976aa4606db8d6e3dc3edd0aca8019372a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:56:51 2011 -0400"
      },
      "message": "ext4: fake direct I/O mode for data\u003djournal\n\nCurrently attempts to open a file with O_DIRECT in data\u003djournal mode\ncauses the open to fail with -EINVAL.  This makes it very hard to test\ndata\u003djournal mode.  So we will let the open succeed, but then always\nfall back to O_DSYNC buffered writes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1cd9f0976aa4606db8d6e3dc3edd0aca8019372a",
      "tree": "3928541b60787c1add5120bb34a4016529de3d6b",
      "parents": [
        "8c0bec2151a47906bf779c6715a10ce04453ab77"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:54:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:54:51 2011 -0400"
      },
      "message": "ext2,ext3,ext4: don\u0027t inherit APPEND_FL or IMMUTABLE_FL for new inodes\n\nThis doesn\u0027t make much sense, and it exposes a bug in the kernel where\nattempts to create a new file in an append-only directory using\nO_CREAT will fail (but still leave a zero-length file).  This was\ndiscovered when xfstests #79 was generalized so it could run on all\nfile systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc:stable@kernel.org\n"
    },
    {
      "commit": "8c0bec2151a47906bf779c6715a10ce04453ab77",
      "tree": "0165e80ba408b5db1e9e2adf9264bf4186b06768",
      "parents": [
        "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Wed Aug 31 11:50:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:50:51 2011 -0400"
      },
      "message": "ext4: remove i_mutex lock in ext4_evict_inode to fix lockdep complaining\n\nThe i_mutex lock and flush_completed_IO() added by commit 2581fdc810\nin ext4_evict_inode() causes lockdep complaining about potential\ndeadlock in several places.  In most/all of these LOCKDEP complaints\nit looks like it\u0027s a false positive, since many of the potential\ncircular locking cases can\u0027t take place by the time the\next4_evict_inode() is called; but since at the very least it may mask\nreal problems, we need to address this.\n\nThis change removes the flush_completed_IO() and i_mutex lock in\next4_evict_inode().  Instead, we take a different approach to resolve\nthe software lockup that commit 2581fdc810 intends to fix.  Rather\nthan having ext4-dio-unwritten thread wait for grabing the i_mutex\nlock of an inode, we use mutex_trylock() instead, and simply requeue\nthe work item if we fail to grab the inode\u0027s i_mutex lock.\n\nThis should speed up work queue processing in general and also\nprevents the following deadlock scenario: During page fault,\nshrink_icache_memory is called that in turn evicts another inode B.\nInode B has some pending io_end work so it calls ext4_ioend_wait()\nthat waits for inode B\u0027s i_ioend_count to become zero.  However, inode\nB\u0027s ioend work was queued behind some of inode A\u0027s ioend work on the\nsame cpu\u0027s ext4-dio-unwritten workqueue.  As the ext4-dio-unwritten\nthread on that cpu is processing inode A\u0027s ioend work, it tries to\ngrab inode A\u0027s i_mutex lock.  Since the i_mutex lock of inode A is\nstill hold before the page fault happened, we enter a deadlock.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c",
      "tree": "a57bc2d9a58e26144c30645e148d9b00242738f4",
      "parents": [
        "8f6544edb2c7a7464fbbce1d86a4de414dc0cf95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:42:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:42:53 2011 -0700"
      },
      "message": "Linux 3.1-rc3\n"
    },
    {
      "commit": "8f6544edb2c7a7464fbbce1d86a4de414dc0cf95",
      "tree": "5030e903106465b36e769ea04d4dfe2b91b22949",
      "parents": [
        "4762e252f4afc6909edb0babe9c25f126afedcaa",
        "fe4c51b22080691792d3e28d86acb4d4ccb7e8e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:26:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:26:56 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Add group event scheduling option to perf record/stat\n  MAINTAINERS: Fix list of perf events source files\n  perf tools: Fix build against newer glibc\n  perf tools: Fix error handling of unknown events\n  perf evlist: Fix missing event name init for default event\n  perf list: Fix exit value\n"
    },
    {
      "commit": "4762e252f4afc6909edb0babe9c25f126afedcaa",
      "tree": "f4d68be15b2c5887f98894996899e9e3f191ce4c",
      "parents": [
        "3210d190dcb717c328d74f8c3f69ec717d665b40",
        "60c5f08e154fd235056645e050f2cd5671b19125"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:25:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:25:44 2011 -0700"
      },
      "message": "Merge branch \u0027stable/bug.fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/bug.fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/tracing: Fix tracing config option properly\n  xen: Do not enable PV IPIs when vector callback not present\n  xen/x86: replace order-based range checking of M2P table by linear one\n  xen: xen-selfballoon.c needs more header files\n"
    },
    {
      "commit": "60c5f08e154fd235056645e050f2cd5671b19125",
      "tree": "af2d81268cb83fd1f7fffedfbb9eddf91a8d53d1",
      "parents": [
        "3c05c4bed4ccce3f22f6d7899b308faae24ad198"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Thu Aug 11 13:17:20 2011 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Aug 22 11:28:33 2011 -0400"
      },
      "message": "xen/tracing: Fix tracing config option properly\n\nSteven Rostedt says we should use CONFIG_EVENT_TRACING.\n\nCc:Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "3c05c4bed4ccce3f22f6d7899b308faae24ad198",
      "tree": "1ba50aca8583443ca5228d2a536e32a71f8d1097",
      "parents": [
        "ccbcdf7cf1b5f6c6db30d84095b9c6c53043af55"
      ],
      "author": {
        "name": "Stefano Stabellini",
        "email": "stefano.stabellini@eu.citrix.com",
        "time": "Wed Aug 17 15:15:00 2011 +0200"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Aug 22 11:28:09 2011 -0400"
      },
      "message": "xen: Do not enable PV IPIs when vector callback not present\n\nFix regression for HVM case on older (\u003c4.1.1) hypervisors caused by\n\n  commit 99bbb3a84a99cd04ab16b998b20f01a72cfa9f4f\n  Author: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\n  Date:   Thu Dec 2 17:55:10 2010 +0000\n\n    xen: PV on HVM: support PV spinlocks and IPIs\n\nThis change replaced the SMP operations with event based handlers without\ntaking into account that this only works when the hypervisor supports\ncallback vectors. This causes unexplainable hangs early on boot for\nHVM guests with more than one CPU.\n\nBugLink: http://bugs.launchpad.net/bugs/791850\n\nCC: stable@kernel.org\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\nTested-and-Reported-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "3210d190dcb717c328d74f8c3f69ec717d665b40",
      "tree": "4fbdbc85beea494165dc4bc8866f77051a730762",
      "parents": [
        "6719db6a23d4b7f1e5052eedae394135e3aef9c1",
        "aaff12039ffd812d0c8bbff50b87b6f1f09bec3e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 18:13:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 18:13:19 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: core: handle ack_busy when fetching the Config ROM\n"
    },
    {
      "commit": "6719db6a23d4b7f1e5052eedae394135e3aef9c1",
      "tree": "2faf96d69696df0edfc0ab4d8f0c980ee0b89986",
      "parents": [
        "c063d8a60fc912ae198f054608ad461a69dc9a19"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Aug 20 08:29:51 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 07:02:00 2011 -0700"
      },
      "message": "Btrfs: fix 64 bit divide problem\n\nThis fixes a regression introduced by commit cdcb725c05fe (\"Btrfs: check\nif there is enough space for balancing smarter\").  We can\u0027t do 64-bit\ndivides on 32-bit architectures.\n\nIn cases where we need to divide/multiply by 2 we should just left/right\nshift respectively, and in cases where theres N number of devices use\ndo_div.  Also make the counters u64 to match up with rw_devices.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nAcked-and-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c063d8a60fc912ae198f054608ad461a69dc9a19",
      "tree": "fb7804322f0fa7880b073a5b2a4f2bd1a01ee5c0",
      "parents": [
        "79058c4b9ed82415d0690ce6d520252741653486",
        "dccaf33fa37a1bc5d651baeb3bfeb6becb86597b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:41 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: flush any pending end_io requests before DIO reads w/dioread_nolock\n  ext4: fix nomblk_io_submit option so it correctly converts uninit blocks\n  ext4: Resolve the hang of direct i/o read in handling EXT4_IO_END_UNWRITTEN.\n  ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode\n  ext4: Fix ext4_should_writeback_data() for no-journal mode\n"
    },
    {
      "commit": "79058c4b9ed82415d0690ce6d520252741653486",
      "tree": "b7857545498725b321306dbaa27c80bb35ccc41a",
      "parents": [
        "47c08f3107270e5a439bc0106a308f7c48c9621d",
        "de75577c8c3ab733f808c65e1a9d55882efde68e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:02 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree\n  ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c\n  ALSA: hda - Don\u0027t spew too many ELD errors\n  ALSA: usb-audio - Fix missing mixer dB information\n  ALSA: hda - Add \"PCM\" volume to vmaster slave list\n  ALSA: hda - Fix duplicated capture-volume creation for ALC268 models\n  ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist\n  ALSA: snd_usb_caiaq: track submitted output urbs\n"
    },
    {
      "commit": "47c08f3107270e5a439bc0106a308f7c48c9621d",
      "tree": "d003f7337671bd240da4a463cc6fe1f6fb163e55",
      "parents": [
        "bed8cad9593974a46de5c8aa3d2ee7c49c17182f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Aug 20 11:49:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 20 18:02:32 2011 -0700"
      },
      "message": "pci: fix new kernel-doc warning in pci.c\n\nFix new kernel-doc warning in pci.c:\n\n  Warning(drivers/pci/pci.c:3259): No description found for parameter \u0027mps\u0027\n  Warning(drivers/pci/pci.c:3259): Excess function parameter \u0027rq\u0027 description in \u0027pcie_set_mps\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de75577c8c3ab733f808c65e1a9d55882efde68e",
      "tree": "09c9b6f77ecb2c8e4bdd823c8748606cddf8f3d0",
      "parents": [
        "1b004d03d8670bdd871e0f297ed20bc510e404de"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat Aug 20 08:12:41 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:27:04 2011 +0200"
      },
      "message": "ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree\n\nThe label outnodev is only used when kzalloc has not yet taken place or has\nfailed, so there is no need for the call for kfree under this label.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nidentifier x;\nexpression E1!\u003d0,E2,E3,E4;\nstatement S;\niterator I;\n@@\n\n(\nif (...) { ... when !\u003d kfree(x)\n               when !\u003d x \u003d E3\n               when !\u003d E3 \u003d x\n*  return ...;\n }\n... when !\u003d x \u003d E2\n    when !\u003d I(...,x,...) S\nif (...) { ... when !\u003d x \u003d E4\n kfree(x); ... return ...; }\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "1b004d03d8670bdd871e0f297ed20bc510e404de",
      "tree": "ad1df1f55b8b3a004907ceada35c1c185b35461e",
      "parents": [
        "b6acf013bdc6f6ff9643030add85832d44034a28"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:19:59 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:24:54 2011 +0200"
      },
      "message": "ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c\n\nsnd_hda_get_conn_index() returns a negative value while the current code\nstores it in an unsigned int.  It must be stored in a signed integer.\n\nReported-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "b6acf013bdc6f6ff9643030add85832d44034a28",
      "tree": "f4a9d53153906292cfc529e35fd2d8d0bf07d4a6",
      "parents": [
        "38b65190c6ab0be8ce7cff69e734ca5b5e7fa309"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:14:45 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:23:10 2011 +0200"
      },
      "message": "ALSA: hda - Don\u0027t spew too many ELD errors\n\nCurrently HD-audio driver shows the all error ELD byte as an error\nin the kernel message.  This is annoying when the video driver doesn\u0027t\nset the correct ELD from the beginning. e.g. radeon sends a zero-byte\ndata, but we still check ELD with the fixed 128 byte as a workaround\nfor some broken devices, it spews 128-times errors.\n\nFor avoiding this, the driver aborts reading when the first byte is\ninvalid.  In such a case, the whole data is certainly invalid.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "bed8cad9593974a46de5c8aa3d2ee7c49c17182f",
      "tree": "88ece6a6eb7ad750286ba9d8ab1037578429a234",
      "parents": [
        "5ccc38740a283aba81a00e92941310d0c1aeb2ee",
        "b095cd0a0ccdbc00c9fd99d90b22f8563687971f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 23:07:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 23:07:08 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/drm-intel\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/drm-intel:\n  drm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge\n"
    },
    {
      "commit": "dccaf33fa37a1bc5d651baeb3bfeb6becb86597b",
      "tree": "ff41c9c0208589fded8176089380e316dd5c7965",
      "parents": [
        "9dd75f1f1a02d656a11a7b9b9e6c2759b9c1e946"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Fri Aug 19 19:13:32 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Aug 19 19:13:32 2011 -0400"
      },
      "message": "ext4: flush any pending end_io requests before DIO reads w/dioread_nolock\n\nThere is a race between ext4 buffer write and direct_IO read with\ndioread_nolock mount option enabled. The problem is that we clear\nPageWriteback flag during end_io time but will do\nuninitialized-to-initialized extent conversion later with dioread_nolock.\nIf an O_direct read request comes in during this period, ext4 will return\nzero instead of the recently written data.\n\nThis patch checks whether there are any pending uninitialized-to-initialized\nextent conversion requests before doing O_direct read to close the race.\nNote that this is just a bandaid fix. The fundamental issue is that we\nclear PageWriteback flag before we really complete an IO, which is\nproblem-prone. To fix the fundamental issue, we may need to implement an\nextent tree cache that we can use to look up pending to-be-converted extents.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b095cd0a0ccdbc00c9fd99d90b22f8563687971f",
      "tree": "e75b0061ad30d7ee8df4e35ff90b1d0cdfe006b4",
      "parents": [
        "4e6343898fe7eed6b3c0c3c809347bc88d5b4a1e"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Fri Aug 12 15:28:32 2011 -0700"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Fri Aug 19 11:57:12 2011 -0700"
      },
      "message": "drm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge\n\nPrior to Ivybridge, the GFX_MODE would default to 0x800, meaning that\nMI_FLUSH would flush the TLBs in addition to the rest of the caches\nindicated in the MI_FLUSH command.  However starting with Ivybridge, the\nregister defaults to 0x2800 out of reset, meaning that to invalidate the\nTLB we need to use PIPE_CONTROL.  Since we\u0027re not doing that yet, go\nback to the old default so things work.\n\nv2: don\u0027t forget to actually *clear* the new bit\n\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\nReviewed-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nTested-by: Kenneth Graunke \u003ckenneth@whitecape.org\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "5ccc38740a283aba81a00e92941310d0c1aeb2ee",
      "tree": "ba7d725947975a9391e085bd1d5958b004bfdc3e",
      "parents": [
        "0c3bef612881ee6216a36952ffaabfc35b83545c",
        "b53d1ed734a2b9af8da115b836b658daa7d47a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block: (23 commits)\n  Revert \"cfq: Remove special treatment for metadata rqs.\"\n  block: fix flush machinery for stacking drivers with differring flush flags\n  block: improve rq_affinity placement\n  blktrace: add FLUSH/FUA support\n  Move some REQ flags to the common bio/request area\n  allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH\n  xen/blkback: Make description more obvious.\n  cfq-iosched: Add documentation about idling\n  block: Make rq_affinity \u003d 1 work as expected\n  block: swim3: fix unterminated of_device_id table\n  block/genhd.c: remove useless cast in diskstats_show()\n  drivers/cdrom/cdrom.c: relax check on dvd manufacturer value\n  drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse\n  bsg-lib: add module.h include\n  cfq-iosched: Reduce linked group count upon group destruction\n  blk-throttle: correctly determine sync bio\n  loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other\n  loop: add BLK_DEV_LOOP_MIN_COUNT\u003d%i to allow distros 0 pre-allocated loop devices\n  loop: add management interface for on-demand device allocation\n  loop: replace linked list of allocated devices with an idr index\n  ...\n"
    },
    {
      "commit": "0c3bef612881ee6216a36952ffaabfc35b83545c",
      "tree": "46e69e46d557c319ff3f261f37f1c184eaa9b844",
      "parents": [
        "01b883358ba4b616d9d161b43af4bb5ee8124fe8",
        "69566dd8be42dea7a22f625abc96e65bb4b45d1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:02:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:02:37 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:\n  PCI: OF: Don\u0027t crash when bridge parent is NULL.\n  PCI: export pcie_bus_configure_settings symbol\n  PCI: code and comments cleanup\n  PCI: make cardbus-bridge resources optional\n  PCI: make SRIOV resources optional\n  PCI : ability to relocate assigned pci-resources\n  PCI: honor child buses add_size in hot plug configuration\n  PCI: Set PCI-E Max Payload Size on fabric\n"
    },
    {
      "commit": "69566dd8be42dea7a22f625abc96e65bb4b45d1f",
      "tree": "48e73a52bd8b79b5b8674243b54b5f2e346e5b9b",
      "parents": [
        "debc3b778508f59696ff188f0feca271dcbfa7d9"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Tue Aug 16 11:24:37 2011 -0700"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Fri Aug 19 08:51:37 2011 -0700"
      },
      "message": "PCI: OF: Don\u0027t crash when bridge parent is NULL.\n\nIn pcibios_get_phb_of_node(), we will crash while booting if\nbus-\u003ebridge-\u003eparent is NULL.\n\nCheck for this case and avoid dereferencing the NULL pointer.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "b53d1ed734a2b9af8da115b836b658daa7d47a48",
      "tree": "07ed12caa6fd50f97568f419448cf03906d980c4",
      "parents": [
        "4853abaae7e4a2af938115ce9071ef8684fb7af4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Aug 19 08:34:48 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Aug 19 08:34:48 2011 +0200"
      },
      "message": "Revert \"cfq: Remove special treatment for metadata rqs.\"\n\nWe have a kernel build regression since 3.1-rc1, which is about 10%\nregression. The kernel source is in an ext3 filesystem.\nAlex Shi bisect it to commit:\ncommit a07405b7802691d29ab3b23bdc76ee6d006aad0b\nAuthor: Justin TerAvest \u003cteravest@google.com\u003e\nDate:   Sun Jul 10 22:09:19 2011 +0200\n\n    cfq: Remove special treatment for metadata rqs.\n\nApparently this is caused by lack metadata preemption, where ext3/ext4\ndo use READ_META. I didn\u0027t see a way to fix the issue, so suggest\nreverting the patch.\n\nThis reverts commit a07405b7802691d29ab3b23bdc76ee6d006aad0b.\n\nReported-by: Alex Shi\u003calex.shi@intel.com\u003e\nReported-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "38b65190c6ab0be8ce7cff69e734ca5b5e7fa309",
      "tree": "eeddb399b62b27ef184e87d0bcb8469b3dff5fdd",
      "parents": [
        "3fe45aeaf2033c9eaa5028ed5ba68b466008876f"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Aug 19 07:55:10 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Aug 19 07:55:10 2011 +0200"
      },
      "message": "ALSA: usb-audio - Fix missing mixer dB information\n\nThe recent fix for testing dB range at the mixer creation time seems\nto cause regressions in some devices.  In such devices, reading the dB\ninfo at probing time gives an error, thus both dBmin and dBmax are still\nzero, and TLV flag isn\u0027t set although the later read of dB info succeeds.\n\nThis patch adds a workaround for such a case by assuming that the later\nread will succeed.  In future, a similar test should be performed in a\ncase where a wrong dB range is seen even in the later read.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "01b883358ba4b616d9d161b43af4bb5ee8124fe8",
      "tree": "72f3efdd8da22c75d68d2f48d4e47ae03d267bd1",
      "parents": [
        "2c4ac99f983f1341b5962a16b5e8de6049bf10b5",
        "4a0342ca8e8150bd47e7118a76e300692a1b6b7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:49:34 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:\n  sparc: fix array bounds error setting up PCIC NMI trap\n"
    },
    {
      "commit": "2c4ac99f983f1341b5962a16b5e8de6049bf10b5",
      "tree": "8f1dff6d9b1f8314807807eecf21ee5734a4c61b",
      "parents": [
        "35a21b429917baf86d7595826e7314662ec09d0a",
        "a081da630d64acf132b2db1043c586b993d49da7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:48:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:48:30 2011 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  drivers/ata/sata_dwc_460ex.c: add missing kfree\n  ata: Add iMX pata support\n  pata_via: disable ATAPI DMA on AVERATEC 3200\n  [libata] sata_sil: fix used-uninit warning\n"
    },
    {
      "commit": "35a21b429917baf86d7595826e7314662ec09d0a",
      "tree": "b60e4451fe84fe113fbb98ef09733cd2071998bb",
      "parents": [
        "5c80c71b9a0ec518b4b58d2a61de01a04f4a4453",
        "910ac68a2b80c7de95bc8488734067b1bb15d583"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:47:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 22:47:13 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4.1: Return NFS4ERR_BADSESSION to callbacks during session resets\n  NFSv4.1: Fix the callback \u0027highest_used_slotid\u0027 behaviour\n  pnfs-obj: Fix the comp_index !\u003d 0 case\n  pnfs-obj: Bug when we are running out of bio\n  nfs: add missing prefetch.h include\n"
    }
  ],
  "next": "4a0342ca8e8150bd47e7118a76e300692a1b6b7b"
}
