)]}'
{
  "log": [
    {
      "commit": "a9c667f8f0656631ee5438baaf21bf30d5f67375",
      "tree": "eb92465fcb50126802b66fb509ed51a1fe966ad5",
      "parents": [
        "c03f8aa9abdd517477c2021ea1251939b4da49e6"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jun 06 09:51:52 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 06 09:51:52 2011 -0400"
      },
      "message": "ext4: fixed tracepoints cleanup\n\nWhile creating fixed tracepoints for ext3, basically by porting them\nfrom ext4, I found a lot of useless retyping, wrong type usage, useless\nvariable passing and other inconsistencies in the ext4 fixed tracepoint\ncode.\n\nThis patch cleans the fixed tracepoint code for ext4 and also simplify\nsome of them.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c03f8aa9abdd517477c2021ea1251939b4da49e6",
      "tree": "e68aabc965801c85fb2b2aa1cfd42ad32bcd0b1f",
      "parents": [
        "f17722f917b2f21497deb6edc62fb1683daa08e6"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jun 06 00:06:52 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 06 00:06:52 2011 -0400"
      },
      "message": "ext4: use FIEMAP_EXTENT_LAST flag for last extent in fiemap \n\nCurrently we are not marking the extent as the last one\n(FIEMAP_EXTENT_LAST) if there is a hole at the end of the file. This is\nbecause we just do not check for it right now and continue searching for\nnext extent. But at the point we hit the hole at the end of the file, it\nis too late.\n\nThis commit adds check for the allocated block in subsequent extent and\nif there is no more extents (block \u003d EXT_MAX_BLOCKS) just flag the\ncurrent one as the last one.\n\nThis behaviour has been spotted unintentionally by 252 xfstest, when the\ntest hangs out, because of wrong loop condition. However on other\nfilesystems (like xfs) it will exit anyway, because we notice the last\nextent flag and exit.\n\nWith this patch xfstest 252 does not hang anymore, ext4 fiemap\nimplementation still reports bad extent type in some cases, however\nthis seems to be different issue.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f17722f917b2f21497deb6edc62fb1683daa08e6",
      "tree": "10509e066829e685b25d74239f490345d28603d2",
      "parents": [
        "5def1360252b974faeb438775c19c14338bc1903"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jun 06 00:05:17 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 06 00:05:17 2011 -0400"
      },
      "message": "ext4: Fix max file size and logical block counting of extent format file\n\nKazuya Mio reported that he was able to hit BUG_ON(next \u003d\u003d lblock)\nin ext4_ext_put_gap_in_cache() while creating a sparse file in extent\nformat and fill the tail of file up to its end. We will hit the BUG_ON\nwhen we write the last block (2^32-1) into the sparse file.\n\nThe root cause of the problem lies in the fact that we specifically set\ns_maxbytes so that block at s_maxbytes fit into on-disk extent format,\nwhich is 32 bit long. However, we are not storing start and end block\nnumber, but rather start block number and length in blocks. It means\nthat in order to cover extent from 0 to EXT_MAX_BLOCK we need\nEXT_MAX_BLOCK+1 to fit into len (because we counting block 0 as well) -\nand it does not.\n\nThe only way to fix it without changing the meaning of the struct\next4_extent members is, as Kazuya Mio suggested, to lower s_maxbytes\nby one fs block so we can cover the whole extent we can get by the\non-disk extent format.\n\nAlso in many places EXT_MAX_BLOCK is used as length instead of maximum\nlogical block number as the name suggests, it is all a bit messy. So\nthis commit renames it to EXT_MAX_BLOCKS and change its usage in some\nplaces to actually be maximum number of blocks in the extent.\n\nThe bug which this commit fixes can be reproduced as follows:\n\n dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d\u003cblocksize\u003e count\u003d1 seek\u003d$((2**32-2))\n sync\n dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d\u003cblocksize\u003e count\u003d1 seek\u003d$((2**32-1))\n\nReported-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5def1360252b974faeb438775c19c14338bc1903",
      "tree": "d2b95eefc7920a01565654761c4b587503992f15",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Jun 05 23:26:40 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 05 23:26:40 2011 -0400"
      },
      "message": "ext4: correct comments for ext4_free_blocks()\n\nmetadata is not parameter of ext4_free_blocks() any more.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "aa38572954ade525817fe88c54faebf85e5a61c0",
      "tree": "ef398ec06c97134592f62a49c99f3f80041b427c",
      "parents": [
        "d6e9bd256c88ce5f4b668249e363a74f51393daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 27 06:53:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 07:04:40 2011 -0400"
      },
      "message": "fs: pass exact type of data dirties to -\u003edirty_inode\n\nTell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or\nanything else, so that the filesystem can track internally if it\nneeds to push out a transaction for fdatasync or not.\n\nThis is just the prototype change with no user for it yet.  I plan\nto push large XFS changes for the next merge window, and getting\nthis trivial infrastructure in this window would help a lot to avoid\ntree interdependencies.\n\nAlso remove incorrect comments that -\u003edirty_inode can\u0027t block.  That\nhas been changed a long time ago, and many implementations rely on it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f8d613e2a665bf1be9628a3c3f9bafe7599b32c0",
      "tree": "98d4da8d0e1a5fb1d9064626b4b96d95ccf26375",
      "parents": [
        "8a0599dd2471f2a2e409498c08a0ab339057ad06",
        "5bc20fc59706214d9591c11e1938a629d3538c12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:\n  xen: cleancache shim to Xen Transcendent Memory\n  ocfs2: add cleancache support\n  ext4: add cleancache support\n  btrfs: add cleancache support\n  ext3: add cleancache support\n  mm/fs: add hooks to support cleancache\n  mm: cleancache core ops functions and config\n  fs: add field to superblock to support cleancache\n  mm/fs: cleancache documentation\n\nFix up trivial conflict in fs/btrfs/extent_io.c due to includes\n"
    },
    {
      "commit": "7abc52c2ed169c65044d3a199879c8438ad82322",
      "tree": "a8b0ef1291c95c444f615ced2217a1e6ce44e81c",
      "parents": [
        "90a887c9a2e25bcb1fc658fad59dfbc6fb792734"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:03 2011 -0600"
      },
      "committer": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:03 2011 -0600"
      },
      "message": "ext4: add cleancache support\n\nThis seventh patch of eight in this cleancache series \"opts-in\"\ncleancache for ext4.  Filesystems must explicitly enable cleancache\nby calling cleancache_init_fs anytime an instance of the filesystem\nis mounted. For ext4, all other cleancache hooks are in\nthe VFS layer including the matching cleancache_flush_fs\nhook which must be called on unmount.\n\nDetails and a FAQ can be found in Documentation/vm/cleancache.txt\n\n[v6-v8: no changes]\n[v5: jeremy@goop.org: simplify init hook and any future fs init changes]\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nReviewed-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik Van Riel \u003criel@redhat.com\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\n"
    },
    {
      "commit": "1b16da77f90328661fc7e556ad591f9ee6b7ef6a",
      "tree": "b86caf7fd1c4e0f205a69d8bb7ca1ebb883cab63",
      "parents": [
        "ae24f28d39610a4810c78185cf599a771cf6ee1f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed May 25 17:41:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 17:41:48 2011 -0400"
      },
      "message": "ext4: teach ext4_ext_split to calculate extents efficiently\n\nMake ext4_ext_split() get extents to be moved by calculating in a statement\ninstead of counting in a loop.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ae24f28d39610a4810c78185cf599a771cf6ee1f",
      "tree": "a4969875b6345f6ee3eb8bdf3a0af823cab33e3f",
      "parents": [
        "556b27abf73833923d5cd4be80006292e1b31662"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 25 17:39:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 17:39:48 2011 -0400"
      },
      "message": "ext4: Convert ext4 to new truncate calling convention\n\n\nTrivial conversion.  Fixup one error handling case calling vmtruncate()\nand remove -\u003etruncate callback. We also fix a bug that IS_IMMUTABLE and\nIS_APPEND files could not be truncated during failed writes. In fact, the\ntest can be completely removed as upper layers do necessary permission\nchecks for truncate in do_sys_[f]truncate() and may_open() anyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "556b27abf73833923d5cd4be80006292e1b31662",
      "tree": "588fa7c3db66afb545921cdfc894f0a41e66dc49",
      "parents": [
        "a4bb6b64e39abc0e41ca077725f2a72c868e7622"
      ],
      "author": {
        "name": "Vivek Haldar",
        "email": "haldar@google.com",
        "time": "Wed May 25 07:41:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:54 2011 -0400"
      },
      "message": "ext4: do not normalize block requests from fallocate()\n\nCurrently, an fallocate request of size slightly larger than a power of\n2 is turned into two block requests, each a power of 2, with the extra\nblocks pre-allocated for future use. When an application calls\nfallocate, it already has an idea about how large the file may grow so\nthere is usually little benefit to reserve extra blocks on the\npreallocation list. This reduces disk fragmentation.\n\nTested: fsstress. Also verified manually that fallocat\u0027ed files are\ncontiguously laid out with this change (whereas without it they begin at\npower-of-2 boundaries, leaving blocks in between). CPU usage of\nfallocate is not appreciably higher.  In a tight fallocate loop, CPU\nusage hovers between 5%-8% with this change, and 5%-7% without it.\n\nUsing a simulated file system aging program which the file system to\n70%, the percentage of free extents larger than 8MB (as measured by\ne2freefrag) increased from 38.8% without this change, to 69.4% with\nthis change.\n\nSigned-off-by: Vivek Haldar \u003chaldar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a4bb6b64e39abc0e41ca077725f2a72c868e7622",
      "tree": "0d911caa13d445d64cce5ea37f424bf066731ea6",
      "parents": [
        "e861304b8ed83fe43e36d46794d72641c82d4636"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:50 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:50 2011 -0400"
      },
      "message": "ext4: enable \"punch hole\" functionality\n\nThis patch adds new routines: \"ext4_punch_hole\" \"ext4_ext_punch_hole\"\nand \"ext4_ext_check_cache\"\n\nfallocate has been modified to call ext4_punch_hole when the punch hole\nflag is passed.  At the moment, we only support punching holes in\nextents, so this routine is pretty much a wrapper for the ext4_ext_punch_hole\nroutine.\n\nThe ext4_ext_punch_hole routine first completes all outstanding writes\nwith the associated pages, and then releases them.  The unblock\naligned data is zeroed, and all blocks in between are punched out.\n\nThe ext4_ext_check_cache routine is very similar to ext4_ext_in_cache\nexcept it accepts a ext4_ext_cache parameter instead of a ext4_extent\nparameter.  This routine is used by ext4_ext_punch_hole to check and\nsee if a block in a hole that has been cached.  The ext4_ext_cache\nparameter is necessary because the members ext4_extent structure are\nnot large enough to hold a 32 bit value.  The existing\next4_ext_in_cache routine has become a wrapper to this new function.\n\n[ext4 punch hole patch series 5/5 v7] \n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "e861304b8ed83fe43e36d46794d72641c82d4636",
      "tree": "14a9c42ee5b6a531bc3202063bcd9c413e30c17e",
      "parents": [
        "d583fb87a3ff0ca50befd2f73f7a67fade1c8c56"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:46 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:46 2011 -0400"
      },
      "message": "ext4: add \"punch hole\" flag to ext4_map_blocks()\n\nThis patch adds a new flag to ext4_map_blocks() that specifies the\ngiven range of blocks should be punched out.  Extents are first\nconverted to uninitialized extents before they are punched\nout. Because punching a hole may require that the extent be split, it\nis possible that the splitting may need more blocks than are\navailable.  To deal with this, use of reserved blocks are enabled to\nallow the split to proceed.\n\nThe routine then returns the number of blocks successfully\npunched out.\n\n[ext4 punch hole patch series 4/5 v7]\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "d583fb87a3ff0ca50befd2f73f7a67fade1c8c56",
      "tree": "4e8cd6c05390d5355906d5657b87d82fcd4ea750",
      "parents": [
        "308488518dfcbe3be250085cd582f5b0c1ce72a9"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:43 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:43 2011 -0400"
      },
      "message": "ext4: punch out extents\n\nThis patch modifies the truncate routines to support hole punching\nBelow is a brief summary of the patches changes:\n\n- Added end param to ext_ext4_rm_leaf\n        This function has been modified to accept an end parameter\n        which enables it to punch holes in leafs instead of just\n        truncating them.\n\n- Implemented the \"remove head\" case in the ext_remove_blocks routine\n        This routine is used by ext_ext4_rm_leaf to remove the tail\n        of an extent during a truncate.  The new ext_ext4_rm_leaf\n        routine will now also use it to remove the head of an extent in the\n        case that the hole covers a region of blocks at the beginning\n        of an extent.\n\n- Added \"end\" param to ext4_ext_remove_space routine\n        This function has been modified to accept a stop parameter, which\n        is passed through to ext4_ext_rm_leaf.\n\n[ext4 punch hole patch series 3/5 v6] \n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "308488518dfcbe3be250085cd582f5b0c1ce72a9",
      "tree": "4696b50debf9794f2cbb966cccbedadb93dc996a",
      "parents": [
        "55f020db66ce187fb8c8e4002a94b0eb714da450"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:32 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:32 2011 -0400"
      },
      "message": "ext4: add new function ext4_block_zero_page_range()\n\nThis patch modifies the existing ext4_block_truncate_page() function\nwhich was used by the truncate code path, and which zeroes out block\nunaligned data, by adding a new length parameter, and renames it to\next4_block_zero_page_rage().  This function can now be used to zero out the\nhead of a block, the tail of a block, or the middle\nof a block.\n\nThe ext4_block_truncate_page() function is now a wrapper to\next4_block_zero_page_range().\n\n[ext4 punch hole patch series 2/5 v7] \n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "55f020db66ce187fb8c8e4002a94b0eb714da450",
      "tree": "e98214511542f57fa93074be12e27c4819520333",
      "parents": [
        "ae81230686282af745ebb7a74c0332349cb9131a"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "message": "ext4: add flag to ext4_has_free_blocks\n\nThis patch adds an allocation request flag to the ext4_has_free_blocks\nfunction which enables the use of reserved blocks.  This will allow a\npunch hole to proceed even if the disk is full.  Punching a hole may\nrequire additional blocks to first split the extents.\n\nBecause ext4_has_free_blocks is a low level function, the flag needs\nto be passed down through several functions listed below:\n\next4_ext_insert_extent\next4_ext_create_new_leaf\next4_ext_grow_indepth\next4_ext_split\next4_ext_new_meta_block\next4_mb_new_blocks\next4_claim_free_blocks\next4_has_free_blocks\n\n[ext4 punch hole patch series 1/5 v7]\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "ae81230686282af745ebb7a74c0332349cb9131a",
      "tree": "bd293ae7a338e582991ecb2930397fb7b010c6cc",
      "parents": [
        "c5e06d101aaf72f1f2192a661414459775e9bd74"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Tue May 24 19:00:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 19:00:39 2011 -0400"
      },
      "message": "ext4: reserve inodes and feature code for \u0027quota\u0027 feature\n\nI am working on patch to add quota as a built-in feature for ext4\nfilesystem. The implementation is based on the design given at\nhttps://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.\nThis patch reserves the inode numbers 3 and 4 for quota purposes and\nalso reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c5e06d101aaf72f1f2192a661414459775e9bd74",
      "tree": "96d05d41be2bfea6d51be915ce196f033a5d9bf3",
      "parents": [
        "d02a9391f79cab65cde74cd9e8ccd2290a565229"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann@whamcloud.com",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "message": "ext4: add support for multiple mount protection\n\nPrevent an ext4 filesystem from being mounted multiple times.\nA sequence number is stored on disk and is periodically updated (every 5\nseconds by default) by a mounted filesystem.\nAt mount time, we now wait for s_mmp_update_interval seconds to make sure\nthat the MMP sequence does not change.\nIn case of failure, the nodename, bdevname and the time at which the MMP\nblock was last updated is displayed.\n\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d02a9391f79cab65cde74cd9e8ccd2290a565229",
      "tree": "a70993ce201661a360ade69c3a5925b653e9c542",
      "parents": [
        "28739eea9cd42598b632972f5cc64a458c5d40b3"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "message": "ext4: ensure f_bfree returned by ext4_statfs() is non-negative\n\nI found the issue that the number of free blocks went negative.\n# stat -f /mnt/mp1/\n  File: \"/mnt/mp1/\"\n    ID: e175ccb83a872efe Namelen: 255     Type: ext2/ext3\nBlock size: 4096       Fundamental block size: 4096\nBlocks: Total: 258022     Free: -15        Available: -13122\nInodes: Total: 65536      Free: 63029\n\nf_bfree in struct statfs will go negative when the filesystem has\nfew free blocks. Because the number of dirty blocks is bigger than\nthe number of free blocks in the following two cases.\n\nCASE 1:\next4_da_writepages\n  mpage_da_map_and_submit\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n        \u003c--- interrupt statfs systemcall ---\u003e\n        ext4_da_update_reserve_space\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter,\n                            used + ei-\u003ei_allocated_meta_blocks);\n\nCASE 2:\next4_write_begin\n  __block_write_begin\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n            \u003c--- interrupt statfs systemcall ---\u003e\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter, reserv_blks);\n\nTo avoid the issue, this patch ensures that f_bfree is non-negative.\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\n"
    },
    {
      "commit": "28739eea9cd42598b632972f5cc64a458c5d40b3",
      "tree": "10d4db959544884e6612ea329920a2cf73a6f0b6",
      "parents": [
        "78944086663e6c1b03f3d60bf7610128149be5fc"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue May 24 18:28:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:28:07 2011 -0400"
      },
      "message": "ext4: protect bb_first_free in ext4_trim_all_free() with group lock\n\nWe should protect reading bd_info-\u003ebb_first_free with the group lock\nbecause otherwise we might miss some free blocks. This is not a big deal\nat all, but the change to do right thing is really simple, so lets do\nthat.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "78944086663e6c1b03f3d60bf7610128149be5fc",
      "tree": "fac4b6257258ffc15b59c8d42b6c569948daaed2",
      "parents": [
        "c867516de5256e9cfba2ec5847fa27e0f0ddd2c5"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue May 24 18:16:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:16:27 2011 -0400"
      },
      "message": "ext4: only load buddy bitmap in ext4_trim_fs() when it is needed\n\nCurrently we are loading buddy ext4_mb_load_buddy() for every block\ngroup we are going through in ext4_trim_fs() in many cases just to find\nout that there is not enough space to be bothered with. As Amir Goldstein\nsuggested we can use bb_free information directly from ext4_group_info.\n\nThis commit removes ext4_mb_load_buddy() from ext4_trim_fs() and rather\nget the ext4_group_info via ext4_get_group_info() and use the bb_free\ninformation directly from that. This avoids unnecessary call to load\nbuddy in the case the group does not have enough free space to trim.\nLoading buddy is now moved to ext4_trim_all_free().\n\nTested by me with xfstests 251.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "93628ffb9ba67c154849ac6c387f98f5e3198b84",
      "tree": "5aeeedb16744a901f945897fda4822e3b852cec5",
      "parents": [
        "bbd2be36910728f485ac78ea36e0f4f5a38e691e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 12:00:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 12:00:54 2011 -0400"
      },
      "message": "ext4: fix waiting and sending of a barrier in ext4_sync_file()\n\njbd2_log_start_commit() returns 1 only when we really start a\ntransaction.  But we also need to wait for a transaction when the\ncommit is already running.  Fix this problem by waiting for\ntransaction commit unconditionally (which is just a quick check if the\ntransaction is already committed).\n\nAlso we have to be more careful with sending of a barrier because when\ntransaction is being committed in parallel to ext4_sync_file()\nrunning, we cannot be sure that the barrier the journalling code sends\nhappens after we wrote all the data for fsync (note that not every\ndata writeout needs to trigger metadata changes thus commit of some\nmetadata changes can be running while other data is still written\nout). So use jbd2_will_send_data_barrier() helper to detect the common\ncases when we can be sure barrier will be issued by the commit code\nand issue the barrier ourselves in the remaining cases.\n\nReported-by: Edward Goggin \u003cegoggin@vmware.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b221349fa8b45d13c3650089f0514df7d1eb36c3",
      "tree": "5fb5e797c3f05294dd2e9352c05bb20b29a95d16",
      "parents": [
        "072bd7ea74d4b60149a33967d29666bbd84e7709"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 24 11:36:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:36:58 2011 -0400"
      },
      "message": "ext4: fix ext4_ext_fiemap_cb() to handle blocks before request range correctly\n\nTo get delayed-extent information, ext4_ext_fiemap_cb() looks up\npagecache, it thus collects information starting from a page\u0027s\nhead block.\n\nIf blocksize \u003c pagesize, the beginning blocks of a page may lies\nbefore the request range. So ext4_ext_fiemap_cb() should proceed\nignoring them, because they has been handled before. If no mapped\nbuffer in the range is found in the 1st page, we need to look up\nthe 2nd page, otherwise delayed-extents after a hole will be ignored.\n\nWithout this patch, xfstests 225 will hung on ext4 with 1K block.\n\nReported-by: Amir Goldstein \u003camir73il@users.sourceforge.net\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "072bd7ea74d4b60149a33967d29666bbd84e7709",
      "tree": "1d09215dcc30192254e62b84a8515220413cfa40",
      "parents": [
        "28e35e42fb255cbaeee8b9f89643f26fe376374d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 23 15:13:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 23 15:13:02 2011 -0400"
      },
      "message": "ext4: use truncate_setsize() unconditionally\n\nIn commit c8d46e41 (ext4: Add flag to files with blocks intentionally\npast EOF), if the EOFBLOCKS_FL flag is set, we call ext4_truncate()\nbefore calling vmtruncate().  This caused any allocated but unwritten\nblocks created by calling fallocate() with the FALLOC_FL_KEEP_SIZE\nflag to be dropped.  This was done to make to make sure that\nEOFBLOCKS_FL would not be cleared while still leaving blocks past\ni_size allocated.  This was not necessary, since ext4_truncate()\nguarantees that blocks past i_size will be dropped, even in the case\nwhere truncate() has increased i_size before calling ext4_truncate().\n\nSo fix this by removing the EOFBLOCKS_FL special case treatment in\next4_setattr().  In addition, use truncate_setsize() followed by a\ncall to ext4_truncate() instead of using vmtruncate().  This is more\nefficient since it skips the call to inode_newsize_ok(), which has\nbeen checked already by inode_change_ok().  This is also in a win in\nthe case where EOFBLOCKS_FL is set since it avoids calling\next4_truncate() twice.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f6d2f6b327ceef5c689581529a852dc6ec3b74a6",
      "tree": "9ae24dbb3787f596687954322c55e73570d6ed88",
      "parents": [
        "77f4135f2a219a2127be6cc1208c42e6175b11dd"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Sun May 22 21:33:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:33:00 2011 -0400"
      },
      "message": "ext4: fix unbalanced up_write() in ext4_ext_truncate() error path\n\next4_ext_truncate() should not invoke up_write(\u0026EXT4_I(inode)-\u003ei_data_sem)\nwhen ext4_orphan_add() returns an error, as it hasn\u0027t performed a\ndown_write() yet. This trivial patch fixes this by moving the up_write()\ninvocation above the out_stop label.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "77f4135f2a219a2127be6cc1208c42e6175b11dd",
      "tree": "8f85549d2354c5a69a5b29197f68a554daad1324",
      "parents": [
        "93917411be8db5d21abf15c781dfa43c5cc6edf2"
      ],
      "author": {
        "name": "Vivek Haldar",
        "email": "haldar@google.com",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "message": "ext4: count hits/misses of extent cache and expose in sysfs\n\nThe number of hits and misses for each filesystem is exposed in\n/sys/fs/ext4/\u003cdev\u003e/extent_cache_{hits, misses}.\n\nTested: fsstress, manual checks.\nSigned-off-by: Vivek Haldar \u003chaldar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "93917411be8db5d21abf15c781dfa43c5cc6edf2",
      "tree": "d5fb8f6b69a8fe710663ba5e5f7cb9fdec982112",
      "parents": [
        "373cd5c53d5ea6622c319ecd84e29e2737d488bd"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun May 22 20:49:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 20:49:12 2011 -0400"
      },
      "message": "ext4: make ext4_split_extent() handle error correctly\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "373cd5c53d5ea6622c319ecd84e29e2737d488bd",
      "tree": "2df40a29def22438cc15f90e4683d43974798784",
      "parents": [
        "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "message": "ext4: don\u0027t show mount options in /proc/mounts if there is no journal\n\nAfter creating an ext4 file system without a journal:\n\n  # mke2fs -t ext4 -O ^has_journal /dev/sda\n  # mount -t ext4 /dev/sda /test\n\nthe /proc/mounts will show:\n\"/dev/sda /test ext4 rw,relatime,user_xattr,acl,barrier\u003d1,data\u003dwriteback 0 0\"\nwhich can fool users into thinking that the fs is using writeback mode.\n\nSo don\u0027t set the writeback option when the journal has not been\nenabled; we don\u0027t depend on the writeback option being set, since\next4_should_writeback_data() in ext4_jbd2.h tests to see if the\njournal is not present before returning true.\n\nReported-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8",
      "tree": "d03bbc0de028862fb9df1d7941a03103150d69de",
      "parents": [
        "51ce65115642b77040f5582b8d2fc8815ac450f9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "message": "ext4: fix possible use-after-free in ext4_remove_li_request()\n\nWe need to take reference to the s_li_request after we take a mutex,\nbecause it might be freed since then, hence result in accessing old\nalready freed memory. Also we should protect the whole\next4_remove_li_request() because ext4_li_info might be in the process of\nbeing freed in ext4_lazyinit_thread().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "51ce65115642b77040f5582b8d2fc8815ac450f9",
      "tree": "53e42bb73ccbca4251d46ec5705a40a6b61bc5ab",
      "parents": [
        "e1290b3e62c496ade19939ce036f35bb69306820"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "message": "ext4: fix the mount option \"init_itable\u003dn\" to work as expected for n\u003d0\n\nFor some reason, when we set the mount option \"init_itable\u003d0\" it\nbehaves as we would set init_itable\u003d20 which is not right at all.\nBasically when we set it to zero we are saying to lazyinit thread not\nto wait between zeroing the inode table (except of cond_resched()) so\nthis commit fixes that and removes the unnecessary condition.  The \u0027n\u0027\nshould be also properly used on remount.\n\nWhen the n is not set at all, it means that the default miltiplier\nEXT4_DEF_LI_WAIT_MULT is set instead.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "e1290b3e62c496ade19939ce036f35bb69306820",
      "tree": "aaf8fc2fd2b9b7c9c1ce15303bb8debf7ab3d01b",
      "parents": [
        "4ed5c033c11b33149d993734a6a8de1016e8f03f"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "message": "ext4: Remove unnecessary wait_event ext4_run_lazyinit_thread()\n\nFor some reason we have been waiting for lazyinit thread to start in the\next4_run_lazyinit_thread() but it is not needed since it was jus\nunnecessary complexity, so get rid of it. We can also remove li_task and\nli_wait_task since it is not used anymore.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "4ed5c033c11b33149d993734a6a8de1016e8f03f",
      "tree": "826892fddc9cef7cbfac541eb13bb8eebc95c539",
      "parents": [
        "0e499890c1fd9e0a1bed02002161c4c7873d7489"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "message": "ext4: Use schedule_timeout_interruptible() for waiting in lazyinit thread\n\nIn order to make lazyinit eat approx. 10% of io bandwidth at max, we\nare sleeping between zeroing each single inode table. For that purpose\nwe are using timer which wakes up thread when it expires. It is set\nvia add_timer() and this may cause troubles in the case that thread\nhas been woken up earlier and in next iteration we call add_timer() on\nstill running timer hence hitting BUG_ON in add_timer(). We could fix\nthat by using mod_timer() instead however we can use\nschedule_timeout_interruptible() for waiting and hence simplifying\nthings a lot.\n\nThis commit exchange the old \"waiting mechanism\" with simple\nschedule_timeout_interruptible(), setting the time to sleep. Hence we\ndo not longer need li_wait_daemon waiting queue and others, so get rid\nof it.\n\nAddresses-Red-Hat-Bugzilla: #699708\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "0e499890c1fd9e0a1bed02002161c4c7873d7489",
      "tree": "9d45cdd242f399837fd208c39e964ef022703e54",
      "parents": [
        "7cb1a5351da8ac499d965a78e94c79ad27891f43"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed May 18 13:55:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:55:20 2011 -0400"
      },
      "message": "ext4: wait for writeback to complete while making pages writable\n\nIn order to stabilize pages during disk writes, ext4_page_mkwrite must\nwait for writeback operations to complete before making a page\nwritable.  Furthermore, the function must return locked pages, and\nrecheck the writeback status if the page lock is ever dropped.  The\n\"someone could wander in\" part of this patch was suggested by Chris\nMason.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7cb1a5351da8ac499d965a78e94c79ad27891f43",
      "tree": "b78e2ff5d432f14e2840e8911654789b656b26db",
      "parents": [
        "ed3ce80a52c4658f48ef8fc825bdedf8b3fcaa89"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed May 18 13:53:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:53:20 2011 -0400"
      },
      "message": "ext4: clean up some wait_on_page_writeback calls\n\nwait_on_page_writeback already checks the writeback bit, so callers of it\nneedn\u0027t do that test.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ed3ce80a52c4658f48ef8fc825bdedf8b3fcaa89",
      "tree": "ebed56d680e8d79842b0c3077f11cbc237faa19f",
      "parents": [
        "9b940f8e8c32456c8a6428fa4313a4bcca7b4fcb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "message": "ext4: don\u0027t warn about mnt_count if it has been disabled\n\nCurrently, if we mkfs a new ext4 volume with s_max_mnt_count set to\nzero, and mount it for the first time, we will get the warning:\n\n\tmaximal mount count reached, running e2fsck is recommended\n\nIt is really misleading. So change the check so that it won\u0027t warn in\nthat case.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9b940f8e8c32456c8a6428fa4313a4bcca7b4fcb",
      "tree": "24b784d45ad077461bdc76faf5e0fa0125eed0ec",
      "parents": [
        "0b26859027ce0005ef89520af20351360e51ad76"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Mon May 16 10:11:09 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 16 10:11:09 2011 -0400"
      },
      "message": "ext4: ext4_ext_convert_to_initialized bug found in extended FSX testing\n\nThis patch addresses bugs found while testing punch hole \nwith the fsx test.  The patch corrects the number of blocks\nthat are zeroed out while splitting an extent, and also corrects\nthe return value to return the number of blocks split out, instead\nof the number of blocks zeroed out.\n\nThis patch has been tested in addition to the following patches: \n[Ext4 punch hole v7]\n[XFS Tests Punch Hole 1/1 v2] Add Punch Hole Testing to FSX\n\nThe test ran successfully for 24 hours.\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b26859027ce0005ef89520af20351360e51ad76",
      "tree": "d0d8cec8c1f413c0980b4a66614871bd435ab334",
      "parents": [
        "6976a6f2acde2b0443cd64f1d08af90630e4ce81"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "message": "ext4: fix oops in ext4_quota_off()\n\nIf quota is not enabled when ext4_quota_off() is called, we must not\ndereference quota file inode since it is NULL.  Check properly for\nthis.\n\nThis fixes a bug in commit 21f976975cbe (ext4: remove unnecessary\n[cm]time update of quota file), which was merged for 2.6.39-rc3.\n\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6976a6f2acde2b0443cd64f1d08af90630e4ce81",
      "tree": "754e33f280a83ac2f843f2dcafd1b2fbffdd92ca",
      "parents": [
        "44183d4231a52a797beb477f962e1d361e31299d"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sun May 15 00:19:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 15 00:19:41 2011 -0400"
      },
      "message": "ext4: don\u0027t dereference null pointer when make_indexed_dir() fails\n\nFix for a null pointer bug found while running punch hole tests\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44183d4231a52a797beb477f962e1d361e31299d",
      "tree": "51ab7183ba8592db316cc189b063d49d8109d58f",
      "parents": [
        "9b8b7d353f5f9bea758398c3af679ffa105e5cfe"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:52:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:52:36 2011 -0400"
      },
      "message": "ext4: remove alloc_semp\n\nAfter taking care of all group init races, all that remains is to\nremove alloc_semp from ext4_allocation_context and ext4_buddy structs.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9b8b7d353f5f9bea758398c3af679ffa105e5cfe",
      "tree": "9536ad8334979e6ed9a188fd993afd4b307bc45c",
      "parents": [
        "2de8807b25de6d24476923121e3b20146fe8216b"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:49:42 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:49:42 2011 -0400"
      },
      "message": "ext4: teach ext4_mb_init_cache() to skip uptodate buddy caches\n\nAfter online resize which adds new groups, some of the groups\nin a buddy page may be initialized and uptodate, while other\n(new ones) may be uninitialized.\n\nThe indication for init of new block groups is when ext4_mb_init_cache()\nis called with an uptodate buddy page. In this case, initialized groups\non that buddy page must be skipped when initializing the buddy cache.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2de8807b25de6d24476923121e3b20146fe8216b",
      "tree": "083909f3bad86d16a1a65511771945b2ccbb917f",
      "parents": [
        "e73a347b7723757bb5fb5c502814dc205a7f496d"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:48:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:48:13 2011 -0400"
      },
      "message": "ext4: synchronize ext4_mb_init_group() with buddy page lock\n\nThe old routines ext4_mb_[get|put]_buddy_cache_lock(), which used\nto take grp-\u003ealloc_sem for all groups on the buddy page have been\nreplaced with the routines ext4_mb_[get|put]_buddy_page_lock().\n\nThe new routines take both buddy and bitmap page locks to protect\nagainst concurrent init of groups on the same buddy page.\n\nThe GROUP_NEED_INIT flag is tested again under page lock to check\nif the group was initialized by another caller.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e73a347b7723757bb5fb5c502814dc205a7f496d",
      "tree": "d65cf4e0fe070c46bdd4a6748bab549a11e0ef0b",
      "parents": [
        "2cd05cc39347ddd8994b7f63ab5cb886f042477f"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:40:01 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:40:01 2011 -0400"
      },
      "message": "ext4: implement ext4_add_groupblocks() by freeing blocks\n\nThe old imlementation used to take grp-\u003ealloc_sem and set the\nGROUP_NEED_INIT flag, so that the buddy cache would be reloaded.\n\nThe new implementation updates the buddy cache by freeing the added\nblocks and making them available for use, so there is no need to\nreload the buddy cache and there is no need to take grp-\u003ealloc_sem.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2cd05cc39347ddd8994b7f63ab5cb886f042477f",
      "tree": "72f981c17f079daa180de739d032faa6956ecef1",
      "parents": [
        "2846e82004a8d5ef0a63cd3209c84ea5cd796f11"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:58:45 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:58:45 2011 -0400"
      },
      "message": "ext4: remove unneeded ext4_journal_get_undo_access\n\nThe block allocation code used to use jbd2_journal_get_undo_access as\na way to make changes that wouldn\u0027t show up until the commit took\nplace.  The new multi-block allocation code has a its own way of\npreventing newly freed blocks from getting reused until the commit\ntakes place (it avoids updating the buddy bitmaps until the commit is\ndone), so we don\u0027t need to use jbd2_journal_get_undo_access(), which\nhas extra overhead compared to jbd2_journal_get_write_access().\n\nThere was one last vestigal use of ext4_journal_get_undo_access() in\next4_add_groupblocks(); change it to use ext4_journal_get_write_access()\nand then remove the ext4_journal_get_undo_access() support.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2846e82004a8d5ef0a63cd3209c84ea5cd796f11",
      "tree": "3b20c08ce64e918d4217bb95228fc597c63bf0e0",
      "parents": [
        "66bb82798d9ff896271d13f5020f7fb9b7d88e1a"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "message": "ext4: move ext4_add_groupblocks() to mballoc.c\n\nIn preparation for the next patch, the function ext4_add_groupblocks()\nis moved to mballoc.c, where it could use some static functions.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66bb82798d9ff896271d13f5020f7fb9b7d88e1a",
      "tree": "7bfbb2708421712b735e9c32a92a8cbbf3d58f22",
      "parents": [
        "55ff3840a293923daacc880cf4aed30c3c49f754"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "message": "ext4: remove redundant #ifdef in super.c\n\nThere is already an #ifdef CONFIG_QUOTA some lines above,\nso this one is totally useless.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "55ff3840a293923daacc880cf4aed30c3c49f754",
      "tree": "a6ff7d177ff6b2e1f58d63560cc9323f789f53a1",
      "parents": [
        "00d098822fe215a2f4fd32f244a9055b0b043bfe"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "message": "ext4: remove redundant check for first_not_zeroed in ext4_register_li_request\n\nWe have checked first_not_zeroed \u003d\u003d ngroups already above, so remove\nthis redundant check.\n\nsbi-\u003es_li_request \u003d NULL above is also removed since it is NULL\nalready.\n\nCc: Lukas Czerner \u003clczerner@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": "00d098822fe215a2f4fd32f244a9055b0b043bfe",
      "tree": "e111dd4a9eb65cfc862186315e89220b692ddf83",
      "parents": [
        "e8bbe8c401c61408ea226b33b824f231c8f9ccae"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:26:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:26:41 2011 -0400"
      },
      "message": "ext4: use s_inodes_per_block directly in __ext4_get_inode_loc\n\nIn __ext4_get_inode_loc, we calculate inodes_per_block every time by\nEXT4_BLOCK_SIZE(sb) / EXT4_INODE_SIZE(sb).  AFAICS, this function is a\nhot path for ext4, so we\u0027d better use s_inodes_per_block directly\ninstead of calculating every time.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e8bbe8c401c61408ea226b33b824f231c8f9ccae",
      "tree": "ebba3b3228e43896fb5dbc281a06f75de0667a55",
      "parents": [
        "1be2add685181ba31554ffefa428b0f80a408bff"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:25:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:25:54 2011 -0400"
      },
      "message": "ext4: use EXT4FS_DEBUG instead of EXT4_DEBUG in fsync.c\n\nWe have EXT4FS_DEBUG for some old debug and CONFIG_EXT4_DEBUG\nfor the new mballoc debug, but there isn\u0027t any EXT4_DEBUG.\n\nAs CONFIG_EXT4_DEBUG seems to be only used in mballoc, use\nEXT4FS_DEBUG in fsync.c.\n\n[ It doesn\u0027t really matter; although I\u0027m including this commit for\n  consistency\u0027s sake.  The whole point of the #ifdef\u0027s is to disable\n  the debugging code.  In general you\u0027re not going to want to enable\n  all of the code protected by EXT4FS_DEBUG at the same time.  -- Ted ]\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3",
      "tree": "625caf470f97ebd544cc19a06dc2921b34708aa8",
      "parents": [
        "47ea3bb59cf47298b1cbb4d7bef056b3afea0879"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 12:25:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 12:25:07 2011 -0400"
      },
      "message": "ext4: reimplement convert and split_unwritten\n\nReimplement ext4_ext_convert_to_initialized() and\next4_split_unwritten_extents() using ext4_split_extent()\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "47ea3bb59cf47298b1cbb4d7bef056b3afea0879",
      "tree": "20d3f182b3fe743e7ca221dc2ae2cf7ab93ba6b8",
      "parents": [
        "197217a5af79c23609da03eda2a52ee8603eec52"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 12:23:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 12:23:07 2011 -0400"
      },
      "message": "ext4: add ext4_split_extent_at() and ext4_split_extent()\n\nAdd two functions: ext4_split_extent_at(), which splits an extent into\ntwo extents at given logical block, and ext4_split_extent() which\nsplits an extent into three extents.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "197217a5af79c23609da03eda2a52ee8603eec52",
      "tree": "df05721599f21c46fb4879ec3195431dd9a45804",
      "parents": [
        "df5e6223407e3e645065c4bd968fee007f0e0287"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 11:45:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:45:29 2011 -0400"
      },
      "message": "ext4: add a function merging extents right and left\n\n1) Rename ext4_ext_try_to_merge() to ext4_ext_try_to_merge_right().\n\n2) Add a new function ext4_ext_try_to_merge() which tries to merge\n   an extent both left and right.\n\n3) Use the new function in ext4_ext_convert_unwritten_endio() and\n   ext4_ext_insert_extent().\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "df5e6223407e3e645065c4bd968fee007f0e0287",
      "tree": "d5027dc9645dea4a5536819ac98f4299757fff22",
      "parents": [
        "7ad8e4e6ae2a7c95445ee1715b1714106fb95037"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 03 11:12:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:12:58 2011 -0400"
      },
      "message": "ext4: fix deadlock in ext4_symlink() in ENOSPC conditions\n\next4_symlink() cannot call __page_symlink() with transaction open.\n__page_symlink() calls ext4_write_begin() which can wait for\ntransaction commit if we are running out of space thus causing a\ndeadlock. Also error recovery in ext4_truncate_failed_write() does not\ncount with the transaction being already started (although I\u0027m not\naware of any particular deadlock here).\n\nFix the problem by stopping a transaction before calling\n__page_symlink() (we have to be careful and put inode to orphan list\nso that it gets deleted in case of crash) and starting another one\nafter __page_symlink() returns for addition of symlink into a\ndirectory.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7ad8e4e6ae2a7c95445ee1715b1714106fb95037",
      "tree": "f3cb6f1d364e2a1f9036216edfcbdcb94e4d489f",
      "parents": [
        "74e4e6db38918620bdf8a46e94982ead2b228d43"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 03 11:05:55 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:05:55 2011 -0400"
      },
      "message": "ext4: Fix fs corruption when make_indexed_dir() fails\n\nWhen make_indexed_dir() fails (e.g. because of ENOSPC) after it has\nallocated block for index tree root, we did not properly mark all\nchanged buffers dirty.  This lead to only some of these buffers being\nwritten out and thus effectively corrupting the directory.\n\nFix the issue by marking all changed data dirty even in the error\nfailure case.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "74e4e6db38918620bdf8a46e94982ead2b228d43",
      "tree": "1bebec0e236c670036116e6f77eb1170dc5a0ef1",
      "parents": [
        "deeeaf13b291420fe4a4a52606b9fc9128387340"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 09:34:42 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 09:34:42 2011 -0400"
      },
      "message": "ext4: set extents flag when migrating file to use extents\n\nFix a typo that was introduced in commit 07a038245b (in 2.6.36) which\ncaused the extents flag not to be set at the conclusion of converting\nan inode to use extents.\n\nReported-by: Peter Uchno \u003cpeter.uchno@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dc2070a241cf3f86395afe7b969020d99aad8f00",
      "tree": "d48537695bda850b38037c85851de551ce4e1b5c",
      "parents": [
        "d9f34504e6952e909a6932c5b2d1857716606380"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "message": "ext4: remove dead code in ext4_has_free_blocks()\n\npercpu_counter_sum_positive() never returns a negative value.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d9f34504e6952e909a6932c5b2d1857716606380",
      "tree": "ae81b1df1d4d30606acea4e00fbca19307be4f29",
      "parents": [
        "39db00f1c45e770856264bdb3ceca27980b01965"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:47:24 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:47:24 2011 -0400"
      },
      "message": "ext4: ignore errors when issuing discards\n\nThis is an effective revert of commit a30eec2a8: \"ext4: stop issuing\ndiscards if not supported by device\".  The problem is that there are\nsome devices that may return errors in response to a discard request\nsome times but not others.  (One example would be a hybrid dm device\nwhich concatenates an SSD and an HDD device).\n\nBy this logic, I also removed the error checking from ext4\u0027s FITRIM\ncode; so that an error from a discard will not stop the FITRIM from\ntrying to trim the rest of the file system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39db00f1c45e770856264bdb3ceca27980b01965",
      "tree": "a06fcf532d9bbb06395016a653840efa7436c6bf",
      "parents": [
        "2035e776050aea57fb5255557216473e82793f2c"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Apr 30 13:26:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:26:26 2011 -0400"
      },
      "message": "ext4: don\u0027t set PageUptodate in ext4_end_bio()\n\nIn the bio completion routine, we should not be setting\nPageUptodate at all -- it\u0027s set at sys_write() time, and is\nunaffected by success/failure of the write to disk.\n\nThis can cause a page corruption bug when the file system\u0027s\nblock size is less than the architecture\u0027s VM page size.\n\nif we have only written a single block -- we might end up\nsetting the page\u0027s PageUptodate flag, indicating that page\nis completely read into memory, which may not be true.\nThis could cause subsequent reads to get bad data.\n\nThis commit also takes the opportunity to clean up error\nhandling in ext4_end_bio(), and remove some extraneous code:\n\n   - fixes ext4_end_bio() to set AS_EIO in the\n     page-\u003emapping-\u003eflags on error, which was left out by\n     mistake.  This is needed so that fsync() will\n     return an error if there was an I/O error.\n   - remove the clear_buffer_dirty() call on unmapped\n     buffers for each page.\n   - consolidate page/buffer error handling in a single\n     section.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Jim Meyering \u003cjim@meyering.net\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "2035e776050aea57fb5255557216473e82793f2c",
      "tree": "6a97e536fd5fbdc29e4b471195a5dd5a0df35fc6",
      "parents": [
        "26626f1172fb4f3f323239a6a5cf4e082643fa46"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "message": "ext4: check for ext[23] file system features when mounting as ext[23]\n\nProvide better emulation for ext[23] mode by enforcing that the file\nsystem does not have any unsupported file system features as defined\nby ext[23] when emulating the ext[23] file system driver when\nCONFIG_EXT4_USE_FOR_EXT23 is defined.\n\nThis causes the file system type information in /proc/mounts to be\ncorrect for the automatically mounted root file system.  This also\nmeans that \"mount -t ext2 /dev/sda /mnt\" will fail if /dev/sda\ncontains an ext3 or ext4 file system, just as one would expect if the\noriginal ext2 file system driver were in use.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "26626f1172fb4f3f323239a6a5cf4e082643fa46",
      "tree": "a1b11f012bd0807b771651c73b701475a8309bee",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "Yang Ruirui",
        "email": "ruirui.r.yang@tieto.com",
        "time": "Sat Apr 16 19:17:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 16 19:17:48 2011 -0400"
      },
      "message": "ext4: release page cache in ext4_mb_load_buddy error path\n\nAdd missing page_cache_release in the error path of ext4_mb_load_buddy\n\nSigned-off-by: Yang Ruirui \u003cruirui.r.yang@tieto.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d",
      "tree": "1a35544915a5704fa59c63b43e9f46e20be1e296",
      "parents": [
        "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
        "c8205636029fc869278c55b7336053b3e7ae3ef4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix data corruption regression by reverting commit 6de9843dab3f\n  ext4: Allow indirect-block file to grow the file size to max file size\n  ext4: allow an active handle to be started when freezing\n  ext4: sync the directory inode in ext4_sync_parent()\n  ext4: init timer earlier to avoid a kernel panic in __save_error_info\n  jbd2: fix potential memory leak on transaction commit\n  ext4: fix a double free in ext4_register_li_request\n  ext4: fix credits computing for indirect mapped files\n  ext4: remove unnecessary [cm]time update of quota file\n  jbd2: move bdget out of critical section\n"
    },
    {
      "commit": "c8205636029fc869278c55b7336053b3e7ae3ef4",
      "tree": "c22b4f2fab37d14d4b81ad5683110075afdc35ea",
      "parents": [
        "f80da1e70f1ffec3825aa0a1d0801f4896e002b6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:30:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:30:07 2011 -0400"
      },
      "message": "ext4: fix data corruption regression by reverting commit 6de9843dab3f\n\nRevert commit 6de9843dab3f2a1d4d66d80aa9e5782f80977d20, since it\ncaused a data corruption regression with BitTorrent downloads.  Thanks\nto Damien for discovering and bisecting to find the problem commit.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d32972\n\nReported-by: Damien Grassart \u003cdamien@grassart.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f80da1e70f1ffec3825aa0a1d0801f4896e002b6",
      "tree": "42976f4e0fc07da78ffce618b7e98b87d82a2bff",
      "parents": [
        "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Sun Apr 10 22:06:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:06:36 2011 -0400"
      },
      "message": "ext4: Allow indirect-block file to grow the file size to max file size\n\nWe can create 4402345721856 byte file with indirect block mapping.\nHowever, if we grow an indirect-block file to the size with ftruncate(),\nwe can see an ext4 warning. The following patch fixes this problem.\n\nHow to reproduce:\n# dd if\u003d/dev/zero of\u003d/mnt/mp1/hoge bs\u003d1 count\u003d0 seek\u003d4402345721856\n0+0 records in\n0+0 records out\n0 bytes (0 B) copied, 0.000221428 s, 0.0 kB/s\n# tail -n 1 /var/log/messages\nNov 25 15:10:27 test kernel: EXT4-fs warning (device sda8): ext4_block_to_path:345: block 1074791436 \u003e max in inode 12\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": "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9",
      "tree": "e4262a9e1ade9095e1bf937dc4b9d56a08824eda",
      "parents": [
        "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "message": "ext4: allow an active handle to be started when freezing\n\next4_journal_start_sb() should not prevent an active handle from being\nstarted due to s_frozen.  Otherwise, deadlock is easy to happen, below\nis a situation.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     freeze         |       truncate\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    |  ext4_ext_truncate()\n    freeze_super()  |   starts a handle\n    sets s_frozen   |\n                    |  ext4_ext_truncate()\n                    |  holds i_data_sem\n  ext4_freeze()     |\n  waits for updates |\n                    |  ext4_free_blocks()\n                    |  calls dquot_free_block()\n                    |\n                    |  dquot_free_blocks()\n                    |  calls ext4_dirty_inode()\n                    |\n                    |  ext4_dirty_inode()\n                    |  trys to start an active\n                    |  handle\n                    |\n                    |  block due to s_frozen\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n"
    },
    {
      "commit": "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c",
      "tree": "a9a4e226a6bfa7a13e0cad545280e5e8ce2a80b2",
      "parents": [
        "0449641130f5652b344ef6fa39fa019d7e94660a"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun Apr 10 22:05:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:05:31 2011 -0400"
      },
      "message": "ext4: sync the directory inode in ext4_sync_parent()\n\next4 has taken the stance that, in the absence of a journal,\nwhen an fsync/fdatasync of an inode is done, the parent\ndirectory should be sync\u0027ed if this inode entry is new.\next4_sync_parent(), which implements this, does indeed sync\nthe dirent pages for parent directories, but it does not\nsync the directory *inode*.  This patch fixes this.\n\nAlso now return error status from ext4_sync_parent().\n\nI tested this using a power fail test, which panics a\nmachine running a file server getting requests from a\nclient.  Without this patch, on about every other test run,\nthe server is missing many, many files that had been synced.\nWith this patch, on \u003e 6 runs, I see zero files being lost.\n\nGoogle-Bug-Id: 4179519\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0449641130f5652b344ef6fa39fa019d7e94660a",
      "tree": "d24779d75a6d3fafff8082591b3572a5fdb32858",
      "parents": [
        "6cba611e600ded15f642552ce6b5f7ee243bacf0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Tue Apr 05 19:55:28 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 05 19:55:28 2011 -0400"
      },
      "message": "ext4: init timer earlier to avoid a kernel panic in __save_error_info\n\nDuring mount, when we fail to open journal inode or root inode, the\n__save_error_info will mod_timer. But actually s_err_report isn\u0027t\ninitialized yet and the kernel oops. The detailed information can\nbe found https://bugzilla.kernel.org/show_bug.cgi?id\u003d32082.\n\nThe best way is to check whether the timer s_err_report is initialized\nor not. But it seems that in include/linux/timer.h, we can\u0027t find a\ngood function to check the status of this timer, so this patch just\nmove the initializtion of s_err_report earlier so that we can avoid\nthe kernel panic. The corresponding del_timer is also added in the\nerror path.\n\nReported-by: Sami Liedes \u003csliedes@cc.hut.fi\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "46e4690bbd9a4f8d9e7c4f34e34b48f703ad47e0",
      "tree": "94d800c75ed4a9e11cd5301e171d301b266d4032",
      "parents": [
        "5b41395fcc0265fc9f193aef9df39ce49d64677c"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Apr 04 16:00:49 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 16:00:49 2011 -0400"
      },
      "message": "ext4: fix a double free in ext4_register_li_request\n\nIn ext4_register_li_request, we malloc a ext4_li_request and\ninserts it into ext4_li_info-\u003eli_request_list. In case of any\nerror later, we free it in the end.  But if we have some error\nin ext4_run_lazyinit_thread, the whole li_request_list will be\ndropped and freed in it. So we will double free this ext4_li_request.\n\nThis patch just sets elr to NULL after it is inserted to the list\nso that the latter kfree won\u0027t double free it.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5b41395fcc0265fc9f193aef9df39ce49d64677c",
      "tree": "3e9ce0bc590399f78808fce8279d04c61301beb8",
      "parents": [
        "21f976975cbecbdaf23ceeacc1cab2b1c05a028e"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Apr 04 15:40:24 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 15:40:24 2011 -0400"
      },
      "message": "ext4: fix credits computing for indirect mapped files\n\nWhen writing a contiguous set of blocks, two indirect blocks could be\nneeded depending on how the blocks are aligned, so we need to increase\nthe number of credits needed by one.\n\n[ Also fixed a another bug which could further underestimate the\n  number of journal credits needed by 1; the code was using integer\n  division instead of DIV_ROUND_UP() -- tytso]\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "21f976975cbecbdaf23ceeacc1cab2b1c05a028e",
      "tree": "3040b533bf50d58e23c3c207001d89b29846df37",
      "parents": [
        "50f689af019b19f9b9a39be782c21b6f52b1615a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 04 15:33:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 04 15:33:39 2011 -0400"
      },
      "message": "ext4: remove unnecessary [cm]time update of quota file\n\nIt is not necessary to update [cm]time of quota file on each quota\nfile write and it wastes journal space and IO throughput with inode\nwrites. So just remove the updating from ext4_quota_write() and only\nupdate times when quotas are being turned off. Userspace cannot get\nanything reliable from quota files while they are used by the kernel\nanyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
      "tree": "d464865bcc97bea05eab4eba0d10bcad4ec89b93",
      "parents": [
        "3961cdf85b749f6bab50ad31ee97e9277e7a3b70",
        "0ba0851714beebb800992e5105a79dc3a4c504b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57: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: (43 commits)\n  ext4: fix a BUG in mb_mark_used during trim.\n  ext4: unused variables cleanup in fs/ext4/extents.c\n  ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n  ext4: add more tracepoints and use dev_t in the trace buffer\n  ext4: don\u0027t kfree uninitialized s_group_info members\n  ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n  ext4: add FITRIM to compat_ioctl.\n  ext4: handle errors in ext4_clear_blocks()\n  ext4: unify the ext4_handle_release_buffer() api\n  ext4: handle errors in ext4_rename\n  jbd2: add COW fields to struct jbd2_journal_handle\n  jbd2: add the b_cow_tid field to journal_head struct\n  ext4: Initialize fsync transaction ids in ext4_new_inode()\n  ext4: Use single thread to perform DIO unwritten convertion\n  ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n  ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n  ext4: use the nblocks arg to ext4_truncate_restart_trans()\n  ext4: fix missing iput of root inode for some mount error paths\n  ext4: make FIEMAP and delayed allocation play well together\n  ext4: suppress verbose debugging information if malloc-debug is off\n  ...\n\nFi up conflicts in fs/ext4/super.c due to workqueue changes\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50e0168cc3406fc1a04d57eb08f500a173d1660d",
      "tree": "19f8e15048c37bfface138e19eb93855e02c266c",
      "parents": [
        "0795ccea24714c790187e3d4f23c8e5be515f42d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext4: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ba0851714beebb800992e5105a79dc3a4c504b0",
      "tree": "290b4f679fc86877df068ae4193101dc583f424f",
      "parents": [
        "65922cb5ced76ba7182e955d4aada96f93446b1a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Mar 23 15:48:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 15:48:11 2011 -0400"
      },
      "message": "ext4: fix a BUG in mb_mark_used during trim.\n\nIn a bs\u003d4096 volume, if we call FITRIM with the following parameter as\nfstrim_range(start \u003d 102400, len \u003d 134144000, minlen \u003d 10240),\nwe will trigger this BUG_ON:\n\n\tBUG_ON(start + len \u003e (e4b-\u003ebd_sb-\u003es_blocksize \u003c\u003c 3));\n\nMar  4 00:55:52 boyu-tm kernel: ------------[ cut here ]------------\nMar  4 00:55:52 boyu-tm kernel: kernel BUG at fs/ext4/mballoc.c:1506!\nMar  4 01:21:09 boyu-tm kernel: Code: d4 00 00 00 00 49 89 fe 8b 56 0c 44 8b 7e 04 89 55 c4 48 8b 4f 28 89 d6 44 01 fe 48 63 d6 48 8b 41 18 48 c1 e0 03 48 39 c2 76 04 \u003c0f\u003e 0b eb fe 48 8b 55 b0 8b 47 34 3b 42 08 74 04 0f 0b eb fe 48\nMar  4 01:21:09 boyu-tm kernel: RIP  [\u003cffffffffa053eb42\u003e] mb_mark_used+0x47/0x26c [ext4]\nMar  4 01:21:09 boyu-tm kernel:  RSP \u003cffff880121e45c38\u003e\nMar  4 01:21:09 boyu-tm kernel: ---[ end trace 9f461696f6a9dcf2 ]---\n\nFix this bug by doing the accounting correctly.\n\nCc: Lukas Czerner \u003clczerner@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": "65922cb5ced76ba7182e955d4aada96f93446b1a",
      "tree": "2d6b7f56f226e7e17f67f642775a2ec0a32c7e17",
      "parents": [
        "6de9843dab3f2a1d4d66d80aa9e5782f80977d20"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Mar 23 14:08:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 14:08:27 2011 -0400"
      },
      "message": "ext4: unused variables cleanup in fs/ext4/extents.c\n\next4 extents cleanup:\n\n  . remove unused `*ex\u0027 from check_eofblocks_fl\n  . remove unused `*eh\u0027 from ext4_ext_map_blocks\n\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6de9843dab3f2a1d4d66d80aa9e5782f80977d20",
      "tree": "9c78e8d386e117cb890e9823b113dfdc290be580",
      "parents": [
        "0562e0bad483d10e9651fbb8f21dc3d0bad57374"
      ],
      "author": {
        "name": "Feng Tang",
        "email": "feng.tang@intel.com",
        "time": "Wed Mar 23 14:05:03 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 14:05:03 2011 -0400"
      },
      "message": "ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n\nThe map_bh() call will have already set the buffer_head to mapped.\n\nSigned-off-by: Feng Tang \u003cfeng.tang@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0562e0bad483d10e9651fbb8f21dc3d0bad57374",
      "tree": "19f6597f92c028badcb6df360ccac22240378e25",
      "parents": [
        "4596fe07679ff0fae904515691ea747467614871"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "message": "ext4: add more tracepoints and use dev_t in the trace buffer\n\n- Add more ext4 tracepoints.\n- Change ext4 tracepoints to use dev_t field with MAJOR/MINOR macros\nso that we can save 4 bytes in the ring buffer on some platforms.\n- Add sync_mode to ext4_da_writepages, ext4_da_write_pages, and\next4_da_writepages_result tracepoints. Also remove for_reclaim\nfield from ext4_da_writepages since it is usually not very useful.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4596fe07679ff0fae904515691ea747467614871",
      "tree": "e15520e06d5c72702dc84e4eda4179ee9dc5c294",
      "parents": [
        "21149d611ecd0faf60f4ef94aa2bf8ed872f92bf"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Mar 21 21:25:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 21:25:13 2011 -0400"
      },
      "message": "ext4: don\u0027t kfree uninitialized s_group_info members\n\nWe can call kfree on uninitialized members of the s_group_info array\non an the error path.  We can avoid this by kzalloc\u0027ing the array.\n\nThis doesn\u0027t entirely solve the oops on mount if we fail down this\npath; failed_mount4: frees the sbi, for one, which gets referenced\nlater in the failed mount paths - I haven\u0027t worked that out yet.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d30872\n\nReported-by: Eugene A. Shatokhin \u003cdame_eugene@mail.ru\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "21149d611ecd0faf60f4ef94aa2bf8ed872f92bf",
      "tree": "93c1b2cf51747dae66789db0506e94bc02dd0859",
      "parents": [
        "a56e69c28ad0782a99f3f196e93d57ba5a7e2324"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "message": "ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n\nWhen we do performence-testing on ext4 filesystem, we observed a\nwarning like this:\n\nEXT4-fs error (device sda7): ext4_mb_generate_buddy:718: group 259825901 blocks in bitmap, 26057 in gd\n\ninstead, it should be\n\n\"group 2598, 25901 blocks in bitmap, 26057 in gd\"\n\nReviewed-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a56e69c28ad0782a99f3f196e93d57ba5a7e2324",
      "tree": "5737ab643ff5eefc21704d41f4583c5fbd9be8f8",
      "parents": [
        "d67d1218344009970ba0deb7eb15a3984518ddd0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Mar 20 23:16:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 23:16:58 2011 -0400"
      },
      "message": "ext4: add FITRIM to compat_ioctl.\n\nFITRIM isn\u0027t added in compat_ioctl. So a 32 bit program can\u0027t be executed\nin a 64 bit platform. Add it in the compat_ioctl.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d67d1218344009970ba0deb7eb15a3984518ddd0",
      "tree": "323e3fb76bdff2481fa35ce3aa82699434dae743",
      "parents": [
        "537a03103c67c4688b1e8e6671ad119aec5e2efb"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 22:59:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 22:59:02 2011 -0400"
      },
      "message": "ext4: handle errors in ext4_clear_blocks()\n\nChecking return code from ext4_journal_get_write_access() is important\nwith snapshots, because this function invokes COW, so may return new\nerrors, such as ENOSPC.\n\next4_clear_blocks() now returns \u003c 0 for fatal errors, in which case,\next4_free_data() is aborted.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "537a03103c67c4688b1e8e6671ad119aec5e2efb",
      "tree": "8d5df9bfe1e027395455374cd076b5997d3b488d",
      "parents": [
        "ef6078930263bfcdcfe4dddb2cd85254b4cf4f5c"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 22:57:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 22:57:02 2011 -0400"
      },
      "message": "ext4: unify the ext4_handle_release_buffer() api\n\nThere are two wrapper functions which do exactly the same thing:\next4_journal_release_buffer(), and ext4_handle_release_buffer().  In\naddition, ext4_xattr_block_set() calls jbd2_journal_release_buffer()\ndirectly.\n\nUnify all of the code to use ext4_handle_release_buffer(), and get rid\nof ext4_journal_release_buffer().\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ef6078930263bfcdcfe4dddb2cd85254b4cf4f5c",
      "tree": "78ad55a45c5df9be3be1453c2fc36e98d3c2196b",
      "parents": [
        "93737456d68ddcb86232f669b83da673dd12e351"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 21:18:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 21:18:44 2011 -0400"
      },
      "message": "ext4: handle errors in ext4_rename\n\nChecking return code from ext4_journal_get_write_access() is important\nwith snapshots, because this function invokes COW, so may return new\nerrors, such as ENOSPC.\n\nWe move the call to ext4_journal_get_write_access earlier in the\nfunction, to simplify error handling in the case that this function\nreturns returns an error.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e16b396ce314b2bcdfe6c173fe075bf8e3432368",
      "tree": "640f0f56f2ea676647af4eb42d32fa56be2ee549",
      "parents": [
        "7fd23a24717a327a66f3c32d11a20a2f169c824f",
        "e6e8dd5055a974935af1398c8648d4a9359b0ecb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)\n  doc: CONFIG_UNEVICTABLE_LRU doesn\u0027t exist anymore\n  Update cpuset info \u0026 webiste for cgroups\n  dcdbas: force SMI to happen when expected\n  arch/arm/Kconfig: remove one to many l\u0027s in the word.\n  asm-generic/user.h: Fix spelling in comment\n  drm: fix printk typo \u0027sracth\u0027\n  Remove one to many n\u0027s in a word\n  Documentation/filesystems/romfs.txt: fixing link to genromfs\n  drivers:scsi Change printk typo initate -\u003e initiate\n  serial, pch uart: Remove duplicate inclusion of linux/pci.h header\n  fs/eventpoll.c: fix spelling\n  mm: Fix out-of-date comments which refers non-existent functions\n  drm: Fix printk typo \u0027failled\u0027\n  coh901318.c: Change initate to initiate.\n  mbox-db5500.c Change initate to initiate.\n  edac: correct i82975x error-info reported\n  edac: correct i82975x mci initialisation\n  edac: correct commented info\n  fs: update comments to point correct document\n  target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c\n  ...\n\nTrivial conflict in fs/eventpoll.c (spelling vs addition)\n"
    },
    {
      "commit": "688f869ce3bdc892daa993534dc6df18c95df931",
      "tree": "aea78b966a70e3e0200a88bfaddb86e7fd3f1092",
      "parents": [
        "198868f35de99e7197829314076e5465c37e4cc5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 16 17:16:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 16 17:16:31 2011 -0400"
      },
      "message": "ext4: Initialize fsync transaction ids in ext4_new_inode()\n\nWhen allocating a new inode, we need to make sure i_sync_tid and\ni_datasync_tid are initialized.  Otherwise, one or both of these two\nvalues could be left initialized to zero, which could potentially\nresult in BUG_ON in jbd2_journal_commit_transaction.\n\n(This could happen by having journal-\u003ecommit_request getting set to\nzero, which could wake up the kjournald process even though there is\nno running transaction, which then causes a BUG_ON via the \nJ_ASSERT(j_ruinning_transaction !\u003d NULL) statement.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "f2fa2ffc2046fdc35f96366d1ec8675f4d578522",
      "tree": "b1215682f5fbb99cf975cee3fb827909ee4a1c97",
      "parents": [
        "03cb5f03dcb26846fcad345d8c15aae91579a53d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:40 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:45 2011 -0400"
      },
      "message": "ext4: Copy fs UUID to superblock\n\nFile system UUID is made available to application\nvia  /proc/\u003cpid\u003e/mountinfo\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f17b6042073e7000a90063f7edbca59a5bd1caa2",
      "tree": "e893485df882c770da602030c6c1098b11ea3d56",
      "parents": [
        "aae8a97d3ec30788790d1720b71d76fd8eb44b73"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:30 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:44 2011 -0400"
      },
      "message": "fs: Remove i_nlink check from file system link callback\n\nNow that VFS check for inode-\u003ei_nlink \u003d\u003d 0 and returns proper\nerror, remove similar check from file system\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fe3fa43039d47ee4e22caf460b79b62a14937f79",
      "tree": "9eab8d00f1227b9fe0959f32a62d892ed35803ba",
      "parents": [
        "ee009e4a0d4555ed522a631bae9896399674f064",
        "026eb167ae77244458fa4b4b9fc171209c079ba7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "198868f35de99e7197829314076e5465c37e4cc5",
      "tree": "04d6044250667f150787bedf68db6ac3732458c9",
      "parents": [
        "b616844310a6c8a4ab405d3436bbb6e53cfd852f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "message": "ext4: Use single thread to perform DIO unwritten convertion\n\nWhile running ext4 testing on multiple core, we found there are per\ncpu ext4-dio-unwritten threads processing conversion from unwritten\nextents to written for IOs completed from async direct IO patch.  Per\nfilesystem is enough, we don\u0027t need per cpu threads to work on\nconversion.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "b616844310a6c8a4ab405d3436bbb6e53cfd852f",
      "tree": "7fff51c3d55b21df27d93382c8bd0f2910f83263",
      "parents": [
        "d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 13:12:38 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 13:12:38 2011 -0500"
      },
      "message": "ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n\nIf no extent conversion is required, wake up any processes waiting for\nthe page\u0027s writeback to be complete and free the ext4_io_end structure\ndirectly in ext4_end_bio() instead of dropping it on the linked list\n(which requires taking a spinlock to queue and dequeue the io_end\nstructure), and waiting for the workqueue to do this work.\n\nThis removes an extra scheduling delay before process waiting for an\nfsync() to complete gets woken up, and it also reduces the CPU\noverhead for a random write workload.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027",
      "tree": "dcea99dcf6ca1b76c0db23fd4e81033440d057b5",
      "parents": [
        "8e8eaabefee3ff645b9551ee32c6c54c7d80ad19"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "message": "ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n\nOrphan cleanup is currently executed even if the file system has some\nnumber of unknown ROCOMPAT features, which deletes inodes and frees\nblocks, which could be very bad for some RO_COMPAT features,\nespecially the SNAPSHOT feature.\n\nThis patch skips the orphan cleanup if it contains readonly compatible\nfeatures not known by this ext4 implementation, which would prevent\nthe fs from being mounted (or remounted) readwrite.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8e8eaabefee3ff645b9551ee32c6c54c7d80ad19",
      "tree": "101f4a24a8f57f798a74eb097c424b882f872bf8",
      "parents": [
        "32a9bb57d7c1fd04ae0f72b8f671501f000a0e9f"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Feb 27 23:32:12 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 23:32:12 2011 -0500"
      },
      "message": "ext4: use the nblocks arg to ext4_truncate_restart_trans()\n\nnblocks is passed into ext4_truncate_restart_trans() from\next4_ext_truncate_extend_restart() with a value different from the default\nblocks_for_truncate(), but is being ignored.\n\nThe two other calls to ext4_truncate_restart_trans() already pass the\ndefault value, which is then being recalculated inside the function.\n\nFix the problem by using the passed argument.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\n"
    },
    {
      "commit": "32a9bb57d7c1fd04ae0f72b8f671501f000a0e9f",
      "tree": "9bab50282f4d17a9710df599170662bda8a9a61d",
      "parents": [
        "6d9c85eb700bd3ac59e63bb9de463dea1aca084c"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "message": "ext4: fix missing iput of root inode for some mount error paths\n\nThis assures that the root inode is not leaked, and that sb-\u003es_root is\nNULL, which will prevent generic_shutdown_super() from doing extra\nwork, including call sync_filesystem, which ultimately results in\next4_sync_fs() getting called with an uninitialized struct super,\nwhich is the cause of the crash noted in Kernel Bugzilla #26752.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d26752\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6d9c85eb700bd3ac59e63bb9de463dea1aca084c",
      "tree": "c87def25fd7c97b94e8d78700dd0794abe5c8a50",
      "parents": [
        "4dd89fc6251a6bda2c18e71e7d266e983806579d"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Feb 27 17:25:47 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:25:47 2011 -0500"
      },
      "message": "ext4: make FIEMAP and delayed allocation play well together\n\nFix the FIEMAP ioctl so that it returns all of the page ranges which\nare still subject to delayed allocation.  We were missing some cases\nif the file was sparse.\n\nReported by Chris Mason \u003cchris.mason@oracle.com\u003e:\n\u003eWe\u0027ve had reports on btrfs that cp is giving us files full of zeros\n\u003einstead of actually copying them.  It was tracked down to a bug with\n\u003ethe btrfs fiemap implementation where it was returning holes for\n\u003edelalloc ranges.\n\u003e\n\u003eNewer versions of cp are trusting fiemap to tell it where the holes\n\u003eare, which does seem like a pretty neat trick.\n\u003e\n\u003eI decided to give xfs and ext4 a shot with a few tests cases too, xfs\n\u003epassed with all the ones btrfs was getting wrong, and ext4 got the basic\n\u003edelalloc case right.\n\u003e$ mkfs.ext4 /dev/xxx\n\u003e$ mount /dev/xxx /mnt\n\u003e$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1\n\u003e$ fiemap-test foo\n\u003eext:   0 logical: [       0..     255] phys:        0..     255\n\u003eflags: 0x007 tot: 256\n\u003e\n\u003eHorray!  But once we throw a hole in, things go bad:\n\u003e$ mkfs.ext4 /dev/xxx\n\u003e$ mount /dev/xxx /mnt\n\u003e$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d1\n\u003e$ fiemap-test foo\n\u003e\u003c no output \u003e\n\u003e\n\u003eWe\u0027ve got a delalloc extent after the hole and ext4 fiemap didn\u0027t find\n\u003eit.  If I run sync to kick the delalloc out:\n\u003e$sync\n\u003e$ fiemap-test foo\n\u003eext:   0 logical: [     256..     511] phys:    34048..   34303\n\u003eflags: 0x001 tot: 256\n\u003e\n\u003efiemap-test is sitting in my /usr/local/bin, and I have no idea how it\n\u003egot there.  It\u0027s full of pretty comments so I know it isn\u0027t mine, but\n\u003eyou can grab it here:\n\u003e\n\u003ehttp://oss.oracle.com/~mason/fiemap-test.c\n\u003e\n\u003exfsqa has a fiemap program too.\n\nAfter Fix, test results are as follows:\next:   0 logical: [     256..     511] phys:        0..     255\nflags: 0x007 tot: 256\next:   0 logical: [     256..     511] phys:    33280..   33535\nflags: 0x001 tot: 256\n\n$ mkfs.ext4 /dev/xxx\n$ mount /dev/xxx /mnt\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d1\n$ sync\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d3\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d5\n$ fiemap-test foo\next:   0 logical: [     256..     511] phys:    33280..   33535\nflags: 0x000 tot: 256\next:   1 logical: [     768..    1023] phys:        0..     255\nflags: 0x006 tot: 256\next:   2 logical: [    1280..    1535] phys:        0..     255\nflags: 0x007 tot: 256\n\nTested-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4dd89fc6251a6bda2c18e71e7d266e983806579d",
      "tree": "c2a98ab3ba6a24a10a0eabc5dc818dcc17ad9c5d",
      "parents": [
        "a54aa76108619e5d8290b49081c2aaaeff5be9a2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:23:47 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:23:47 2011 -0500"
      },
      "message": "ext4: suppress verbose debugging information if malloc-debug is off\n\nIf CONFIG_EXT4_DEBUG is enabled, then if a block allocation fails due\nto disk being full, a verbose debugging message is printed, even if\nthe malloc-debug switch has not been enabled.  Suppress the debugging\nmessage so that nothing is printed unless malloc-debug has been turned\non.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a54aa76108619e5d8290b49081c2aaaeff5be9a2",
      "tree": "a3c436e29b5452f9c17bffc7bbc6b8f437c3255c",
      "parents": [
        "168fc0223c0e944957b1f31d88c2334fc904baf1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 16:43:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 16:43:24 2011 -0500"
      },
      "message": "ext4: don\u0027t leave PageWriteback set after memory failure\n\nIn ext4_bio_write_page(), if the memory allocation for the struct\next4_io_page fails, it returns with the page\u0027s PageWriteback flag set.\nThis will end up causing the page not to skip writeback in\nWB_SYNC_NONE mode, and in WB_SYNC_ALL mode (i.e., on a sync, fsync, or\numount) the writeback daemon will get stuck forever on the\nwait_on_page_writeback() function in write_cache_pages_da().\n\nOr, if journalling is enabled and the file gets deleted, it the\njournal thread can get stuck in journal_finish_inode_data_buffers()\ncall to filemap_fdatawait().\n\nAnother place where things can get hung up is in\ntruncate_inode_pages(), called out of ext4_evict_inode().\n\nFix this by not setting PageWriteback until after we have successfully\nallocated the struct ext4_io_page.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "168fc0223c0e944957b1f31d88c2334fc904baf1",
      "tree": "1768f86cca5cef5ae1ba2275fca7ea9f0c0630d5",
      "parents": [
        "78aaced3408141bb7c836f2db0ca435790399da5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:20 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:20 2011 -0500"
      },
      "message": "ext4: move setup of the mpd structure to write_cache_pages_da()\n\nMove the initialization of all of the fields of the mpd structure to\nwrite_cache_pages_da().  This simplifies the code considerably.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "78aaced3408141bb7c836f2db0ca435790399da5"
}
