)]}'
{
  "log": [
    {
      "commit": "8bb1f229527dee95644e0f8496980bb767c6f620",
      "tree": "511551e9772f11f855bd5b759b6d449da47e8820",
      "parents": [
        "f22e08a79f3765fecf060b225a46931c94fb0a92",
        "c0d0259481cc6ec2a38cad810055e455de35c733"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 31 13:42:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 31 13:42:57 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second try at vfs part d#2 from Al Viro:\n \"Miklos\u0027 first series (with do_lookup() rewrite split into edible\n  chunks) + assorted bits and pieces.\n\n  The \u0027untangling of do_lookup()\u0027 series is is a splitup of what used to\n  be a monolithic patch from Miklos, so this series is basically \"how do\n  I convince myself that his patch is correct (or find a hole in it)\".\n  No holes found and I like the resulting cleanup, so in it went...\"\n\nChanges from try 1: Fix a boot problem with selinux, and commit messages\nprettied up a bit.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits)\n  vfs: fix out-of-date dentry_unhash() comment\n  vfs: split __lookup_hash\n  untangling do_lookup() - take __lookup_hash()-calling case out of line.\n  untangling do_lookup() - switch to calling __lookup_hash()\n  untangling do_lookup() - merge d_alloc_and_lookup() callers\n  untangling do_lookup() - merge failure exits in !dentry case\n  untangling do_lookup() - massage !dentry case towards __lookup_hash()\n  untangling do_lookup() - get rid of need_reval in !dentry case\n  untangling do_lookup() - eliminate a loop.\n  untangling do_lookup() - expand the area under -\u003ei_mutex\n  untangling do_lookup() - isolate !dentry stuff from the rest of it.\n  vfs: move MAY_EXEC check from __lookup_hash()\n  vfs: don\u0027t revalidate just looked up dentry\n  vfs: fix d_need_lookup/d_revalidate order in do_lookup\n  ext3: move headers to fs/ext3/\n  migrate ext2_fs.h guts to fs/ext2/ext2.h\n  new helper: ext2_image_size()\n  get rid of pointless includes of ext2_fs.h\n  ext2: No longer export ext2_fs.h to user space\n  mtdchar: kill persistently held vfsmount\n  ...\n"
    },
    {
      "commit": "c0d0259481cc6ec2a38cad810055e455de35c733",
      "tree": "20ca63134e34d408e075790bb2fd4bf375b89313",
      "parents": [
        "bad61189780ec0592cacde01a0775cb98a30efdc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Feb 15 11:48:40 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:17 2012 -0400"
      },
      "message": "vfs: fix out-of-date dentry_unhash() comment\n\n64252c75a2196a0cf1e0d3777143ecfe0e3ae650 \"vfs: remove dget() from\ndentry_unhash()\" changed the implementation but not the comment.\n\nCc: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bad61189780ec0592cacde01a0775cb98a30efdc",
      "tree": "c17f96209e27717bab726d1fae5c4164c49c4860",
      "parents": [
        "81e6f520898edbda56e8680d338ace4f5694874e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 26 12:54:24 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:17 2012 -0400"
      },
      "message": "vfs: split __lookup_hash\n\nSplit __lookup_hash into two component functions:\n\n lookup_dcache - tries cached lookup, returns whether real lookup is needed\n lookup_real - calls i_op-\u003elookup\n\nThis eliminates code duplication between d_alloc_and_lookup() and\nd_inode_lookup().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "81e6f520898edbda56e8680d338ace4f5694874e",
      "tree": "d516e74ac37250452b6deb8cc3a5ef686bad6a81",
      "parents": [
        "a32555466caee38faeef4e44d7878ecbff1199bc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:48:04 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:17 2012 -0400"
      },
      "message": "untangling do_lookup() - take __lookup_hash()-calling case out of line.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a32555466caee38faeef4e44d7878ecbff1199bc",
      "tree": "e0dea5e747bca90e234938d8545634a16aca561a",
      "parents": [
        "a6ecdfcfba9392f469992dd6016ceafb3ea62123"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:41:51 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - switch to calling __lookup_hash()\n\nnow we have __lookup_hash() open-coded if !dentry case;\njust call the damn thing instead...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a6ecdfcfba9392f469992dd6016ceafb3ea62123",
      "tree": "0a818c7e050c3a5aa59852020567fb70a5cdcf47",
      "parents": [
        "ec335e91a4f088d8759c1311d0724e609d1c318e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:39:15 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - merge d_alloc_and_lookup() callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ec335e91a4f088d8759c1311d0724e609d1c318e",
      "tree": "43163e92febda81023fcee742a9667f34ef39063",
      "parents": [
        "d774a058d94d6b0dafada2295ec5221481b07d16"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:37:42 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - merge failure exits in !dentry case\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d774a058d94d6b0dafada2295ec5221481b07d16",
      "tree": "952afb38f52c989752812dc3c0970259293211a9",
      "parents": [
        "08b0ab7c20f767187ae635d51bdd9d262ebe8357"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:34:00 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - massage !dentry case towards __lookup_hash()\n\nReorder if-else cases for starters...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "08b0ab7c20f767187ae635d51bdd9d262ebe8357",
      "tree": "b3b7258f1bee1574df231279dec23fe0c92a2b46",
      "parents": [
        "acc9cb3cd425f479d8fc4a441bff45dce23aa6dd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:18:50 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - get rid of need_reval in !dentry case\n\nEverything arriving into if (!dentry) will have need_reval \u003d 1.\nIndeed, the only way to get there with need_reval reset to 0 would\nbe via\n\tif (unlikely(d_need_lookup(dentry)))\n\t\tgoto unlazy;\n\tif (unlikely(dentry-\u003ed_flags \u0026 DCACHE_OP_REVALIDATE)) {\n\t\tstatus \u003d d_revalidate(dentry, nd);\n\tif (unlikely(status \u003c\u003d 0)) {\n\t\tif (status !\u003d -ECHILD)\n\t\t\tneed_reval \u003d 0;\n\t\tgoto unlazy;\n...\nunlazy:\n\t/* no assignments to dentry */\n\tif (dentry \u0026\u0026 unlikely(d_need_lookup(dentry))) {\n\t\tdput(dentry);\n\t\tdentry \u003d NULL;\n\t}\nand if d_need_lookup() had already been false the first time around, it\nwill remain false on the second call as well.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "acc9cb3cd425f479d8fc4a441bff45dce23aa6dd",
      "tree": "08ffc4b16ad2d00069189440dbfd4b893e2cc96e",
      "parents": [
        "37c17e1f377696c797e75c1e915e838b3e0c6120"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:13:15 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - eliminate a loop.\n\nd_lookup() *will* fail after successful d_invalidate(), if we are\nholding i_mutex all along.  IOW, we don\u0027t need to jump back to\nl: - we know what path will be taken there and can do that (i.e.\nd_alloc_and_lookup()) directly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "37c17e1f377696c797e75c1e915e838b3e0c6120",
      "tree": "97af490a11ae06776978b4ed171ba7ceff36128f",
      "parents": [
        "3f6c7c71a2af6eb306e16562c6ee1bfdb48015fb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:08:28 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - expand the area under -\u003ei_mutex\n\nkeep holding -\u003ei_mutex over revalidation parts\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3f6c7c71a2af6eb306e16562c6ee1bfdb48015fb",
      "tree": "11a45a75c858894fcfdbf40e320d860d7f28c166",
      "parents": [
        "cda309de253f338b04d15b4478e45fc3a0fcc7a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 30 14:04:16 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "untangling do_lookup() - isolate !dentry stuff from the rest of it.\n\nDuplicate the revalidation-related parts into if (!dentry) branch.\nNext step will be to pull them under i_mutex.\n\nThis and the next 8 commits are more or less a splitup of patch\nby Miklos; folks, when you are working with something that convoluted,\ncarve your patches up into easily reviewed steps, especially when\na lot of codepaths involved are rarely hit...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cda309de253f338b04d15b4478e45fc3a0fcc7a3",
      "tree": "93b5c767935ee7ec8a664f01ba684415754d929b",
      "parents": [
        "3637c05d881b2b7bab36f339245b8963f5b29c9f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 26 12:54:21 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "vfs: move MAY_EXEC check from __lookup_hash()\n\nThe only caller of __lookup_hash() that needs the exec permission check on\nparent is lookup_one_len().\n\nAll lookup_hash() callers already checked permission in LOOKUP_PARENT walk.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3637c05d881b2b7bab36f339245b8963f5b29c9f",
      "tree": "771ea8149d971517934d7023a6f3d34ccc42068f",
      "parents": [
        "fa4ee159512ee39b6c65ac40db986ea7a2f7de60"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 26 12:54:20 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "vfs: don\u0027t revalidate just looked up dentry\n\n__lookup_hash() calls -\u003elookup() if the dentry needs lookup and on success\nrevalidates the dentry (all under dir-\u003ei_mutex).\n\nWhile this is harmless it doesn\u0027t make a lot of sense.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fa4ee159512ee39b6c65ac40db986ea7a2f7de60",
      "tree": "1a245fe312d79e063de819f4da0debc2b13739d7",
      "parents": [
        "4613ad180d19082f99551477dcb13cb23d23661b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 26 12:54:19 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "vfs: fix d_need_lookup/d_revalidate order in do_lookup\n\nDoing revalidate on a dentry which has not yet been looked up makes no sense.\n\nMove the d_need_lookup() check before d_revalidate().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4613ad180d19082f99551477dcb13cb23d23661b",
      "tree": "c90407d53b5e7270c55831e394bd879825e0c6e9",
      "parents": [
        "f7699f2b0114fcd0ea5ad5f8aa2142f1bcc27fd0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 29 22:30:07 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "ext3: move headers to fs/ext3/\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7699f2b0114fcd0ea5ad5f8aa2142f1bcc27fd0",
      "tree": "054330e3e093e8b19eaeb4a60e93b936cde22266",
      "parents": [
        "39429c5e4a2c56a39c9a1c9bdad54431c63104b0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 23 16:45:51 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:16 2012 -0400"
      },
      "message": "migrate ext2_fs.h guts to fs/ext2/ext2.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f99c36986ff27a86f06f27212c5f5fa8c7164a3",
      "tree": "a90fd7fe865bb1c5a00b0946754b505bcf070b60",
      "parents": [
        "4a165d25f63a989d0aabe9d8eed5b3a5d5da1862"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 23 16:04:05 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "get rid of pointless includes of ext2_fs.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "22a71c3055cfcc277b7a8422d4ff256944370c24",
      "tree": "8b0b9c4da7329866b5f006ac9e6954a90e10d098",
      "parents": [
        "a2e1859adb3b05fa99f87a67df9ef2a4b7b04a13"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 22 12:26:35 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "pstore: trim pstore_get_inode()\n\nmove mode-dependent parts to callers, kill unused arguments\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2e1859adb3b05fa99f87a67df9ef2a4b7b04a13",
      "tree": "2d6ba3300b595f2db3fdb3407fc2d028a7baf68a",
      "parents": [
        "06af121eab543e5554f7a29538f171a382aaf855"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 16:27:57 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "aio: take final put_ioctx() into callers of io_destroy()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06af121eab543e5554f7a29538f171a382aaf855",
      "tree": "5d072174c381aa284bff396b2176f077a8536ec5",
      "parents": [
        "a1c2aa1e86a25e7cace2ded47ec52754206a5733"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 16:26:24 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "aio: merge aio_cancel_all() with wait_for_all_aios()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "623ff7739e7c00fa3d55dbfd42a492a68298fd7a",
      "tree": "0b7461753a1b13b27ea2958a7d48c6efb47bba54",
      "parents": [
        "c39e8ede284f469971589f2e04af78216e1a771d",
        "7b0e67f604e1829e5292e1ad7743eb18dc42ea7c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 17:31:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 17:31:56 2012 -0700"
      },
      "message": "Merge tag \u0027for-linus-3.4\u0027 of git://git.infradead.org/mtd-2.6\n\nPull MTD changes from David Woodhouse:\n - Artem\u0027s cleanup of the MTD API continues apace.\n - Fixes and improvements for ST FSMC and SuperH FLCTL NAND, amongst\n   others.\n - More work on DiskOnChip G3, new driver for DiskOnChip G4.\n - Clean up debug/warning printks in JFFS2 to use pr_\u003clevel\u003e.\n\nFix up various trivial conflicts, largely due to changes in calling\nconventions for things like dmaengine_prep_slave_sg() (new inline\nwrapper to hide new parameter, clashing with rewrite of previously last\nparameter that used to be an \u0027append\u0027 flag, and is now a bitmap of\n\u0027unsigned long flags\u0027).\n\n(Also some header file fallout - like so many merges this merge window -\nand silly conflicts with sparse fixes)\n\n* tag \u0027for-linus-3.4\u0027 of git://git.infradead.org/mtd-2.6: (120 commits)\n  mtd: docg3 add protection against concurrency\n  mtd: docg3 refactor cascade floors structure\n  mtd: docg3 increase write/erase timeout\n  mtd: docg3 fix inbound calculations\n  mtd: nand: gpmi: fix function annotations\n  mtd: phram: fix section mismatch for phram_setup\n  mtd: unify initialization of erase_info-\u003efail_addr\n  mtd: support ONFI multi lun NAND\n  mtd: sm_ftl: fix typo in major number.\n  mtd: add device-tree support to spear_smi\n  mtd: spear_smi: Remove default partition information from driver\n  mtd: Add device-tree support to fsmc_nand\n  mtd: fix section mismatch for doc_probe_device\n  mtd: nand/fsmc: Remove sparse warnings and errors\n  mtd: nand/fsmc: Add DMA support\n  mtd: nand/fsmc: Access the NAND device word by word whenever possible\n  mtd: nand/fsmc: Use dev_err to report error scenario\n  mtd: nand/fsmc: Use devm routines\n  mtd: nand/fsmc: Modify fsmc driver to accept nand timing parameters via platform\n  mtd: fsmc_nand: add pm callbacks to support hibernation\n  ...\n"
    },
    {
      "commit": "10f3cb41d48ab30f5c754b30eea557371892b4c2",
      "tree": "55db8e4177da00b6184f5428b4529cd59978e885",
      "parents": [
        "919c840167ec93167e00ca817aa4627170419ebf",
        "867646f246de2dd5c91c480637a4901732ea3151"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:24:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:24:38 2012 -0700"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\nPull cifs fixes from Steve French.\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  [CIFS] Update CIFS version number to 1.77\n  CIFS: Add missed forcemand mount option\n  [CIFS] Fix trivial sparse warning with asyn i/o patch\n  cifs: handle \"sloppy\" option appropriately\n  cifs: use standard token parser for mount options\n  cifs: remove /proc/fs/cifs/OplockEnabled\n  cifs: convert cifs_iovec_write to use async writes\n  cifs: call cifs_update_eof with i_lock held\n  cifs: abstract out function to marshal up the iovec array for async writes\n  cifs: fix up get_numpages\n  cifs: make cifsFileInfo_get return the cifsFileInfo pointer\n  cifs: fix allocation in cifs_write_allocate_pages\n  cifs: allow caller to specify completion op when allocating writedata\n  cifs: add pid field to cifs_writedata\n  cifs: add new cifsiod_wq workqueue\n  CIFS: Change mid_q_entry structure fields\n  CIFS: Expand CurrentMid field\n  CIFS: Separate protocol-specific code from cifs_readv_receive code\n  CIFS: Separate protocol-specific code from demultiplex code\n  CIFS: Separate protocol-specific code from transport routines\n"
    },
    {
      "commit": "9613bebb223dea3179c265dc31e1bb41ae39f321",
      "tree": "39bf883573d23775a53be3172323c0237fef5630",
      "parents": [
        "40380f1c7841a5dcbf0b20f0b6da11969211ef77",
        "bc3f116fec194f1d7329b160c266fe16b9266a1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 12:44:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 12:44:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixes and features from Chris Mason:\n \"We\u0027ve merged in the error handling patches from SuSE.  These are\n  already shipping in the sles kernel, and they give btrfs the ability\n  to abort transactions and go readonly on errors.  It involves a lot of\n  churn as they clarify BUG_ONs, and remove the ones we now properly\n  deal with.\n\n  Josef reworked the way our metadata interacts with the page cache.\n  page-\u003eprivate now points to the btrfs extent_buffer object, which\n  makes everything faster.  He changed it so we write an whole extent\n  buffer at a time instead of allowing individual pages to go down,,\n  which will be important for the raid5/6 code (for the 3.5 merge\n  window ;)\n\n  Josef also made us more aggressive about dropping pages for metadata\n  blocks that were freed due to COW.  Overall, our metadata caching is\n  much faster now.\n\n  We\u0027ve integrated my patch for metadata bigger than the page size.\n  This allows metadata blocks up to 64KB in size.  In practice 16K and\n  32K seem to work best.  For workloads with lots of metadata, this cuts\n  down the size of the extent allocation tree dramatically and fragments\n  much less.\n\n  Scrub was updated to support the larger block sizes, which ended up\n  being a fairly large change (thanks Stefan Behrens).\n\n  We also have an assortment of fixes and updates, especially to the\n  balancing code (Ilya Dryomov), the back ref walker (Jan Schmidt) and\n  the defragging code (Liu Bo).\"\n\nFixed up trivial conflicts in fs/btrfs/scrub.c that were just due to\nremoval of the second argument to k[un]map_atomic() in commit\n7ac687d9e047.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (75 commits)\n  Btrfs: update the checks for mixed block groups with big metadata blocks\n  Btrfs: update to the right index of defragment\n  Btrfs: do not bother to defrag an extent if it is a big real extent\n  Btrfs: add a check to decide if we should defrag the range\n  Btrfs: fix recursive defragment with autodefrag option\n  Btrfs: fix the mismatch of page-\u003emapping\n  Btrfs: fix race between direct io and autodefrag\n  Btrfs: fix deadlock during allocating chunks\n  Btrfs: show useful info in space reservation tracepoint\n  Btrfs: don\u0027t use crc items bigger than 4KB\n  Btrfs: flush out and clean up any block device pages during mount\n  btrfs: disallow unequal data/metadata blocksize for mixed block groups\n  Btrfs: enhance superblock sanity checks\n  Btrfs: change scrub to support big blocks\n  Btrfs: minor cleanup in scrub\n  Btrfs: introduce common define for max number of mirrors\n  Btrfs: fix infinite loop in btrfs_shrink_device()\n  Btrfs: fix memory leak in resolver code\n  Btrfs: allow dup for data chunks in mixed mode\n  Btrfs: validate target profiles only if we are going to use them\n  ...\n"
    },
    {
      "commit": "a591afc01d9e48affbacb365558a31e53c85af45",
      "tree": "9bb91f4eb94ec69fc4706c4944788ec5f3586063",
      "parents": [
        "820d41cf0cd0e94a5661e093821e2e5c6b36a9d8",
        "31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "message": "Merge branch \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x32 support for x86-64 from Ingo Molnar:\n \"This tree introduces the X32 binary format and execution mode for x86:\n  32-bit data space binaries using 64-bit instructions and 64-bit kernel\n  syscalls.\n\n  This allows applications whose working set fits into a 32 bits address\n  space to make use of 64-bit instructions while using a 32-bit address\n  space with shorter pointers, more compressed data structures, etc.\"\n\nFix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}\n\n* \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)\n  x32: Fix alignment fail in struct compat_siginfo\n  x32: Fix stupid ia32/x32 inversion in the siginfo format\n  x32: Add ptrace for x32\n  x32: Switch to a 64-bit clock_t\n  x32: Provide separate is_ia32_task() and is_x32_task() predicates\n  x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls\n  x86/x32: Fix the binutils auto-detect\n  x32: Warn and disable rather than error if binutils too old\n  x32: Only clear TIF_X32 flag once\n  x32: Make sure TS_COMPAT is cleared for x32 tasks\n  fs: Remove missed -\u003efds_bits from cessation use of fd_set structs internally\n  fs: Fix close_on_exec pointer in alloc_fdtable\n  x32: Drop non-__vdso weak symbols from the x32 VDSO\n  x32: Fix coding style violations in the x32 VDSO code\n  x32: Add x32 VDSO support\n  x32: Allow x32 to be configured\n  x32: If configured, add x32 system calls to system call tables\n  x32: Handle process creation\n  x32: Signal-related system calls\n  x86: Add #ifdef CONFIG_COMPAT to \u003casm/sys_ia32.h\u003e\n  ...\n"
    },
    {
      "commit": "6268b325c3066234e7bddb99d2b98bcedb0c0033",
      "tree": "5dca66fae30aa44e314ec6713ab31b773ad788e4",
      "parents": [
        "12679a2d7e3bfbdc7586e3e86d1ca90c46659363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "message": "Revert \"ext4: don\u0027t release page refs in ext4_end_bio()\"\n\nThis reverts commit b43d17f319f2c502b17139d1cf70731b2b62c644.\n\nDave Jones reports that it causes lockups on his laptop, and his debug\noutput showed a lot of processes hung waiting for page_writeback (or\nmore commonly - processes hung waiting for a lock that was held during\nthat writeback wait).\n\nThe page_writeback hint made Ted suggest that Dave look at this commit,\nand Dave verified that reverting it makes his problems go away.\n\nTed says:\n \"That commit fixes a race which is seen when you write into fallocated\n  (and hence uninitialized) disk blocks under *very* heavy memory\n  pressure.  Furthermore, although theoretically it could trigger under\n  normal direct I/O writes, it only seems to trigger if you are issuing\n  a huge number of AIO writes, such that a just-written page can get\n  evicted from memory, and then read back into memory, before the\n  workqueue has a chance to update the extent tree.\n\n  This race has been around for a little over a year, and no one noticed\n  until two months ago; it only happens under fairly exotic conditions,\n  and in fact even after trying very hard to create a simple repro under\n  lab conditions, we could only reproduce the problem and confirm the\n  fix on production servers running MySQL on very fast PCIe-attached\n  flash devices.\n\n  Given that Dave was able to hit this problem pretty quickly, if we\n  confirm that this commit is at fault, the only reasonable thing to do\n  is to revert it IMO.\"\n\nReported-and-tested-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71db34fc4330f7c784397acb9f1e6ee7f7b32eb2",
      "tree": "77dd08f6f778a799dcd0c48eb72d0742349df235",
      "parents": [
        "50483c3268918ee51a56d1baa39b9149d2d0d521",
        "797a9d797f8483bb67f265c761b76dcd5a077a23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from Bruce Fields:\n\nHighlights:\n - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,\n   moving us closer to a complete 4.1 implementation.\n - Bernd Schubert fixed a long-standing problem with readdir cookies on\n   ext2/3/4.\n - Jeff Layton performed a long-overdue overhaul of the server reboot\n   recovery code which will allow us to deprecate the current code (a\n   rather unusual user of the vfs), and give us some needed flexibility\n   for further improvements.\n - Like the client, we now support numeric uid\u0027s and gid\u0027s in the\n   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.\n\nPlus miscellaneous bugfixes and cleanup.\n\nThanks to everyone!\n\nThere are also some delegation fixes waiting on vfs review that I\nsuppose will have to wait for 3.5.  With that done I think we\u0027ll finally\nturn off the \"EXPERIMENTAL\" dependency for v4 (though that\u0027s mostly\nsymbolic as it\u0027s been on by default in distro\u0027s for a while).\n\nAnd the list of 4.1 todo\u0027s should be achievable for 3.5 as well:\n\n   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\nthough we may still want a bit more experience with it before turning it\non by default.\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux: (55 commits)\n  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n  nfsd4: use auth_unix unconditionally on backchannel\n  nfsd: fix NULL pointer dereference in cld_pipe_downcall\n  nfsd4: memory corruption in numeric_name_to_id()\n  sunrpc: skip portmap calls on sessions backchannel\n  nfsd4: allow numeric idmapping\n  nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n  nfsd: add the infrastructure to handle the cld upcall\n  nfsd: add a header describing upcall to nfsdcld\n  nfsd: add a per-net-namespace struct for nfsd\n  sunrpc: create nfsd dir in rpc_pipefs\n  nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n  nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n  NFSD: Fix nfs4_verifier memory alignment\n  NFSD: Fix warnings when NFSD_DEBUG is not defined\n  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n  nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n  ext4: return 32/64-bit dir name hash according to usage type\n  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash\n  ...\n"
    },
    {
      "commit": "18a06efae5b37bf5cb7473b5ba91a50907a8f7ac",
      "tree": "4506ce1c713a370af739bec8b890f93ad51a2c84",
      "parents": [
        "0a03726ca982129b1e054f0e8c34ca7eea348acd",
        "10bdfb5ef7e1a429a3de31e498942a8ae5749a46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:07:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:07:08 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nSingle fix for a commit from the first batch of patches through Andrew.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e:\n  pagemap: remove remaining unneeded spin_lock()\n"
    },
    {
      "commit": "10bdfb5ef7e1a429a3de31e498942a8ae5749a46",
      "tree": "2bda472ac8825a0616ca8632fdc5623f4f8bb0fe",
      "parents": [
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Thu Mar 29 13:58:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:06:43 2012 -0700"
      },
      "message": "pagemap: remove remaining unneeded spin_lock()\n\nCommit 025c5b2451e4 (\"thp: optimize away unnecessary page table\nlocking\") moves spin_lock() into pmd_trans_huge_lock() in order to avoid\nlocking unless pmd is for thp.  So this spin_lock() is a bug.\n\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc3f116fec194f1d7329b160c266fe16b9266a1e",
      "tree": "67f9be8d4527c37c1ad85bdcbc1b6cca7328f49c",
      "parents": [
        "e1f041e14cfb322f41f41a308bfede00f1b080cd"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 17:02:47 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 17:02:47 2012 -0400"
      },
      "message": "Btrfs: update the checks for mixed block groups with big metadata blocks\n\nDave Sterba had put in patches to look for mixed data/metadata groups\nwith metadata bigger than 4KB.  But these ended up in the wrong place\nand it wasn\u0027t testing the feature flag correctly.\n\nThis updates the tests to make sure our sizes are matching\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e1f041e14cfb322f41f41a308bfede00f1b080cd",
      "tree": "8bae36b522a96948be985af03073813e3b0d851f",
      "parents": [
        "66c2689226ac322fbc9acd2e8e418b78dcd52f51"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "message": "Btrfs: update to the right index of defragment\n\nWhen we use autodefrag, we forget to update the index which indicates\nthe last page we\u0027ve dirty.  And we\u0027ll set dirty flags on a same set of\npages again and again.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "66c2689226ac322fbc9acd2e8e418b78dcd52f51",
      "tree": "98da1733c2fc92e00c32c50199d1c85a43c1e6d0",
      "parents": [
        "17ce6ef8d731af5edac8c39e806db4c7e1f6956f"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "message": "Btrfs: do not bother to defrag an extent if it is a big real extent\n\n$ mkfs.btrfs /dev/sdb7\n$ mount /dev/sdb7 /mnt/btrfs/ -oautodefrag\n$ dd if\u003d/dev/zero of\u003d/mnt/btrfs/foobar bs\u003d4k count\u003d10 oflag\u003ddirect 2\u003e/dev/null\n$ filefrag -v /mnt/btrfs/foobar\nFilesystem type is: 9123683e\nFile size of /mnt/btrfs/foobar is 40960 (10 blocks, blocksize 4096)\n ext logical physical expected length flags\n   0       0     3072              10 eof\n/mnt/btrfs/foobar: 1 extent found\n\nNow we have a big real extent [0, 40960), but autodefrag will still defrag it.\n\n$ sync\n$ filefrag -v /mnt/btrfs/foobar\nFilesystem type is: 9123683e\nFile size of /mnt/btrfs/foobar is 40960 (10 blocks, blocksize 4096)\n ext logical physical expected length flags\n   0       0     3082              10 eof\n/mnt/btrfs/foobar: 1 extent found\n\nSo if we already find a big real extent, we\u0027re ok about that, just skip it.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "17ce6ef8d731af5edac8c39e806db4c7e1f6956f",
      "tree": "4a54d3c5618efff3deec03fa5d32a42c0a8fc804",
      "parents": [
        "4cb13e5d6ecc47b91b24a35f8fbc2c9f33d075fe"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "message": "Btrfs: add a check to decide if we should defrag the range\n\nIf our file\u0027s layout is as follows:\n| hole | data1 | hole | data2 |\n\nwe do not need to defrag this file, because this file has holes and\ncannot be merged into one extent.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4cb13e5d6ecc47b91b24a35f8fbc2c9f33d075fe",
      "tree": "c1654f1b2f029c8cfd5385568b37f90a0b47f3c4",
      "parents": [
        "1f12bd063285b059cb63315d1424dae1ddd87a64"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:45 2012 -0400"
      },
      "message": "Btrfs: fix recursive defragment with autodefrag option\n\n$ mkfs.btrfs disk\n$ mount disk /mnt -o autodefrag\n$ dd if\u003d/dev/zero of\u003d/mnt/foobar bs\u003d4k count\u003d10 2\u003e/dev/null \u0026\u0026 sync\n$ for i in `seq 9 -2 0`; do dd if\u003d/dev/zero of\u003d/mnt/foobar bs\u003d4k count\u003d1 \\\n  seek\u003d$i conv\u003dnotrunc 2\u003e /dev/null; done \u0026\u0026 sync\n\nthen we\u0027ll get to defrag \"foobar\" again and again.\nSo does option \"-o autodefrag,compress\".\n\nReasons:\nWhen the cleaner kthread gets to fetch inodes from the defrag tree and defrag\nthem, it will dirty pages and submit them, this will comes to another DATA COW\nwhere the processing inode will be inserted to the defrag tree again.\n\nThis patch sets a rule for COW code, i.e. insert an inode when we\u0027re really\ngoing to make some defragments.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1f12bd063285b059cb63315d1424dae1ddd87a64",
      "tree": "d0c9c7be653b3306f9cfb76ba9805f36c9295e37",
      "parents": [
        "ecb8bea87d05fd2d1fc0718e1e4bbf09c7c6045a"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "message": "Btrfs: fix the mismatch of page-\u003emapping\n\ncommit 600a45e1d5e376f679ff9ecc4ce9452710a6d27c\n(Btrfs: fix deadlock on page lock when doing auto-defragment)\nfixes the deadlock on page, but it also introduces another bug.\n\nA page may have been truncated after unlock \u0026 lock.\nSo we need to find it again to get the right one.\n\nAnd since we\u0027ve held i_mutex lock, inode size remains unchanged and\nwe can drop isize overflow checks.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ecb8bea87d05fd2d1fc0718e1e4bbf09c7c6045a",
      "tree": "bb95b921ade128c3d434fd244d150a0d27d47e7f",
      "parents": [
        "15d1ff8111aad85d8b40ee396758990d17a2caac"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "message": "Btrfs: fix race between direct io and autodefrag\n\nThe bug is from running xfstests 209 with autodefrag.\n\nThe race is as follows:\n       t1                       t2(autodefrag)\n   direct IO\n     invalidate pagecache\n     dio(old data)             add_inode_defrag\n     invalidate pagecache\n   endio\n\n   direct IO\n     invalidate pagecache\n                                run_defrag\n                                  readpage(old data)\n                                  set page dirty (old data)\n     dio(new data, rewrite)\n     invalidate pagecache (*)\n     endio\n\nt2(autodefrag) will get old data into pagecache via readpage and set\npagecache dirty.  Meanwhile, invalidate pagecache(*) will fail due to\ndirty flags in pages.  So the old data may be flushed into disk by\nflush thread, which will lead to data loss.\n\nAnd so does the case of user defragment progs.\n\nThe patch fixes this race by holding i_mutex when we readpage and set page dirty.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "15d1ff8111aad85d8b40ee396758990d17a2caac",
      "tree": "5258905b649150abae0a8aa010bbaa7ef1077e97",
      "parents": [
        "2bcc0328c3a043880796a602c75fbeb1537aa1e1"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "message": "Btrfs: fix deadlock during allocating chunks\n\nThis deadlock comes from xfstests 251.\n\nWe\u0027ll hold the chunk_mutex throughout the whole of a chunk allocation.\nBut if we find that we\u0027ve used up system chunk space, we need to allocate a\nnew system chunk, but this will lead to a recursion of chunk allocation and end\nup with a deadlock on chunk_mutex.\nSo instead we need to allocate the system chunk first if we find we\u0027re in ENOSPC.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2bcc0328c3a043880796a602c75fbeb1537aa1e1",
      "tree": "ed18c3244abeda587b56498ca5da5609f3555d99",
      "parents": [
        "7ca4be45a0255ac8f08c05491c6add2dd87dd4f8"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 29 09:57:44 2012 -0400"
      },
      "message": "Btrfs: show useful info in space reservation tracepoint\n\no For space info, the type of space info is useful for debug.\no For transaction handle, its transid is useful.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "797a9d797f8483bb67f265c761b76dcd5a077a23",
      "tree": "bc114410d0b6f7cc596d1ef8e2905fab00bf321b",
      "parents": [
        "4ca1f872cda31fe1cfe5e90e027f7bef4980364c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Mar 29 07:52:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 29 08:01:07 2012 -0400"
      },
      "message": "nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n\nOtherwise, we get a warning or error similar to this when building with\nCONFIG_NFSD_V4 disabled:\n\n    ERROR: \"nfsd4_cld_block\" [fs/nfsd/nfsd.ko] undefined!\n\nFix this by wrapping the calls to rpc_pipefs_notifier_register and\n..._unregister in another function and providing no-op replacements\nwhen CONFIG_NFSD_V4 is disabled.\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "afb9bd704c7116076879352a2cc2c43aa12c1e14",
      "tree": "b622fba5044ef3111050ca9dacce207ba49fea39",
      "parents": [
        "58df9b387c5f240566ac15b7fa5136f5a35bb19a",
        "72749a270b6d254b4a018e290b853c27edb2fa62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 20:04:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 20:04:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\nPull trivial exofs changes from Boaz Harrosh:\n \"Just nothingness really.  The big exofs changes are reserved for the\n  next merge window.\"\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: Cap on the memcpy() size\n  exofs: (trivial) Fix typo in super.c\n  exofs: fix endian conversion in exofs_sync_fs()\n"
    },
    {
      "commit": "58df9b387c5f240566ac15b7fa5136f5a35bb19a",
      "tree": "cd3b216936037e67d71958cc3ee8060e1f628f4f",
      "parents": [
        "8563f8786ee389c7861938d1d25336706f6de187",
        "14977489ffdb80d4caf5a184ba41b23b02fbacd9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes for Linux 3.4 from Trond Myklebust\n\nHighlights include:\n- Fix infinite loops in the mount code\n- Fix a userspace buffer overflow in __nfs4_get_acl_uncached\n- Fix a memory leak due to a double reference count in rpcb_getport_async()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n* tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n  NFSv4.1: Fix layoutcommit error handling\n  NFSv4: Fix two infinite loops in the mount code\n  SUNRPC: Use the already looked-up xprt in rpcb_getport_async()\n  NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit\n  Fix length of buffer copied in __nfs4_get_acl_uncached\n"
    },
    {
      "commit": "8563f8786ee389c7861938d1d25336706f6de187",
      "tree": "aba82cbaa5111ec9a55b5e25add4fdb7100f6720",
      "parents": [
        "532bfc851a7475fb6a36c1e953aa395798a7cca7",
        "4b0180a49f08dd1c681cdc99edc9e0cec0a833fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 18:05:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 18:05:54 2012 -0700"
      },
      "message": "Merge tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next\n\nPull squashfs updates from Phillip Lougher:\n \"Add an extra mount time sanity check, plus some code cleanups and bug\n  fixes.\"\n\n* tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:\n  Squashfs: add mount time sanity check for block_size and block_log match\n  Squashfs: fix f_pos check in get_dir_index_using_offset\n  Squashfs: get rid of obsolete definitions in header file\n  Squashfs: remove redundant length initialisation in squashfs_lookup\n  Squashfs: remove redundant length initialisation in squashfs_readdir\n  Squashfs: update comment removing reference to zlib only\n  Squashfs: use define instead of constant\n"
    },
    {
      "commit": "7ca4be45a0255ac8f08c05491c6add2dd87dd4f8",
      "tree": "aca39ca7f1d210138733cb3be54c408a2acf302b",
      "parents": [
        "3c4bb26b213e618473e486776483a5bad15ba6da"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 31 20:19:02 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:34:10 2012 -0400"
      },
      "message": "Btrfs: don\u0027t use crc items bigger than 4KB\n\nWith the big metadata blocks, we can have crc items\nthat are much bigger than a page.  There are a few\nplaces that we try to kmalloc memory to hold the\nitems during a split.\n\nItems bigger than 4KB don\u0027t really have a huge benefit\nin efficiency, but they do trigger larger order allocations.\nThis commits changes the csums to make sure they stay under\n4KB.  This is not a format change, just a #define to limit\nhuge items.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3c4bb26b213e618473e486776483a5bad15ba6da",
      "tree": "7a20f6ff0f6ec4dd9f0d7a51d787f2f65d89aa74",
      "parents": [
        "98961a7e431735c791dbaaf0337029e219a5db5a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 27 18:56:56 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:33:58 2012 -0400"
      },
      "message": "Btrfs: flush out and clean up any block device pages during mount\n\nBtrfs puts the filesystem metadata into its own address space, and\nsomehow the block device address space isn\u0027t getting onto disk properly\nbefore a mount.  The end result is that a loop of mkfs and mounting the\nfilesystem will sometimes find stale or incorrect data.\n\nThis commit should fix it by sprinkling fdatawrites and invalidate_bdev\ncalls around.  This is a short term measure to make sure it is fixed.\nThe block devices really should be flushed and cleaned up higher in the\nstack.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "98961a7e431735c791dbaaf0337029e219a5db5a",
      "tree": "e045f062c01075e1f88ab758717cbfd7a7ddd4ca",
      "parents": [
        "1c691b330a19a1344df89bcb0f4cacd99e8b289a",
        "7a3ae2f8c8c8432e65467b7fc84d5deab04061a0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:33:40 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:33:40 2012 -0400"
      },
      "message": "Merge git://git.jan-o-sch.net/btrfs-unstable into for-linus\n\nConflicts:\n\tfs/btrfs/transaction.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1c691b330a19a1344df89bcb0f4cacd99e8b289a",
      "tree": "b3143a9875a773d33b9b8f60e98c7e5fae003b6a",
      "parents": [
        "1d4284bd6e8d7dd1d5521a6747bdb6dc1caf0225",
        "213e64da90d14537cd63f7090d6c4d1fcc75d9f8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:32:46 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:32:46 2012 -0400"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://github.com/idryomov/btrfs-unstable into for-linus\n"
    },
    {
      "commit": "1d4284bd6e8d7dd1d5521a6747bdb6dc1caf0225",
      "tree": "a7dde6312ec24eb6368cad7a3efedbf368a5a70c",
      "parents": [
        "b5d67f64f9bc656970dacba245410f0faedad18e",
        "65139ed99234d8505948cdb7a835452eb5c191f9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:31:37 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:31:37 2012 -0400"
      },
      "message": "Merge branch \u0027error-handling\u0027 into for-linus\n\nConflicts:\n\tfs/btrfs/ctree.c\n\tfs/btrfs/disk-io.c\n\tfs/btrfs/extent-tree.c\n\tfs/btrfs/extent_io.c\n\tfs/btrfs/extent_io.h\n\tfs/btrfs/inode.c\n\tfs/btrfs/scrub.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "65139ed99234d8505948cdb7a835452eb5c191f9",
      "tree": "92e2c5e62c55d19bbac1a74e1699321323e65542",
      "parents": [
        "fcd1f065daca593badb7f99d473639cf3b551795"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri Feb 17 12:26:09 2012 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:30:28 2012 -0400"
      },
      "message": "btrfs: disallow unequal data/metadata blocksize for mixed block groups\n\nWith support for bigger metadata blocks, we must avoid mounting a\nfilesystem with different block size for mixed block groups, this causes\ncorruption (found by xfstests/083).\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "fcd1f065daca593badb7f99d473639cf3b551795",
      "tree": "b4dda48c9db913270d66344a2787829149b3a2bd",
      "parents": [
        "914b20070b413ca10f832c45a58b2894990f065f"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue Mar 06 00:06:18 2012 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 28 20:30:28 2012 -0400"
      },
      "message": "Btrfs: enhance superblock sanity checks\n\nValidate checksum algorithm during mount and prevent BUG_ON later in\nbtrfs_super_csum_size.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "4c619aa0ba171c092a0ae5d969364deb82dbe371",
      "tree": "bc710f9a419f1f87712f5fa4c341330f7293c3d8",
      "parents": [
        "f4507164e7796b66c371ff9a63154f1c884a2433"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 28 14:42:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n\nIf CONFIG_NET_NS, CONFIG_UTS_NS and CONFIG_IPC_NS are disabled,\nns_entries[] becomes empty and things like\nns_entries[ARRAY_SIZE(ns_entries) - 1] will explode.\n\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42be35d0390b966253136a285f507f5ad00fd9e8",
      "tree": "796b98a344ea3c941e53e2ae37f185f0ce5b0f32",
      "parents": [
        "a8364d5555b2030d093cde0f07951628e55454e1"
      ],
      "author": {
        "name": "Gilad Ben-Yossef",
        "email": "gilad@benyossef.com",
        "time": "Wed Mar 28 14:42:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "fs: only send IPI to invalidate LRU BH when needed\n\nIn several code paths, such as when unmounting a file system (but not\nonly) we send an IPI to ask each cpu to invalidate its local LRU BHs.\n\nFor multi-cores systems that have many cpus that may not have any LRU BH\nbecause they are idle or because they have not performed any file system\naccesses since last invalidation (e.g.  CPU crunching on high perfomance\ncomputing nodes that write results to shared memory or only using\nfilesystems that do not use the bh layer.) This can lead to loss of\nperformance each time someone switches the KVM (the virtual keyboard and\nscreen type, not the hypervisor) if it has a USB storage stuck in.\n\nThis patch attempts to only send an IPI to cpus that have LRU BH.\n\nSigned-off-by: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45f83cefe3a5f0476ac3f96382ebfdc3fe4caab2",
      "tree": "b2f7d3c02923d89db5a551c6a7923121db9610c4",
      "parents": [
        "623e3db9f9b7d6e7b2a99180f9cf0825c936ab7a"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 28 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm: thp: fix up pmd_trans_unstable() locations\n\npmd_trans_unstable() should be called before pmd_offset_map() in the\nlocations where the mmap_sem is held for reading.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mark Salter \u003cmsalter@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3748b2f15b06ea1861df39d5e9693dcd6e9542b1",
      "tree": "58c6b212487464bbc51fc40dbb783c8c9b8e699e",
      "parents": [
        "529b73fc0a9764050dcc597f4851728e8ff59165"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 28 14:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "procfs: fix /proc/statm\n\nbda7bad62bc4 (\"procfs: speed up /proc/pid/stat, statm\") broke /proc/statm\n- \u0027text\u0027 is printed twice by mistake.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReported-by: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ca1f872cda31fe1cfe5e90e027f7bef4980364c",
      "tree": "18c154d1548ce19b37cbcbc17de1e57cdc065b3a",
      "parents": [
        "21f72c9f0a6774d104fb655bda6099c378518945"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 14:18:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 19:14:36 2012 -0400"
      },
      "message": "nfsd4: use auth_unix unconditionally on backchannel\n\nThis isn\u0027t actually correct, but it works with the Linux client, and\nagrees with the behavior we used to have before commit 80fc015bdfe.\n\nLater patches will implement the spec-mandated behavior (which is to use\nthe security parameters explicitly given by the client in create_session\nor backchannel_ctl).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
      "tree": "fb51d60060453aef9e776c7d3a31588609d34d76",
      "parents": [
        "0c9aac08261512d70d7d4817bd222abca8b6bdd6",
        "5a5881cdeec2c019b5c9a307800218ee029f7f61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS update (part 2) from Ben Myers:\n \"Fixes for tracing of xfs_name strings, flag handling in\n  open_by_handle, a log space hang with freeze/unfreeze, fstrim offset\n  calculations, a section mismatch with xfs_qm_exit, an oops in\n  xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.\n\n  There are also additional trace points for attributes, and the\n  addition of a workqueue for allocation to work around kernel stack\n  size limitations.\"\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: add lots of attribute trace points\n  xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n  xfs: fix fstrim offset calculations\n  xfs: Account log unmount transaction correctly\n  xfs: don\u0027t cache inodes read through bulkstat\n  xfs: trace xfs_name strings correctly\n  xfs: introduce an allocation workqueue\n  xfs: Fix open flag handling in open_by_handle code\n  xfs: fix deadlock in xfs_rtfree_extent\n  fs: xfs: fix section mismatch in linux-next\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae",
      "tree": "c109d45d3fb8ccad461cfe6d9a4aa4d6005b38e1",
      "parents": [
        "49a7f04a4b9d45cd794741ce3d5d66524b37bdd0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Add #includes needed to permit the removal of asm/system.h\n\nasm/system.h is a cause of circular dependency problems because it contains\ncommonly used primitive stuff like barrier definitions and uncommonly used\nstuff like switch_to() that might require MMU definitions.\n\nasm/system.h has been disintegrated by this point on all arches into the\nfollowing common segments:\n\n (1) asm/barrier.h\n\n     Moved memory barrier definitions here.\n\n (2) asm/cmpxchg.h\n\n     Moved xchg() and cmpxchg() here.  #included in asm/atomic.h.\n\n (3) asm/bug.h\n\n     Moved die() and similar here.\n\n (4) asm/exec.h\n\n     Moved arch_align_stack() here.\n\n (5) asm/elf.h\n\n     Moved AT_VECTOR_SIZE_ARCH here.\n\n (6) asm/switch_to.h\n\n     Moved switch_to() here.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "529b73fc0a9764050dcc597f4851728e8ff59165",
      "tree": "d22dc4bf4d7523ea1c41790f8e52805b4ea75f19",
      "parents": [
        "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
        "697e6fed9fc620eb6c79ebcfe6865b66773c0221"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:07:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:07:27 2012 -0700"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull trivial writeback fixes from Wu Fengguang:\n \"They\u0027ve been tested in linux-next for 20 days actually.\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Remove outdated comment\n  fs: Remove bogus wait in write_inode_now()\n"
    },
    {
      "commit": "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
      "tree": "14ad49741b428d270b681694bb2df349465455b9",
      "parents": [
        "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
        "9d547c35799a4ddd235f1565cec2fff6c9263504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates for 3.4 from Ted Ts\u0027o:\n \"Ext4 commits for 3.3 merge window; mostly cleanups and bug fixes\n\n  The changes to export dirty_writeback_interval are from Artem\u0027s s_dirt\n  cleanup patch series.  The same is true of the change to remove the\n  s_dirt helper functions which never got used by anyone in-tree.  I\u0027ve\n  run these changes by Al Viro, and am carrying them so that Artem can\n  more easily fix up the rest of the file systems during the next merge\n  window.  (Originally we had hopped to remove the use of s_dirt from\n  ext4 during this merge window, but his patches had some bugs, so I\n  ultimately ended dropping them from the ext4 tree.)\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (66 commits)\n  vfs: remove unused superblock helpers\n  mm: export dirty_writeback_interval\n  ext4: remove useless s_dirt assignment\n  ext4: write superblock only once on unmount\n  ext4: do not mark superblock as dirty unnecessarily\n  ext4: correct ext4_punch_hole return codes\n  ext4: remove restrictive checks for EOFBLOCKS_FL\n  ext4: always set then trimmed blocks count into len\n  ext4: fix trimmed block count accunting\n  ext4: fix start and len arguments handling in ext4_trim_fs()\n  ext4: update s_free_{inodes,blocks}_count during online resize\n  ext4: change some printk() calls to use ext4_msg() instead\n  ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n  ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n  ext4: add no_printk argument validation, fix fallout\n  ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n  ext4: give more helpful error message in ext4_ext_rm_leaf()\n  ext4: remove unused code from ext4_ext_map_blocks()\n  ext4: rewrite punch hole to use ext4_ext_remove_space()\n  jbd2: cleanup journal tail after transaction commit\n  ...\n"
    },
    {
      "commit": "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
      "tree": "191bf87e438a3985ccb7e3c5382fab8d31f94edb",
      "parents": [
        "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
        "c666601a935b94cc0f3310339411b6940de751ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph updates for 3.4-rc1 from Sage Weil:\n \"Alex has been busy.  There are a range of rbd and libceph cleanups,\n  especially surrounding device setup and teardown, and a few critical\n  fixes in that code.  There are more cleanups in the messenger code,\n  virtual xattrs, a fix for CRC calculation/checks, and lots of other\n  miscellaneous stuff.\n\n  There\u0027s a patch from Amon Ott to make inos behave a bit better on\n  32-bit boxes, some decode check fixes from Xi Wang, and network\n  throttling fix from Jim Schutt, and a couple RBD fixes from Josh\n  Durgin.\n\n  No new functionality, just a lot of cleanup and bug fixing.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (65 commits)\n  rbd: move snap_rwsem to the device, rename to header_rwsem\n  ceph: fix three bugs, two in ceph_vxattrcb_file_layout()\n  libceph: isolate kmap() call in write_partial_msg_pages()\n  libceph: rename \"page_shift\" variable to something sensible\n  libceph: get rid of zero_page_address\n  libceph: only call kernel_sendpage() via helper\n  libceph: use kernel_sendpage() for sending zeroes\n  libceph: fix inverted crc option logic\n  libceph: some simple changes\n  libceph: small refactor in write_partial_kvec()\n  libceph: do crc calculations outside loop\n  libceph: separate CRC calculation from byte swapping\n  libceph: use \"do\" in CRC-related Boolean variables\n  ceph: ensure Boolean options support both senses\n  libceph: a few small changes\n  libceph: make ceph_tcp_connect() return int\n  libceph: encapsulate some messenger cleanup code\n  libceph: make ceph_msgr_wq private\n  libceph: encapsulate connection kvec operations\n  libceph: move prepare_write_banner()\n  ...\n"
    },
    {
      "commit": "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
      "tree": "5c255d4b18622de06c2637c0c4069a384e99466d",
      "parents": [
        "e9c0f1529c9022afbab16a442382aa9a84a79c41",
        "e703c206135acb458adb705ec44bcc5d2615b37d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext3, UDF, and quota fixes from Jan Kara:\n \"A couple of ext3 \u0026 UDF fixes and also one improvement in quota\n  locking.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext3: fix start and len arguments handling in ext3_trim_fs()\n  udf: Fix deadlock in udf_release_file()\n  udf: Fix file entry logicalBlocksRecorded\n  udf: Fix handling of i_blocks\n  quota: Make quota code not call tty layer with dqptr_sem held\n  udf: Init/maintain file entry checkpoint field\n  ext3: Update ctime in ext3_splice_branch() only when needed\n  ext3: Don\u0027t call dquot_free_block() if we don\u0027t update anything\n  udf: Remove unnecessary OOM messages\n"
    },
    {
      "commit": "e9c0f1529c9022afbab16a442382aa9a84a79c41",
      "tree": "173e99d46283f5d814bf4407728ad0d2ea702100",
      "parents": [
        "b18dafc86bb879d2f38a1743985d7ceb283c2f4d",
        "5bdad93387c64f0095df7ae9a252ff44234a8b3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:58:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:58:38 2012 -0700"
      },
      "message": "Merge tag \u0027for-linus-3.4-merge-window\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\nPull 9p changes for the 3.4 merge window from Eric Van Hensbergen.\n\n* tag \u0027for-linus-3.4-merge-window\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: statfs should not override server f_type\n  net/9p: handle flushed Tclunk/Tremove\n  net/9p: don\u0027t allow Tflush to be interrupted\n"
    },
    {
      "commit": "b18dafc86bb879d2f38a1743985d7ceb283c2f4d",
      "tree": "447070f77406615aebadaef03018d634c0da922c",
      "parents": [
        "6658a6991cef75719a21441aa0b7f8d6821534ee"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Mar 26 17:32:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:54:34 2012 -0700"
      },
      "message": "vfs: fix d_ancestor() case in d_materialize_unique\n\nIn d_materialise_unique() there are 3 subcases to the \u0027aliased dentry\u0027\ncase; in two subcases the inode i_lock is properly released but this\ndoes not occur in the -ELOOP subcase.\n\nThis seems to have been introduced by commit 1836750115f2 (\"fix loop\nchecks in d_materialise_unique()\").\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: stable@vger.kernel.org # v3.0+\n[ Added a comment, and moved the unlock to where we generate the -ELOOP,\n  which seems to be more natural.\n\n  You probably can\u0027t actually trigger this without a buggy network file\n  server - d_materialize_unique() is for finding aliases on non-local\n  filesystems, and the d_ancestor() case is for a hardlinked directory\n  loop.\n\n  But we should be robust in the case of such buggy servers anyway. ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21f72c9f0a6774d104fb655bda6099c378518945",
      "tree": "fa320f8b928d9aa4277711f03d6d44af60e151b4",
      "parents": [
        "3af706135bcc06b1519ba50beaf1b47d32d0fc26"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 28 07:36:01 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:24 2012 -0400"
      },
      "message": "nfsd: fix NULL pointer dereference in cld_pipe_downcall\n\nIf we find that \"cup\" is NULL in this case, then we obviously don\u0027t\nwant to dereference it. What we really want to print in this case\nis the xid that we copied off earlier.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3af706135bcc06b1519ba50beaf1b47d32d0fc26",
      "tree": "52ee3c46416e12fae8f9a1f6e7a6faa3cd3416ad",
      "parents": [
        "92769108f5382a0bdb4c35eb80c183fb7797cfae"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Mar 28 13:44:59 2012 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:23 2012 -0400"
      },
      "message": "nfsd4: memory corruption in numeric_name_to_id()\n\n\"id\" is type is a uid_t (32 bits) but on 64 bit systems strict_strtoul()\nmodifies 64 bits of data.  We should use kstrtouint() instead.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "14977489ffdb80d4caf5a184ba41b23b02fbacd9",
      "tree": "8d0b755ca35743e6a00dc7da04a7b7c21dd6d650",
      "parents": [
        "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:31:25 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa",
      "tree": "217a19f29b5214d8b0e36dbe190c34140a01000f",
      "parents": [
        "05e9cfb408b24debb3a85fd98edbfd09dd148881"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:22:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4.1: Fix layoutcommit error handling\n\nFirstly, task-\u003etk_status will always return negative error values,\nso the current tests for \u0027NFS4ERR_DELEG_REVOKED\u0027 etc. are all being\nignored.\nSecondly, clean up the code so that we only need to test\ntask-\u003etk_status once!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "05e9cfb408b24debb3a85fd98edbfd09dd148881",
      "tree": "47c4039701bf081a8b6e9209b65c1284f2183dd7",
      "parents": [
        "864cf9bf99f62d2095c8e6cc3a87af80b263984e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:13:02 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Fix two infinite loops in the mount code\n\nWe can currently loop forever in nfs4_lookup_root() and in\nnfs41_proc_secinfo_no_name(), if the first iteration returns a\nNFS4ERR_DELAY or something else that causes exception.retry to get\nset.\n\nReported-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "fa453a625de5b8ee9ada0a5b329df3f88751c615",
      "tree": "7a9e04d4a44bb929e96bd9bebb7b97cb733d1ecb",
      "parents": [
        "30eebb54b13ef198a3f1a143ee9dd68f295c60de",
        "3463ff4439661d8107ac024329b5fe01d6e5117b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml\n\nPull UML changes from Richard Weinberger:\n \"Mostly bug fixes and cleanups\"\n\n* \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)\n  um: Update defconfig\n  um: Switch to large mcmodel on x86_64\n  MTD: Relax dependencies\n  um: Wire CONFIG_GENERIC_IO up\n  um: Serve io_remap_pfn_range()\n  Introduce CONFIG_GENERIC_IO\n  um: allow SUBARCH\u003dx86\n  um: most of the SUBARCH uses can be killed\n  um: deadlock in line_write_interrupt()\n  um: don\u0027t bother trying to rebuild CHECKFLAGS for USER_OBJS\n  um: use the right ifdef around exports in user_syms.c\n  um: a bunch of headers can be killed by using generic-y\n  um: ptrace-generic.h doesn\u0027t need user.h\n  um: kill HOST_TASK_PID\n  um: remove pointless include of asm/fixmap.h from asm/pgtable.h\n  um: asm-offsets.h might as well come from underlying arch...\n  um: merge processor_{32,64}.h a bit...\n  um: switch close_chan() to struct line\n  um: race fix: initialize delayed_work *before* registering IRQ\n  um: line-\u003ehave_irq is never checked...\n  ...\n"
    },
    {
      "commit": "5a5881cdeec2c019b5c9a307800218ee029f7f61",
      "tree": "67ae565f9e243a1eaa986457ca869e776fb76fac",
      "parents": [
        "d97d32edcd732110758799ae60af725e5110b3dc"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:13 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 17:18:21 2012 -0500"
      },
      "message": "xfs: add lots of attribute trace points\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "d97d32edcd732110758799ae60af725e5110b3dc",
      "tree": "b49bc097b289d123003695dcd1301cda5f091f4b",
      "parents": [
        "a66d636385d621e98a915233250356c394a437de"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 15 09:34:02 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:34:10 2012 -0500"
      },
      "message": "xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n\nWhen an IO error happens during inode deletion run from\nxlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent\nattempt to read buffers fails. Code in xlog_recover_process_iunlinks() does not\ncount with the fact that read of a buffer which was read a while ago can\nreally fail which results in the oops on\n  agi \u003d XFS_BUF_TO_AGI(agibp);\n\nFix the problem by cleaning up the buffer handling in\nxlog_recover_process_iunlinks() as suggested by Dave Chinner. We release buffer\nlock but keep buffer reference to AG buffer. That is enough for buffer to stay\npinned in memory and we don\u0027t have to call xfs_read_agi() all the time.\n\nCC: stable@kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "a66d636385d621e98a915233250356c394a437de",
      "tree": "9dda534c10fed016503f77a5f7ce893f9c4db7f7",
      "parents": [
        "3948659e30808fbaa7673bbe89de2ae9769e20a7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:12 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:07:03 2012 -0500"
      },
      "message": "xfs: fix fstrim offset calculations\n\nxfs_ioc_fstrim() doesn\u0027t treat the incoming offset and length\ncorrectly. It treats them as a filesystem block address, rather than\na disk address. This is wrong because the range passed in is a\nlinear representation, while the filesystem block address notation\nis a sparse representation. Hence we cannot convert the range direct\nto filesystem block units and then use that for calculating the\nrange to trim.\n\nWhile this sounds dangerous, the problem is limited to calculating\nwhat AGs need to be trimmed. The code that calcuates the actual\nranges to trim gets the right result (i.e. only ever discards free\nspace), even though it uses the wrong ranges to limit what is\ntrimmed. Hence this is not a bug that endangers user data.\n\nFix this by treating the range as a disk address range and use the\nappropriate functions to convert the range into the desired formats\nfor calculations.\n\nFurther, fix the first free extent lookup (the longest) to actually\nfind the largest free extent. Currently this lookup uses a \u003c\u003d\nlookup, which results in finding the extent to the left of the\nlargest because we can never get an exact match on the largest\nextent. This is due to the fact that while we know it\u0027s size, we\ndon\u0027t know it\u0027s location and so the exact match fails and we move\none record to the left to get the next largest extent. Instead, use\na \u003e\u003d search so that the lookup returns the largest extent regardless\nof the fact we don\u0027t get an exact match on it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "867646f246de2dd5c91c480637a4901732ea3151",
      "tree": "cc5c47b9c86025b3b58f08843bb9d265195b6074",
      "parents": [
        "5cfdddcfc415b0a67be25a0dec28ea9b1a537397"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Mar 27 14:55:13 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Mar 27 14:55:13 2012 -0500"
      },
      "message": "[CIFS] Update CIFS version number to 1.77\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b5d67f64f9bc656970dacba245410f0faedad18e",
      "tree": "3c267dbc01ae04dc827a563dc91baafdae14582a",
      "parents": [
        "1623edebee317855c6a854366c01d1630cc537c9"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Tue Mar 27 14:21:27 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 27 14:21:27 2012 -0400"
      },
      "message": "Btrfs: change scrub to support big blocks\n\nScrub used to be coded for nodesize \u003d\u003d leafsize \u003d\u003d sectorsize \u003d\u003d PAGE_SIZE.\nThis is now changed to support sizes for nodesize and leafsize which are\nN * PAGE_SIZE.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1623edebee317855c6a854366c01d1630cc537c9",
      "tree": "d2b79580ce85e26c89a257be0400c58c966ee4c6",
      "parents": [
        "94598ba8d8ff066115508fb99e593d2de1ca67e1"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "message": "Btrfs: minor cleanup in scrub\n\nJust a minor cleanup commit in preparation for the big block changes.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "94598ba8d8ff066115508fb99e593d2de1ca67e1",
      "tree": "035dcae1b60f84b5620ab1a9d42b5d1fad4b4862",
      "parents": [
        "ea466794084f55d8fcc100711cf17923bf57e962"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "message": "Btrfs: introduce common define for max number of mirrors\n\nReadahead already has a define for the max number of mirrors. Scrub\nneeds such a define now, the rest of the code will need something\nlike this soon. Therefore the define was added to ctree.h and removed\nfrom the readahead code.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5cfdddcfc415b0a67be25a0dec28ea9b1a537397",
      "tree": "1180e92d333904ad87a5c86201e2fefcdbfe5483",
      "parents": [
        "8f09c3d8dbb8ba35c579e426b3f30bf7bafe0a85"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Tue Mar 27 20:51:15 2012 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Mar 27 12:27:51 2012 -0500"
      },
      "message": "CIFS: Add missed forcemand mount option\n\nThe \u0027forcemand\u0027 form of \u0027forcemandatorylock\u0027 mount option was missed\nwhen the code moved to use the standard token parser. Return it back.\n\nAlso fix a comment style in the parser.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "213e64da90d14537cd63f7090d6c4d1fcc75d9f8",
      "tree": "c7603bcc554d033ef0521a0a7898c924930721e7",
      "parents": [
        "5eb56d2520fe16f00756ccdf8eebc277398e0f44"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:18 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:18 2012 +0300"
      },
      "message": "Btrfs: fix infinite loop in btrfs_shrink_device()\n\nIf relocate of block group 0 fails with ENOSPC we end up infinitely\nlooping because key.offset -\u003d 1 statement in that case brings us back to\nwhere we started.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "5eb56d2520fe16f00756ccdf8eebc277398e0f44",
      "tree": "ab141af79e01000ff04341502f1f42d9a1bef60a",
      "parents": [
        "e4837f8f3b5d08b8c708533a71439bfb40ede467"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:18 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:18 2012 +0300"
      },
      "message": "Btrfs: fix memory leak in resolver code\n\ninit_ipath() allocates btrfs_data_container which is never freed.  Free\nit in free_ipath() and nuke the comment for init_data_container() - we\ncan safely free it with kfree().\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e4837f8f3b5d08b8c708533a71439bfb40ede467",
      "tree": "197f2ad55449d1141a2d938198089ad471ef013f",
      "parents": [
        "6728b198deb02c187b5e5a99eb7d1cc9c8bc65e9"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: allow dup for data chunks in mixed mode\n\nGenerally we don\u0027t allow dup for data, but mixed chunks are special and\npeople seem to think this has its use cases.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "6728b198deb02c187b5e5a99eb7d1cc9c8bc65e9",
      "tree": "caf0f07250c8df5cb97551088395748eb9e753ff",
      "parents": [
        "4a5e98f5d61f698452e564e0cde34c16a6b65752"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: validate target profiles only if we are going to use them\n\nDo not run sanity checks on all target profiles unless they all will be\nused.  This came up because alloc_profile_is_valid() is now more strict\nthan it used to be.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "4a5e98f5d61f698452e564e0cde34c16a6b65752",
      "tree": "d65c346e8763380a1afac2984abc12533ecf15b7",
      "parents": [
        "7738a53a3a3aa8d82350280ff4bc7df9c3094123"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: improve the logic in btrfs_can_relocate()\n\nCurrently if we don\u0027t have enough space allocated we go ahead and loop\nthough devices in the hopes of finding enough space for a chunk of the\n*same* type as the one we are trying to relocate.  The problem with that\nis that if we are trying to restripe the chunk its target type can be\nmore relaxed than the current one (eg require less devices or less\nspace).  So, when restriping, run checks against the target profile\ninstead of the current one.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "7738a53a3a3aa8d82350280ff4bc7df9c3094123",
      "tree": "f51ea4f52ba5bc6688b43737567d6a991235da28",
      "parents": [
        "fc67c450837ec034174060a25889a55eed741a1d"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: add __get_block_group_index() helper\n\nAdd __get_block_group_index() helper to be able to derive block group\nindex from an arbitary set of flags.  Implement get_block_group_index()\nin terms of it.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "fc67c450837ec034174060a25889a55eed741a1d",
      "tree": "0b3fb00d025427057a5171ed848c06ad0fa15222",
      "parents": [
        "0c460c0d70e10463e44bdf1d406e9c5ec03b1af6"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: add get_restripe_target() helper\n\nAdd get_restripe_target() helper and switch everybody to use it.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "0c460c0d70e10463e44bdf1d406e9c5ec03b1af6",
      "tree": "8c28962481b64a3dcabb2294094435832a23516d",
      "parents": [
        "e8920a640be5d4ebe3fee0670639a81d4ffc904c"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: move alloc_profile_is_valid() to volumes.c\n\nHeader file is not a good place to define functions.  This also moves a\ncall to alloc_profile_is_valid() down the stack and removes a redundant\ncheck from __btrfs_alloc_chunk() - alloc_profile_is_valid() takes it\ninto account.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e8920a640be5d4ebe3fee0670639a81d4ffc904c",
      "tree": "0c999adbdce223ac0365ca98c008da8db7bb7cb3",
      "parents": [
        "899c81eac890bcfa5f3636f4c43f68e8393ac1f8"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:17 2012 +0300"
      },
      "message": "Btrfs: make profile_is_valid() check more strict\n\n\"0\" is a valid value for an on-disk chunk profile, but it is not a valid\nextended profile.  (We have a separate bit for single chunks in extended\ncase)\n\nAlso rename it to alloc_profile_is_valid() for clarity.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "899c81eac890bcfa5f3636f4c43f68e8393ac1f8",
      "tree": "f2a202c25edd6a58a4c0018db03617b6b0c46fc8",
      "parents": [
        "e3176ca2769e420f64eba4b093bbddea6d7a89c3"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:16 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:16 2012 +0300"
      },
      "message": "Btrfs: add wrappers for working with alloc profiles\n\nAdd functions to abstract the conversion between chunk and extended\nallocation profile formats and switch everybody to use them.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e3176ca2769e420f64eba4b093bbddea6d7a89c3",
      "tree": "efed61bf174579bdbef9dd8f0a88942286ca57ac",
      "parents": [
        "ea466794084f55d8fcc100711cf17923bf57e962"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:16 2012 +0300"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Mar 27 17:09:16 2012 +0300"
      },
      "message": "Btrfs: stop silently switching single chunks to raid0 on balance\n\nThis has been causing a lot of confusion for quite a while now and a lot\nof users were surprised by this (some of them were even stuck in a\nENOSPC situation which they couldn\u0027t easily get out of).  The addition\nof restriper gives users a clear choice between raid0 and drive concat\nsetup so there\u0027s absolutely no excuse for us to keep doing this.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "7a3ae2f8c8c8432e65467b7fc84d5deab04061a0",
      "tree": "e93c46eb8def633533fe80032872f71b36fc03b8",
      "parents": [
        "103e976616fe9c2a3e40764c979fa1a592274da2"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Mar 23 17:32:28 2012 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Mar 27 14:51:21 2012 +0200"
      },
      "message": "Btrfs: fix regression in scrub path resolving\n\nIn commit 4692cf58 we introduced new backref walking code for btrfs. This\nassumes we\u0027re searching live roots, which requires a transaction context.\nWhile scrubbing, however, we must not join a transaction because this could\ndeadlock with the commit path. Additionally, what scrub really wants to do\nis resolving a logical address in the commit root it\u0027s currently checking.\n\nThis patch adds support for logical to path resolving on commit roots and\nmakes scrub use that.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "103e976616fe9c2a3e40764c979fa1a592274da2",
      "tree": "77d806d5a59168e14927655dfbbe3d49bd7fbe5b",
      "parents": [
        "e565d4b962948e70f37f417603caf131a773621b"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Mar 23 17:24:19 2012 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Mar 27 14:51:20 2012 +0200"
      },
      "message": "Btrfs: check return value of btrfs_cow_block()\n\nThe two helper functions commit_cowonly_roots() and\ncreate_pending_snapshot() failed to check the return value from\nbtrfs_cow_block(), which could at least in theory fail with -ENOSPC from\nbtrfs_alloc_free_block(). This commit adds the missing checks.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "e565d4b962948e70f37f417603caf131a773621b",
      "tree": "e29c3f956cfae30d4b455801579e20b64fd060e3",
      "parents": [
        "a175423c831ea582c06784d1e172d2ce1d79923a"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Mar 23 17:14:20 2012 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Tue Mar 27 14:51:17 2012 +0200"
      },
      "message": "Btrfs: actually call btrfs_init_lockdep\n\nbtrfs_init_lockdep only makes our lockdep class names look prettier, thus\nit did never hurt we forgot to actually call it. This turns our lockdep\nidentifier strings from lockdep auto-set #[id] into really pretty\n\"btrfs-fs-01\" or \"btrfs-csum-03\".\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "8f09c3d8dbb8ba35c579e426b3f30bf7bafe0a85",
      "tree": "76cded7c7626281e0f05742ce0f90c0086ee7743",
      "parents": [
        "e22057c8599373e5caef0bc42bdb95d2a361ab0d",
        "c7ad42b52d866b238ebb311d32ac80338f5c39d4"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Mar 26 21:14:05 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Mar 26 21:14:05 2012 -0500"
      },
      "message": "Merge branch \u0027for-3.4\u0027\n"
    },
    {
      "commit": "ea466794084f55d8fcc100711cf17923bf57e962",
      "tree": "9905d556655ff0f036936ea51f9aa214bd2cbce8",
      "parents": [
        "f3f266ab1bfe4770375d24fa8e72a03278e9450a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 21:57:36 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 26 21:57:36 2012 -0400"
      },
      "message": "Btrfs: deal with read errors on extent buffers differently\n\nSince we need to read and write extent buffers in their entirety we can\u0027t use\nthe normal bio_readpage_error stuff since it only works on a per page basis.  So\ninstead make it so that if we see an io error in endio we just mark the eb as\nhaving an IO error and then in btree_read_extent_buffer_pages we will manually\ntry other mirrors and then overwrite the bad mirror if we find a good copy.\nThis works with larger than page size blocks.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3b27dac03972c10980ec5480ad8425fc95aae9ad",
      "tree": "62238107d409fd08ed06a0dc5e030d48aec320e4",
      "parents": [
        "637957551c0ac80de8dfc7650d320c5a98c2c0c0"
      ],
      "author": {
        "name": "Shmulik Ladkani",
        "email": "shmulik.ladkani@gmail.com",
        "time": "Thu Feb 09 15:36:29 2012 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Mar 27 01:02:24 2012 +0100"
      },
      "message": "mtd: unify initialization of erase_info-\u003efail_addr\n\nInitialization of \u0027erase_info-\u003efail_addr\u0027 to MTD_FAIL_ADDR_UNKNOWN prior\nerase operation is duplicated accross several MTD drivers, and also taken\ncare of by some MTD users as well.\n\nHarmonize it: initialize \u0027fail_addr\u0027 within \u0027mtd_erase()\u0027 interface.\n\nSigned-off-by: Shmulik Ladkani \u003cshmulik.ladkani@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "9bbf29e4757fb152c8673eda0b1e9d507b953df9",
      "tree": "ca2462838286fb1e7fe06e4a6fedf78ac36d4904",
      "parents": [
        "5a528957e7c74f1fed73fe20424b7a3421658877"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Feb 15 15:56:46 2012 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Mar 27 00:42:14 2012 +0100"
      },
      "message": "jffs2: Standardize JFFS_\u003cLEVEL\u003e uses\n\nUse pr_\u003clevel\u003e to prefix KBUILD_MODNAME via pr_fmt.\n\nRemove obfuscating defines and use constants in pr_\u003clevel\u003e\nNo need for a do {} while (0) for single statements.\n\nForm of JFFS_\u003cLEVEL\u003e output changes from\n\"JFFS2 notice: \" to \"jffs2: notice: \"\n\nAdded pr_fmt to xattr.c\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "5a528957e7c74f1fed73fe20424b7a3421658877",
      "tree": "4b5e353fe0ceb0e275f278461a62a8d3094fe692",
      "parents": [
        "da320f055a8818269c008e30b887cdcf09d8e4bd"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Feb 15 15:56:45 2012 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Mar 27 00:40:19 2012 +0100"
      },
      "message": "jffs2: Use pr_fmt and remove jffs: from formats\n\nUse pr_fmt to prefix KBUILD_MODNAME to appropriate logging messages.\n\nRemove now unnecessary internal prefixes from formats.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "da320f055a8818269c008e30b887cdcf09d8e4bd",
      "tree": "deaead9c0bd0ed473e633fca2d66460b3b0ec99d",
      "parents": [
        "9c261b33a9c417ccaf07f41796be278d09d02d49"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Feb 15 15:56:44 2012 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Mar 27 00:39:40 2012 +0100"
      },
      "message": "jffs2: Convert printks to pr_\u003clevel\u003e\n\nUse the more current logging style.\n\nCoalesce formats, align arguments.\nConvert uses of embedded function names to %s, __func__.\n\nA couple of long line checkpatch errors I don\u0027t care about exist.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "9c261b33a9c417ccaf07f41796be278d09d02d49",
      "tree": "6cf47f47364647dfbba845c0fd3f05539072175a",
      "parents": [
        "bf011f2ed53d587fdd8148c173c4f09ed77bdf1a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Feb 15 15:56:43 2012 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Mar 27 00:39:24 2012 +0100"
      },
      "message": "jffs2: Convert most D1/D2 macros to jffs2_dbg\n\nD1 and D2 macros are mostly uses to emit debugging messages.\n\nConvert the logging uses of D1 \u0026 D2 to jffs2_dbg(level, fmt, ...)\nto be a bit more consistent style with the rest of the kernel.\n\nAll jffs2_dbg output is now at KERN_DEBUG where some of\nthe previous uses were emitted at various KERN_\u003cLEVEL\u003es.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    }
  ],
  "next": "273a65ad3256a829bdeb073a2e9b359433de2fe5"
}
