)]}'
{
  "log": [
    {
      "commit": "77249539cd987884f86df6fd5c43b3dae1841be1",
      "tree": "074f4c622b3f6da56c81d12bfb3409447c8d81a3",
      "parents": [
        "3e9ca0224152bac6ea812e3ccfe933d3932c21bd",
        "b22b1f178f6799278d3178d894f37facb2085765"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 11:15:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 11:15:31 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bug fixes from Theodore Ts\u0027o:\n \"This update contains two bug fixes, both destined for the stable tree.\n  Perhaps the most important is one which fixes ext4 when used with file\n  systems originally formatted for use with ext3, but then later\n  converted to take advantage of ext4.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: don\u0027t set i_flags in EXT4_IOC_SETFLAGS\n  ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg\n"
    },
    {
      "commit": "e72643088f576032d0d30c1d62c8fc077f383edc",
      "tree": "5068dd46292b132f6178ced3b9124b27f549b907",
      "parents": [
        "32ba9c3fcab960f0b0d332c86ebcd2c4870d9bb8",
        "12027f1b3fd69a4e9017e6b13c72547a99c6cf54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 11:04:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 11:04:06 2012 -0700"
      },
      "message": "Merge tag \u0027upstream-3.5-rc2\u0027 of git://git.infradead.org/linux-ubifs\n\nPull UBI/UBIFS fixes from Artem Bityutskiy:\n \"Fix UBI and UBIFS - they refuse to work without debugfs.  This was\n  broken by the 3.5-rc1 UBI/UBIFS changes when we removed the debugging\n  Kconfig switches.\n\n  Also, correct locking in \u0027ubi_wl_flush()\u0027 - it was extended to support\n  flushing a specific LEB in 3.5-rc1, and the locking was sub-optimal.\"\n\n* tag \u0027upstream-3.5-rc2\u0027 of git://git.infradead.org/linux-ubifs:\n  UBI: correct ubi_wl_flush locking\n  UBIFS: fix debugfs-less systems support\n  UBI: fix debugfs-less systems support\n"
    },
    {
      "commit": "32ba9c3fcab960f0b0d332c86ebcd2c4870d9bb8",
      "tree": "cd3638359e7a635dc15856559ac01b14196c4ff7",
      "parents": [
        "0b35d326f813a654f0cd40f513bd95e3935921c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 10:34:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 10:34:03 2012 -0700"
      },
      "message": "Revert \"vfs: stop d_splice_alias creating directory aliases\"\n\nThis reverts commit 7732a557b1342c6e6966efb5f07effcf99f56167 (and commit\n3f50fff4dace23d3cfeb195d5cd4ee813cee68b7, which was a follow-up\ncleanup).\n\nWe\u0027re chasing an elusive bug that Dave Jones can apparently reproduce\nusing his system call fuzzer tool, and that looks like some kind of\nlocking ordering problem on the directory i_mutex chain.  Our i_mutex\nlocking is rather complex, and depends on the topological ordering of\nthe directories, which is why we have been very wary of splicing\ndirectory entries around.\n\nOf course, we really don\u0027t want to ever see aliased unconnected\ndirectories anyway, so none of this should ever happen, but this revert\naims to basically get us back to a known older state.\n\nBruce points to some of the previous discussion at\n\n       http://marc.info/?i\u003d\u003c20110310105821.GE22723@ZenIV.linux.org.uk\u003e\n\nand in particular a long post from Neil:\n\n       http://marc.info/?i\u003d\u003c20110311150749.2fa2be66@notabene.brown\u003e\n\nIt should be noted that it\u0027s possible that Dave\u0027s problems come from\nother changes altohgether, including possibly just the fact that Dave\nconstantly is teachning his fuzzer new tricks.  So what appears to be a\nnew bug could in fact be an old one that just gets newly triggered, but\nreverting these patches as \"still under heavy discussion\" is the right\nthing regardless.\n\nRequested-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48d212a2eecaca2e1875925837ad27b2f43f48a3",
      "tree": "fbd83c7b15856971f6d7297e1d23dc862ba2989c",
      "parents": [
        "46edaedaf3842164281d0f86c41bc152f4b4d32e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 17:54:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 17:54:07 2012 -0700"
      },
      "message": "Revert \"mm: correctly synchronize rss-counters at exit/exec\"\n\nThis reverts commit 40af1bbdca47e5c8a2044039bb78ca8fd8b20f94.\n\nIt\u0027s horribly and utterly broken for at least the following reasons:\n\n - calling sync_mm_rss() from mmput() is fundamentally wrong, because\n   there\u0027s absolutely no reason to believe that the task that does the\n   mmput() always does it on its own VM.  Example: fork, ptrace, /proc -\n   you name it.\n\n - calling it *after* having done mmdrop() on it is doubly insane, since\n   the mm struct may well be gone now.\n\n - testing mm against NULL before you call it is insane too, since a\nNULL mm there would have caused oopses long before.\n\n.. and those are just the three bugs I found before I decided to give up\nlooking for me and revert it asap.  I should have caught it before I\neven took it, but I trusted Andrew too much.\n\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b22b1f178f6799278d3178d894f37facb2085765",
      "tree": "7d5b9559492a79ebddcfdab5c9fc2743dec26922",
      "parents": [
        "b0dd6b70f0fda17ae9762fbb72d98e40a4f66556"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Jun 07 19:04:19 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 07 19:04:19 2012 -0400"
      },
      "message": "ext4: don\u0027t set i_flags in EXT4_IOC_SETFLAGS\n\nCommit 7990696 uses the ext4_{set,clear}_inode_flags() functions to\nchange the i_flags automatically but fails to remove the error setting\nof i_flags.  So we still have the problem of trashing state flags.\nFix this by removing the assignment.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b0dd6b70f0fda17ae9762fbb72d98e40a4f66556",
      "tree": "64b75161542ef9d74bb397b82e9cea5b60c9304b",
      "parents": [
        "f8f5701bdaf9134b1f90e5044a82c66324d2073f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 07 18:56:06 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 07 18:56:06 2012 -0400"
      },
      "message": "ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg\n\nExt3 filesystems that are converted to use as many ext4 file system\nfeatures as possible will enable uninit_bg to speed up e2fsck times.\nThese file systems will have a native ext3 layout of inode tables and\nblock allocation bitmaps (as opposed to ext4\u0027s flex_bg layout).\nUnfortunately, in these cases, when first allocating a block in an\nuninitialized block group, ext4 would incorrectly calculate the number\nof free blocks in that block group, and then errorneously report that\nthe file system was corrupt:\n\nEXT4-fs error (device vdd): ext4_mb_generate_buddy:741: group 30, 32254 clusters in bitmap, 32258 in gd\n\nThis problem can be reproduced via:\n\n    mke2fs -q -t ext4 -O ^flex_bg /dev/vdd 5g\n    mount -t ext4 /dev/vdd /mnt\n    fallocate -l 4600m /mnt/test\n\nThe problem was caused by a bone headed mistake in the check to see if a\nparticular metadata block was part of the block group.\n\nMany thanks to Kees Cook for finding and bisecting the buggy commit\nwhich introduced this bug (commit fd034a84e1, present since v3.2).\n\nReported-by: Sander Eikelenboom \u003clinux@eikelenboom.it\u003e\nReported-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "40af1bbdca47e5c8a2044039bb78ca8fd8b20f94",
      "tree": "70b5a21579f8b0137c09e54d523246d84be93430",
      "parents": [
        "39caa0916ef27cf1da5026eb708a2b8413156f75"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu Jun 07 14:21:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 14:43:55 2012 -0700"
      },
      "message": "mm: correctly synchronize rss-counters at exit/exec\n\nmm-\u003erss_stat counters have per-task delta: task-\u003erss_stat.  Before\nchanging task-\u003emm pointer the kernel must flush this delta with\nsync_mm_rss().\n\ndo_exit() already calls sync_mm_rss() to flush the rss-counters before\ncommitting the rss statistics into task-\u003esignal-\u003emaxrss, taskstats,\naudit and other stuff.  Unfortunately the kernel does this before\ncalling mm_release(), which can call put_user() for processing\ntask-\u003eclear_child_tid.  So at this point we can trigger page-faults and\ntask-\u003erss_stat becomes non-zero again.  As a result mm-\u003erss_stat becomes\ninconsistent and check_mm() will print something like this:\n\n| BUG: Bad rss-counter state mm:ffff88020813c380 idx:1 val:-1\n| BUG: Bad rss-counter state mm:ffff88020813c380 idx:2 val:1\n\nThis patch moves sync_mm_rss() into mm_release(), and moves mm_release()\nout of do_exit() and calls it earlier.  After mm_release() there should\nbe no pagefaults.\n\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[3.4.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "818039c7d597db3b1d30964a8f9489ac42c0642d",
      "tree": "15a7529f017b818895e3e5ba75df4ef6f415af48",
      "parents": [
        "e9b4cf2094a65a05a831f070e46c554260632330"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jun 06 16:03:10 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Jun 07 10:43:54 2012 +0300"
      },
      "message": "UBIFS: fix debugfs-less systems support\n\nCommit \"f70b7e5 UBIFS: remove Kconfig debugging option\" broke UBIFS and it\nrefuses to initialize if debugfs (CONFIG_DEBUG_FS) is disabled. I incorrectly\nassumed that debugfs files creation function will return success if debugfs\nis disabled, but they actually return -ENODEV. This patch fixes the issue.\n\nReported-by: Paul Parsons \u003clost.distance@yahoo.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nTested-by: Paul Parsons \u003clost.distance@yahoo.com\u003e\n"
    },
    {
      "commit": "f9ba7179ce91fb77b2adf6eaab3676ab3a1f5a15",
      "tree": "2d02e7a4fd78083b78749d0c9c7466f0eb8e6f97",
      "parents": [
        "0b3e9f3f21c42d064f5f4088df4088e3d55755eb",
        "203627bbc90377c509e32450c67c5d957ba2d989"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 10:11:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 10:11:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse updates from Miklos Szeredi.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix blksize calculation\n  fuse: fix stat call on 32 bit platforms\n  fuse: optimize fallocate on permanent failure\n  fuse: add FALLOCATE operation\n  fuse: Convert to kstrtoul_from_user\n"
    },
    {
      "commit": "bf2785a818372603ad3ca3abcab65010f08a1d68",
      "tree": "8217f81fbfb686c006ade225d479c9000c311e7a",
      "parents": [
        "a3fe778c7895cd847d23c25ad566d83346282a77",
        "88257360605f9362dc4d79326c268dd334f61c90"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 04 15:00:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 04 15:00:58 2012 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull cifs fixes from Steve French.\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  CIFS: Move get_next_mid to ops struct\n  CIFS: Make accessing is_valid_oplock/dump_detail ops struct field safe\n  CIFS: Improve identation in cifs_unlock_range\n  CIFS: Fix possible wrong memory allocation\n"
    },
    {
      "commit": "0640113be25d283e0ff77a9f041e1242182387f0",
      "tree": "10607912e3d16e9b0354a8f27c213a250608da8d",
      "parents": [
        "5041caa4d5e6dae418963de0c8f8a83f35e35dcf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 04 11:00:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 04 11:00:45 2012 -0700"
      },
      "message": "vfs: Fix /proc/\u003ctid\u003e/fdinfo/\u003cfd\u003e file handling\n\nCyrill Gorcunov reports that I broke the fdinfo files with commit\n30a08bf2d31d (\"proc: move fd symlink i_mode calculations into\ntid_fd_revalidate()\"), and he\u0027s quite right.\n\nThe tid_fd_revalidate() function is not just used for the \u003ctid\u003e/fd\nsymlinks, it\u0027s also used for the \u003ctid\u003e/fdinfo/\u003cfd\u003e files, and the\npermission model for those are different.\n\nSo do the dynamic symlink permission handling just for symlinks, making\nthe fdinfo files once more appear as the proper regular files they are.\n\nOf course, Al Viro argued (probably correctly) that we shouldn\u0027t do the\nsymlink permission games at all, and make the symlinks always just be\nthe normal \u0027lrwxrwxrwx\u0027.  That would have avoided this issue too, but\nsince somebody noticed that the permissions had changed (which was the\nreason for that original commit 30a08bf2d31d in the first place), people\ndo apparently use this feature.\n\n[ Basically, you can use the symlink permission data as a cheap \"fdinfo\"\n  replacement, since you see whether the file is open for reading and/or\n  writing by just looking at st_mode of the symlink.  So the feature\n  does make sense, even if the pain it has caused means we probably\n  shouldn\u0027t have done it to begin with. ]\n\nReported-and-tested-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "829f51dbd825256197fb2a89705d42ad83f958ef",
      "tree": "78faf49e78cd28f145b08ab579576021e24dc64c",
      "parents": [
        "804ce9866d56130032c9c8afc90a1297b7deed56",
        "8b8c0daa2c5388b629e506f8fac486392f81c826"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 19:56:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 19:56:23 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Fixups for Andrew\u0027s patchbomb)\n\nMerge fixups for the mac NLS tables from Andrew.\n\n* emailed from Andrew Morton, and one cleanup by me:\n  nls: fix (and rename) mac NLS table files and config options\n  fs/nls/Makefile: remove bogus CONFIG_ assignments\n"
    },
    {
      "commit": "8b8c0daa2c5388b629e506f8fac486392f81c826",
      "tree": "cc86f647ab1883237976a6659d77877ebca7b070",
      "parents": [
        "92a8956364233c3b6f930aa00c852c558b70a91e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 19:51:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 19:51:22 2012 -0700"
      },
      "message": "nls: fix (and rename) mac NLS table files and config options\n\nThe config options in the Kconfig file (with _CODEPAGE_ in the name)\ndidn\u0027t match the config option name in the Makefile (no _CODEPAGE_).\n\nAnd both of them were of the hard-to-read MACXYZZY variety, which made\nthem hard to parse for normal humans: MACROMAN easily reads as \"macro\nman\", not as \"Mac Roman\".\n\nSo rename the options to be consistent, and be NLS_MAC_xyzzy.  Rename\nthe files to be mac-xyzzy.c too, and drop the \"nls\" part entirely (it\u0027s\nalready in the directory name).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92a8956364233c3b6f930aa00c852c558b70a91e",
      "tree": "0e00e61cfc1a1374f2aeab449a37179020dcda43",
      "parents": [
        "0a4dd35c67b144d8ef9432120105f1aab9293ee9"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jun 01 14:57:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 19:47:26 2012 -0700"
      },
      "message": "fs/nls/Makefile: remove bogus CONFIG_ assignments\n\nThese were debug things which snuck through.\n\nReported-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Vladimir Serbinenko \u003cphcoder@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": "f5e7e844a571124ffc117d4696787d6afc4fc5ae",
      "tree": "26bb17dc94e9536da540c187b00cedb0c1b24664",
      "parents": [
        "48445159e9ecb44a96a4de06c6ae7c54eb43ba5b",
        "4a43faf54e9173b6acce37cf7f053fc9515a2cdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 16:55:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 16:55:42 2012 -0700"
      },
      "message": "Merge tag \u0027for-linus-3.5-20120601\u0027 of git://git.infradead.org/linux-mtd\n\nPull mtd update from David Woodhouse:\n - More robust parsing especially of xattr data in JFFS2\n - Updates to mxc_nand and gpmi drivers to support new boards and device tree\n - Improve consistency of information about ECC strength in NAND devices\n - Clean up partition handling of plat_nand\n - Support NAND drivers without dedicated access to OOB area\n - BCH hardware ECC support for OMAP\n - Other fixes and cleanups, and a few new device IDs\n\nFixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to\nadded include files next to each other.\n\n* tag \u0027for-linus-3.5-20120601\u0027 of git://git.infradead.org/linux-mtd: (75 commits)\n  mtd: mxc_nand: move ecc strengh setup before nand_scan_tail\n  mtd: block2mtd: fix recursive call of mtd_writev\n  mtd: gpmi-nand: define ecc.strength\n  mtd: of_parts: fix breakage in Kconfig\n  mtd: nand: fix scan_read_raw_oob\n  mtd: docg3 fix in-middle of blocks reads\n  mtd: cfi_cmdset_0002: Slight cleanup of fixup messages\n  mtd: add fixup for S29NS512P NOR flash.\n  jffs2: allow to complete xattr integrity check on first GC scan\n  jffs2: allow to discriminate between recoverable and non-recoverable errors\n  mtd: nand: omap: add support for hardware BCH ecc\n  ARM: OMAP3: gpmc: add BCH ecc api and modes\n  mtd: nand: check the return code of \u0027read_oob/read_oob_raw\u0027\n  mtd: nand: remove \u0027sndcmd\u0027 parameter of \u0027read_oob/read_oob_raw\u0027\n  mtd: m25p80: Add support for Winbond W25Q80BW\n  jffs2: get rid of jffs2_sync_super\n  jffs2: remove unnecessary GC pass on sync\n  jffs2: remove unnecessary GC pass on umount\n  jffs2: remove lock_super\n  mtd: gpmi: add gpmi support for mx6q\n  ...\n"
    },
    {
      "commit": "86c47b70f62a7072d441ba212aab33c2f82627c2",
      "tree": "d03988bd2226966352bb7f3c2e82ff545353d2c4",
      "parents": [
        "1193755ac6328ad240ba987e6ec41d5e8baf0680",
        "44fbbb3dc687c9709a6f2236197316e5c79ab1eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 11:53:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 11:53:44 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull third pile of signal handling patches from Al Viro:\n \"This time it\u0027s mostly helpers and conversions to them; there\u0027s a lot\n  of stuff remaining in the tree, but that\u0027ll either go in -rc2\n  (isolated bug fixes, ideally via arch maintainers\u0027 trees) or will sit\n  there until the next cycle.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  x86: get rid of calling do_notify_resume() when returning to kernel mode\n  blackfin: check __get_user() return value\n  whack-a-mole with TIF_FREEZE\n  FRV: Optimise the system call exit path in entry.S [ver #2]\n  FRV: Shrink TIF_WORK_MASK [ver #2]\n  FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions\n  new helper: signal_delivered()\n  powerpc: get rid of restore_sigmask()\n  most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set\n  set_restore_sigmask() is never called without SIGPENDING (and never should be)\n  TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set\n  don\u0027t call try_to_freeze() from do_signal()\n  pull clearing RESTORE_SIGMASK into block_sigmask()\n  sh64: failure to build sigframe !\u003d signal without handler\n  openrisc: tracehook_signal_handler() is supposed to be called on success\n  new helper: sigmask_to_save()\n  new helper: restore_saved_sigmask()\n  new helpers: {clear,test,test_and_clear}_restore_sigmask()\n  HAVE_RESTORE_SIGMASK is defined on all architectures now\n"
    },
    {
      "commit": "88257360605f9362dc4d79326c268dd334f61c90",
      "tree": "81770ae1d528f0d19e9e3a7a78ed90cdf147d452",
      "parents": [
        "7f0adb53bcf5bdb92236cda8ec92ea5e40993028"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "pshilovsky@samba.org",
        "time": "Wed May 23 14:01:59 2012 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jun 01 12:35:19 2012 -0500"
      },
      "message": "CIFS: Move get_next_mid to ops struct\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Pavel Shilovsky \u003cpshilovsky@samba.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "7f0adb53bcf5bdb92236cda8ec92ea5e40993028",
      "tree": "062db774aad5c3362023bf7649b9692e3e2a777d",
      "parents": [
        "ea319d57d3372a9dbee0b3807d75bb36b8d54adc"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "pshilovsky@samba.org",
        "time": "Mon May 28 15:50:10 2012 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jun 01 12:35:16 2012 -0500"
      },
      "message": "CIFS: Make accessing is_valid_oplock/dump_detail ops struct field safe\n\nSigned-off-by: Pavel Shilovsky \u003cpshilovsky@samba.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ea319d57d3372a9dbee0b3807d75bb36b8d54adc",
      "tree": "63a0c951a39c5c26d03b7fd6f68a79d1a23d6143",
      "parents": [
        "0013fb4ca3171c64a4a5d3851fb591bb575e7f04"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "pshilovsky@samba.org",
        "time": "Thu May 31 13:59:36 2012 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jun 01 12:35:12 2012 -0500"
      },
      "message": "CIFS: Improve identation in cifs_unlock_range\n\nSigned-off-by: Pavel Shilovsky \u003cpshilovsky@samba.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "0013fb4ca3171c64a4a5d3851fb591bb575e7f04",
      "tree": "e324f2926e2e920bb7355ee8dc79a09df60342cf",
      "parents": [
        "51eab603f5c86dd1eae4c525df3e7f7eeab401d6"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "pshilovsky@samba.org",
        "time": "Thu May 31 13:03:26 2012 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jun 01 12:35:08 2012 -0500"
      },
      "message": "CIFS: Fix possible wrong memory allocation\n\nwhen cifs_reconnect sets maxBuf to 0 and we try to calculate a size\nof memory we need to store locks.\n\nSigned-off-by: Pavel Shilovsky \u003cpshilovsky@samba.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1193755ac6328ad240ba987e6ec41d5e8baf0680",
      "tree": "40bf847d7e3ebaa57b107151d14e6cd1d280cc6d",
      "parents": [
        "4edebed86690eb8db9af3ab85baf4a34e73266cc",
        "0ef97dcfce4179a2eba046b855ee2f91d6f1b414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs changes from Al Viro.\n \"A lot of misc stuff.  The obvious groups:\n   * Miklos\u0027 atomic_open series; kills the damn abuse of\n     -\u003ed_revalidate() by NFS, which was the major stumbling block for\n     all work in that area.\n   * ripping security_file_mmap() and dealing with deadlocks in the\n     area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in\n     general.\n   * -\u003eencode_fh() switched to saner API; insane fake dentry in\n     mm/cleancache.c gone.\n   * assorted annotations in fs (endianness, __user)\n   * parts of Artem\u0027s -\u003es_dirty work (jff2 and reiserfs parts)\n   * -\u003eupdate_time() work from Josef.\n   * other bits and pieces all over the place.\n\n  Normally it would\u0027ve been in two or three pull requests, but\n  signal.git stuff had eaten a lot of time during this cycle ;-/\"\n\nFix up trivial conflicts in Documentation/filesystems/vfs.txt (the\n\u0027truncate_range\u0027 inode method was removed by the VM changes, the VFS\nupdate adds an \u0027update_time()\u0027 method), and in fs/btrfs/ulist.[ch] (due\nto sparse fix added twice, with other changes nearby).\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)\n  nfs: don\u0027t open in -\u003ed_revalidate\n  vfs: retry last component if opening stale dentry\n  vfs: nameidata_to_filp(): don\u0027t throw away file on error\n  vfs: nameidata_to_filp(): inline __dentry_open()\n  vfs: do_dentry_open(): don\u0027t put filp\n  vfs: split __dentry_open()\n  vfs: do_last() common post lookup\n  vfs: do_last(): add audit_inode before open\n  vfs: do_last(): only return EISDIR for O_CREAT\n  vfs: do_last(): check LOOKUP_DIRECTORY\n  vfs: do_last(): make ENOENT exit RCU safe\n  vfs: make follow_link check RCU safe\n  vfs: do_last(): use inode variable\n  vfs: do_last(): inline walk_component()\n  vfs: do_last(): make exit RCU safe\n  vfs: split do_lookup()\n  Btrfs: move over to use -\u003eupdate_time\n  fs: introduce inode operation -\u003eupdate_time\n  reiserfs: get rid of resierfs_sync_super\n  reiserfs: mark the superblock as dirty a bit later\n  ...\n"
    },
    {
      "commit": "4edebed86690eb8db9af3ab85baf4a34e73266cc",
      "tree": "8ab144b08f490f239fa62be52470860c9311664d",
      "parents": [
        "51eab603f5c86dd1eae4c525df3e7f7eeab401d6",
        "5e44f8c374dc4f8eadf61cd18b2c0d46bc87c1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 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 from Theodore Ts\u0027o:\n \"The major new feature added in this update is Darrick J Wong\u0027s\n  metadata checksum feature, which adds crc32 checksums to ext4\u0027s\n  metadata fields.\n\n  There is also the usual set of cleanups and bug fixes.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)\n  ext4: hole-punch use truncate_pagecache_range\n  jbd2: use kmem_cache_zalloc wrapper instead of flag\n  ext4: remove mb_groups before tearing down the buddy_cache\n  ext4: add ext4_mb_unload_buddy in the error path\n  ext4: don\u0027t trash state flags in EXT4_IOC_SETFLAGS\n  ext4: let getattr report the right blocks in delalloc+bigalloc\n  ext4: add missing save_error_info() to ext4_error()\n  ext4: add debugging trigger for ext4_error()\n  ext4: protect group inode free counting with group lock\n  ext4: use consistent ssize_t type in ext4_file_write()\n  ext4: fix format flag in ext4_ext_binsearch_idx()\n  ext4: cleanup in ext4_discard_allocated_blocks()\n  ext4: return ENOMEM when mounts fail due to lack of memory\n  ext4: remove redundundant \"(char *) bh-\u003eb_data\" casts\n  ext4: disallow hard-linked directory in ext4_lookup\n  ext4: fix potential integer overflow in alloc_flex_gd()\n  ext4: remove needs_recovery in ext4_mb_init()\n  ext4: force ro mount if ext4_setup_super() fails\n  ext4: fix potential NULL dereference in ext4_free_inodes_counts()\n  ext4/jbd2: add metadata checksumming to the list of supported features\n  ...\n"
    },
    {
      "commit": "754421c8cab1a568be844a7069fe04c1cf6391b8",
      "tree": "71fa1f54e664ff45289fccfa946747a18e20727f",
      "parents": [
        "fb21affa49204acd409328415b49bfe90136653c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 26 18:31:00 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:58:46 2012 -0400"
      },
      "message": "HAVE_RESTORE_SIGMASK is defined on all architectures now\n\nEveryone either defines it in arch thread_info.h or has TIF_RESTORE_SIGMASK\nand picks default set_restore_sigmask() in linux/thread_info.h.  Kill the\nifdefs, slap #error in linux/thread_info.h to catch breakage when new ones\nget merged.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0ef97dcfce4179a2eba046b855ee2f91d6f1b414",
      "tree": "d5a29275a427dafd8fce0131b58f215c6252d3e2",
      "parents": [
        "16b1c1cd71176ab0a76b26818fbf12db9183ed57"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:20 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:02 2012 -0400"
      },
      "message": "nfs: don\u0027t open in -\u003ed_revalidate\n\nNFSv4 can\u0027t do reliable opens in d_revalidate, since it cannot know whether a\nmount needs to be followed or not.  It does check d_mountpoint() on the dentry,\nwhich can result in a weird error if the VFS found that the mount does not in\nfact need to be followed, e.g.:\n\n  # mount --bind /mnt/nfs /mnt/nfs-clone\n  # echo something \u003e /mnt/nfs/tmp/bar\n  # echo x \u003e /tmp/file\n  # mount --bind /tmp/file /mnt/nfs-clone/tmp/bar\n  # cat  /mnt/nfs/tmp/bar\n  cat: /mnt/nfs/tmp/bar: Not a directory\n\nWhich should, by any sane filesystem, result in \"something\" being printed.\n\nSo instead do the open in f_op-\u003eopen() and in the unlikely case that the cached\ndentry turned out to be invalid, drop the dentry and return EOPENSTALE to let\nthe VFS retry.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "16b1c1cd71176ab0a76b26818fbf12db9183ed57",
      "tree": "da4ab8077cc3d9dce5b6ec2d003074cba3841446",
      "parents": [
        "50ee93afcaa970620d1fb5a9894109a2ab152868"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:19 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:01 2012 -0400"
      },
      "message": "vfs: retry last component if opening stale dentry\n\nNFS optimizes away d_revalidates for last component of open.  This means that\nopen itself can find the dentry stale.\n\nThis patch allows the filesystem to return EOPENSTALE and the VFS will retry the\nlookup on just the last component if possible.\n\nIf the lookup was done using RCU mode, including the last component, then this\nis not possible since the parent dentry is lost.  In this case fall back to\nnon-RCU lookup.  Currently this is not used since NFS will always leave RCU\nmode.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "50ee93afcaa970620d1fb5a9894109a2ab152868",
      "tree": "40aa31801f8b60f9f67ba168e438d4c947d502b3",
      "parents": [
        "91daee988db38b0207eec719a3160b163c077007"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:18 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:01 2012 -0400"
      },
      "message": "vfs: nameidata_to_filp(): don\u0027t throw away file on error\n\nIf open fails, don\u0027t put the file.  This allows it to be reused if open needs to\nbe retried.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91daee988db38b0207eec719a3160b163c077007",
      "tree": "932e374dc322cb2ecd4d343c9c4a52b0d62467ff",
      "parents": [
        "78f71eff3c274f3907f4aa1bbe3267281ba1c603"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:17 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:01 2012 -0400"
      },
      "message": "vfs: nameidata_to_filp(): inline __dentry_open()\n\nCopy __dentry_open() into nameidata_to_filp().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "78f71eff3c274f3907f4aa1bbe3267281ba1c603",
      "tree": "1ff09317eca03d269fe52b51a5ed23e2cb610e4b",
      "parents": [
        "90ad1a8ecb9bfd5ff4503ac42cd049a97643ee51"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:16 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:00 2012 -0400"
      },
      "message": "vfs: do_dentry_open(): don\u0027t put filp\n\nMove put_filp() out to __dentry_open(), the only caller now.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90ad1a8ecb9bfd5ff4503ac42cd049a97643ee51",
      "tree": "0e41482d5706e153045c0635c53bb2d9d8c3e704",
      "parents": [
        "5f5daac12a4cef568d1269be0215fec0667193c1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:15 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:00 2012 -0400"
      },
      "message": "vfs: split __dentry_open()\n\nSplit __dentry_open() into two functions:\n\n  do_dentry_open() - does most of the actual work, doesn\u0027t put file on failure\n  open_check_o_direct() - after a successful open, checks direct_IO method\n\nThis will allow i_op-\u003eatomic_open to do just the file initialization and leave\nthe direct_IO checking to the VFS.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5f5daac12a4cef568d1269be0215fec0667193c1",
      "tree": "fd580ca7c35d607fd9267499193ec1a93b656cc1",
      "parents": [
        "d7fdd7f6e1afbffda03aeacb90039c092e8cacf8"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:14 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:12:00 2012 -0400"
      },
      "message": "vfs: do_last() common post lookup\n\nNow the post lookup code can be shared between O_CREAT and plain opens since\nthey are essentially the same.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d7fdd7f6e1afbffda03aeacb90039c092e8cacf8",
      "tree": "3ce93ad170a92ee15b7d0d1364baa18c26aed042",
      "parents": [
        "050ac841ea90610067fec26150574be8c6077738"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:13 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:59 2012 -0400"
      },
      "message": "vfs: do_last(): add audit_inode before open\n\nThis allows this code to be shared between O_CREAT and plain opens.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "050ac841ea90610067fec26150574be8c6077738",
      "tree": "9cad4c8ddc28fc4d22715c6a72ade663a5063815",
      "parents": [
        "af2f55426d1d888dcc0ba8dc9e9deb49fae38e38"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:12 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:59 2012 -0400"
      },
      "message": "vfs: do_last(): only return EISDIR for O_CREAT\n\nThis allows this code to be shared between O_CREAT and plain opens.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "af2f55426d1d888dcc0ba8dc9e9deb49fae38e38",
      "tree": "09a0e9d2b7cc722edf4cd6d1904a98630656a773",
      "parents": [
        "54c33e7f95284539e52ec2d99dcdf6efd29b247f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:11 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:58 2012 -0400"
      },
      "message": "vfs: do_last(): check LOOKUP_DIRECTORY\n\nCheck for ENOTDIR before finishing open.  This allows this code to be shared\nbetween O_CREAT and plain opens.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "54c33e7f95284539e52ec2d99dcdf6efd29b247f",
      "tree": "777bbd294473b78538ba5ad3151c6e2596c94eee",
      "parents": [
        "d45ea86792db9679ed010b2c3df3db32b2ce5bde"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:10 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:58 2012 -0400"
      },
      "message": "vfs: do_last(): make ENOENT exit RCU safe\n\nThis will allow this code to be used in RCU mode.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d45ea86792db9679ed010b2c3df3db32b2ce5bde",
      "tree": "573f99f16911ce9e14087a5559a11e876d676859",
      "parents": [
        "decf3400879d02d0eafedea52c7f208587be062a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:09 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:58 2012 -0400"
      },
      "message": "vfs: make follow_link check RCU safe\n\nThis will allow this code to be used in RCU mode.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "decf3400879d02d0eafedea52c7f208587be062a",
      "tree": "988c4006b9689c50cb43a379069dc5ea019567d8",
      "parents": [
        "a1eb33153090549e622ab42cb375af06614dd7a8"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:08 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:57 2012 -0400"
      },
      "message": "vfs: do_last(): use inode variable\n\nUse helper variable instead of path-\u003edentry-\u003ed_inode before complete_walk().\nThis will allow this code to be used in RCU mode.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1eb33153090549e622ab42cb375af06614dd7a8",
      "tree": "905f4a840fb12aea792af9a00f72450601baa70d",
      "parents": [
        "e276ae672fa2d727721b1a5a2508ff34bac85439"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:07 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:57 2012 -0400"
      },
      "message": "vfs: do_last(): inline walk_component()\n\nCopy walk_component() into do_lookup().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e276ae672fa2d727721b1a5a2508ff34bac85439",
      "tree": "554ff042e36591f20bd8bf4e475ee0af7b95f3f6",
      "parents": [
        "697f514df10b0f46bcd7596c1be18b7e2e9b28bb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:06 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:57 2012 -0400"
      },
      "message": "vfs: do_last(): make exit RCU safe\n\nAllow returning from do_last() with LOOKUP_RCU still set on the \"out:\" and\n\"exit:\" labels.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "697f514df10b0f46bcd7596c1be18b7e2e9b28bb",
      "tree": "eed5439dcc771e5ee18cab74de829e97200ea320",
      "parents": [
        "e41f941a23115e84a8550b3d901a13a14b2edc2f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 21 17:30:05 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:11:56 2012 -0400"
      },
      "message": "vfs: split do_lookup()\n\nSplit do_lookup() into two functions:\n\n  lookup_fast() - does cached lookup without i_mutex\n  lookup_slow() - does lookup with i_mutex\n\nBoth follow managed dentries.\n\nThe new functions are needed by atomic_open.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e41f941a23115e84a8550b3d901a13a14b2edc2f",
      "tree": "4f9d029be67bb3be91b5b7c5a28cf3e5c1508e7a",
      "parents": [
        "c3b2da314834499f34cba94f7053e55f6d6f92d8"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 09:46:47 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:07:52 2012 -0400"
      },
      "message": "Btrfs: move over to use -\u003eupdate_time\n\nBtrfs had been doing it\u0027s own file_update_time so we could catch ENOSPC\nproperly, so just update our btrfs_update_time to work with the new stuff and\nthen we\u0027ll be fancy later.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "c3b2da314834499f34cba94f7053e55f6d6f92d8",
      "tree": "7012b569ee9e0781761a8eb388190979441583c7",
      "parents": [
        "033369d1af1264abc23bea2e174aa47cdd212f6f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 09:59:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:07:25 2012 -0400"
      },
      "message": "fs: introduce inode operation -\u003eupdate_time\n\nBtrfs has to make sure we have space to allocate new blocks in order to modify\nthe inode, so updating time can fail.  We\u0027ve gotten around this by having our\nown file_update_time but this is kind of a pain, and Christoph has indicated he\nwould like to make xfs do something different with atime updates.  So introduce\n-\u003eupdate_time, where we will deal with i_version an a/m/c time updates and\nindicate which changes need to be made.  The normal version just does what it\nhas always done, updates the time and marks the inode dirty, and then\nfilesystems can choose to do something different.\n\nI\u0027ve gone through all of the users of file_update_time and made them check for\nerrors with the exception of the fault code since it\u0027s complicated and I wasn\u0027t\nquite sure what to do there, also Jan is going to be pushing the file time\nupdates into page_mkwrite for those who have it so that should satisfy btrfs and\nmake it not a big deal to check the file_update_time() return code in the\ngeneric fault path. Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "51eab603f5c86dd1eae4c525df3e7f7eeab401d6",
      "tree": "e7a8c6214b072db126cca62d39008b3620134798",
      "parents": [
        "419f4319495043a9507ac3e616be9ca60af09744",
        "1e20932a23578bb1ec59107843574e259b96193f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:37:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:37:31 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs updates from Chris Mason:\n \"This includes a fairly large change from Josef around data writeback\n  completion.  Before, the writeback wasn\u0027t completed until the metadata\n  insertions for the extent were done, and this made for fairly large\n  latency spikes on the last page of each ordered extent.\n\n  We already had a separate mechanism for tracking pending metadata\n  insertions, so Josef just needed to tweak things a little to end\n  writeback earlier on the page.  Overall it makes us much friendly to\n  memory reclaim and lowers latencies quite a lot for synchronous IO.\n\n  Jan Schmidt has finished some background work required to track btree\n  blocks as they go through changes in ownership.  It\u0027s the missing\n  piece he needed for both btrfs send/receive and subvolume quotas.\n  Neither of those are ready yet, but the new tracking code is included\n  here.  Most of the time, the new code is off.  It is only used by\n  scrub and other backref walkers.\n\n  Stefan Behrens has added io failure tracking.  This includes counters\n  for which drives are causing the most trouble so the admin (or an\n  automated tool) can choose to kick them out.  We\u0027re tracking IO\n  errors, crc errors, and generation checks we do on each metadata\n  block.\n\n  RAID5/6 did miss the cut this time because I\u0027m having trouble with\n  corruptions.  I\u0027ll nail it down next week and post as a beta testing\n  before 3.6\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (58 commits)\n  Btrfs: fix tree mod log rewinded level and rewinding of moved keys\n  Btrfs: fix tree mod log del_ptr\n  Btrfs: add tree_mod_dont_log helper\n  Btrfs: add missing spin_lock for insertion into tree mod log\n  Btrfs: add inodes before dropping the extent lock in find_all_leafs\n  Btrfs: use delayed ref sequence numbers for all fs-tree updates\n  Btrfs: fix false positive in check-integrity on unmount\n  Btrfs: fix runtime warning in check-integrity check data mode\n  Btrfs: set ioprio of scrub readahead to idle\n  Btrfs: fix return code in drop_objectid_items\n  Btrfs: check to see if the inode is in the log before fsyncing\n  Btrfs: return value of btrfs_read_buffer is checked correctly\n  Btrfs: read device stats on mount, write modified ones during commit\n  Btrfs: add ioctl to get and reset the device stats\n  Btrfs: add device counters for detected IO and checksum errors\n  btrfs: Drop unused function btrfs_abort_devices()\n  Btrfs: fix the same inode id problem when doing auto defragment\n  Btrfs: fall back to non-inline if we don\u0027t have enough space\n  Btrfs: fix how we deal with the orphan block rsv\n  Btrfs: convert the inode bit field to use the actual bit operations\n  ...\n"
    },
    {
      "commit": "419f4319495043a9507ac3e616be9ca60af09744",
      "tree": "0f747d80d11a6d4cd726ad6556839d5cd40b23ac",
      "parents": [
        "fb21affa49204acd409328415b49bfe90136653c",
        "6eccece90b6addf80ef9e6db79b0bc873301034b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:32:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:32:58 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull the rest of the nfsd commits from Bruce Fields:\n \"... and then I cherry-picked the remainder of the patches from the\n  head of my previous branch\"\n\nThis is the rest of the original nfsd branch, rebased without the\ndelegation stuff that I thought really needed to be redone.\n\nI don\u0027t like rebasing things like this in general, but in this situation\nthis was the lesser of two evils.\n\n* \u0027for-3.5\u0027 of git://linux-nfs.org/~bfields/linux: (50 commits)\n  nfsd4: fix, consolidate client_has_state\n  nfsd4: don\u0027t remove rebooted client record until confirmation\n  nfsd4: remove some dprintk\u0027s and a comment\n  nfsd4: return \"real\" sequence id in confirmed case\n  nfsd4: fix exchange_id to return confirm flag\n  nfsd4: clarify that renewing expired client is a bug\n  nfsd4: simpler ordering of setclientid_confirm checks\n  nfsd4: setclientid: remove pointless assignment\n  nfsd4: fix error return in non-matching-creds case\n  nfsd4: fix setclientid_confirm same_cred check\n  nfsd4: merge 3 setclientid cases to 2\n  nfsd4: pull out common code from setclientid cases\n  nfsd4: merge last two setclientid cases\n  nfsd4: setclientid/confirm comment cleanup\n  nfsd4: setclientid remove unnecessary terms from a logical expression\n  nfsd4: move rq_flavor into svc_cred\n  nfsd4: stricter cred comparison for setclientid/exchange_id\n  nfsd4: move principal name into svc_cred\n  nfsd4: allow removing clients not holding state\n  nfsd4: rearrange exchange_id logic to simplify\n  ...\n"
    },
    {
      "commit": "033369d1af1264abc23bea2e174aa47cdd212f6f",
      "tree": "b00e709d1e9270b1708488da7a596a8dff72541d",
      "parents": [
        "5c5fd81962271d4ee2984837fef4ec37e689aa41"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:08 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: get rid of resierfs_sync_super\n\nThis patch stops reiserfs using the VFS \u0027write_super()\u0027 method along with the\ns_dirt flag, because they are on their way out.\n\nThe whole \"superblock write-out\" VFS infrastructure is served by the\n\u0027sync_supers()\u0027 kernel thread, which wakes up every 5 (by default) seconds and\nwrites out all dirty superblock using the \u0027-\u003ewrite_super()\u0027 call-back.  But the\nproblem with this thread is that it wastes power by waking up the system every\n5 seconds, even if there are no diry superblocks, or there are no client\nfile-systems which would need this (e.g., btrfs does not use\n\u0027-\u003ewrite_super()\u0027). So we want to kill it completely and thus, we need to make\nfile-systems to stop using the \u0027-\u003ewrite_super()\u0027 VFS service, and then remove\nit together with the kernel thread.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c5fd81962271d4ee2984837fef4ec37e689aa41",
      "tree": "bf426f26c8265c3572e37e3a0908624da0cf0a58",
      "parents": [
        "717f03c4d71677d2afb68d54628def3aae5d46ab"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:07 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: mark the superblock as dirty a bit later\n\nThe \u0027journal_mark_dirty()\u0027 function currently first marks the superblock as\ndirty by setting \u0027s_dirt\u0027 to 1, then does various sanity checks and returns,\nthen actuall does all the magic with the journal.\n\nThis is not an ideal order, though. It makes more sense to first do all the\nchecks, then do all the internal stuff, and at the end notify the VFS that the\nsuperblock is now dirty.\n\nThis patch moves the \u0027s_dirt \u003d 1\u0027 assignment from the very beginning of this\nfunction to the very end.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "717f03c4d71677d2afb68d54628def3aae5d46ab",
      "tree": "ad6eb4ff48e307920716a22586bbf322002d19bb",
      "parents": [
        "25729b0e94c2103a8d726eda843136a3775366cf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:06 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: remove useless superblock dirtying\n\nThe \u0027reiserfs_resize()\u0027 function marks the superblock as dirty by assigning 1\nto \u0027s_dirt\u0027 and then calls \u0027journal_mark_dirty()\u0027 which does the same. Thus,\nwe can remove the assignment from \u0027reiserfs_resize()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "25729b0e94c2103a8d726eda843136a3775366cf",
      "tree": "b5858042ffb91144103a38b6be197cd54afa4d67",
      "parents": [
        "efaa33eb1309d65528d5a54d87d69bdcbdae8c10"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:05 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: clean-up function return type\n\nTurn \u0027reiserfs_flush_old_commits()\u0027 into a void function because the callers\ndo not cares about what it returns anyway.\n\nWe are going to remove the \u0027sb-\u003es_dirt\u0027 field completely and this patch is a\nsmall step towards this direction.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "efaa33eb1309d65528d5a54d87d69bdcbdae8c10",
      "tree": "31da93df726e53fa56447226605d4870b37f7754",
      "parents": [
        "d58367515f47371f7202d8b258ee0614a8955a6a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jun 01 17:18:04 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:36 2012 -0400"
      },
      "message": "reiserfs: cleanup reiserfs_fill_super a bit\n\nWe have the reiserfs superblock pointer in the \u0027sbi\u0027 variable in this\nfunction, no need to use the \u0027REISERFS_SB(s)\u0027 macro which is the same.\nThis is jut a small clean-up.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e3fc629d7bb70848fbf479688a66d4e76dff46ac",
      "tree": "96b6d5ffdb1c643fb28807a635e6ca4e24964034",
      "parents": [
        "98de59bfe4b2ff6344d9ad8e5296f80de5dcc5b6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 20:08:42 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:17 2012 -0400"
      },
      "message": "switch aio and shm to do_mmap_pgoff(), make do_mmap() static\n\nafter all, 0 bytes and 0 pages is the same thing...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5e44f8c374dc4f8eadf61cd18b2c0d46bc87c1b7",
      "tree": "ccecc6ddd068b809de59b45abe7714ee47076d95",
      "parents": [
        "b2f4edb335f23626225a792e0669d1becf68312f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Jun 01 00:15:28 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 01 00:15:28 2012 -0400"
      },
      "message": "ext4: hole-punch use truncate_pagecache_range\n\nWhen truncating a file, we unmap pages from userspace first, as that\u0027s\nusually more efficient than relying, page by page, on the fallback in\ntruncate_inode_page() - particularly if the file is mapped many times.\n\nDo the same when punching a hole: 3.4 added truncate_pagecache_range()\nto do the unmap and trunc, so use it in ext4_ext_punch_hole(), instead\nof calling truncate_inode_pages_range() directly.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b2f4edb335f23626225a792e0669d1becf68312f",
      "tree": "9e7b1b79f5d00d5adbe0ccced87be4045e245100",
      "parents": [
        "95599968d19db175829fb580baa6b68939b320fb"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Fri Jun 01 00:10:32 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 01 00:10:32 2012 -0400"
      },
      "message": "jbd2: use kmem_cache_zalloc wrapper instead of flag\n\nUse kmem_cache_zalloc wrapper instead of flag __GFP_ZERO.\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "95599968d19db175829fb580baa6b68939b320fb",
      "tree": "f28bdf3d19f818a8d61dc68454c72d62e8247b05",
      "parents": [
        "02b7831019ea4e7994968c84b5826fa8b248ffc8"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Thu May 31 23:52:14 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 23:52:14 2012 -0400"
      },
      "message": "ext4: remove mb_groups before tearing down the buddy_cache\n\nWe can\u0027t have references held on pages in the s_buddy_cache while we are\ntrying to truncate its pages and put the inode.  All the pages must be\ngone before we reach clear_inode.  This can only be gauranteed if we\ncan prevent new users from grabbing references to s_buddy_cache\u0027s pages.\n\nThe original bug can be reproduced and the bug fix can be verified by:\n\nwhile true; do mount -t ext4 /dev/ram0 /export/hda3/ram0; \\\n\tumount /export/hda3/ram0; done \u0026\n\nwhile true; do cat /proc/fs/ext4/ram0/mb_groups; done\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "02b7831019ea4e7994968c84b5826fa8b248ffc8",
      "tree": "929419054f15d2582d2b977505f55ec421e39549",
      "parents": [
        "79906964a187c405db72a3abc60eb9b50d804fbc"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Thu May 31 23:51:27 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 23:51:27 2012 -0400"
      },
      "message": "ext4: add ext4_mb_unload_buddy in the error path\n\next4_free_blocks fails to pair an ext4_mb_load_buddy with a matching\next4_mb_unload_buddy when it fails a memory allocation.\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "79906964a187c405db72a3abc60eb9b50d804fbc",
      "tree": "bb9cec1905d268cda5d46a95b993e0a173c226c4",
      "parents": [
        "9660755100ae7677d65772a28e16d475a2ee9eab"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 23:46:01 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 23:46:01 2012 -0400"
      },
      "message": "ext4: don\u0027t trash state flags in EXT4_IOC_SETFLAGS\n\nIn commit 353eb83c we removed i_state_flags with 64-bit longs, But\nwhen handling the EXT4_IOC_SETFLAGS ioctl, we replace i_flags\ndirectly, which trashes the state flags which are stored in the high\n32-bits of i_flags on 64-bit platforms.  So use the the\next4_{set,clear}_inode_flags() functions which use atomic bit\nmanipulation functions instead.\n\nReported-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n\n"
    },
    {
      "commit": "9660755100ae7677d65772a28e16d475a2ee9eab",
      "tree": "b7192f775c46add4ad1b96d8c766ce236aec872f",
      "parents": [
        "f3fc0210c0fc91900766c995f089c39170e68305"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu May 31 22:54:16 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 31 22:54:16 2012 -0400"
      },
      "message": "ext4: let getattr report the right blocks in delalloc+bigalloc\n\nIn delayed allocation, i_reserved_data_blocks now indicates\nclusters, not blocks. So report it in the right number.\n\nThis can be easily exposed by the following command:\necho foo \u003e blah; du -hc blah; sync; du -hc blah\n\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a00b6151a2ae4c52576c35d3998e144a993d50b8",
      "tree": "fc312be05c4deb4dead7a6afa09e88017d3a0146",
      "parents": [
        "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
        "b108fe6b08f3f61c2c465649b20b7d4b4c185728"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd update from Bruce Fields.\n\n* \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux: (23 commits)\n  nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek\n  SUNRPC: split upcall function to extract reusable parts\n  nfsd: allocate id-to-name and name-to-id caches in per-net operations.\n  nfsd: make name-to-id cache allocated per network namespace context\n  nfsd: make id-to-name cache allocated per network namespace context\n  nfsd: pass network context to idmap init/exit functions\n  nfsd: allocate export and expkey caches in per-net operations.\n  nfsd: make expkey cache allocated per network namespace context\n  nfsd: make export cache allocated per network namespace context\n  nfsd: pass pointer to export cache down to stack wherever possible.\n  nfsd: pass network context to export caches init/shutdown routines\n  Lockd: pass network namespace to creation and destruction routines\n  NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches\n  nfsd: pass pointer to expkey cache down to stack wherever possible.\n  nfsd: use hash table from cache detail in nfsd export seq ops\n  nfsd: pass svc_export_cache pointer as private data to \"exports\" seq file ops\n  nfsd: use exp_put() for svc_export_cache put\n  nfsd: use cache detail pointer from svc_export structure on cache put\n  nfsd: add link to owner cache detail to svc_export structure\n  nfsd: use passed cache_detail pointer expkey_parse()\n  ...\n"
    },
    {
      "commit": "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
      "tree": "18906149d313d25914160aca21cedf54b3a7e818",
      "parents": [
        "9fdadb2cbaf4b482dfd6086e8bd3d2db071a1702",
        "0a4dd35c67b144d8ef9432120105f1aab9293ee9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n\n - the \"misc\" tree - stuff from all over the map\n\n - checkpatch updates\n\n - fatfs\n\n - kmod changes\n\n - procfs\n\n - cpumask\n\n - UML\n\n - kexec\n\n - mqueue\n\n - rapidio\n\n - pidns\n\n - some checkpoint-restore feature work.  Reluctantly.  Most of it\n   delayed a release.  I\u0027m still rather worried that we don\u0027t have a\n   clear roadmap to completion for this work.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (78 patches)\n  kconfig: update compression algorithm info\n  c/r: prctl: add ability to set new mm_struct::exe_file\n  c/r: prctl: extend PR_SET_MM to set up more mm_struct entries\n  c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat\n  syscalls, x86: add __NR_kcmp syscall\n  fs, proc: introduce /proc/\u003cpid\u003e/task/\u003ctid\u003e/children entry\n  sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE\n  aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()\n  eventfd: change int to __u64 in eventfd_signal()\n  fs/nls: add Apple NLS\n  pidns: make killed children autoreap\n  pidns: use task_active_pid_ns in do_notify_parent\n  rapidio/tsi721: add DMA engine support\n  rapidio: add DMA engine support for RIO data transfers\n  ipc/mqueue: add rbtree node caching support\n  tools/selftests: add mq_perf_tests\n  ipc/mqueue: strengthen checks on mqueue creation\n  ipc/mqueue: correct mq_attr_ok test\n  ipc/mqueue: improve performance of send/recv\n  selftests: add mq_open_tests\n  ...\n"
    },
    {
      "commit": "5b172087f99189416d5f47fd7ab5e6fb762a9ba3",
      "tree": "2619444e8ceee40df80814a1004687ac3d7f1eda",
      "parents": [
        "d97b46a64674a267bc41c9e16132ee2a98c3347d"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu May 31 16:26:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat\n\nWe would like to have an ability to restore command line arguments and\nprogram environment pointers but first we need to obtain them somehow.\nThus we put these values into /proc/$pid/stat.  The exit_code is needed to\nrestore zombie tasks.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "818411616baf46ceba0cff6f05af3a9b294734f7",
      "tree": "b6e338e20d4a45b6a05ffa37e6af33e0cc1b50c0",
      "parents": [
        "98ed57eef9f67dfe541be0bca34660ffc88365b2"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu May 31 16:26:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "fs, proc: introduce /proc/\u003cpid\u003e/task/\u003ctid\u003e/children entry\n\nWhen we do checkpoint of a task we need to know the list of children the\ntask, has but there is no easy and fast way to generate reverse\nparent-\u003echildren chain from arbitrary \u003cpid\u003e (while a parent pid is\nprovided in \"PPid\" field of /proc/\u003cpid\u003e/status).\n\nSo instead of walking over all pids in the system (creating one big\nprocess tree in memory, just to figure out which children a task has) --\nwe add explicit /proc/\u003cpid\u003e/task/\u003ctid\u003e/children entry, because the kernel\nalready has this kind of information but it is not yet exported.\n\nThis is a first level children, not the whole process tree.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac34ebb3a67e699edcb5ac72f19d31679369dfaa",
      "tree": "21785208005952128545c0d7804c2dddf177766f",
      "parents": [
        "ee62c6b2dc93c09585b51fad18449dc5edb9977f"
      ],
      "author": {
        "name": "Christopher Yeoh",
        "email": "cyeoh@au1.ibm.com",
        "time": "Thu May 31 16:26:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()\n\nA cleanup of rw_copy_check_uvector and compat_rw_copy_check_uvector after\nchanges made to support CMA in an earlier patch.\n\nRather than having an additional check_access parameter to these\nfunctions, the first paramater type is overloaded to allow the caller to\nspecify CHECK_IOVEC_ONLY which means check that the contents of the iovec\nare valid, but do not check the memory that they point to.  This is used\nby process_vm_readv/writev where we need to validate that a iovec passed\nto the syscall is valid but do not want to check the memory that it points\nto at this point because it refers to an address space in another process.\n\nSigned-off-by: Chris Yeoh \u003cyeohc@au1.ibm.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@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": "ee62c6b2dc93c09585b51fad18449dc5edb9977f",
      "tree": "538f5338f6a00d1a4cee9e69ba74082747a452aa",
      "parents": [
        "71ca97da9d027009d318d319cbacf54a72f666c1"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu May 31 16:26:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "eventfd: change int to __u64 in eventfd_signal()\n\neventfd_ctx-\u003ecount is an __u64 counter which is allowed to reach\nULLONG_MAX.  eventfd_write() adds a __u64 value to \"count\", but the kernel\nside eventfd_signal() only adds an int value to it.  Make them consistent.\n\n[akpm@linux-foundation.org: update interface documentation]\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71ca97da9d027009d318d319cbacf54a72f666c1",
      "tree": "ba55ee244f453a6d4f5366acdc677fb6c68156e9",
      "parents": [
        "00c10bc13cdb58447d6bb2a003afad7bd60f5a5f"
      ],
      "author": {
        "name": "Vladimir Serbinenko",
        "email": "phcoder@gmail.com",
        "time": "Thu May 31 16:26:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "fs/nls: add Apple NLS\n\nHFS has support for NLS.  However the relevant NLS tables are missing.\nHere they are automatically transformed from the tables at unicode.org.\nCodepages requiring special handling like CJK, RTL or Brahmic ones are not\nincluded in this patch.\n\n[akpm@linux-foundation.org: add unicode.org copyright and permission notices]\nSigned-off-by: Vladimir Serbinenko \u003cphcoder@gmail.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bca15543736f9be6d84e0bbc262ea7069076b9e6",
      "tree": "dbca9451c0478011b51a623b32f3b04305e75212",
      "parents": [
        "b1d4d9e0cbd0aecf40c3572e0c8f98de31b3b328"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu May 31 16:26:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc/smaps: show amount of nonlinear ptes in vma\n\nCurrently, nonlinear mappings can not be distinguished from ordinary\nmappings.  This patch adds into /proc/pid/smaps line \"Nonlinear: \u003csize\u003e\nkB\", where size is amount of nonlinear ptes in vma, this line appears only\nif VM_NONLINEAR is set.  This information may be useful not only for\ncheckpoint/restore project.\n\nRequested by Pavel Emelyanov.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "b1d4d9e0cbd0aecf40c3572e0c8f98de31b3b328",
      "tree": "5b3dca11bdaa14ce3e34e86016f98634d56fef07",
      "parents": [
        "052fb0d635df5d49dfc85687d94e1a87bf09378d"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu May 31 16:26:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc/smaps: carefully handle migration entries\n\nCurrently smaps reports migration entries as \"swap\", as result \"swap\" can\nappears in shared mapping.\n\nThis patch converts migration entries into pages and handles them as usual.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "052fb0d635df5d49dfc85687d94e1a87bf09378d",
      "tree": "2cde635970974b44a7363e5e940d38f20de46d39",
      "parents": [
        "715be1fce0d964aca15618b24f6f415f3cbd03c8"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu May 31 16:26:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc: report file/anon bit in /proc/pid/pagemap\n\nThis is an implementation of Andrew\u0027s proposal to extend the pagemap file\nbits to report what is missing about tasks\u0027 working set.\n\nThe problem with the working set detection is multilateral.  In the criu\n(checkpoint/restore) project we dump the tasks\u0027 memory into image files\nand to do it properly we need to detect which pages inside mappings are\nreally in use.  The mincore syscall I though could help with this did not.\n First, it doesn\u0027t report swapped pages, thus we cannot find out which\nparts of anonymous mappings to dump.  Next, it does report pages from page\ncache as present even if they are not mapped, and it doesn\u0027t make that has\nnot been cow-ed.\n\nNote, that issue with swap pages is critical -- we must dump swap pages to\nimage file.  But the issues with file pages are optimization -- we can\ntake all file pages to image, this would be correct, but if we know that a\npage is not mapped or not cow-ed, we can remove them from dump file.  The\ndump would still be self-consistent, though significantly smaller in size\n(up to 10 times smaller on real apps).\n\nAndrew noticed, that the proc pagemap file solved 2 of 3 above issues --\nit reports whether a page is present or swapped and it doesn\u0027t report not\nmapped page cache pages.  But, it doesn\u0027t distinguish cow-ed file pages\nfrom not cow-ed.\n\nI would like to make the last unused bit in this file to report whether the\npage mapped into respective pte is PageAnon or not.\n\n[comment stolen from Pavel Emelyanov\u0027s v1 patch]\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "715be1fce0d964aca15618b24f6f415f3cbd03c8",
      "tree": "6bac84d87b61252ce109c361755109a91af009cc",
      "parents": [
        "af5e6171437c9d62d84459b24877c94c23782676"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Thu May 31 16:26:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "procfs: use more apprioriate types when dumping /proc/N/stat\n\n- use int fpr priority and nice, since task_nice()/task_prio() return that\n\n- field 24: get_mm_rss() returns unsigned long\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af5e6171437c9d62d84459b24877c94c23782676",
      "tree": "06ee8cef7f47a0f4facd84f7676c39001965e549",
      "parents": [
        "f05ed3f1abefd37c08fbf08c766d2abd40607777"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu May 31 16:26:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc: pass \"fd\" by value in /proc/*/{fd,fdinfo} code\n\nPass \"fd\" directly, not via pointer -- one less memory read.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@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": "f05ed3f1abefd37c08fbf08c766d2abd40607777",
      "tree": "f938f73f6f3ee4bab88ada21212371cd023eca63",
      "parents": [
        "2344bec788b097b2d1198758bd29c583812b864e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu May 31 16:26:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc: don\u0027t do dummy rcu_read_lock/rcu_read_unlock on error path\n\nrcu_read_lock()/rcu_read_unlock() is nop for TINY_RCU, but is not a nop\nfor, say, PREEMPT_RCU.\n\nproc_fill_cache() is called without RCU lock, there is no need to\nlock/unlock on error path, simply jump out of the loop.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2344bec788b097b2d1198758bd29c583812b864e",
      "tree": "3ffcf64931b7935ee4e16b81fb6ec6b732436dfa",
      "parents": [
        "e7dcd9990e42ccfc798d4eb55e2dbf9d7d434c6b"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu May 31 16:26:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "proc: use mm_access() instead of ptrace_may_access()\n\nmm_access() handles this much better, and avoids some race conditions.\n\nSigned-off-by: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7dcd9990e42ccfc798d4eb55e2dbf9d7d434c6b",
      "tree": "ab9d03a5caa1e3fa5b65a9614f699a05632d33c6",
      "parents": [
        "b409e578d9a4ec95913e06d8fea2a33f1754ea69"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu May 31 16:26:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "proc: remove mm_for_maps()\n\nmm_for_maps() is a simple wrapper for mm_access(), and the name is\nmisleading, so just remove it and use mm_access() directly.\n\nSigned-off-by: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b409e578d9a4ec95913e06d8fea2a33f1754ea69",
      "tree": "408c5080300bd44410191e3a60477a6ca713343f",
      "parents": [
        "168eeccbc956d2ec083c3a513f7706784ee0dc5f"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu May 31 16:26:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "proc: clean up /proc/\u003cpid\u003e/environ handling\n\nSimilar to e268337dfe26 (\"proc: clean up and fix /proc/\u003cpid\u003e/mem\nhandling\"), move the check of permission to open(), this will simplify\nread() code.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0aac6162e945590057dcfb841bdce8fd18ed4f6",
      "tree": "d27e953fb571ac22dfbfc8a5a251066586742fe8",
      "parents": [
        "b742c341539fc8b8386ef72f0e95758f39fbb4c8"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Thu May 31 16:26:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "fat: use fat_msg_ratelimit() in fat__get_entry()\n\nIf an application tries to lookup (opendir/readdir/stat) 5000 files on a\nfatfs USB device and the device is unplugged, many message occur, shown\nbelow.  This makes the application slow.  So use the new\nfat_msg_ratelimit() decrease the messaging rate.\n\n  #\u003e ./file_lookup_testcase ./files_directory/\n  usb 2-1.4: USB disconnect, device number 4\n  FAT-fs (sda1): FAT read failed (blocknr 2631)\n  FAT-fs (sda1): Directory bread(block 396816) failed\n  FAT-fs (sda1): Directory bread(block 396817) failed\n  FAT-fs (sda1): Directory bread(block 396818) failed\n  FAT-fs (sda1): Directory bread(block 396819) failed\n  FAT-fs (sda1): Directory bread(block 396820) failed\n  FAT-fs (sda1): Directory bread(block 396821) failed\n  FAT-fs (sda1): Directory bread(block 396822) failed\n  FAT-fs (sda1): Directory bread(block 396823) failed\n  FAT-fs (sda1): Directory bread(block 406824) failed\n  FAT-fs (sda1): Directory bread(block 406825) failed\n  FAT-fs (sda1): Directory bread(block 406826) failed\n  FAT-fs (sda1): Directory bread(block 406827) failed\n  FAT-fs (sda1): Directory bread(block 406828) failed\n  FAT-fs (sda1): Directory bread(block 406829) failed\n  FAT-fs (sda1): Directory bread(block 406830) failed\n  FAT-fs (sda1): Directory bread(block 406831) failed\n  FAT-fs (sda1): Directory bread(block 417696) failed\n  FAT-fs (sda1): Directory bread(block 417697) failed\n  FAT-fs (sda1): Directory bread(block 417698) failed\n  FAT-fs (sda1): Directory bread(block 417699) failed\n  FAT-fs (sda1): Directory bread(block 417700) failed\n  FAT-fs (sda1): Directory bread(block 417701) failed\n  FAT-fs (sda1): Directory bread(block 417702) failed\n  FAT-fs (sda1): Directory bread(block 417703) failed\n  FAT-fs (sda1): FAT read failed (blocknr 2631)\n  FAT-fs (sda1): Directory bread(block 396816) failed\n  FAT-fs (sda1): Directory bread(block 396817) failed\n  FAT-fs (sda1): Directory bread(block 396818) failed\n  FAT-fs (sda1): Directory bread(block 396819) failed\n  FAT-fs (sda1): Directory bread(block 396820) failed\n  FAT-fs (sda1): Directory bread(block 396821) failed\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b742c341539fc8b8386ef72f0e95758f39fbb4c8",
      "tree": "ce074fbb28923b08904823128ec0167d9df266da",
      "parents": [
        "78491189ddb6d84d4a4abae992ed891a236d0263"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Thu May 31 16:26:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "fat: add fat_msg_ratelimit()\n\nAdd a fat_msg_ratelimit() to limit the message generation rate.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78491189ddb6d84d4a4abae992ed891a236d0263",
      "tree": "f451b46a2c0a505b6812b696e03604b8613b3df0",
      "parents": [
        "330fe3c4c6509e0418c434b5bcf80e65cffab477"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "fat: switch to fsinfo_inode\n\nCurrently FAT file-system maps the VFS \"superblock\" abstraction to the\nFSINFO block.  The FSINFO block contains non-essential data about the\namount of free clusters and the next free cluster.  FAT file-system can\nalways find out this information by scanning the FAT table, but having it\nin the FSINFO block may speed things up sometimes.  So FAT file-system\nrelies on the VFS superblock write-out services to make sure the FSINFO\nblock is written out to the media from time to time.\n\nThe whole \"superblock write-out\" VFS infrastructure is served by the\n\u0027sync_supers()\u0027 kernel thread, which wakes up every 5 (by default) seconds\nand writes out all dirty superblock using the \u0027-\u003ewrite_super()\u0027 call-back.\n But the problem with this thread is that it wastes power by waking up the\nsystem every 5 seconds no matter what.  So we want to kill it completely\nand thus, we need to make file-systems to stop using the \u0027-\u003ewrite_super\u0027\nVFS service, and then remove it together with the kernel thread.\n\nThis patch switches the FAT FSINFO block management from\n\u0027-\u003ewrite_super()\u0027/\u0027-\u003es_dirt\u0027 to \u0027fsinfo_inode\u0027/\u0027-\u003ewrite_inode\u0027.  Now,\ninstead of setting the \u0027s_dirt\u0027 flag, we just mark the special\n\u0027fsinfo_inode\u0027 inode as dirty and let VFS invoke the \u0027-\u003ewrite_inode\u0027\ncall-back when needed, where we write-out the FSINFO block.\n\nThis patch also makes sure we do not mark the \u0027fsinfo_inode\u0027 inode as\ndirty if we are not FAT32 (FAT16 and FAT12 do not have the FSINFO block)\nor if we are in R/O mode.\n\nAs a bonus, we can also remove the \u0027-\u003esync_fs()\u0027 and \u0027-\u003ewrite_super()\u0027 FAT\ncall-back function because they become unneeded.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al 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": "330fe3c4c6509e0418c434b5bcf80e65cffab477",
      "tree": "f170e47fa9fd25bad3a5ce6996fdfbd86daa3706",
      "parents": [
        "90b436657efb1a6d73bf0677fedee8a8c77032f6"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "fat: mark superblock as dirty less often\n\nPreparation for further changes.  It touches few functions in fatent.c and\nprevents them from marking the superblock as dirty unnecessarily often.\nNamely, instead of marking it as dirty in the internal tight loops - do it\nonly once at the end of the functions.  And instead of marking it as dirty\nwhile holding the FAT table lock, do it outside the lock.\n\nThe reason for this patch is that marking the superblock as dirty will\nsoon become a little bit heavier operation, so it is cleaner to do this\nonly when it is necessary.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al 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": "90b436657efb1a6d73bf0677fedee8a8c77032f6",
      "tree": "ee7e433e5cc1817dd4b9d6fda0a692c0d0ac033f",
      "parents": [
        "020ac5b6bef15785f9dde9de89d2734ff97da733"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "fat: introduce mark_fsinfo_dirty helper\n\nA preparation patch which introduces a \u0027mark_fsinfo_dirty()\u0027 helper\nfunction which just sets the \u0027s_dirt\u0027 flag to 1 so far.  I\u0027ll add more\ncode to this helper later, so I do not mark it as \u0027inline\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al 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": "020ac5b6bef15785f9dde9de89d2734ff97da733",
      "tree": "18724448be398af715d45dea42966bf276d2febb",
      "parents": [
        "7bc1bac77a69011550ce0613f4a23712a002d7ad"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "fat: introduce special inode for managing the FSINFO block\n\nThis is patchset makes fatfs stop using the VFS \u0027-\u003ewrite_super()\u0027 method\nfor writing out the FSINFO block.\n\nThe final goal is to get rid of the \u0027sync_supers()\u0027 kernel thread.  This\nkernel thread wakes up every 5 seconds (by default) and calls\n\u0027-\u003ewrite_super()\u0027 for all mounted file-systems.  And the bad thing is that\nthis is done even if all the superblocks are clean.  Moreover, some\nfile-systems do not even need this end they do not register the\n\u0027-\u003ewrite_super()\u0027 method at all (e.g., btrfs).\n\nSo \u0027sync_supers()\u0027 most often just generates useless wake-ups and wastes\npower.  I am trying to make all file-systems independent of\n\u0027-\u003ewrite_super()\u0027 and plan to remove \u0027sync_supers()\u0027 and \u0027-\u003ewrite_super\u0027\ncompletely once there are no more users.\n\nThe \u0027-\u003ewrite_supers()\u0027 method is mostly used by baroque file-systems like\nhfs, udf, etc.  Modern file-systems like btrfs and xfs do not use it.\nThis justifies removing this stuff from VFS completely and make every FS\nself-manage own superblock.\n\nTested with xfstests.\n\nThis patch:\n\nPreparation for further changes.  It introduces a special inode\n(\u0027fsinfo_inode\u0027) in FAT file-system which we\u0027ll later use for managing the\nFSINFO block.  Note, this there is already one special inode (\u0027fat_inode\u0027)\nwhich is used for managing the FAT tables.\n\nIntroduce new \u0027MSDOS_FSINFO_INO\u0027 constant for this special inode.  It is\nsafe to do because FAT file-system does not store inode numbers on the\nmedia but generates them run-time.\n\nI\u0027ve also cleaned up the comment to existing \u0027MSDOS_ROOT_INO\u0027 constant,\nwhile on it.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al 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": "7bc1bac77a69011550ce0613f4a23712a002d7ad",
      "tree": "4cf913aa7f3b459afcdb499a41ae25884ff24d87",
      "parents": [
        "11475975dd3c0a8e639f1544ef6530373de5979e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu May 31 16:26:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "HPFS: remove PRINTK() macro\n\nThe PRINTK() macro isn\u0027t really used.  Let\u0027s just remove it because it\nis ugly and out of date.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nMikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11475975dd3c0a8e639f1544ef6530373de5979e",
      "tree": "e20344e3d296d2271eea093c76fa728e1c341510",
      "parents": [
        "a1d494495c69ef0810cd008f59310d2b9db28e36"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 31 16:26:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "nilfs2: flush disk caches in syncing\n\nThere are two cases that the cache flush is needed to avoid data loss\nagainst unexpected hang or power failure.  One is sync file function (i.e.\n nilfs_sync_file) and another is checkpointing ioctl.\n\nThis issues a cache flush request to device for such cases if barrier\nmount option is enabled, and makes sure data really is on persistent\nstorage on their completion.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1d494495c69ef0810cd008f59310d2b9db28e36",
      "tree": "0785413b25f5383bf736d04169151e6a251dd079",
      "parents": [
        "c67e5382fb3f312c95d8d01db40fb398e6da454d"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Thu May 31 16:26:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "pipe: return -ENOIOCTLCMD instead of -EINVAL on unknown ioctl command\n\nAs described in commit 07d106d0a33d (\"vfs: fix up ENOIOCTLCMD error\nhandling\"), drivers should return -ENOIOCTLCMD if they receive an ioctl\ncommand which they don\u0027t understand.  Doing so will result in -ENOTTY\nbeing returned to userspace, which matches the behaviour of the compat\nlayer if it fails to translate an ioctl command.\n\nThis patch fixes the pipe ioctl to return -ENOIOCTLCMD instead of -EINVAL\nwhen passed an unknown ioctl command.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3860c1c5dd1137db23d7786d284939c5761d517",
      "tree": "48d688c6c391ef45f79bdd60815450ca06c5cc1a",
      "parents": [
        "15837294d4ce717f69942f7366e99d4d1d3d9923"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:26 2012 -0700"
      },
      "message": "introduce SIZE_MAX\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6eccece90b6addf80ef9e6db79b0bc873301034b",
      "tree": "89ca95d5ea308a87c0162fdc23950e1612f5b3d6",
      "parents": [
        "b9831b59f31eca65e1beec01fadf02ca82485813"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 16:37:44 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:39 2012 -0400"
      },
      "message": "nfsd4: fix, consolidate client_has_state\n\nWhoops: first, I reimplemented the already-existing has_resources\nwithout noticing; second, I got the test backwards.  I did pick a better\nname, though.  Combine the two....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b9831b59f31eca65e1beec01fadf02ca82485813",
      "tree": "b3fb99210c6033f55dd8112549322d54c3d3bcc6",
      "parents": [
        "32f16b3823b854a1f73bfad43782fbbcfe086090"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 14:44:28 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:34 2012 -0400"
      },
      "message": "nfsd4: don\u0027t remove rebooted client record until confirmation\n\nIn the NFSv4.1 client-reboot case we\u0027re currently removing the client\u0027s\nprevious state in exchange_id.  That\u0027s wrong--we should be waiting till\nthe confirming create_session.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "32f16b3823b854a1f73bfad43782fbbcfe086090",
      "tree": "1ea8f6980351f646ac1c21408717ac804f68bb2b",
      "parents": [
        "778df3f0feaeb03ebf9f370cba8437491ffa889f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 14:26:30 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:31 2012 -0400"
      },
      "message": "nfsd4: remove some dprintk\u0027s and a comment\n\nThe comment is redundant, and if we really want dprintk\u0027s here they\u0027d\nprobably be better in the common (check-slot_seqid) code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "778df3f0feaeb03ebf9f370cba8437491ffa889f",
      "tree": "d1459666a0db61d07c631787b446243a8c1ae08a",
      "parents": [
        "0f1ba0ef213193aecf9baf8b4a3919cff4907e5d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 25 21:40:23 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:27 2012 -0400"
      },
      "message": "nfsd4: return \"real\" sequence id in confirmed case\n\nThe client should ignore the returned sequence_id in the case where the\nCONFIRMED flag is set on an exchange_id reply--and in the unconfirmed\ncase \"1\" is always the right response.  So it shouldn\u0027t actually matter\nwhat we return here.\n\nWe could continue returning 1 just to catch clients ignoring the spec\nhere, but I\u0027d rather be generous.  Other things equal, returning the\nexisting sequence_id seems more informative.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0f1ba0ef213193aecf9baf8b4a3919cff4907e5d",
      "tree": "378038d3254fdba35c798a7eb542fc2226c9b956",
      "parents": [
        "7447758be712e891aa4c57f8fa11902ccfdff151"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 25 21:24:40 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:21 2012 -0400"
      },
      "message": "nfsd4: fix exchange_id to return confirm flag\n\nOtherwise nfsd4_set_ex_flags writes over the return flags.\n\nReported-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7447758be712e891aa4c57f8fa11902ccfdff151",
      "tree": "9764abcab312590c1ede8981a7e69998955bbfdb",
      "parents": [
        "90d700b7792a1a7d57554620796df46246e26ce6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 04 14:57:52 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:14 2012 -0400"
      },
      "message": "nfsd4: clarify that renewing expired client is a bug\n\nThis can\u0027t happen:\n\t- cl_time is zeroed only by unhash_client_locked, which is only\n\t  ever called under both the state lock and the client lock.\n\t- every caller of renew_client() should have looked up a\n\t  (non-expired) client and then called renew_client() all\n\t  without dropping the state lock.\n\t- the only other caller of renew_client_locked() is\n\t  release_session_client(), which first checks under the\n\t  client_lock that the cl_time is nonzero.\n\nSo make it clear that this is a bug, not something we handle.  I can\u0027t\nquite bring myself to make this a BUG(), though, as there are a lot of\nrenew_client() callers, and returning here is probably safer than a\nBUG().\n\nWe\u0027ll consider making it a BUG() after some more cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "90d700b7792a1a7d57554620796df46246e26ce6",
      "tree": "aaea6476800b50552166505938932cd9dc98e93c",
      "parents": [
        "f3d03b9202e4303f0e687f93ffeab87724f6dcfb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 19 13:55:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:07 2012 -0400"
      },
      "message": "nfsd4: simpler ordering of setclientid_confirm checks\n\nThe cases here divide into two main categories:\n\n\t- if there\u0027s an uncomfirmed record with a matching verifier,\n\t  then this is a \"normal\", succesful case: we\u0027re either creating\n\t  a new client, or updating an existing one.\n\t- otherwise, this is a weird case: a replay, or a server reboot.\n\nReordering to reflect that makes the code a bit more concise and the\nlogic a lot easier to understand.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f3d03b9202e4303f0e687f93ffeab87724f6dcfb",
      "tree": "4415438ebc609e35d6a908149f6d6053b5d1a5b7",
      "parents": [
        "8695b90ac3c37278010c76ab3680f35ab358caf9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed May 23 11:38:38 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:06 2012 -0400"
      },
      "message": "nfsd4: setclientid: remove pointless assignment\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8695b90ac3c37278010c76ab3680f35ab358caf9",
      "tree": "6376644c7d8f6c0c36874c0388400dc5f1e41fac",
      "parents": [
        "788c1eba50133777df5ca2972cda3c9a8f78f52f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 19 10:05:58 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:04 2012 -0400"
      },
      "message": "nfsd4: fix error return in non-matching-creds case\n\nNote CLID_INUSE is for the case where two clients are trying to use the\nsame client-provided long-form client identifiers.  But what we\u0027re\nlooking at here is the server-returned shorthand client id--if those\nclash there\u0027s a bug somewhere.\n\nFix the error return, pull the check out into common code, and do the\ncheck unconditionally in all cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "788c1eba50133777df5ca2972cda3c9a8f78f52f",
      "tree": "c1b9c1e4a47e52cd854272aec9d5dfc22bfd3313",
      "parents": [
        "34b232bb3742dc88eef7352da2ca018f51ac4561"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:42:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:03 2012 -0400"
      },
      "message": "nfsd4: fix setclientid_confirm same_cred check\n\nNew clients are created only by nfsd4_setclientid(), which always gives\nany new client a unique clientid.  The only exception is in the\n\"callback update\" case, in which case it may create an unconfirmed\nclient with the same clientid as a confirmed client.  In that case it\nalso checks that the confirmed client has the same credential.\n\nTherefore, it is pointless for setclientid_confirm to check whether a\nconfirmed and unconfirmed client with the same clientid have matching\ncredentials--they\u0027re guaranteed to.\n\nInstead, it should be checking whether the credential on the\nsetclientid_confirm matches either of those.  Otherwise, it could be\nanyone sending the setclientid_confirm.  Granted, I can\u0027t see why anyone\nwould, but still it\u0027s probalby safer to check.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "34b232bb3742dc88eef7352da2ca018f51ac4561",
      "tree": "469c41eb6e86d9205560c154cdfe3b8a03d33a79",
      "parents": [
        "8f9307119d7fb2f2c04fce27aa492d30e7ac4518"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:23:42 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:02 2012 -0400"
      },
      "message": "nfsd4: merge 3 setclientid cases to 2\n\nBoy, is this simpler.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8f9307119d7fb2f2c04fce27aa492d30e7ac4518",
      "tree": "07fd67a23b0aa364e78c0ba8eeb87d7309c432a8",
      "parents": [
        "ad72aae5ada1970f423ae7ee0027d0d7eb477597"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:06:41 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:01 2012 -0400"
      },
      "message": "nfsd4: pull out common code from setclientid cases\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ad72aae5ada1970f423ae7ee0027d0d7eb477597",
      "tree": "33b41826e3cedb3a70cf8bd7f81e453b0469cfb4",
      "parents": [
        "63db46328a9854d0adcde69871a28d94e0fc7746"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:00:38 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:00 2012 -0400"
      },
      "message": "nfsd4: merge last two setclientid cases\n\nThe code here is mostly the same.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "63db46328a9854d0adcde69871a28d94e0fc7746",
      "tree": "44c26667054a3740a82d3d555f5f36c26fc0c91a",
      "parents": [
        "e98479b8d6a451bfae1a29e9b2dd503e435f7a48"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 21:54:19 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:59 2012 -0400"
      },
      "message": "nfsd4: setclientid/confirm comment cleanup\n\nBe a little more concise.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e98479b8d6a451bfae1a29e9b2dd503e435f7a48",
      "tree": "b76bea20badf010097507c47ae8a0c2f5b623b86",
      "parents": [
        "d5497fc693a446ce9100fcf4117c3f795ddfd0d2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 21:34:55 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:58 2012 -0400"
      },
      "message": "nfsd4: setclientid remove unnecessary terms from a logical expression\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d5497fc693a446ce9100fcf4117c3f795ddfd0d2",
      "tree": "7254a8eb06629de6c9ac4b8dbe8e38c79c979af3",
      "parents": [
        "8fbba96e5b327665265ad02b7f331b68536828bf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 22:06:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:58 2012 -0400"
      },
      "message": "nfsd4: move rq_flavor into svc_cred\n\nMove the rq_flavor into struct svc_cred, and use it in setclientid and\nexchange_id comparisons as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8fbba96e5b327665265ad02b7f331b68536828bf",
      "tree": "3a838a9a822042ac0a988e21e4824f64c1ada7f2",
      "parents": [
        "03a4e1f6ddf25f48848e1bddcffc0ad489648331"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 21:20:54 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:57 2012 -0400"
      },
      "message": "nfsd4: stricter cred comparison for setclientid/exchange_id\n\nThe typical setclientid or exchange_id will probably be performed with a\ncredential that maps to either root or nobody, so comparing just uid\u0027s\nis unlikely to be useful.  So, use everything else we can get our hands\non.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "03a4e1f6ddf25f48848e1bddcffc0ad489648331",
      "tree": "f140e3deb767d092eca997037ebb7b098d8afce9",
      "parents": [
        "631fc9ea05c97e5d1d14ea58a7347be4857d09da"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 19:55:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:55 2012 -0400"
      },
      "message": "nfsd4: move principal name into svc_cred\n\nInstead of keeping the principal name associated with a request in a\nstructure that\u0027s private to auth_gss and using an accessor function,\nmove it to svc_cred.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "631fc9ea05c97e5d1d14ea58a7347be4857d09da",
      "tree": "58c003e19609e7adf678bc9e197011ad2803c67e",
      "parents": [
        "136e658d621f71b67982dda51a2327830146ef9d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 15:57:23 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:55 2012 -0400"
      },
      "message": "nfsd4: allow removing clients not holding state\n\nRFC 5661 actually says we should allow an exchange_id to remove a\nmatching client, even if the exchange_id comes from a different\nprincipal, *if* the victim client lacks any state.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "136e658d621f71b67982dda51a2327830146ef9d"
}
