)]}'
{
  "log": [
    {
      "commit": "58a48c4b50249df1bebcedca479f6faa7091bd0e",
      "tree": "672a16e3580207b7ada626032f218d1ce247cabc",
      "parents": [
        "3a15d7377faf8b10d04febc6c265ecf5f52c2558"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 05 08:43:34 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 12:57:36 2011 -0800"
      },
      "message": "fix apparmor dereferencing potentially freed dentry, sanitize __d_path() API\n\ncommit 02125a826459a6ad142f8d91c5b6357562f96615 upstream.\n\n__d_path() API is asking for trouble and in case of apparmor d_namespace_path()\ngetting just that.  The root cause is that when __d_path() misses the root\nit had been told to look for, it stores the location of the most remote ancestor\nin *root.  Without grabbing references.  Sure, at the moment of call it had\nbeen pinned down by what we have in *path.  And if we raced with umount -l, we\ncould have very well stopped at vfsmount/dentry that got freed as soon as\nprepend_path() dropped vfsmount_lock.\n\nIt is safe to compare these pointers with pre-existing (and known to be still\nalive) vfsmount and dentry, as long as all we are asking is \"is it the same\naddress?\".  Dereferencing is not safe and apparmor ended up stepping into\nthat.  d_namespace_path() really wants to examine the place where we stopped,\neven if it\u0027s not connected to our namespace.  As the result, it looked\nat -\u003ed_sb-\u003es_magic of a dentry that might\u0027ve been already freed by that point.\nAll other callers had been careful enough to avoid that, but it\u0027s really\na bad interface - it invites that kind of trouble.\n\nThe fix is fairly straightforward, even though it\u0027s bigger than I\u0027d like:\n\t* prepend_path() root argument becomes const.\n\t* __d_path() is never called with NULL/NULL root.  It was a kludge\nto start with.  Instead, we have an explicit function - d_absolute_root().\nSame as __d_path(), except that it doesn\u0027t get root passed and stops where\nit stops.  apparmor and tomoyo are using it.\n\t* __d_path() returns NULL on path outside of root.  The main\ncaller is show_mountinfo() and that\u0027s precisely what we pass root for - to\nskip those outside chroot jail.  Those who don\u0027t want that can (and do)\nuse d_path().\n\t* __d_path() root argument becomes const.  Everyone agrees, I hope.\n\t* apparmor does *NOT* try to use __d_path() or any of its variants\nwhen it sees that path-\u003emnt is an internal vfsmount.  In that case it\u0027s\ndefinitely not mounted anywhere and dentry_path() is exactly what we want\nthere.  Handling of sysctl()-triggered weirdness is moved to that place.\n\t* if apparmor is asked to do pathname relative to chroot jail\nand __d_path() tells it we it\u0027s not in that jail, the sucker just calls\nd_absolute_path() instead.  That\u0027s the other remaining caller of __d_path(),\nBTW.\n        * seq_path_root() does _NOT_ return -ENAMETOOLONG (it\u0027s stupid anyway -\nthe normal seq_file logics will take care of growing the buffer and redoing\nthe call of -\u003eshow() just fine).  However, if it gets path not reachable\nfrom root, it returns SEQ_SKIP.  The only caller adjusted (i.e. stopped\nignoring the return value as it used to do).\n\nReviewed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nACKed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "08142579b6ca35883c1ed066a2681de6f6917062",
      "tree": "00735ed37753533f3b645714770b4fb036b5f7e0",
      "parents": [
        "9b679320a5fbf46454011e5c62e0b8991b0956d1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jun 27 16:18:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "mm: fix assertion mapping-\u003enrpages \u003d\u003d 0 in end_writeback()\n\nUnder heavy memory and filesystem load, users observe the assertion\nmapping-\u003enrpages \u003d\u003d 0 in end_writeback() trigger.  This can be caused by\npage reclaim reclaiming the last page from a mapping in the following\nrace:\n\n\tCPU0\t\t\t\tCPU1\n  ...\n  shrink_page_list()\n    __remove_mapping()\n      __delete_from_page_cache()\n        radix_tree_delete()\n\t\t\t\t\tevict_inode()\n\t\t\t\t\t  truncate_inode_pages()\n\t\t\t\t\t    truncate_inode_pages_range()\n\t\t\t\t\t      pagevec_lookup() - finds nothing\n\t\t\t\t\t  end_writeback()\n\t\t\t\t\t    mapping-\u003enrpages !\u003d 0 -\u003e BUG\n        page-\u003emapping \u003d NULL\n        mapping-\u003enrpages--\n\nFix the problem by doing a reliable check of mapping-\u003enrpages under\nmapping-\u003etree_lock in end_writeback().\n\nAnalyzed by Jay \u003cjinshan.xiong@whamcloud.com\u003e, lost in LKML, and dug out\nby Miklos Szeredi \u003cmszeredi@suse.de\u003e.\n\nCc: Jay \u003cjinshan.xiong@whamcloud.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003cstable@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": "79568f5be06c91071697c065f01f3ebfbeb25a61",
      "tree": "81fc2bb54bebffc7ef22390bfc37c7ba818a30df",
      "parents": [
        "f5fc5567dd24c15b1d95aa9ee2aaada04d835a0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 20 20:13:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 20 20:13:49 2011 -0700"
      },
      "message": "vfs: i_state needs to be \u0027unsigned long\u0027 for now\n\nCommit 13e12d14e2dc (\"vfs: reorganize \u0027struct inode\u0027 layout a bit\")\nmoved things around a bit changed i_state to be unsigned int instead of\nunsigned long.  That was to help structure layout for the 64-bit case,\nand shrink \u0027struct inode\u0027 a bit (admittedly that only happened when\nspinlock debugging was on and i_flags didn\u0027t pack with i_lock).\n\nHowever, Meelis Roos reports that this results in unaligned exceptions\non sprc, and it turns out that the bit-locking primitives that we use\nfor the I_NEW bit want to use the bitops.  Which want \u0027unsigned long\u0027,\nnot \u0027unsigned int\u0027.\n\nWe really should fix the bit locking code to not have that kind of\nrequirement, but that\u0027s a much bigger change.  So for now, revert that\nfield back to \u0027unsigned long\u0027 (but keep the other re-ordering changes\nfrom the commit that caused this).\n\nAndi points out that we have played games with this in \u0027struct page\u0027, so\nit\u0027s solvable with other hacks too, but since right now the struct inode\nsize advantage only happens with some rare config options, it\u0027s not\nworth fighting.\n\nIt _would_ be worth fixing the bitlocking code, though.  Especially\nsince there is no type safety in the bitlocking code (this never caused\nany warnings, and worked fine on x86-64, because the bitlocks take a\n\u0027void *\u0027 and x86-64 doesn\u0027t care that deeply about alignment).  So it\u0027s\ncurrently a very easy problem to trigger by mistake and never notice.\n\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13e12d14e2dccc7995b8f15a5678a338ab4e6a8c",
      "tree": "d0fc2752fc71d30710a909516d5317b2c7bb8b96",
      "parents": [
        "95f4efb2d78661065aaf0be57f5bf00e4d2aea1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 15:18:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 15:18:19 2011 -0700"
      },
      "message": "vfs: reorganize \u0027struct inode\u0027 layout a bit\n\nThis tries to make the \u0027struct inode\u0027 accesses denser in the data cache\nby moving a commonly accessed field (i_security) closer to other fields\nthat are accessed often.\n\nIt also makes \u0027i_state\u0027 just an \u0027unsigned int\u0027 rather than \u0027unsigned\nlong\u0027, since we only use a few bits of that field, and moves it next to\nthe existing \u0027i_flags\u0027 so that we potentially get better structure\nlayout (although depending on config options, i_flags may already have\npacked in the same word as i_lock, so this improves packing only for the\ncase of spinlock debugging)\n\nOut \u0027struct inode\u0027 is still way too big, and we should probably move\nsome other fields around too (the acl fields in particular) for better\ndata cache access density.  Other fields (like the inode hash) are\nlikely to be entirely irrelevant under most loads.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e1f1de02c2275d7172e18dc4e7c2065777611bf",
      "tree": "15e9d202e64275cdbff6ed1d54804da5966d7d8d",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 03 18:24:58 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 03 18:24:58 2011 -0400"
      },
      "message": "more conservative S_NOSEC handling\n\nCaching \"we have already removed suid/caps\" was overenthusiastic as merged.\nOn network filesystems we might have had suid/caps set on another client,\nsilently picked by this client on revalidate, all of that *without* clearing\nthe S_NOSEC flag.\n\nAFAICS, the only reasonably sane way to deal with that is\n\t* new superblock flag; unless set, S_NOSEC is not going to be set.\n\t* local block filesystems set it in their -\u003emount() (more accurately,\nmount_bdev() does, so does btrfs -\u003emount(), users of mount_bdev() other than\nlocal block ones clear it)\n\t* if any network filesystem (or a cluster one) wants to use S_NOSEC,\nit\u0027ll need to set MS_NOSEC in sb-\u003es_flags *AND* take care to clear S_NOSEC when\ninode attribute changes are picked from other clients.\n\nIt\u0027s not an earth-shattering hole (anybody that can set suid on another client\nwill almost certainly be able to write to the file before doing that anyway),\nbut it\u0027s a bug that needs fixing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "69b4573296469fd3f70cf7044693074980517067",
      "tree": "aea41eacb2a0f32748145a59bb8dc300b4485f36",
      "parents": [
        "d76ee18a8551e33ad7dbd55cac38bc7b094f3abb"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Sat May 28 08:25:51 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 28 12:02:09 2011 -0400"
      },
      "message": "Cache xattr security drop check for write v2\n\nSome recent benchmarking on btrfs showed that a major scaling bottleneck\non large systems on btrfs is currently the xattr lookup on every write.\n\nWhy xattr lookup on every write I hear you ask?\n\nwrite wants to drop suid and security related xattrs that could set o\ncapabilities for executables.  To do that it currently looks up\nsecurity.capability on EVERY write (even for non executables) to decide\nwhether to drop it or not.\n\nIn btrfs this causes an additional tree walk, hitting some per file system\nlocks and quite bad scalability. In a simple read workload on a 8S\nsystem I saw over 90% CPU time in spinlocks related to that.\n\nChris Mason tells me this is also a problem in ext4, where it hits\nthe global mbcache lock.\n\nThis patch adds a simple per inode to avoid this problem.  We only\ndo the lookup once per file and then if there is no xattr cache\nthe decision. All xattr changes clear the flag.\n\nI also used the same flag to avoid the suid check, although\nthat one is pretty cheap.\n\nA file system can also set this flag when it creates the inode,\nif it has a cheap way to do so.  This is done for some common file systems\nin followon patches.\n\nWith this patch a major part of the lock contention disappears\nfor btrfs. Some testing on smaller systems didn\u0027t show significant\nperformance changes, but at least it helps the larger systems\nand is generally more efficient.\n\nv2: Rename is_sgid. add file system helper.\nCc: chris.mason@oracle.com\nCc: josef@redhat.com\nCc: viro@zeniv.linux.org.uk\nCc: agruen@linbit.com\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa38572954ade525817fe88c54faebf85e5a61c0",
      "tree": "ef398ec06c97134592f62a49c99f3f80041b427c",
      "parents": [
        "d6e9bd256c88ce5f4b668249e363a74f51393daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 27 06:53:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 07:04:40 2011 -0400"
      },
      "message": "fs: pass exact type of data dirties to -\u003edirty_inode\n\nTell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or\nanything else, so that the filesystem can track internally if it\nneeds to push out a transaction for fdatasync or not.\n\nThis is just the prototype change with no user for it yet.  I plan\nto push large XFS changes for the next merge window, and getting\nthis trivial infrastructure in this window would help a lot to avoid\ntree interdependencies.\n\nAlso remove incorrect comments that -\u003edirty_inode can\u0027t block.  That\nhas been changed a long time ago, and many implementations rely on it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f8d613e2a665bf1be9628a3c3f9bafe7599b32c0",
      "tree": "98d4da8d0e1a5fb1d9064626b4b96d95ccf26375",
      "parents": [
        "8a0599dd2471f2a2e409498c08a0ab339057ad06",
        "5bc20fc59706214d9591c11e1938a629d3538c12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:\n  xen: cleancache shim to Xen Transcendent Memory\n  ocfs2: add cleancache support\n  ext4: add cleancache support\n  btrfs: add cleancache support\n  ext3: add cleancache support\n  mm/fs: add hooks to support cleancache\n  mm: cleancache core ops functions and config\n  fs: add field to superblock to support cleancache\n  mm/fs: cleancache documentation\n\nFix up trivial conflict in fs/btrfs/extent_io.c due to includes\n"
    },
    {
      "commit": "9fdfdcf17151e8326c4d18cc133abc6e58f47568",
      "tree": "585277f9a112ccf0c7527d4c302f17d3c852814b",
      "parents": [
        "4fe4746ab694690af9f2ccb80184f5c575917c7f"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:01:19 2011 -0600"
      },
      "committer": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:01:19 2011 -0600"
      },
      "message": "fs: add field to superblock to support cleancache\n\nThis second patch of eight in this cleancache series adds a field to\nthe generic superblock to squirrel away a pool identifier that is\ndynamically provided by cleancache-enabled filesystems at mount time\nto uniquely identify files and pages belonging to this mounted filesystem.\n\nDetails and a FAQ can be found in Documentation/vm/cleancache.txt\n\n[v8: trivial merge conflict update]\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nReviewed-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik Van Riel \u003criel@redhat.com\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\n"
    },
    {
      "commit": "0ac1ee0bfec2a4ad118f907ce586d0dfd8db7641",
      "tree": "630d3fead5040b26bfdb1328a18fc0ad3b09f88b",
      "parents": [
        "db271cf03f5fe39feab8e1b1818c0880c7290c5c"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Tue May 24 17:13:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:43 2011 -0700"
      },
      "message": "ulimit: raise default hard ulimit on number of files to 4096\n\nApps are increasingly using more than 1024 file descriptors.  See\ndiscussion in several distro bug trackers, e.g.  BugLink:\nhttp://bugs.launchpad.net/bugs/663090\nhttps://issues.rpath.com/browse/RPL-2054\n\nYou don\u0027t want to raise the default soft limit, since that might break\napps that use select(), but it\u0027s safe to raise the default hard limit;\nthat way, apps that know they need lots of file descriptors can raise\ntheir soft limit without needing root, and without user intervention.\n\nUbuntu is doing this with a kernel change because they have a policy of\nnot changing kernel defaults in userland.\n\nWhile 4096 might not be enough for *all* apps, it seems to be plenty for\nthe apps I\u0027ve seen lately that are unhappy with 1024.\n\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Dan Kegel \u003cdank@kegel.com\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": "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea",
      "tree": "1f46db3a8424090dd8e0b58991fa5acc1a73e680",
      "parents": [
        "97a894136f29802da19a15541de3c019e1ca147e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: Convert i_mmap_lock to a mutex\n\nStraightforward conversion of i_mmap_lock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "97a894136f29802da19a15541de3c019e1ca147e",
      "tree": "1fd3f92ba92a37d5d8527a1f41458091d0a944dc",
      "parents": [
        "e4c70a6629f9c74c4b0de258a3951890e9047c82"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "mm: Remove i_mmap_lock lockbreak\n\nHugh says:\n \"The only significant loser, I think, would be page reclaim (when\n  concurrent with truncation): could spin for a long time waiting for\n  the i_mmap_mutex it expects would soon be dropped? \"\n\nCounter points:\n - cpu contention makes the spin stop (need_resched())\n - zap pages should be freeing pages at a higher rate than reclaim\n   ever can\n\nI think the simplification of the truncate code is definitely worth it.\n\nEffectively reverts: 2aa15890f3c (\"mm: prevent concurrent\nunmap_mapping_range() on the same inode\") and takes out the code that\ncaused its problem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "eed631e0d741d1a1067cfc6d709fdf2363126f9c",
      "tree": "31ba02472a8d5ef2d7780274a7663258c09a9acf",
      "parents": [
        "bd1a643e10eb8782b36b47c3602300319dd2fb00",
        "ebcb904dfe31644857422e3bb62e50f76fe86255"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 15 10:22:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 15 10:22:10 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix FS_IOC_SETFLAGS ioctl\n  Btrfs: fix FS_IOC_GETFLAGS ioctl\n  fs: remove FS_COW_FL\n  Btrfs: fix easily get into ENOSPC in mixed case\n  Prevent oopsing in posix_acl_valid()\n"
    },
    {
      "commit": "e1e8fb6a1ff3f9487e03a4cbf85b81d1316068ce",
      "tree": "a7cd1ba1f93d163e2ca02b8172888f43e444713f",
      "parents": [
        "1aba86d67f340a8001d67183ec32e8a62e3ec658"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Apr 15 03:02:49 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 14 16:10:26 2011 -0400"
      },
      "message": "fs: remove FS_COW_FL\n\nFS_COW_FL and FS_NOCOW_FL were newly introduced to control per file\nCOW in btrfs, but FS_NOCOW_FL is sufficient.\n\nThe fact is we don\u0027t have corresponding BTRFS_INODE_COW flag.\n\nCOW is default, and FS_NOCOW_FL can be used to switch off COW for\na single file.\n\nIf we mount btrfs with nodatacow, a newly created file will be set with\nthe FS_NOCOW_FL flag. So to turn on COW for it, we can just clear the\nFS_NOCOW_FL flag.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0bba01695b74fdd2f9286243bb39f88544d81401",
      "tree": "dc5d4af6a7930138c09598a81a64dd3e57344f7c",
      "parents": [
        "e328f05dd6c528fcc9eb6da157dd865dfe611352"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 15:21:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 15:21:04 2011 -0700"
      },
      "message": "vfs: Re-introduce s_uuid in the superblock\n\nGaah.  When commit be85bccaa5aa reverted the export of file system uuid\nvia /proc/\u003cpid\u003e/mountinfo, it also unintentionally removed the s_uuid\nfield in struct super_block.\n\nI didn\u0027t mean to do that, since filesystems have been taught to fill it\nin (and we want to keep it for future re-introduction in the mountinfo\nfile).\n\nStupid of me. This adds it back in.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be85bccaa5aa5a11dcaf85f9e945ffefd253f631",
      "tree": "342a0c1529d077ec499f62dfa01ff4697387f1ab",
      "parents": [
        "16ad56972ca3161eb97583897f17c1ead0c4ebd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 13:35:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 13:35:56 2011 -0700"
      },
      "message": "Revert \"vfs: Export file system uuid via /proc/\u003cpid\u003e/mountinfo\"\n\nThis reverts commit 93f1c20bc8cdb757be50566eff88d65c3b26881f.\n\nIt turns out that libmount misparses it because it adds a \u0027-\u0027 character\nin the uuid string, which libmount then incorrectly confuses with the\nseparator string (\" - \") at the end of all the optional arguments.\n\nUpstream libmount (in the util-linux tree) has been fixed, but until\nthat fix actually percolates up to users, we\u0027d better not expose this\nchange in the kernel.\n\nLet\u0027s revisit this later (possibly by exposing the UUID without any \u0027-\u0027\ncharacters in it, avoiding the user-space bug).\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "7dcda1c96d7c643101d4a05579ef4512a4baa7ef",
      "tree": "62051d63c47a3df7381cdc294815e79da5ebdc93",
      "parents": [
        "929e27252e8ca69363f81f26af5eaba62cb4c572"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "message": "fs: export empty_aops\n\nWith the -\u003esync_page() hook gone, we have a few users that\nadd their own static address_space_operations without any\nfunctions defined.\n\nfs/inode.c already has an empty_aops that it uses for init\npurposes. Lets export that and use it in the places where\nan otherwise empty aops was defined.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "212a17ab878305600e607f637d2d8a49d9f7ef25",
      "tree": "64ad97fcc3d5c49ebd735f5508643c798aeecddf",
      "parents": [
        "baaca1a61497d97cec595fedce03b0a23b983e64",
        "d9d04879321af570ea7285c6dad92d9c3cd108a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (45 commits)\n  Btrfs: fix __btrfs_map_block on 32 bit machines\n  btrfs: fix possible deadlock by clearing __GFP_FS flag\n  btrfs: check link counter overflow in link(2)\n  btrfs: don\u0027t mess with i_nlink of unlocked inode in rename()\n  Btrfs: check return value of btrfs_alloc_path()\n  Btrfs: fix OOPS of empty filesystem after balance\n  Btrfs: fix memory leak of empty filesystem after balance\n  Btrfs: fix return value of setflags ioctl\n  Btrfs: fix uncheck memory allocations\n  btrfs: make inode ref log recovery faster\n  Btrfs: add btrfs_trim_fs() to handle FITRIM\n  Btrfs: adjust btrfs_discard_extent() return errors and trimmed bytes\n  Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP\n  Btrfs: make update_reserved_bytes() public\n  btrfs: return EXDEV when linking from different subvolumes\n  Btrfs: Per file/directory controls for COW and compression\n  Btrfs: add datacow flag in inode flag\n  btrfs: use GFP_NOFS instead of GFP_KERNEL\n  Btrfs: check return value of read_tree_block()\n  btrfs: properly access unaligned checksum buffer\n  ...\n\nFix up trivial conflicts in fs/btrfs/volumes.c due to plug removal in\nthe block layer.\n"
    },
    {
      "commit": "32471f6e1983922473573da62cbee58699574aa4",
      "tree": "64f17f694f86f72c6d847d6dceb9eb5f78c20a45",
      "parents": [
        "fc0e4a314e361af3b13d9320e92c64118f9a3e61"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Mar 21 08:54:27 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:40 2011 -0400"
      },
      "message": "Btrfs: add datacow flag in inode flag\n\nFor datacow control, the corresponding inode flags are needed.\nThis is for btrfs use.\n\nv1-\u003ev2:\nChange FS_COW_FL to another bit due to conflict with the upstream e2fsprogs\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d39dd11c3e6a7af5c20bfac40594db36cf270f42",
      "tree": "6384e07fa2f347b286cde9754c4507b5a738ab47",
      "parents": [
        "30f5b28e7f937608e0407edaa459cc8161de81d9",
        "0b2d0724e26a335cd326eb7ad552c109116a8795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fs: simplify iget \u0026 friends\n  fs: pull inode-\u003ei_lock up out of writeback_single_inode\n  fs: rename inode_lock to inode_hash_lock\n  fs: move i_wb_list out from under inode_lock\n  fs: move i_sb_list out from under inode_lock\n  fs: remove inode_lock from iput_final and prune_icache\n  fs: Lock the inode LRU list separately\n  fs: factor inode disposal\n  fs: protect inode-\u003ei_state with inode-\u003ei_lock\n  autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()\n  autofs4 - remove autofs4_lock\n  autofs4 - fix d_manage() return on rcu-walk\n  autofs4 - fix autofs4_expire_indirect() traversal\n  autofs4 - fix dentry leak in autofs4_expire_direct()\n  autofs4 - reinstate last used update on access\n  vfs - check non-mountpoint dentry might block in __follow_mount_rcu()\n"
    },
    {
      "commit": "250df6ed274d767da844a5d9f05720b804240197",
      "tree": "b74f49a86c4451d9e3e82f90e3f791163025be21",
      "parents": [
        "3dc8fe4dca9cd3e4aa828ed36451e2bcfd2350da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:36 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: protect inode-\u003ei_state with inode-\u003ei_lock\n\nProtect inode state transitions and validity checks with the\ninode-\u003ei_lock. This enables us to make inode state transitions\nindependently of the inode_lock and is the first step to peeling\naway the inode_lock from the code.\n\nThis requires that __iget() is done atomically with i_state checks\nduring list traversals so that we don\u0027t race with another thread\nmarking the inode I_FREEING between the state check and grabbing the\nreference.\n\nAlso remove the unlock_new_inode() memory barrier optimisation\nrequired to avoid taking the inode_lock when clearing I_NEW.\nSimplify the code by simply taking the inode-\u003ei_lock around the\nstate change and wakeup. Because the wakeup is no longer tricky,\nremove the wake_up_inode() function and open code the wakeup where\nnecessary.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e795b71799ff0b27365020c9ddaa25d0d83f99c8",
      "tree": "f3b628c2366f181380a8fbcd490910eb086a7b8e",
      "parents": [
        "b0e77598f87107001a00b8a4ece9c95e4254ccc4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:08 2011 -0700"
      },
      "message": "userns: userns: check user namespace for task-\u003efile uid equivalence checks\n\nCheat for now and say all files belong to init_user_ns.  Next step will be\nto let superblocks belong to a user_ns, and derive inode_userns(inode)\nfrom inode-\u003ei_sb-\u003es_user_ns.  Finally we\u0027ll introduce more flexible\narrangements.\n\nChangelog:\n\tFeb 15: make is_owner_or_cap take const struct inode\n\tFeb 23: make is_owner_or_cap bool\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3ccfcdaf3986f8c541886606e950de52cab7ad3",
      "tree": "3433cd58adfe51db1f466e6033040ac9a512ffd2",
      "parents": [
        "c837fb37a60aa642b9ad423462e32b851a03020a"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Mar 22 16:33:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "fs.h: remove 8 bytes of padding from block_device on 64bit builds\n\nRe-ordering struct block_inode to remove 8 bytes of padding on 64 bit\nbuilds, which also shrinks bdev_inode by 8 bytes (776 -\u003e 768) allowing it\nto fit into one fewer cache lines.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\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": "474a00ee1306eb7e82329fdc28b6471a99facba1",
      "tree": "d0fc3e01d030b3ce3706beee01382a0819f854c8",
      "parents": [
        "054cfaacf88865bff1dd58d305443d5d6c068a08"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 17 21:31:32 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 17 21:31:32 2011 -0400"
      },
      "message": "kill simple_set_mnt()\n\nnot needed anymore, since all users (-\u003eget_sb() instances) are gone.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "054cfaacf88865bff1dd58d305443d5d6c068a08",
      "tree": "39cd85f0f5966ed8c501740359b1d03d48f5ea41",
      "parents": [
        "dc113c1f1d4b47af1b1ca701c5a39e24d296c2ac",
        "1a102ff92579edeff5e3d5d3c76ca49977898f00"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 19:09:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 19:09:57 2011 -0700"
      },
      "message": "Merge branch \u0027mnt_devname\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027mnt_devname\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  vfs: bury -\u003eget_sb()\n  nfs: switch NFS from -\u003eget_sb() to -\u003emount()\n  nfs: stop mangling -\u003emnt_devname on NFS\n  vfs: new superblock methods to override /proc/*/mount{s,info}\n  nfs: nfs_do_{ref,sub}mount() superblock argument is redundant\n  nfs: make nfs_path() work without vfsmount\n  nfs: store devname at disconnected NFS roots\n  nfs: propagate devname to nfs{,4}_get_root()\n"
    },
    {
      "commit": "1a102ff92579edeff5e3d5d3c76ca49977898f00",
      "tree": "5585d724c8a996b770bb7a621563a7535a8c0496",
      "parents": [
        "011949811b946bd3b72fca71200f197c6168a5f8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 16 09:07:58 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 16 16:48:06 2011 -0400"
      },
      "message": "vfs: bury -\u003eget_sb()\n\nThis is an ex-parrot.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c7f404b40a3665d9f4e9a927cc5c1ee0479ed8f9",
      "tree": "2d6fa2bef00efa759f36b17f3be0d4fab3ac9bb5",
      "parents": [
        "f8ad9c4bae99854c961ca79ed130a0d11d9ab53c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 16 06:59:40 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 16 16:48:06 2011 -0400"
      },
      "message": "vfs: new superblock methods to override /proc/*/mount{s,info}\n\na) -\u003eshow_devname(m, mnt) - what to put into devname columns in mounts,\nmountinfo and mountstats\nb) -\u003eshow_path(m, mnt) - what to put into relative path column in mountinfo\n\nLeaving those NULL gives old behaviour.  NFS switched to using those.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "1abf0c718f15a56a0a435588d1b104c7a37dc9bd",
      "tree": "91a6fae3218686b9a945569a7fa7fad120f64e94",
      "parents": [
        "f2fa2ffc2046fdc35f96366d1ec8675f4d578522"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 13 03:51:11 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:45 2011 -0400"
      },
      "message": "New kind of open files - \"location only\".\n\nNew flag for open(2) - O_PATH.  Semantics:\n\t* pathname is resolved, but the file itself is _NOT_ opened\nas far as filesystem is concerned.\n\t* almost all operations on the resulting descriptors shall\nfail with -EBADF.  Exceptions are:\n\t1) operations on descriptors themselves (i.e.\n\t\tclose(), dup(), dup2(), dup3(), fcntl(fd, F_DUPFD),\n\t\tfcntl(fd, F_DUPFD_CLOEXEC, ...), fcntl(fd, F_GETFD),\n\t\tfcntl(fd, F_SETFD, ...))\n\t2) fcntl(fd, F_GETFL), for a common non-destructive way to\n\t\tcheck if descriptor is open\n\t3) \"dfd\" arguments of ...at(2) syscalls, i.e. the starting\n\t\tpoints of pathname resolution\n\t* closing such descriptor does *NOT* affect dnotify or\nposix locks.\n\t* permissions are checked as usual along the way to file;\nno permission checks are applied to the file itself.  Of course,\ngiving such thing to syscall will result in permission checks (at\nthe moment it means checking that starting point of ....at() is\na directory and caller has exec permissions on it).\n\nfget() and fget_light() return NULL on such descriptors; use of\nfget_raw() and fget_raw_light() is needed to get them.  That protects\nexisting code from dealing with those things.\n\nThere are two things still missing (they come in the next commits):\none is handling of symlinks (right now we refuse to open them that\nway; see the next commit for semantics related to those) and another\nis descriptor passing via SCM_RIGHTS datagrams.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "93f1c20bc8cdb757be50566eff88d65c3b26881f",
      "tree": "15e812c8127ddd795b8112f76832f6411953be62",
      "parents": [
        "a51571ccb8be1b88aea502ebba8350519682c16d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:38 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:45 2011 -0400"
      },
      "message": "vfs: Export file system uuid via /proc/\u003cpid\u003e/mountinfo\n\nWe add a per superblock uuid field. File systems should\nupdate the uuid in the fill_super callback\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "990d6c2d7aee921e3bce22b2d6a750fd552262be",
      "tree": "af273c4bfbfd0342d39d05d5a017382eb32a7538",
      "parents": [
        "f52e0c11305aa09ed56cad97ffc8f0cdc3d78b5d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:26 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:37 2011 -0400"
      },
      "message": "vfs: Add name to file handle conversion support\n\nThe syscall also return mount id which can be used\nto lookup file system specific information such as uuid\nin /proc/\u003cpid\u003e/mountinfo\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8b91accfa1059d5565443193d89572eca2f5dd6",
      "tree": "74f6061a20accac87a5f349ae8a34c4815cde88d",
      "parents": [
        "73d049a40fc6269189c4e2ba6792cb5dd054883c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 12 10:41:39 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "clean statfs-like syscalls up\n\nNew helpers: user_statfs() and fd_statfs(), taking userland pathname and\ndescriptor resp. and filling struct kstatfs.  Syscalls of statfs family\n(native, compat and foreign - osf and hpux on alpha and parisc resp.)\nswitched to those.  Removes some boilerplate code, simplifies cleanup\non errors...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73d049a40fc6269189c4e2ba6792cb5dd054883c",
      "tree": "a713747cd06926ad89bfa9b36ea13dd20bbc507f",
      "parents": [
        "5b6ca027d85b7438c84b78a54ccdc2e53f2909cd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 11 12:08:24 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "open-style analog of vfs_path_lookup()\n\nnew function: file_open_root(dentry, mnt, name, flags) opens the file\nvfs_path_lookup would arrive to.\n\nNote that name can be empty; in that case the usual requirement that\ndentry should be a directory is lifted.\n\nopen-coded equivalents switched to it, may_open() got down exactly\none caller and became static.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "47c805dc2d2dff686962f5f0baa6bac2d703ba19",
      "tree": "b596e0a1aadb1550ef2099df95832196cd0eeda1",
      "parents": [
        "c3e380b0b3cfa613189fb91513efd88a65e1d9d8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 23 17:44:09 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:25 2011 -0400"
      },
      "message": "switch do_filp_open() to struct open_flags\n\ntake calculation of open_flags by open(2) arguments into new helper\nin fs/open.c, move filp_open() over there, have it and do_sys_open()\nuse that helper, switch exec.c callers of do_filp_open() to explicit\n(and constant) struct open_flags.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "1cc26bada9f6807814806db2f0d78792eecdac71",
      "tree": "5509b5139db04af6c13db0a580c84116a4a54039",
      "parents": [
        "eae61f3c829439f8f9121b5cd48a14be04df451f",
        "214d93b02c4fe93638ad268613c9702a81ed9192"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 10:55:06 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 10:55:06 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027; commit \u0027v2.6.38-rc7\u0027 into next\n"
    },
    {
      "commit": "638691a7a46a4ae9a7b56c603299e42d7f6e722e",
      "tree": "f744b3fbdd4704ef9ae122b67a14785b4a7a6b65",
      "parents": [
        "0a93ea2e897bd793cc0aaaddc397eff32ac8d6fe",
        "f0b4f7e2f29af678bd9af43422c537dcb6008603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md: Fix - again - partition detection when array becomes active\n  Fix over-zealous flush_disk when changing device size.\n  md: avoid spinlock problem in blk_throtl_exit\n  md: correctly handle probe of an \u0027mdp\u0027 device.\n  md: don\u0027t set_capacity before array is active.\n  md: Fix raid1-\u003eraid0 takeover\n"
    },
    {
      "commit": "93b270f76e7ef3b81001576860c2701931cdc78b",
      "tree": "abaca0e4d3e86721815498fafd06295dd9cfd002",
      "parents": [
        "da9cf5050a2e3dbc3cf26a8d908482eb4485ed49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "message": "Fix over-zealous flush_disk when changing device size.\n\nThere are two cases when we call flush_disk.\nIn one, the device has disappeared (check_disk_change) so any\ndata will hold becomes irrelevant.\nIn the oter, the device has changed size (check_disk_size_change)\nso data we hold may be irrelevant.\n\nIn both cases it makes sense to discard any \u0027clean\u0027 buffers,\nso they will be read back from the device if needed.\n\nIn the former case it makes sense to discard \u0027dirty\u0027 buffers\nas there will never be anywhere safe to write the data.  In the\nsecond case it *does*not* make sense to discard dirty buffers\nas that will lead to file system corruption when you simply enlarge\nthe containing devices.\n\nflush_disk calls __invalidate_devices.\n__invalidate_device calls both invalidate_inodes and invalidate_bdev.\n\ninvalidate_inodes *does* discard I_DIRTY inodes and this does lead\nto fs corruption.\n\ninvalidate_bev *does*not* discard dirty pages, but I don\u0027t really care\nabout that at present.\n\nSo this patch adds a flag to __invalidate_device (calling it\n__invalidate_device2) to indicate whether dirty buffers should be\nkilled, and this is passed to invalidate_inodes which can choose to\nskip dirty inodes.\n\nflusk_disk then passes true from check_disk_change and false from\ncheck_disk_size_change.\n\ndm avoids tripping over this problem by calling i_size_write directly\nrathher than using check_disk_size_change.\n\nmd does use check_disk_size_change and so is affected.\n\nThis regression was introduced by commit 608aeef17a which causes\ncheck_disk_size_change to call flush_disk, so it is suitable for any\nkernel since 2.6.27.\n\nCc: stable@kernel.org\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5c96ebf1d71df0c5fb77ab58c9aeb307cf02372",
      "tree": "5b5df6c3f421380d980fea21ccf055b9be364741",
      "parents": [
        "a68a27b6f2354273bacc39c3dd06456edb202230"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Nov 02 10:11:37 2010 -0400"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Thu Feb 10 07:51:43 2011 -0500"
      },
      "message": "IMA: define readcount functions\n\nDefine i_readcount_inc/dec() functions to be called from the VFS layer.\n\nChangelog:\n- renamed iget/iput_readcount to i_readcount_inc/dec (Dave Chinner\u0027s suggestion)\n- removed i_lock in iput_readcount() (based on comments:Dave Chinner,Eric Paris)\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a68a27b6f2354273bacc39c3dd06456edb202230",
      "tree": "d73396dab134842ecd1e86d665718e75012e7e78",
      "parents": [
        "75a25637bf8a1b8fbed2368c0a3ec15c66a534f1"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Nov 02 10:10:56 2010 -0400"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Thu Feb 10 07:51:43 2011 -0500"
      },
      "message": "IMA: convert i_readcount to atomic\n\nConvert the inode\u0027s i_readcount from an unsigned int to atomic.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "3cd90ea42f2c15f928b70ed66f6d8ed0a8e7aadd",
      "tree": "2e27c807baaec2e6528cd5431d57308a4d874dea",
      "parents": [
        "1a44bc8c7cfe69756a116d38aef992d50fc1969d"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Feb 01 15:52:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:19 2011 -0800"
      },
      "message": "vfs: sparse: add __FMODE_EXEC\n\nFMODE_EXEC is a constant type of fmode_t but was used with normal integer\nconstants.  This results in following warnings from sparse.  Fix it using\nnew macro __FMODE_EXEC.\n\n fs/exec.c:116:58: warning: restricted fmode_t degrades to integer\n fs/exec.c:689:58: warning: restricted fmode_t degrades to integer\n fs/fcntl.c:777:9: warning: restricted fmode_t degrades to integer\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "1a44bc8c7cfe69756a116d38aef992d50fc1969d",
      "tree": "3e830a7fe2f4b57e425421b35c6faebbbb2c7cc2",
      "parents": [
        "3751d60430fe4c26460a5ca8ad8672d32f93bcb1"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Feb 01 15:52:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:19 2011 -0800"
      },
      "message": "vfs: sparse: remove a warning on OPEN_FMODE()\n\nAND-ing FMODE_* constant with normal integer results in following\nsparse warnings. Fix it.\n\n fs/open.c:662:21: warning: restricted fmode_t degrades to integer\n fs/anon_inodes.c:123:34: warning: restricted fmode_t degrades to integer\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "ecf5632dd189ab4c366cef853d6e5fe7adfe52e5",
      "tree": "947ae7edf45415753e960d53957ae3a4121fb3b8",
      "parents": [
        "27eaa1c90c608aa907336c2743d5ecf35c469440"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Jan 16 23:28:17 2011 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 08:21:42 2011 -0500"
      },
      "message": "fs: fix address space warnings in ioctl_fiemap()\n\nThe fi_extents_start field of struct fiemap_extent_info is a\nuser pointer but was not marked as __user. This makes sparse\nemit following warnings:\n\n  CHECK   fs/ioctl.c\nfs/ioctl.c:114:26: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:114:26:    expected void [noderef] \u003casn:1\u003e*dst\nfs/ioctl.c:114:26:    got struct fiemap_extent *[assigned] dest\nfs/ioctl.c:202:14: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:202:14:    expected void const volatile [noderef] \u003casn:1\u003e*\u003cnoident\u003e\nfs/ioctl.c:202:14:    got struct fiemap_extent *[assigned] fi_extents_start\nfs/ioctl.c:212:27: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:212:27:    expected void [noderef] \u003casn:1\u003e*dst\nfs/ioctl.c:212:27:    got char *\u003cnoident\u003e\n\nAlso add \u0027ufiemap\u0027 variable to eliminate unnecessary casts.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2fe17c1075836b66678ed2a305fd09b6773883aa",
      "tree": "eb5287be8138686682eef9622872cfc7657e0664",
      "parents": [
        "64c23e86873ee410554d6d1c76b60da47025e96f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:43 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:31 2011 -0500"
      },
      "message": "fallocate should be a file operation\n\nCurrently all filesystems except XFS implement fallocate asynchronously,\nwhile XFS forced a commit.  Both of these are suboptimal - in case of O_SYNC\nI/O we really want our allocation on disk, especially for the !KEEP_SIZE\ncase where we actually grow the file with user-visible zeroes.  On the\nother hand always commiting the transaction is a bad idea for fast-path\nuses of fallocate like for example in recent Samba versions.   Given\nthat block allocation is a data plane operation anyway change it from\nan inode operation to a file operation so that we have the file structure\navailable that lets us check for O_SYNC.\n\nThis also includes moving the code around for a few of the filesystems,\nand remove the already unnedded S_ISDIR checks given that we only wire\nup fallocate for regular files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f8206b925fb0eba3a11839419be118b09105d7b1",
      "tree": "5d41b356a043da09c816ed80bd79d1ea8b2b47e5",
      "parents": [
        "1b59be2a6cdcb5a12e18d8315c07c94a624de48f",
        "f03c65993b98eeb909a4012ce7833c5857d74755"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)\n  sanitize vfsmount refcounting changes\n  fix old umount_tree() breakage\n  autofs4: Merge the remaining dentry ops tables\n  Unexport do_add_mount() and add in follow_automount(), not -\u003ed_automount()\n  Allow d_manage() to be used in RCU-walk mode\n  Remove a further kludge from __do_follow_link()\n  autofs4: Bump version\n  autofs4: Add v4 pseudo direct mount support\n  autofs4: Fix wait validation\n  autofs4: Clean up autofs4_free_ino()\n  autofs4: Clean up dentry operations\n  autofs4: Clean up inode operations\n  autofs4: Remove unused code\n  autofs4: Add d_manage() dentry operation\n  autofs4: Add d_automount() dentry operation\n  Remove the automount through follow_link() kludge code from pathwalk\n  CIFS: Use d_automount() rather than abusing follow_link()\n  NFS: Use d_automount() rather than abusing follow_link()\n  AFS: Use d_automount() rather than abusing follow_link()\n  Add an AT_NO_AUTOMOUNT flag to suppress terminal automount\n  ...\n"
    },
    {
      "commit": "9875cf806403fae66b2410a3c2cc820d97731e04",
      "tree": "6f9546b400716766af95e0f78e3d600e765b2b51",
      "parents": [
        "1a8edf40e7c3eee955e0dd0316a7c9d85e36f597"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:21 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:05:03 2011 -0500"
      },
      "message": "Add a dentry op to handle automounting rather than abusing follow_link()\n\nAdd a dentry op (d_automount) to handle automounting directories rather than\nabusing the follow_link() inode operation.  The operation is keyed off a new\ndentry flag (DCACHE_NEED_AUTOMOUNT).\n\nThis also makes it easier to add an AT_ flag to suppress terminal segment\nautomount during pathwalk and removes the need for the kludge code in the\npathwalk algorithm to handle directories with follow_link() semantics.\n\nThe -\u003ed_automount() dentry operation:\n\n\tstruct vfsmount *(*d_automount)(struct path *mountpoint);\n\ntakes a pointer to the directory to be mounted upon, which is expected to\nprovide sufficient data to determine what should be mounted.  If successful, it\nshould return the vfsmount struct it creates (which it should also have added\nto the namespace using do_add_mount() or similar).  If there\u0027s a collision with\nanother automount attempt, NULL should be returned.  If the directory specified\nby the parameter should be used directly rather than being mounted upon,\n-EISDIR should be returned.  In any other case, an error code should be\nreturned.\n\nThe -\u003ed_automount() operation is called with no locks held and may sleep.  At\nthis point the pathwalk algorithm will be in ref-walk mode.\n\nWithin fs/namei.c itself, a new pathwalk subroutine (follow_automount()) is\nadded to handle mountpoints.  It will return -EREMOTE if the automount flag was\nset, but no d_automount() op was supplied, -ELOOP if we\u0027ve encountered too many\nsymlinks or mountpoints, -EISDIR if the walk point should be used without\nmounting and 0 if successful.  The path will be updated to point to the mounted\nfilesystem if a successful automount took place.\n\n__follow_mount() is replaced by follow_managed() which is more generic\n(especially with the patch that adds -\u003ed_manage()).  This handles transits from\ndirectories during pathwalk, including automounting and skipping over\nmountpoints (and holding processes with the next patch).\n\n__follow_mount_rcu() will jump out of RCU-walk mode if it encounters an\nautomount point with nothing mounted on it.\n\nfollow_dotdot*() does not handle automounts as you don\u0027t want to trigger them\nwhilst following \"..\".\n\nI\u0027ve also extracted the mount/don\u0027t-mount logic from autofs4 and included it\nhere.  It makes the mount go ahead anyway if someone calls open() or creat(),\ntries to traverse the directory, tries to chdir/chroot/etc. into the directory,\nor sticks a \u0027/\u0027 on the end of the pathname.  If they do a stat(), however,\nthey\u0027ll only trigger the automount if they didn\u0027t also say O_NOFOLLOW.\n\nI\u0027ve also added an inode flag (S_AUTOMOUNT) so that filesystems can mark their\ninodes as automount points.  This flag is automatically propagated to the\ndentry as DCACHE_NEED_AUTOMOUNT by __d_instantiate().  This saves NFS and could\nsave AFS a private flag bit apiece, but is not strictly necessary.  It would be\npreferable to do the propagation in d_set_d_op(), but that doesn\u0027t normally\nhave access to the inode.\n\n[AV: fixed breakage in case if __follow_mount_rcu() fails and nameidata_drop_rcu()\nsucceeds in RCU case of do_lookup(); we need to fall through to non-RCU case after\nthat, rather than just returning with ungrabbed *path]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nWas-Acked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6ab82196492a0b6968a654a06aae923b28afef0d",
      "tree": "8affe1097bba194fe677d5399f47693dc0363dd8",
      "parents": [
        "6f7f7caab259026234277b659485d22c1dcb1ab4",
        "49731baa41df404c2c3f44555869ab387363af43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:32:07 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:32:07 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: restore multiple bd_link_disk_holder() support\n  block cfq: compensate preempted queue even if it has no slice assigned\n  block cfq: make queue preempt work for queues from different workload\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "49731baa41df404c2c3f44555869ab387363af43",
      "tree": "5d3476368fa546aebb1c223e9cf1bab5ad80f698",
      "parents": [
        "c553f8e335c00a7cff3ab3f13e793b13d3f2207f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 14 18:43:57 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jan 14 18:44:22 2011 +0100"
      },
      "message": "block: restore multiple bd_link_disk_holder() support\n\nCommit e09b457b (block: simplify holder symlink handling) incorrectly\nassumed that there is only one link at maximum.  dm may use multiple\nlinks and expects block layer to track reference count for each link,\nwhich is different from and unrelated to the exclusive device holder\nidentified by @holder when the device is opened.\n\nRemove the single holder assumption and automatic removal of the link\nand revive the per-link reference count tracking.  The code\nessentially behaves the same as before commit e09b457b sans the\nunnecessary kobject reference count dancing.\n\nWhile at it, note that this facility should not be used by anyone else\nthan the current ones.  Sysfs symlinks shouldn\u0027t be abused like this\nand the whole thing doesn\u0027t belong in the block layer at all.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-raid@vger.kernel.org\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "c74a1cbb3cac348f276fabc381758f5b0b4713b2",
      "tree": "5b403590e41b5e91fce25c69d50a23b920b3497f",
      "parents": [
        "f772c4a6a320ec25d94ba951881474eeef1b7f48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 16:59:34 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:03:43 2011 -0500"
      },
      "message": "pass default dentry_operations to mount_pseudo()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8aebb0c9f8c7471643d5f8ba68328de8013005f",
      "tree": "fae492892b9eecaf9c42632dd1203102cc69365a",
      "parents": [
        "4162cf64973df51fc885825bc9ca4d055891c49f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 18 10:22:30 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:02:34 2011 -0500"
      },
      "message": "per-superblock default -\u003ed_op\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
      "tree": "f6dedefd41e6745a9b801166b99af7d830e41ef2",
      "parents": [
        "37721e1b0cf98cb65895f234d8c500d270546529"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:18:25 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: kobject.h redux\n\nRemove kobject.h from files which don\u0027t need it, notably,\nsched.h and fs.h.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ceb5bdc2d246f6d81cf61ed70f325308a11821d2",
      "tree": "65fc9e0227994d4ffc80530dd15bb5a9672a295e",
      "parents": [
        "626d607435617cc0f033522083e2bb195b81813c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:05 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-bucket dcache hash locking\n\nWe can turn the dcache hash locking from a global dcache_hash_lock into\nper-bucket locking.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9",
      "tree": "d4630a38c0d683a7e1b8823d7971753719b8a54d",
      "parents": [
        "fb045adb99d9b7c562dc7fef834857f78249daa1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:56 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: cache optimise dentry and inode for rcu-walk\n\nPut dentry and inode fields into top of data structure.  This allows RCU path\ntraversal to perform an RCU dentry lookup in a path walk by touching only the\nfirst 56 bytes of the dentry.\n\nWe also fit in 8 bytes of inline name in the first 64 bytes, so for short\nnames, only 64 bytes needs to be touched to perform the lookup. We should\nget rid of the hash-\u003eprev pointer from the first 64 bytes, and fit 16 bytes\nof name in there, which will take care of 81% rather than 32% of the kernel\ntree.\n\ninode is also rearranged so that RCU lookup will only touch a single cacheline\nin the inode, plus one in the i_ops structure.\n\nThis is important for directory component lookups in RCU path walking. In the\nkernel source, directory names average is around 6 chars, so this works.\n\nWhen we reach the last element of the lookup, we need to lock it and take its\nrefcount which requires another cacheline access.\n\nAlign dentry and inode operations structs, so members will be at predictable\noffsets and we can group common operations into head of structure.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ff0c7d15f9787b7e8c601533c015295cc68329f8",
      "tree": "e3db53950b8ed78e542ab35a3cd3a6eaee26eccd",
      "parents": [
        "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:50 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: avoid inode RCU freeing for pseudo fs\n\nPseudo filesystems that don\u0027t put inode on RCU list or reachable by\nrcu-walk dentries do not need to RCU free their inodes.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "c45821d263a8a5109d69a9e8942b8d65bcd5f31a",
      "tree": "816e9b7f98f0eb174557dfd093526b165f274348",
      "parents": [
        "c84d500bc41658165ceb0dd04dc6a75249940fba"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Oct 31 00:04:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:28 2011 -0500"
      },
      "message": "locks: eliminate fl_mylease callback\n\nThe nfs server only supports read delegations for now, so we don\u0027t care\nhow conflicts are determined.  All we care is that unlocks are\nrecognized as matching the leases they are meant to remove.  After the\nlast patch, a comparison of struct files will work for that purpose.  So\nwe no longer need this callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "77ea887e433ad8389d416826936c110fa7910f80",
      "tree": "ac9d32aabcebf5a465acae2066b12c9335b5ca6f",
      "parents": [
        "d2bf1b6723ed0eab378363649d15b7893bf14e91"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 08 20:57:37 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Dec 16 17:53:38 2010 +0100"
      },
      "message": "implement in-kernel gendisk events handling\n\nCurrently, media presence polling for removeable block devices is done\nfrom userland.  There are several issues with this.\n\n* Polling is done by periodically opening the device.  For SCSI\n  devices, the command sequence generated by such action involves a\n  few different commands including TEST_UNIT_READY.  This behavior,\n  while perfectly legal, is different from Windows which only issues\n  single command, GET_EVENT_STATUS_NOTIFICATION.  Unfortunately, some\n  ATAPI devices lock up after being periodically queried such command\n  sequences.\n\n* There is no reliable and unintrusive way for a userland program to\n  tell whether the target device is safe for media presence polling.\n  For example, polling for media presence during an on-going burning\n  session can make it fail.  The polling program can avoid this by\n  opening the device with O_EXCL but then it risks making a valid\n  exclusive user of the device fail w/ -EBUSY.\n\n* Userland polling is unnecessarily heavy and in-kernel implementation\n  is lighter and better coordinated (workqueue, timer slack).\n\nThis patch implements framework for in-kernel disk event handling,\nwhich includes media presence polling.\n\n* bdops-\u003echeck_events() is added, which supercedes -\u003emedia_changed().\n  It should check whether there\u0027s any pending event and return if so.\n  Currently, two events are defined - DISK_EVENT_MEDIA_CHANGE and\n  DISK_EVENT_EJECT_REQUEST.  -\u003echeck_events() is guaranteed not to be\n  called parallelly.\n\n* gendisk-\u003eevents and -\u003easync_events are added.  These should be\n  initialized by block driver before passing the device to add_disk().\n  The former contains the mask of all supported events and the latter\n  the mask of all events which the device can report without polling.\n  /sys/block/*/events[_async] export these to userland.\n\n* Kernel parameter block.events_dfl_poll_msecs controls the system\n  polling interval (default is 0 which means disable) and\n  /sys/block/*/events_poll_msecs control polling intervals for\n  individual devices (default is -1 meaning use system setting).  Note\n  that if a device can report all supported events asynchronously and\n  its polling interval isn\u0027t explicitly set, the device won\u0027t be\n  polled regardless of the system polling interval.\n\n* If a device is opened exclusively with write access, event checking\n  is automatically disabled until all write exclusive accesses are\n  released.\n\n* There are event \u0027clearing\u0027 events.  For example, both of currently\n  defined events are cleared after the device has been successfully\n  opened.  This information is passed to -\u003echeck_events() callback\n  using @clearing argument as a hint.\n\n* Event checking is always performed from system_nrt_wq and timer\n  slack is set to 25% for polling.\n\n* Nothing changes for drivers which implement -\u003emedia_changed() but\n  not -\u003echeck_events().  Going forward, all drivers will be converted\n  to -\u003echeck_events() and -\u003emedia_change() will be dropped.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6072d13c429373c5d63b69dadbbef40a9b035552",
      "tree": "a2bf745efaa4092f2a8d7d9a9b160c2a7a3b303f",
      "parents": [
        "0aded708d125a3ff7e5abaea9c2d9c6d7ebbfdcd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 01 13:35:19 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 02 09:55:21 2010 -0500"
      },
      "message": "Call the filesystem back whenever a page is removed from the page cache\n\nNFS needs to be able to release objects that are stored in the page\ncache once the page itself is no longer visible from the page cache.\n\nThis patch adds a callback to the address space operations that allows\nfilesystems to perform page cleanups once the page has been removed\nfrom the page cache.\n\nOriginal patch by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[trondmy: cover the cases of invalidate_inode_pages2() and\n          truncate_inode_pages()]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a3a1af37f0405d15c0b64a6ce7f4878084442e0",
      "tree": "6f5e415d7c3606991634b66ae062c6186a462a7a",
      "parents": [
        "50d431e8a15701b599c98afe2b464eb33c952477"
      ],
      "author": {
        "name": "Loïc Minier",
        "email": "loic.minier@linaro.org",
        "time": "Wed Nov 24 12:56:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 25 06:50:38 2010 +0900"
      },
      "message": "include/linux/fs.h: fix userspace build\n\ndpkg uses fiemap but didn\u0027t particularly need to include stdint.h so far.\nSince 367a51a33902 (\"fs: Add FITRIM ioctl\"), build of linux/fs.h failed in\ndpkg with:\n\n  In file included from ../../src/filesdb.c:27:0:\n  /usr/include/linux/fs.h:37:2: error: expected specifier-qualifier-list before \u0027uint64_t\u0027\n\nUse exportable type __u64 to avoid the dependency on stdint.h.\n\nb31d42a5af18 (\"Fix compile brekage with !CONFIG_BLOCK\") fixed only the\nkernel build by including linux/types.h, but this also fixed \"make\nheaders_check\", so don\u0027t revert it.\n\nSigned-off-by: Loïc Minier \u003cloic.minier@linaro.org\u003e\nTested-by: Arnd Bergmann \u003carnd.bergmann@linaro.org\u003e\nCc: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93bb41f4f8b89ac8b4d0a734bc59634cb0a29a89",
      "tree": "16ed3163dbbdb5b46ed0f3a12d059b4c2c467e95",
      "parents": [
        "5a9ae68a349aa076bc8557ee2fcf865574459282"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri Nov 19 21:18:35 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 19 21:18:35 2010 -0500"
      },
      "message": "fs: Do not dispatch FITRIM through separate super_operation\n\nThere was concern that FITRIM ioctl is not common enough to be included\nin core vfs ioctl, as Christoph Hellwig pointed out there\u0027s no real point\nin dispatching this out to a separate vector instead of just through\n-\u003eioctl.\n\nSo this commit removes ioctl_fstrim() from vfs ioctl and trim_fs\nfrom super_operation structure.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e09b457bdb7e8d23fc54dcef0930ac697d8de895",
      "tree": "41035bf61a8acb08292d01c0f66e5450502688af",
      "parents": [
        "37004c42f7240035bc2726c340c4efa726b4818e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: simplify holder symlink handling\n\nCode to manage symlinks in /sys/block/*/{holders|slaves} are overly\ncomplex with multiple holder considerations, redundant extra\nreferences to all involved kobjects, unused generic kobject holder\nsupport and unnecessary mixup with bd_claim/release functionalities.\n\nStrip it down to what\u0027s necessary (single gendisk holder) and make it\nuse a separate interface.  This is a step for cleaning up\nbd_claim/release.  This patch makes dm-table slightly more complex but\nit will be simplified again with further changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: dm-devel@redhat.com\n"
    },
    {
      "commit": "bb8430a2c8fe2b726033017daadf73c69b0348ea",
      "tree": "feb6063cab812816bc67bca4e509995b5ad9217d",
      "parents": [
        "51ee4b84f5c86935b438d6636f34b523edb415a8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:31 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: remove fl_copy_lock lock_manager operation\n\nThis one was only used for a nasty hack in nfsd, which has recently\nbeen removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48",
      "tree": "d533e8112111202ae890b2061c0386669002d080",
      "parents": [
        "096657b65e1ac197e20be5ce7cff6b6ca2532787"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:15 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix setlease methods to free passed-in lock\n\nWe modified setlease to require the caller to allocate the new lease in\nthe case of creating a new lease, but forgot to fix up the filesystem\nmethods.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "435f49a518c78eec8e2edbbadd912737246cbe20",
      "tree": "106df2617d42ace231e2fa9fcf1e0fd1075874ea",
      "parents": [
        "f56f44001cb5b40089deac094dbb74e5c9f64d81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:36:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:36:49 2010 -0700"
      },
      "message": "readv/writev: do the same MAX_RW_COUNT truncation that read/write does\n\nWe used to protect against overflow, but rather than return an error, do\nwhat read/write does, namely to limit the total size to MAX_RW_COUNT.\nThis is not only more consistent, but it also means that any broken\nlow-level read/write routine that still keeps counts in \u0027int\u0027 can\u0027t\nbreak.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ceefda6931806972ecf550bd8231dce4a4178953",
      "tree": "46ed42a053f1ed43c3c110a21637a7b071657c8a",
      "parents": [
        "aed1d84f98738bcc1c605e1ff442de9890441315"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:16:50 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:03 2010 -0400"
      },
      "message": "switch get_sb_ns() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51139adac92f7160ad3ca1cab2de1b4b8d19dc96",
      "tree": "ea12df0927809e8d5333e82d51cbdb96288c9e6b",
      "parents": [
        "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:47:46 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:33 2010 -0400"
      },
      "message": "convert get_sb_pseudo() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf",
      "tree": "bd758d7f15f24aed225a64de77cc535785c50f96",
      "parents": [
        "fc14f2fef682df677d64a145256dbd263df2aa7b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 11:46:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:31 2010 -0400"
      },
      "message": "convert get_sb_nodev() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fc14f2fef682df677d64a145256dbd263df2aa7b",
      "tree": "74f6b939fbad959a43c04ec646cd0adc8af5f53a",
      "parents": [
        "848b83a59b772b8f102bc5e3f1187c2fa5676959"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 01:48:30 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:28 2010 -0400"
      },
      "message": "convert get_sb_single() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "152a08366671080f27b32e0c411ad620c5f88b57",
      "tree": "d13d16028f74839c678bce355ba8aac75d939fa8",
      "parents": [
        "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:46:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:13 2010 -0400"
      },
      "message": "new helper: mount_bdev()\n\n... and switch of the obvious get_sb_bdev() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed",
      "tree": "5c24ad8aa541018a51e1704dccfc370116bb932f",
      "parents": [
        "d893f1bc2a9f0f7dcb4b433452c59f9bedac0d7d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:17:56 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:15:06 2010 -0400"
      },
      "message": "beginning of transtion: -\u003emount()\n\neventual replacement for -\u003eget_sb() - does *not* get vfsmount,\nreturn ERR_PTR(error) or root of subtree to be mounted.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b31d42a5af1818bdf31a5f023abe4d8b212542f2",
      "tree": "50e7a8f4a275349ddb5902690533ed5b3deabef4",
      "parents": [
        "1df1a4cbcd33cf66111293c654dcff0199d965f0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 28 16:39:24 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 09:02:15 2010 -0700"
      },
      "message": "Fix compile brekage with !CONFIG_BLOCK\n\nToday\u0027s git tree fails to build on !CONFIG_BLOCK, due to upstream commit\n367a51a33902 (\"fs: Add FITRIM ioctl\"):\n\n include/linux/fs.h:36: error: expected specifier-qualifier-list before ‘uint64_t’\n include/linux/fs.h:36: error: expected specifier-qualifier-list before ‘uint64_t’\n include/linux/fs.h:36: error: expected specifier-qualifier-list before ‘uint64_t’\n\nThe commit adds uint64_t type usage to fs.h, but linux/types.h is not included\nexplicitly - it\u0027s only included implicitly via linux/blk_types.h, and there only if\nCONFIG_BLOCK is enabled.\n\nAdd the explicit #include to fix this.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "367a51a339020ba4d9edb0ce0f21d65bd50b00c9",
      "tree": "696cbb5ca3108cd0cf8a7c3f494947cc9a4179c7",
      "parents": [
        "77ca6cdf0ab8a42f481ec997911bc89e79138723"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "message": "fs: Add FITRIM ioctl\n\nAdds an filesystem independent ioctl to allow implementation of file\nsystem batched discard support. I takes fstrim_range structure as an\nargument. fstrim_range is definec in the include/fs.h and its\ndefinition is as follows.\n\nstruct fstrim_range {\n\tstart;\n\tlen;\n\tminlen;\n}\n\nstart\t- first Byte to trim\nlen\t- number of Bytes to trim from start\nminlen\t- minimum extent length to trim, free extents shorter than this\n\t  number of Bytes will be ignored. This will be rounded up to fs\n\t  block size.\n\nIt is also possible to specify NULL as an argument. In this case the\narguments will set itself as follows:\n\nstart \u003d 0;\nlen \u003d ULLONG_MAX;\nminlen \u003d 0;\n\nSo it will trim the whole file system at one run.\n\nAfter the FITRIM is done, the number of actually discarded Bytes is stored\nin fstrim_range.len to give the user better insight on how much storage\nspace has been really released for wear-leveling.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7420a8c0de8d99b201aeeab6fed16ca95ebf55a5",
      "tree": "0787800f490f98ffd41b958e52ab15732335744e",
      "parents": [
        "12ba8d1e9262ce81a695795410bd9ee5c9407ba1",
        "72f98e72551fad573c6cace8e8551ef094f482dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:13:34 2010 -0700"
      },
      "message": "Merge branch \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027flock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  locks: turn lock_flocks into a spinlock\n  fasync: re-organize fasync entry insertion to allow it under a spinlock\n  locks/nfsd: allocate file lock outside of spinlock\n  lockd: fix nlmsvc_notify_blocked locking\n  lockd: push lock_flocks down\n"
    },
    {
      "commit": "f7347ce4ee7c65415f84be915c018473e7076f31",
      "tree": "613ce14f088ad00bdbc77cdfb686a40a4851180f",
      "parents": [
        "c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 12:38:12 2010 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 22:06:17 2010 +0200"
      },
      "message": "fasync: re-organize fasync entry insertion to allow it under a spinlock\n\nYou currently cannot use \"fasync_helper()\" in an atomic environment to\ninsert a new fasync entry, because it will need to allocate the new\n\"struct fasync_struct\".\n\nYet fcntl_setlease() wants to call this under lock_flocks(), which is in\nthe process of being converted from the BKL to a spinlock.\n\nIn order to fix this, this abstracts out the actual fasync list\ninsertion and the fasync allocations into functions of their own, and\nteaches fs/locks.c to pre-allocate the fasync_struct entry.  That way\nthe actual list insertion can happen while holding the required\nspinlock.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bfields@redhat.com: rebase on top of my changes to Arnd\u0027s patch]\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3",
      "tree": "c8aa4ad65aea3b97292135a4c23d512e6071dc8d",
      "parents": [
        "a282a1fa6b23bd21ba0b86e53ed2a316b001836f"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 15:46:08 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 21:41:50 2010 +0200"
      },
      "message": "locks/nfsd: allocate file lock outside of spinlock\n\nAs suggested by Christoph Hellwig, this moves allocation\nof new file locks out of generic_setlease into the\ncallers, nfs4_open_delegation and fcntl_setlease in order\nto allow GFP_KERNEL allocations when lock_flocks has\nbecome a spinlock.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "31453a9764f7e2a72a6e2c502ace586e2663a68c",
      "tree": "5d4db63de5b4b85d1ffdab4e95a75175a784a10a",
      "parents": [
        "f9ba5375a8aae4aeea6be15df77e24707a429812",
        "93ed0e2d07b25aff4db1d61bfbcd1e82074c0ad5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:15:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:15:20 2010 -0700"
      },
      "message": "Merge branch \u0027akpm-incoming-1\u0027\n\n* akpm-incoming-1: (176 commits)\n  scripts/checkpatch.pl: add check for declaration of pci_device_id\n  scripts/checkpatch.pl: add warnings for static char that could be static const char\n  checkpatch: version 0.31\n  checkpatch: statement/block context analyser should look at sanitised lines\n  checkpatch: handle EXPORT_SYMBOL for DEVICE_ATTR and similar\n  checkpatch: clean up structure definition macro handline\n  checkpatch: update copyright dates\n  checkpatch: Add additional attribute #defines\n  checkpatch: check for incorrect permissions\n  checkpatch: ensure kconfig help checks only apply when we are adding help\n  checkpatch: simplify and consolidate \"missing space after\" checks\n  checkpatch: add check for space after struct, union, and enum\n  checkpatch: returning errno typically should be negative\n  checkpatch: handle casts better fixing false categorisation of : as binary\n  checkpatch: ensure we do not collapse bracketed sections into constants\n  checkpatch: suggest cleanpatch and cleanfile when appropriate\n  checkpatch: types may sit on a line on their own\n  checkpatch: fix regressions in \"fix handling of leading spaces\"\n  div64_u64(): improve precision on 32bit platforms\n  lib/parser: cleanup match_number()\n  ...\n"
    },
    {
      "commit": "518de9b39e854542de59bfb8b9f61c8f7ecf808b",
      "tree": "06cd1dd303a1526501783589ec61696570c0ffa8",
      "parents": [
        "571428be550fbe37160596995e96ad398873fcbd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 26 14:22:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "fs: allow for more than 2^31 files\n\nRobin Holt tried to boot a 16TB system and found af_unix was overflowing\na 32bit value :\n\n\u003cquote\u003e\n\nWe were seeing a failure which prevented boot.  The kernel was incapable\nof creating either a named pipe or unix domain socket.  This comes down\nto a common kernel function called unix_create1() which does:\n\n        atomic_inc(\u0026unix_nr_socks);\n        if (atomic_read(\u0026unix_nr_socks) \u003e 2 * get_max_files())\n                goto out;\n\nThe function get_max_files() is a simple return of files_stat.max_files.\nfiles_stat.max_files is a signed integer and is computed in\nfs/file_table.c\u0027s files_init().\n\n        n \u003d (mempages * (PAGE_SIZE / 1024)) / 10;\n        files_stat.max_files \u003d n;\n\nIn our case, mempages (total_ram_pages) is approx 3,758,096,384\n(0xe0000000).  That leaves max_files at approximately 1,503,238,553.\nThis causes 2 * get_max_files() to integer overflow.\n\n\u003c/quote\u003e\n\nFix is to let /proc/sys/fs/file-nr \u0026 /proc/sys/fs/file-max use long\nintegers, and change af_unix to use an atomic_long_t instead of atomic_t.\n\nget_max_files() is changed to return an unsigned long.  get_nr_files() is\nchanged to return a long.\n\nunix_nr_socks is changed from atomic_t to atomic_long_t, while not\nstrictly needed to address Robin problem.\n\nBefore patch (on a 64bit kernel) :\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n-18446744071562067968\n\nAfter patch:\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n2147483648\n# cat /proc/sys/fs/file-nr\n704     0       2147483648\n\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nTested-by: Robin Holt \u003cholt@sgi.com\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": "f9ba5375a8aae4aeea6be15df77e24707a429812",
      "tree": "c6388d7e40f0f6a70d7ba6a4d4aeaa0d1f5591f6",
      "parents": [
        "45352bbf48e95078b4acd20774f49e72676e1e0f",
        "bade72d607c4eb1b1d6c7852c493b75f065a56b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 11:37:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 11:37:48 2010 -0700"
      },
      "message": "Merge branch \u0027ima-memory-use-fixes\u0027\n\n* ima-memory-use-fixes:\n  IMA: fix the ToMToU logic\n  IMA: explicit IMA i_flag to remove global lock on inode_delete\n  IMA: drop refcnt from ima_iint_cache since it isn\u0027t needed\n  IMA: only allocate iint when needed\n  IMA: move read counter into struct inode\n  IMA: use i_writecount rather than a private counter\n  IMA: use inode-\u003ei_lock to protect read and write counters\n  IMA: convert internal flags from long to char\n  IMA: use unsigned int instead of long for counters\n  IMA: drop the inode opencount since it isn\u0027t needed for operation\n  IMA: use rbtree instead of radix tree for inode information cache\n"
    },
    {
      "commit": "196f518128d2ee6e0028b50e6fec0313640db142",
      "tree": "43a1d76bee477dbaa682233979e86f58a98369f0",
      "parents": [
        "64c62f06bef8314a64d3189cb9c78062d54169b3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Oct 25 14:42:19 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 11:37:19 2010 -0700"
      },
      "message": "IMA: explicit IMA i_flag to remove global lock on inode_delete\n\nCurrently for every removed inode IMA must take a global lock and search\nthe IMA rbtree looking for an associated integrity structure.  Instead\nwe explicitly mark an inode when we add an integrity structure so we\nonly have to take the global lock and do the removal if it exists.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a178d2027d3198b0a04517d764326ab71cd73da2",
      "tree": "d81b9336328ba1741231b318a6f8187f627581fd",
      "parents": [
        "b9593d309d17c57e9ddc3934d641902533896ca9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Oct 25 14:41:59 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 11:37:18 2010 -0700"
      },
      "message": "IMA: move read counter into struct inode\n\nIMA currently allocated an inode integrity structure for every inode in\ncore.  This stucture is about 120 bytes long.  Most files however\n(especially on a system which doesn\u0027t make use of IMA) will never need\nany of this space.  The problem is that if IMA is enabled we need to\nknow information about the number of readers and the number of writers\nfor every inode on the box.  At the moment we collect that information\nin the per inode iint structure and waste the rest of the space.  This\npatch moves those counters into the struct inode so we can eventually\nstop allocating an IMA integrity structure except when absolutely\nneeded.\n\nThis patch does the minimum needed to move the location of the data.\nFurther cleanups, especially the location of counter updates, may still\nbe possible.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ccf19a8042e343f8159f8a5fdd6a9422aa90c78",
      "tree": "9a69aaad6eb8992cae06f44dfea8c1d94f2a7f99",
      "parents": [
        "a5491e0c7bb7387e3e6ff9994d6dc2efc78af56c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Oct 21 11:49:30 2010 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:15 2010 -0400"
      },
      "message": "fs: inode split IO and LRU lists\n\nThe use of the same inode list structure (inode-\u003ei_list) for two\ndifferent list constructs with different lifecycles and purposes\nmakes it impossible to separate the locking of the different\noperations. Therefore, to enable the separation of the locking of\nthe writeback and reclaim lists, split the inode-\u003ei_list into two\nseparate lists dedicated to their specific tracking functions.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "312d3ca856d369bb04d0443846b85b4cdde6fa8a",
      "tree": "cf95d01cffaf02bf53c2bb0f7c2c924279ec6eeb",
      "parents": [
        "9c82ab9c9e16cb9edf17bd0d31f3d6904afce04f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 10 05:36:23 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:12 2010 -0400"
      },
      "message": "fs: use percpu counter for nr_dentry and nr_dentry_unused\n\nThe nr_dentry stat is a globally touched cacheline and atomic operation\ntwice over the lifetime of a dentry. It is used for the benfit of userspace\nonly. Turn it into a per-cpu counter and always decrement it in d_free instead\nof doing various batching operations to reduce lock hold times in the callers.\n\nBased on an earlier patch from Nick Piggin \u003cnpiggin@suse.de\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "646ec4615cd05972581c9c5342ed7a1e77df17bb",
      "tree": "23c252d906f5356205b4d42c4ff9b4e6f70ebca2",
      "parents": [
        "f7899bd5472e8e99741369b4a32eca44e5282a85"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 07:15:32 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:10 2010 -0400"
      },
      "message": "fs: remove inode_add_to_list/__inode_add_to_list\n\nSplit up inode_add_to_list/__inode_add_to_list.  Locking for the two\nlists will be split soon so these helpers really don\u0027t buy us much\nanymore.\n\nThe __ prefixes for the sb list helpers will go away soon, but until\ninode_lock is gone we\u0027ll need them to distinguish between the locked\nand unlocked variants.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "9e38d86ff2d8a8db99570e982230861046df32b5"
}
