)]}'
{
  "log": [
    {
      "commit": "e4eaac06bcccb2a70bca6a2de9871882dce2aa14",
      "tree": "ca6736d96294cd6e65a1c3055718bfd5adc7336e",
      "parents": [
        "79bf7c732b5ff75b96022ed9d29181afd3d2509c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:07 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:48 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rename_dir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nrename method (except gfs2 and xfs) so that it can be dealt with on a\nper-fs basis.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79bf7c732b5ff75b96022ed9d29181afd3d2509c",
      "tree": "74b8cc690f9a37fff02d0685464e1c695a25ef94",
      "parents": [
        "64252c75a2196a0cf1e0d3777143ecfe0e3ae650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:47 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rmdir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nfs rmdir method (except gfs2 and xfs) so it can be dealt with on a per-fs\nbasis.\n\nThis does not change behavior for any in-tree file systems.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64252c75a2196a0cf1e0d3777143ecfe0e3ae650",
      "tree": "8534f12a507ef5aee91e302f3e54cf8a4440fc82",
      "parents": [
        "48293699a09324d2e3c66bd53d10eed6d67937a0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:05 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:46 2011 -0400"
      },
      "message": "vfs: remove dget() from dentry_unhash()\n\nThis serves no useful purpose that I can discern.  All callers (rename,\nrmdir) hold their own reference to the dentry.\n\nA quick audit of all file systems showed no relevant checks on the value\nof d_count in vfs_rmdir/vfs_rename_dir paths.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48293699a09324d2e3c66bd53d10eed6d67937a0",
      "tree": "5554ad59665d62ebc36ed16d5e13b0badea46a69",
      "parents": [
        "ea13a86463fd0c26c2c209c53dc46b8eff81bad4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:04 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:46 2011 -0400"
      },
      "message": "vfs: dentry_unhash immediately prior to rmdir\n\nThis presumes that there is no reason to unhash a dentry if we fail because\nit is a mountpoint or the LSM check fails, and that the LSM checks do not\ndepend on the dentry being unhashed.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ea13a86463fd0c26c2c209c53dc46b8eff81bad4",
      "tree": "405ca6ff2b6ca3078a1023814c1ea7525cf03797",
      "parents": [
        "24da4fab5a617ecbf0f0c64e7ba7703383faa411"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 00:23:35 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:45 2011 -0400"
      },
      "message": "vfs: Block mmapped writes while the fs is frozen\n\nWe should not allow file modification via mmap while the filesystem is\nfrozen. So block in block_page_mkwrite() while the filesystem is frozen.\nWe cannot do the blocking wait in __block_page_mkwrite() since e.g. ext4\nwill want to call that function with transaction started in some cases\nand that would deadlock. But we can at least do the non-blocking reliable\ncheck in __block_page_mkwrite() which is the hardest part anyway.\n\nWe have to check for frozen filesystem with the page marked dirty and under\npage lock with which we then return from -\u003epage_mkwrite(). Only that way we\ncannot race with writeback done by freezing code - either we mark the page\ndirty after the writeback has started, see freezing in progress and block, or\nwriteback will wait for our page lock which is released only when the fault is\ndone and then writeback will writeout and writeprotect the page again.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "24da4fab5a617ecbf0f0c64e7ba7703383faa411",
      "tree": "28f62d2e0e69b11765f021db53c327b56f741576",
      "parents": [
        "7c6e984dfca8ff5b04d359a59b24f39a691b87d3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 00:23:34 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:44 2011 -0400"
      },
      "message": "vfs: Create __block_page_mkwrite() helper passing error values back\n\nCreate __block_page_mkwrite() helper which does all what block_page_mkwrite()\ndoes except that it passes back errors from __block_write_begin /\nblock_commit_write calls.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7c6e984dfca8ff5b04d359a59b24f39a691b87d3",
      "tree": "5d7ff0a8b8d17e96ef7811272c3b6cf1f9f2174c",
      "parents": [
        "79fead47c51b874a26cf5865408a5b784b52a929"
      ],
      "author": {
        "name": "Roman Borisov",
        "email": "ext-roman.borisov@nokia.com",
        "time": "Wed May 25 16:26:48 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:44 2011 -0400"
      },
      "message": "fs/namespace.c: bound mount propagation fix\n\nThis issue was discovered by users of busybox.  And the bug is actual for\nbusybox users, I don\u0027t know how it affects others.  Apparently, mount is\ncalled with and without MS_SILENT, and this affects mount() behaviour.\nBut MS_SILENT is only supposed to affect kernel logging verbosity.\n\nThe following script was run in an empty test directory:\n\nmkdir -p mount.dir mount.shared1 mount.shared2\ntouch mount.dir/a mount.dir/b\nmount -vv --bind         mount.shared1 mount.shared1\nmount -vv --make-rshared mount.shared1\nmount -vv --bind         mount.shared2 mount.shared2\nmount -vv --make-rshared mount.shared2\nmount -vv --bind mount.shared2 mount.shared1\nmount -vv --bind mount.dir     mount.shared2\nls -R mount.dir mount.shared1 mount.shared2\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\nrm -f mount.dir/a mount.dir/b mount.dir/c\nrmdir mount.dir mount.shared1 mount.shared2\n\nmount -vv was used to show the mount() call arguments and result.\nOutput shows that flag argument has 0x00008000 \u003d MS_SILENT bit:\n\nmount: mount(\u0027mount.shared1\u0027,\u0027mount.shared1\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027\u0027,\u0027mount.shared1\u0027,\u0027\u0027,0x0010c000,\u0027\u0027):0\nmount: mount(\u0027mount.shared2\u0027,\u0027mount.shared2\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027\u0027,\u0027mount.shared2\u0027,\u0027\u0027,0x0010c000,\u0027\u0027):0\nmount: mount(\u0027mount.shared2\u0027,\u0027mount.shared1\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027mount.dir\u0027,\u0027mount.shared2\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount.dir:\na\nb\n\nmount.shared1:\n\nmount.shared2:\na\nb\n\nAfter adding --loud option to remove MS_SILENT bit from just one mount cmd:\n\nmkdir -p mount.dir mount.shared1 mount.shared2\ntouch mount.dir/a mount.dir/b\nmount -vv --bind         mount.shared1 mount.shared1 2\u003e\u00261\nmount -vv --make-rshared mount.shared1               2\u003e\u00261\nmount -vv --bind         mount.shared2 mount.shared2 2\u003e\u00261\nmount -vv --loud --make-rshared mount.shared2               2\u003e\u00261  # \u003c-HERE\nmount -vv --bind mount.shared2 mount.shared1         2\u003e\u00261\nmount -vv --bind mount.dir     mount.shared2         2\u003e\u00261\nls -R mount.dir mount.shared1 mount.shared2      2\u003e\u00261\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\numount mount.dir mount.shared1 mount.shared2 2\u003e/dev/null\nrm -f mount.dir/a mount.dir/b mount.dir/c\nrmdir mount.dir mount.shared1 mount.shared2\n\nThe result is different now - look closely at mount.shared1 directory listing.\nNow it does show files \u0027a\u0027 and \u0027b\u0027:\n\nmount: mount(\u0027mount.shared1\u0027,\u0027mount.shared1\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027\u0027,\u0027mount.shared1\u0027,\u0027\u0027,0x0010c000,\u0027\u0027):0\nmount: mount(\u0027mount.shared2\u0027,\u0027mount.shared2\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027\u0027,\u0027mount.shared2\u0027,\u0027\u0027,0x00104000,\u0027\u0027):0\nmount: mount(\u0027mount.shared2\u0027,\u0027mount.shared1\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\nmount: mount(\u0027mount.dir\u0027,\u0027mount.shared2\u0027,\u0027(null)\u0027,0x00009000,\u0027(null)\u0027):0\n\nmount.dir:\na\nb\n\nmount.shared1:\na\nb\n\nmount.shared2:\na\nb\n\nThe analysis shows that MS_SILENT flag which is ON by default in any\nbusybox-\u003e mount operations cames to flags_to_propagation_type function and\ncauses the error return while is_power_of_2 checking because the function\nexpects only one bit set.  This doesn\u0027t allow to do busybox-\u003emount with\nany --make-[r]shared, --make-[r]private etc options.\n\nMoreover, the recently added flags_to_propagation_type() function doesn\u0027t\nallow us to do such operations as --make-[r]private --make-[r]shared etc.\nwhen MS_SILENT is on.  The idea or clearing the MS_SILENT flag came from\nto Denys Vlasenko.\n\nSigned-off-by: Roman Borisov \u003cext-roman.borisov@nokia.com\u003e\nReported-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nCc: Alexander Shishkin \u003cvirtuoso@slind.org\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: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79fead47c51b874a26cf5865408a5b784b52a929",
      "tree": "96a443052a4675ade7de07a55d794839b4b83a4b",
      "parents": [
        "9f1fafee9e42b73beb3aa51ab2d6a19bfddeb5fe"
      ],
      "author": {
        "name": "Jonas Gorski",
        "email": "jonas.gorski@gmail.com",
        "time": "Tue May 24 20:12:08 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:43 2011 -0400"
      },
      "message": "exportfs: reallow building as a module\n\nCommit 990d6c2d7aee921e3bce22b2d6a750fd552262be (\"vfs: Add name to file\nhandle conversion support\") changed EXPORTFS to be a bool.\nThis was needed for earlier revisions of the original patch, but the actual\ncommit put the code needing it into its own file that only gets compiled\nwhen FHANDLE is selected which in turn selects EXPORTFS.\nSo EXPORTFS can be safely compiled as a module when not selecting FHANDLE.\n\nSigned-off-by: Jonas Gorski \u003cjonas.gorski@gmail.com\u003e\nAcked-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": "9f1fafee9e42b73beb3aa51ab2d6a19bfddeb5fe",
      "tree": "0c0251b271371e572daf29d2a2282c323c557e8c",
      "parents": [
        "19660af736ba00e1620970601dd313efedbbcfd2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 25 11:00:12 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:32 2011 -0400"
      },
      "message": "merge handle_reval_dot and nameidata_drop_rcu_last\n\nnew helper: complete_walk().  Done on successful completion\nof walk, drops out of RCU mode, does d_revalidate of final\nresult if that hadn\u0027t been done already.\n\nhandle_reval_dot() and nameidata_drop_rcu_last() subsumed into\nthat one; callers converted to use of complete_walk().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "19660af736ba00e1620970601dd313efedbbcfd2",
      "tree": "07f6fcbbb34161cab29474d80afe01dff7f7d87d",
      "parents": [
        "1be6a1f89f131e9c3d22f819ec542be9cda8c9e3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 25 10:32:48 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:02 2011 -0400"
      },
      "message": "consolidate nameidata_..._drop_rcu()\n\nMerge these into a single function (unlazy_walk(nd, dentry)),\nkill ..._maybe variants\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9cab1ba421fbc4c4503ccf4ff61e000c771e8942",
      "tree": "afd2124cfee46383d017676f9652ecd6b4cb86e9",
      "parents": [
        "cc03638df20acbec5d0d0d9e07234aadde9e698d",
        "26c4c170731f00008f4317a2888a0a07ac99d90d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 13:13:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 13:13:07 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  nfs: don\u0027t lose MS_SYNCHRONOUS on remount of noac mount\n  NFS: Return meaningful status from decode_secinfo()\n  NFSv4: Ensure we request the ordinary fileid when doing readdirplus\n  NFSv4: Ensure that clientid and session establishment can time out\n  SUNRPC: Allow RPC calls to return ETIMEDOUT instead of EIO\n  NFSv4.1: Don\u0027t loop forever in nfs4_proc_create_session\n  NFSv4: Handle NFS4ERR_WRONGSEC outside of nfs4_handle_exception()\n  NFSv4.1: Don\u0027t update sequence number if rpc_task is not sent\n  NFSv4.1: Ensure state manager thread dies on last umount\n  SUNRPC: Fix the SUNRPC Kerberos V RPCSEC_GSS module dependencies\n  NFS: Use correct variable for page bounds checking\n  NFS: don\u0027t negotiate when user specifies sec flavor\n  NFS: Attempt mount with default sec flavor first\n  NFS: flav_array honors NFS_MAX_SECFLAVORS\n  NFS: Fix infinite loop in gss_create_upcall()\n  Don\u0027t mark_inode_dirty_sync() while holding lock\n  NFS: Get rid of pointless test in nfs_commit_done\n  NFS: Remove unused argument from nfs_find_best_sec()\n  NFS: Eliminate duplicate call to nfs_mark_request_dirty\n  NFS: Remove dead code from nfs_fs_mount()\n"
    },
    {
      "commit": "6d4831c283530a5f2c6bd8172c13efa236eb149d",
      "tree": "4d199a330cfe8710de0deb4e805a798c2982501c",
      "parents": [
        "e8dad69408a9812d6bb42d03e74d2c314534a4fa"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Apr 27 15:26:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 11:28:20 2011 -0700"
      },
      "message": "vfs: avoid large kmalloc()s for the fdtable\n\nAzurit reports large increases in system time after 2.6.36 when running\nApache.  It was bisected down to a892e2d7dcdfa6c76e6 (\"vfs: use kmalloc()\nto allocate fdmem if possible\").\n\nThat patch caused the vfs to use kmalloc() for very large allocations and\nthis is causing excessive work (and presumably excessive reclaim) within\nthe page allocator.\n\nFix it by falling back to vmalloc() earlier - when the allocation attempt\nwould have been considered \"costly\" by reclaim.\n\nReported-by: azurIt \u003cazurit@pobox.sk\u003e\nTested-by: azurIt \u003cazurit@pobox.sk\u003e\nAcked-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "26c4c170731f00008f4317a2888a0a07ac99d90d",
      "tree": "f187a530024ab278a3f3e25ee01edc2e8c568f39",
      "parents": [
        "613e901e1ee0e1096663b649eee8e5d6697919f3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Apr 27 11:49:09 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 27 16:20:01 2011 -0400"
      },
      "message": "nfs: don\u0027t lose MS_SYNCHRONOUS on remount of noac mount\n\nOn a remount, the VFS layer will clear the MS_SYNCHRONOUS bit on the\nassumption that the flags on the mount syscall will have it set if the\nremounted fs is supposed to keep it.\n\nIn the case of \"noac\" though, MS_SYNCHRONOUS is implied. A remount of\nsuch a mount will lose the MS_SYNCHRONOUS flag since \"sync\" isn\u0027t part\nof the mount options.\n\nReported-by: Max Matveev \u003cmakc@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "613e901e1ee0e1096663b649eee8e5d6697919f3",
      "tree": "1a7c6c79585da11445de9c3b3c6c701d5c6c0195",
      "parents": [
        "28331a46d88459788c8fca72dbb0415cd7f514c9"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 27 15:28:44 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 27 16:17:29 2011 -0400"
      },
      "message": "NFS: Return meaningful status from decode_secinfo()\n\nWhen compiling, I was getting this warning:\nfs/nfs/nfs4xdr.c: In function ‘decode_secinfo’:\nfs/nfs/nfs4xdr.c:4839:6: warning: variable ‘status’ set but not used\n[-Wunused-but-set-variable]\n\nWe were unconditionally returning 0 as long as there wasn\u0027t an error\ncoming out of xdr_inline_decode().  We probably want to check the error\nstatus coming out of decode_op_hdr() and decode_secinfo_gss(), rather\nthan assuming that everything is OK all the time.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "28331a46d88459788c8fca72dbb0415cd7f514c9",
      "tree": "436a4a7209ab9acab87c0e0ecb0cac9b2c749f3d",
      "parents": [
        "1bd714f2a14aa4d6a5570956fcec64530b007e4a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 27 13:47:52 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 27 15:57:16 2011 -0400"
      },
      "message": "NFSv4: Ensure we request the ordinary fileid when doing readdirplus\n\nWhen readdir() returns a directory entry for the root of a mounted\nfilesystem, Linux follows the old convention of returning the inode\nnumber of the covered directory (despite newer versions of POSIX declaring\nthat this is a bug).\nTo ensure this continues to work, the NFSv4 readdir implementation requests\nthe \u0027mounted-on-fileid\u0027 from the server.\n\nHowever, readdirplus also needs to instantiate an inode for this entry, and\nfor that, we also need to request the real fileid as per this patch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9c549998dc24209847007e1f209f3b6c88d21ba",
      "tree": "0f52fcbe1dfa158349afc6ad2edaa6738615dc3b",
      "parents": [
        "8e10cd74342c7f5ce259cceca36f6eba084f5d58"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Apr 26 23:28:26 2011 -0700"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Apr 26 23:31:11 2011 -0700"
      },
      "message": "Revert wrong fixes for common misspellings\n\nThese changes were incorrectly fixed by codespell. They were now\nmanually corrected.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "019793b7554b18818624e9cf7a2ee8ba8cf6bda0",
      "tree": "ffe6ea833b4310d063a4a40435ba8877c396a303",
      "parents": [
        "cb49f577879519d1bff5898d9eec72dd441286cb",
        "7cf96da3ec7ca225acf4f284b0e904a1f5f98821"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 26 08:26:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 26 08:26:58 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: cleanup error handling in inode.c\n  Btrfs: put the right bio if we have an error\n  Btrfs: free bitmaps properly when evicting the cache\n  Btrfs: Free free_space item properly in btrfs_trim_block_group()\n  btrfs: add missing spin_unlock to a rare exit path\n  Btrfs: check return value of kmalloc()\n  btrfs: fix wrong allocating flag when reading page\n  Btrfs: fix missing mutex_unlock in btrfs_del_dir_entries_in_log()\n"
    },
    {
      "commit": "cb49f577879519d1bff5898d9eec72dd441286cb",
      "tree": "25ac9515b139d1f84b4fbeb52135779286b277a3",
      "parents": [
        "f727a938ce1c92d7693e0a66cee2295f2f9ca6d3",
        "211588ad1902df57beeeadc9b44546540fa4bd81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 26 08:25:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 26 08:25:16 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: do some plugging in the submit_bio threads\n"
    },
    {
      "commit": "f727a938ce1c92d7693e0a66cee2295f2f9ca6d3",
      "tree": "28d3467e4e86294f41b017f8a6e54b8b16dbb6b4",
      "parents": [
        "cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c",
        "4906e50b37e6f6c264e7ee4237343eb2b7f8d16d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 20:38:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 20:38:50 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  CIFS: Fix memory over bound bug in cifs_parse_mount_options\n"
    },
    {
      "commit": "cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c",
      "tree": "79c3c9d6e4258f38ff81dd141970885bbc65807a",
      "parents": [
        "71e9e6a5823a6b7976c3e47e2f6c7ba364526a93",
        "5be79de2e1ffa19d871a494697cf76cddee93384"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 19:01:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 19:01:12 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Flush dirty pages in setattr\n  eCryptfs: Handle failed metadata read in lookup\n  eCryptfs: Add reference counting to lower files\n  eCryptfs: dput dentries returned from dget_parent\n  eCryptfs: Remove extra d_delete in ecryptfs_rmdir\n"
    },
    {
      "commit": "1879fd6a26571fd4e8e1f4bb3e7537bc936b1fe7",
      "tree": "5fb41fdaef01d462ff9c7ecfe688760a44e89b6a",
      "parents": [
        "3dd2ee4824b668a635d6d2bb6bc73f33708cab9f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 25 14:01:36 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 18:14:10 2011 -0700"
      },
      "message": "add hlist_bl_lock/unlock helpers\n\nNow that the whole dcache_hash_bucket crap is gone, go all the way and\nalso remove the weird locking layering violations for locking the hash\nbuckets.  Add hlist_bl_lock/unlock helpers to move the locking into the\nlist abstraction instead of requiring each caller to open code it.\nAfter all allowing for the bit locks is the whole point of these helpers\nover the plain hlist variant.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5be79de2e1ffa19d871a494697cf76cddee93384",
      "tree": "4b6a9e060ba1d33f3573f0ea4b04f950e8027c79",
      "parents": [
        "3aeb86ea4cd15f728147a3bd5469a205ada8c767"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Apr 22 13:08:00 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:49:46 2011 -0500"
      },
      "message": "eCryptfs: Flush dirty pages in setattr\n\nAfter 57db4e8d73ef2b5e94a3f412108dff2576670a8a changed eCryptfs to\nwrite-back caching, eCryptfs page writeback updates the lower inode\ntimes due to the use of vfs_write() on the lower file.\n\nTo preserve inode metadata changes, such as \u0027cp -p\u0027 does with\nutimensat(), we need to flush all dirty pages early in\necryptfs_setattr() so that the user-updated lower inode metadata isn\u0027t\nclobbered later in writeback.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d33372\n\nReported-by: Rocko \u003crockorequin@hotmail.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3aeb86ea4cd15f728147a3bd5469a205ada8c767",
      "tree": "6219c664f7938fa8e5e8a2efa93aab7bcc38c12f",
      "parents": [
        "332ab16f830f59e7621ae8eb2c353dc135a316f6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Mar 15 14:54:00 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:45:06 2011 -0500"
      },
      "message": "eCryptfs: Handle failed metadata read in lookup\n\nWhen failing to read the lower file\u0027s crypto metadata during a lookup,\neCryptfs must continue on without throwing an error. For example, there\nmay be a plaintext file in the lower mount point that the user wants to\ndelete through the eCryptfs mount.\n\nIf an error is encountered while reading the metadata in lookup(), the\neCryptfs inode\u0027s size could be incorrect. We must be sure to reread the\nplaintext inode size from the metadata when performing an open() or\nsetattr(). The metadata is already being read in those paths, so this\nadds minimal performance overhead.\n\nThis patch introduces a flag which will track whether or not the\nplaintext inode size has been read so that an incorrect i_size can be\nfixed in the open() or setattr() paths.\n\nhttps://bugs.launchpad.net/bugs/509180\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7cf96da3ec7ca225acf4f284b0e904a1f5f98821",
      "tree": "48c1b0d42f40c47ac8e6a497d41d6d314a9a8a5d",
      "parents": [
        "64728bbbf892ea7a4aba502c436afbe362217fb9"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Apr 25 19:43:53 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:53 2011 -0400"
      },
      "message": "Btrfs: cleanup error handling in inode.c\n\nThe error processing of several places is changed like setting the\nerror number only at the error.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "64728bbbf892ea7a4aba502c436afbe362217fb9",
      "tree": "40741804bbf62d942c5b440345de03866cb46c41",
      "parents": [
        "a4f0162fd4490daf2c823c185fff79080d266a7c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "message": "Btrfs: put the right bio if we have an error\n\nIn btrfs_submit_direct_hook if the first btrfs_map_block fails we need to put\nthe orig_bio, not bio.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a4f0162fd4490daf2c823c185fff79080d266a7c",
      "tree": "c2a7186103a4b31115eb10555864620a46a18ad9",
      "parents": [
        "f789b684bdb96e7ec2fce79445555d4fd55fb94c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "message": "Btrfs: free bitmaps properly when evicting the cache\n\nIf our space cache is wrong, we do the right thing and free up everything that\nwe loaded, however we don\u0027t reset the total_bitmaps counter or the thresholds or\nanything.  So in btrfs_remove_free_space_cache make sure to call free_bitmap()\nif it\u0027s a bitmap, this will keep us from panicing when we check to make sure we\ndon\u0027t have too many bitmaps.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f789b684bdb96e7ec2fce79445555d4fd55fb94c",
      "tree": "44bde9e49f5d1d16c3d6890528ce5a9b3977fb7e",
      "parents": [
        "cfece4db110dacfd6b4b87b912c59e77e6846fc0"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "message": "Btrfs: Free free_space item properly in btrfs_trim_block_group()\n\nSince commit dc89e9824464e91fa0b06267864ceabe3186fd8b, we\u0027ve changed\nto use a specific slab for alocation of free_space items.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cfece4db110dacfd6b4b87b912c59e77e6846fc0",
      "tree": "6505c83f7d0dd2d01851cb8d13501e829168880f",
      "parents": [
        "8d413713ca744fa00cf4e05d4054d80727b84789"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "message": "btrfs: add missing spin_unlock to a rare exit path\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8d413713ca744fa00cf4e05d4054d80727b84789",
      "tree": "df29b480d83806cd4e85508ac676eb69323ddc79",
      "parents": [
        "43e817a1fdda17f3357602ed7964c248c8c53ae0"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:52 2011 -0400"
      },
      "message": "Btrfs: check return value of kmalloc()\n\nThe check on the return value of kmalloc() is added to some places.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "43e817a1fdda17f3357602ed7964c248c8c53ae0",
      "tree": "a6064abb7f4a4eecc6c6fbbb37a0a53ede93c979",
      "parents": [
        "a62f44a5f47ce45e524b55f91542dc386c6de7ef"
      ],
      "author": {
        "name": "Itaru Kitayama",
        "email": "kitayama@cl.bb4u.ne.jp",
        "time": "Mon Apr 25 19:43:51 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:51 2011 -0400"
      },
      "message": "btrfs: fix wrong allocating flag when reading page\n\nthe space cache use extent_readpages() to read free space information,\nso we can not use GFP_KERNEL flag to allocate memory, or it may lead\nto deadlock.\n\nSigned-off-by: Itaru Kitayama \u003ckitayama@cl.bb4u.ne.jp\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a62f44a5f47ce45e524b55f91542dc386c6de7ef",
      "tree": "9385c5bb077e74a9e97ce048d8e615142366cc52",
      "parents": [
        "f65647c29b14f5a32ff6f3237b0ef3b375ed5a79"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Apr 25 19:43:51 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 25 19:43:51 2011 -0400"
      },
      "message": "Btrfs: fix missing mutex_unlock in btrfs_del_dir_entries_in_log()\n\nIt is necessary to unlock mutex_lock before it return an error when\nbtrfs_alloc_path() fails.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "332ab16f830f59e7621ae8eb2c353dc135a316f6",
      "tree": "c5b249f34dcacf2aa5ee24de8d332d8171398203",
      "parents": [
        "dd55c89852481a0708c3fd4b48f3081f4280d9d3"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Apr 14 15:35:11 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:37 2011 -0500"
      },
      "message": "eCryptfs: Add reference counting to lower files\n\nFor any given lower inode, eCryptfs keeps only one lower file open and\nmultiplexes all eCryptfs file operations through that lower file. The\nlower file was considered \"persistent\" and stayed open from the first\nlookup through the lifetime of the inode.\n\nThis patch keeps the notion of a single, per-inode lower file, but adds\nreference counting around the lower file so that it is closed when not\ncurrently in use. If the reference count is at 0 when an operation (such\nas open, create, etc.) needs to use the lower file, a new lower file is\nopened. Since the file is no longer persistent, all references to the\nterm persistent file are changed to lower file.\n\nLocking is added around the sections of code that opens the lower file\nand assign the pointer in the inode info, as well as the code the fputs\nthe lower file when all eCryptfs users are done with it.\n\nThis patch is needed to fix issues, when mounted on top of the NFSv3\nclient, where the lower file is left silly renamed until the eCryptfs\ninode is destroyed.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "dd55c89852481a0708c3fd4b48f3081f4280d9d3",
      "tree": "36e516d3802f5854a9e25610bdfd2382f497ef0d",
      "parents": [
        "35ffa948b2f7bdf79e488cd496232935d095087a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Apr 12 11:23:09 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:36 2011 -0500"
      },
      "message": "eCryptfs: dput dentries returned from dget_parent\n\nCall dput on the dentries previously returned by dget_parent() in\necryptfs_rename(). This is needed for supported eCryptfs mounts on top\nof the NFSv3 client.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "35ffa948b2f7bdf79e488cd496232935d095087a",
      "tree": "c9b6ac16421f798813844b7299f6fbb8ee8baa14",
      "parents": [
        "5dd12af05ca6b7d052c06a9ca4ff755fdfa25ae4"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Apr 12 11:21:36 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Apr 25 18:32:35 2011 -0500"
      },
      "message": "eCryptfs: Remove extra d_delete in ecryptfs_rmdir\n\nvfs_rmdir() already calls d_delete() on the lower dentry. That was being\nduplicated in ecryptfs_rmdir() and caused a NULL pointer dereference\nwhen NFSv3 was the lower filesystem.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1bd714f2a14aa4d6a5570956fcec64530b007e4a",
      "tree": "7b468cf5e79a13e3931dda377b95c759475c95ae",
      "parents": [
        "7494d00c7b826b6ceb79ec33892bd0ef59be5614"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:29:33 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:29:33 2011 -0400"
      },
      "message": "NFSv4: Ensure that clientid and session establishment can time out\n\nThe following patch ensures that we do not get permanently trapped in\nthe RPC layer when trying to establish a new client id or session.\nThis again ensures that the state manager can finish in a timely\nfashion when the last filesystem to reference the nfs_client exits.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd954ae124e8a866e9cc1bc3de9a07be5492f608",
      "tree": "b45b1a58287e2e77afb1da4ed8ead0c3a8688c2d",
      "parents": [
        "fb8a5ba8114491467c4067ec0330e1c3dcc81d10"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:28:18 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Apr 24 14:28:18 2011 -0400"
      },
      "message": "NFSv4.1: Don\u0027t loop forever in nfs4_proc_create_session\n\nIf a server for some reason keeps sending NFS4ERR_DELAY errors, we can end\nup looping forever inside nfs4_proc_create_session, and so the usual\nmechanisms for detecting if the nfs_client is dead don\u0027t work.\n\nFix this by ensuring that we loop inside the nfs4_state_manager thread\ninstead.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dd12af05ca6b7d052c06a9ca4ff755fdfa25ae4",
      "tree": "15189e860b8fb4e20b1517c8ec2d2e145a2c0017",
      "parents": [
        "8f7544682c488dfc4117b37ed10435bb2d3d8d73",
        "dea3667bc3c2a0521e8d8855e407a49d9d70028c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 08:51:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 08:51:15 2011 -0700"
      },
      "message": "Merge branch \u0027dcache-cleanup\u0027\n\n* dcache-cleanup:\n  vfs: get rid of insane dentry hashing rules\n"
    },
    {
      "commit": "1f91f48b65a075c29c4adc57a895ff0e7306e2ee",
      "tree": "5966d172b8f484011ebb2b4c00988b81060afb82",
      "parents": [
        "3ba41621156681afcdbcd624e3191cbc65eb94f4",
        "6e0d9fd38b750d678bf9fd07db23582f52fafa55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 08:42:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 08:42:15 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027for-linus\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix master node recovery\n  UBIFS: fix false assertion warning in case of I/O failures\n  UBIFS: fix false space checking failure\n"
    },
    {
      "commit": "dea3667bc3c2a0521e8d8855e407a49d9d70028c",
      "tree": "bda1a624616f2e1bf9d3ec38b30ab002379a8e6a",
      "parents": [
        "b07ad9967f40b164af77205027352ba53729cf5a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 07:58:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 24 07:58:46 2011 -0700"
      },
      "message": "vfs: get rid of insane dentry hashing rules\n\nThe dentry hashing rules have been really quite complicated for a long\nwhile, in odd ways.  That made functions like __d_drop() very fragile\nand non-obvious.\n\nIn particular, whether a dentry was hashed or not was indicated with an\nexplicit DCACHE_UNHASHED bit.  That\u0027s despite the fact that the hash\nabstraction that the dentries use actually have a \u0027is this entry hashed\nor not\u0027 model (which is a simple test of the \u0027pprev\u0027 pointer).\n\nThe reason that was done is because we used the normal \u0027is this entry\nunhashed\u0027 model to mark whether the dentry had _ever_ been hashed in the\ndentry hash tables, and that logic goes back many years (commit\nb3423415fbc2: \"dcache: avoid RCU for never-hashed dentries\").\n\nThat, in turn, meant that __d_drop had totally different unhashing logic\nfor the dentry hash table case and for the anonymous dcache case,\nbecause in order to use the \"is this dentry hashed\" logic as a flag for\nwhether it had ever been on the RCU hash table, we had to unhash such a\ndentry differently so that we\u0027d never think that it wasn\u0027t \u0027unhashed\u0027\nand wouldn\u0027t be free\u0027d correctly.\n\nThat\u0027s just insane.  It made the logic really hard to follow, when there\nwere two different kinds of \"unhashed\" states, and one of them (the one\nthat used \"list_bl_unhashed()\") really had nothing at all to do with\nbeing unhashed per se, but with a very subtle lifetime rule instead.\n\nSo turn all of it around, and make it logical.\n\nInstead of having a DENTRY_UNHASHED bit in d_flags to indicate whether\nthe dentry is on the hash chains or not, use the hash chain unhashed\nlogic for that.  Suddenly \"d_unhashed()\" just uses \"list_bl_unhashed()\",\nand everything makes sense.\n\nAnd for the lifetime rule, just use an explicit DENTRY_RCUACCEES bit.\nIf we ever insert the dentry into the dentry hash table so that it is\nvisible to RCU lookup, we mark it DENTRY_RCUACCESS to show that it now\nneeds the RCU lifetime rules.  Now suddently that test at dentry free\ntime makes sense too.\n\nAnd because unhashing now is sane and doesn\u0027t depend on where the dentry\ngot unhashed from (because the dentry hash chain details doesn\u0027t have\nsome subtle side effects), we can re-unify the __d_drop() logic and use\ncommon code for the unhashing.\n\nAlso fix one more open-coded hash chain bit_spin_lock() that I missed in\nthe previous chain locking cleanup commit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b07ad9967f40b164af77205027352ba53729cf5a",
      "tree": "33ce9c53602f1983cff5dd5f209bb668fb7ffca5",
      "parents": [
        "0f1d9f78ce41a8874d30271ef8480e6f8f7f1fce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 23 22:32:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 23 22:32:03 2011 -0700"
      },
      "message": "vfs: get rid of \u0027struct dcache_hash_bucket\u0027 abstraction\n\nIt\u0027s a useless abstraction for \u0027hlist_bl_head\u0027, and it doesn\u0027t actually\nhelp anything - quite the reverse.  All the users end up having to know\nabout the hlist_bl_head details anyway, using \u0027struct hlist_bl_node *\u0027\netc. So it just makes the code look confusing.\n\nAnd the cost of it is extra \u0027\u0026b-\u003ehead\u0027 syntactic noise, but more\nimportantly it spuriously makes the hash table dentry list look\ndifferent from the per-superblock DCACHE_DISCONNECTED dentry list.\n\nAs a result, the code ended up using ad-hoc locking for one case and\nspecial helper functions for what is really another totally identical\ncase in the very same function.\n\nMake it all look and work the same.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4906e50b37e6f6c264e7ee4237343eb2b7f8d16d",
      "tree": "db956af25beeca260ca69f1c69b79bb9f2f906b6",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu Apr 14 22:00:56 2011 +0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Apr 21 17:22:43 2011 +0000"
      },
      "message": "CIFS: Fix memory over bound bug in cifs_parse_mount_options\n\nWhile password processing we can get out of options array bound if\nthe next character after array is delimiter. The patch adds a check\nif we reach the end.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "37fc67c9f0454f7a6448d87225cfee8067fd731d",
      "tree": "7b4aa71ece6fe0d6d9a229164405fd74fdbbd9e3",
      "parents": [
        "d20dc4d5231592b25a0d77c45ebb7c05204dfb3a",
        "3eff1268994f72266b660782e87f215720c29639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 21 10:01:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 21 10:01:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix duplicate message output\n"
    },
    {
      "commit": "df7e130384efd1c732aa08648dad46687fee3d96",
      "tree": "7dd8f9f0fe4cdcb27242a33783440bae5690e47e",
      "parents": [
        "584f79046780e10cb24367a691f8c28398a00e84"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 20 20:30:40 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 21 07:34:44 2011 -0700"
      },
      "message": "vfs: Pass setxattr(2) flags properly\n\nFor some reason generic_setxattr() did not pass flags (XATTR_CREATE,\nXATTR_REPLACE) to the filesystem specific helper. This caused that\nsetxattr(2) syscall just ignored these flags.\n\nFix the bug by passing flags correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e0d9fd38b750d678bf9fd07db23582f52fafa55",
      "tree": "e802c35a4543f1f55f782838cb946c81c124843a",
      "parents": [
        "1a067a22e466d2910d10d47a7125bf7ced943165"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 14:49:55 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 15:27:21 2011 +0300"
      },
      "message": "UBIFS: fix master node recovery\n\nThis patch fixes the following symptoms:\n1. Unmount UBIFS cleanly.\n2. Start mounting UBIFS R/W and have a power cut immediately\n3. Start mounting UBIFS R/O, this succeeds\n4. Try to re-mount UBIFS R/W - this fails immediately or later on,\n   because UBIFS will write the master node to the flash area\n   which has been written before.\n\nThe analysis of the problem:\n\n1. UBIFS is unmounted cleanly, both copies of the master node are clean.\n2. UBIFS is being mounter R/W, starts changing master node copy 1, and\n   a power cut happens. The copy N1 becomes corrupted.\n3. UBIFS is being mounted R/O. It notices the copy N1 is corrupted and\n   reads copy N2. Copy N2 is clean.\n4. Because of R/O mode, UBIFS cannot recover copy 1.\n5. The mount code (ubifs_mount()) sees that the master node is clean,\n   so it decides that no recovery is needed.\n6. We are re-mounting R/W. UBIFS believes no recovery is needed and\n   starts updating the master node, but copy N1 is still corrupted\n   and was not recovered!\n\nFix this problem by marking the master node as dirty every time we\nrecover it and we are in R/O mode. This forces further recovery and\nthe UBIFS cleans-up the corruptions and recovers the copy N1 when\nre-mounting R/W later.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "1a067a22e466d2910d10d47a7125bf7ced943165",
      "tree": "7bd2bd95730d063bcdc1b8bf1a03bb8e540e2284",
      "parents": [
        "8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 10:39:54 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 15:27:12 2011 +0300"
      },
      "message": "UBIFS: fix false assertion warning in case of I/O failures\n\nWhen UBIFS switches to R/O mode because it detects I/O failures, then\nwhen we unmount, we still may have allocated budget, and the assertions\nwhich verify that we have not budget will fire. But it is expected to\nhave the budget in case of I/O failures, so the assertion warnings will\nbe false. Suppress them for the I/O failure case.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "18995ba5ab93942a0ddae00e96b94717e9fd9895",
      "tree": "9620d095073a44dd9dfc17f1d9dfc6d72ed21678",
      "parents": [
        "f3e96492f6da63eba56f04f3c5cc2af524b5a925",
        "1574dff8996ab1ed92c09012f8038b5566fce313"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 20 17:41:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 20 17:41:06 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux:\n  Open with O_CREAT flag set fails to open existing files on non writable directories\n  nfsd4: Fix filp leak\n  nfsd4: fix struct file leak on delegation\n"
    },
    {
      "commit": "3eff1268994f72266b660782e87f215720c29639",
      "tree": "8299f6a1e6c5eefcc8597f232146e11b06aad922",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Apr 12 13:34:20 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Apr 20 11:36:49 2011 -0500"
      },
      "message": "xfs: fix duplicate message output\n\nCommit 957935dc (\"xfs: fix xfs_debug warnings\" broke the logic in\n__xfs_printk(). Instead of only printing one of two possible output\nstrings based on whether the fs has a name or not, it outputs both.\nFix it to only output one message again.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e",
      "tree": "734751f33b8a49894df52a5c23bcb39217ba6766",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 20 18:02:45 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 20 18:16:37 2011 +0300"
      },
      "message": "UBIFS: fix false space checking failure\n\nThis patch fixes UBIFS mount failure when the debugging support is enabled,\nwe are recovering from a power cut, we were first mounter R/O and we are\nre-mounting R/W. In this case we should not assume that the amount of free\nspace before we have re-mounted R/W and after are equivalent, because\nwhen we have mounted R/O the file-system is in a non-committed state so\nthe amount of free space is slightly smaller, due to the fact that we cannot\npredict the amount of free space precisely before we commit.\n\nThis patch fixes the issue by skipping the debugging check in case of\nrecovery. This issue was reported by Caizhiyong \u003ccaizhiyong@huawei.com\u003e\nhere: http://thread.gmane.org/gmane.linux.drivers.mtd/34350/focus\u003d34387\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReported-by: Caizhiyong \u003ccaizhiyong@huawei.com\u003e\nCc: stable@kernel.org [2.6.30+]\n"
    },
    {
      "commit": "1574dff8996ab1ed92c09012f8038b5566fce313",
      "tree": "0721b1775b9a99ed5481e8a47383f6f49b50f64a",
      "parents": [
        "a96e5b90804be8b540d30f4a1453fc87f95b3149"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Wed Apr 20 13:09:35 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 20 11:03:01 2011 -0400"
      },
      "message": "Open with O_CREAT flag set fails to open existing files on non writable directories\n\nAn open on a NFS4 share using the O_CREAT flag on an existing file for\nwhich we have permissions to open but contained in a directory with no\nwrite permissions will fail with EACCES.\n\nA tcpdump shows that the client had set the open mode to UNCHECKED which\nindicates that the file should be created if it doesn\u0027t exist and\nencountering an existing flag is not an error. Since in this case the\nfile exists and can be opened by the user, the NFS server is wrong in\nattempting to check create permissions on the parent directory.\n\nThe patch adds a conditional statement to check for create permissions\nonly if the file doesn\u0027t exist.\n\nSigned-off-by: Sachin S. Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "211588ad1902df57beeeadc9b44546540fa4bd81",
      "tree": "f08e790405975124483bd49edcdcba6a0c4d8d8d",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 19 20:12:40 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 19 20:12:40 2011 -0400"
      },
      "message": "Btrfs: do some plugging in the submit_bio threads\n\nThe Btrfs submit bio threads have a small number of\nthreads responsible for pushing down bios we\u0027ve collected\nfor a large number of devices.\n\nSince we do all the bios for a single device at once,\nwe want to make sure we unplug and send down the bios\nfor each device as we\u0027re done processing them.\n\nThe new plugging API removed the btrfs code to\nunplug while processing bios, this adds it back with\nthe new API.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a96e5b90804be8b540d30f4a1453fc87f95b3149",
      "tree": "16504bb1b02626001ef0ef84991e87d0c95e1061",
      "parents": [
        "4ee63624fd927376b97ead3a8d00728d437bc8e8"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Mon Apr 18 11:48:55 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Apr 19 17:31:13 2011 -0400"
      },
      "message": "nfsd4: Fix filp leak\n\n23fcf2ec93fb8573a653408316af599939ff9a8e (nfsd4: fix oops on lock failure)\n\nThe above patch breaks free path for stp-\u003est_file. If stp was inserted\ninto sop-\u003eso_stateids, we have to free stp-\u003est_file refcount. Because\nstp-\u003est_file refcount itself is taken whether or not any refcounts are\ntaken on the stp-\u003est_file-\u003efi_fds[].\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f28c6179e5d8793bbeaceaef15fbbedcb2745f3b",
      "tree": "ab6f072f71290e6a88e8f61bcb2e25f8fc323b84",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8",
        "44ad37d69b2cc421d5b5c7ad7fed16230685b092"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 19 10:52:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 19 10:52:51 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: filesystem hang caused by incorrect lock order\n  GFS2: Don\u0027t try to deallocate unlinked inodes when mounted ro\n  GFS2: directly write blocks past i_size\n  GFS2: write_end error path fails to unlock transaction lock\n"
    },
    {
      "commit": "fb8a5ba8114491467c4067ec0330e1c3dcc81d10",
      "tree": "32372368a12658c367daab20202266b4fd27dd8d",
      "parents": [
        "468f86134ee515234afe5c5b3f39f266c50e61a5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Apr 18 16:52:25 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 18 17:06:00 2011 -0400"
      },
      "message": "NFSv4: Handle NFS4ERR_WRONGSEC outside of nfs4_handle_exception()\n\nI only want to try other secflavors during an initial mount if\nNFS4ERR_WRONGSEC is returned.  nfs4_handle_exception() could\npotentially map other errors to EPERM, so we should handle this\nerror specially for correctness.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "468f86134ee515234afe5c5b3f39f266c50e61a5",
      "tree": "912d0d587ffa2897ce16ed1258e8f52b23308b61",
      "parents": [
        "47c2199b6eb5fbe38ddb844db7cdbd914d304f9c"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Mon Apr 18 15:57:32 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 18 17:05:48 2011 -0400"
      },
      "message": "NFSv4.1: Don\u0027t update sequence number if rpc_task is not sent\n\nIf we fail to contact the gss upcall program, then no message will\nbe sent to the server.  The client still updated the sequence number,\nhowever, and this lead to NFS4ERR_SEQ_MISMATCH for the next several\nRPC calls.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adff377bb1010ec65aada1f94ef2be7c7805c711",
      "tree": "83742ebd4de5c043b2f58969ef4d6634a301bfe7",
      "parents": [
        "d8bdc59f215e62098bc5b4256fd9928bf27053a1",
        "f65647c29b14f5a32ff6f3237b0ef3b375ed5a79"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 18 12:24:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 18 12:24:05 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: (24 commits)\n  Btrfs: fix free space cache leak\n  Btrfs: avoid taking the chunk_mutex in do_chunk_alloc\n  Btrfs end_bio_extent_readpage should look for locked bits\n  Btrfs: don\u0027t force chunk allocation in find_free_extent\n  Btrfs: Check validity before setting an acl\n  Btrfs: Fix incorrect inode nlink in btrfs_link()\n  Btrfs: Check if btrfs_next_leaf() returns error in btrfs_real_readdir()\n  Btrfs: Check if btrfs_next_leaf() returns error in btrfs_listxattr()\n  Btrfs: make uncache_state unconditional\n  btrfs: using cached extent_state in set/unlock combinations\n  Btrfs: avoid taking the trans_mutex in btrfs_end_transaction\n  Btrfs: fix subvolume mount by name problem when default mount subvolume is set\n  fix user annotation in ioctl.c\n  Btrfs: check for duplicate iov_base\u0027s when doing dio reads\n  btrfs: properly handle overlapping areas in memmove_extent_buffer\n  Btrfs: fix memory leaks in btrfs_new_inode()\n  Btrfs: check for duplicate iov_base\u0027s when doing dio reads\n  Btrfs: reuse the extent_map we found when calling btrfs_get_extent\n  Btrfs: do not use async submit for small DIO io\u0027s\n  Btrfs: don\u0027t split dio bios if we don\u0027t have to\n  ...\n"
    },
    {
      "commit": "d8bdc59f215e62098bc5b4256fd9928bf27053a1",
      "tree": "2f6e233afaf1b7f970e2f0ef0786dff4596dbd0a",
      "parents": [
        "c78193e9c7bcbf25b8237ad0dec82f805c4ea69b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 18 10:36:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 18 10:36:54 2011 -0700"
      },
      "message": "proc: do proper range check on readdir offset\n\nRather than pass in some random truncated offset to the pid-related\nfunctions, check that the offset is in range up-front.\n\nThis is just cleanup, the previous commit fixed the real problem.\n\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ee63624fd927376b97ead3a8d00728d437bc8e8",
      "tree": "b30cd55c7fbcb5c3c76d62db9a7b467cbf17e993",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 15 18:08:26 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 18 13:30:56 2011 -0400"
      },
      "message": "nfsd4: fix struct file leak on delegation\n\nIntroduced by acfdf5c383b38f7f4dddae41b97c97f1ae058f49.\n\nCc: stable@kernel.org\nReported-by: Gerhard Heift \u003cml-nfs-linux-20110412-ef47@gheift.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "44ad37d69b2cc421d5b5c7ad7fed16230685b092",
      "tree": "3632c63eef9e159947316f18d48054f082c0578e",
      "parents": [
        "001e8e8df4283dd4ef7a0297c012fce364c05cf1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 17 16:19:58 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:50 2011 +0100"
      },
      "message": "GFS2: filesystem hang caused by incorrect lock order\n\nThis patch fixes a deadlock in GFS2 where two processes are trying\nto reclaim an unlinked dinode:\nOne holds the inode glock and calls gfs2_lookup_by_inum trying to look\nup the inode, which it can\u0027t, due to I_FREEING.  The other has set\nI_FREEING from vfs and is at the beginning of gfs2_delete_inode\nwaiting for the glock, which is held by the first.  The solution is to\nadd a new non_block parameter to the gfs2_iget function that causes it\nto return -ENOENT if the inode is being freed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "001e8e8df4283dd4ef7a0297c012fce364c05cf1",
      "tree": "28942d4cadc3da175a352c9804dad502d2bc4336",
      "parents": [
        "0ee532062fa7ff0795b3862c2d50efe32e552f9f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 14:17:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:12 2011 +0100"
      },
      "message": "GFS2: Don\u0027t try to deallocate unlinked inodes when mounted ro\n\nThis adds a couple of missing tests to avoid read-only nodes\nfrom attempting to deallocate unlinked inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: Michel Andre de la Porte \u003cmadelaporte@ubi.com\u003e\n"
    },
    {
      "commit": "0ee532062fa7ff0795b3862c2d50efe32e552f9f",
      "tree": "5d8319628ea6d9d5099b7ebd669204ed0070548b",
      "parents": [
        "deab72d3797e3d4340c7ddf968234b8c3d01d7a5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Mar 17 21:54:46 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:52 2011 +0100"
      },
      "message": "GFS2: directly write blocks past i_size\n\nGFS2 was relying on the writepage code to write out the zeroed data for\nfallocate.  However, with FALLOC_FL_KEEP_SIZE set, this may be past i_size.\nIf it is, it will be ignored.  To work around this, gfs2 now calls\nwrite_dirty_buffer directly on the buffer_heads when FALLOC_FL_KEEP_SIZE\nis set, and it\u0027s writing past i_size.\n\nThis version is just a cleanup of my last version\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "deab72d3797e3d4340c7ddf968234b8c3d01d7a5",
      "tree": "f09c55adcff084fb1c616184169b1bbf55e7f7ac",
      "parents": [
        "a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Mar 16 16:32:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:35 2011 +0100"
      },
      "message": "GFS2: write_end error path fails to unlock transaction lock\n\nI did an audit of gfs2\u0027s transaction glock for bugzilla bug\n658619 and ran across this:\n\nIn function gfs2_write_end, in the unlikely event that\ngfs2_meta_inode_buffer returns an error, the code may forget\nto unlock the transaction lock because the \"failed\" label\nappears after the call to function gfs2_trans_end.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f65647c29b14f5a32ff6f3237b0ef3b375ed5a79",
      "tree": "4ec6b2a20d37f5ce4098cf77f3eb9606e3f241ba",
      "parents": [
        "6d74119f1a3efad9dc7f79a16c201242324b731f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 18 08:55:34 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 18 08:55:34 2011 -0400"
      },
      "message": "Btrfs: fix free space cache leak\n\nThe free space caching code was recently reworked to\ncache all the pages it needed instead of using find_get_page everywhere.\n\nOne loop was missed though, so it ended up leaking pages.  This fixes\nit to use our page array instead of find_get_page.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fff3e5ade4455a4b42a19c95dd7a167a3cb7956a",
      "tree": "782685d5e479c5a5e167304868c43eca623e6a9e",
      "parents": [
        "d733ed6c34be3aef0517a04e4103eed6b369ec50"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Thu Apr 14 10:30:08 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 17 10:42:01 2011 -0700"
      },
      "message": "fs: synchronize_rcu when unregister_filesystem success not failure\n\nWhile checking unregister_filesystem for saftey vs extra calls for\n\"ext4: register ext2 and ext3 alias after ext4\" I realized that\nthe synchronize_rcu() was called on the error path but not on\nthe success path.\n\nCc: stable (2.6.38)\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\n[ This probably won\u0027t really make a difference since commit d863b50ab013\n  (\"vfs: call rcu_barrier after -\u003ekill_sb()\"), but it\u0027s the right thing\n  to do.  - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d74119f1a3efad9dc7f79a16c201242324b731f",
      "tree": "faf541835e82e9d56c7474c04b2d785821fe61d3",
      "parents": [
        "0d399205edf3a4c290e76ebb36e541593af4a1b4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Apr 11 20:20:11 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Apr 16 07:10:56 2011 -0400"
      },
      "message": "Btrfs: avoid taking the chunk_mutex in do_chunk_alloc\n\nEverytime we try to allocate disk space we try and see if we can pre-emptively\nallocate a chunk, but in the common case we don\u0027t allocate anything, so there is\nno sense in taking the chunk_mutex at all.  So instead if we are allocating a\nchunk, mark it in the space_info so we don\u0027t get two people trying to allocate\nat the same time.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nReviewed-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "0d399205edf3a4c290e76ebb36e541593af4a1b4",
      "tree": "980af1dc3d803727d658aaa7b8565e06009e85e3",
      "parents": [
        "0e4f8f888845f9dca540ad175884244e5db5eea2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Apr 16 06:55:39 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Apr 16 06:55:39 2011 -0400"
      },
      "message": "Btrfs end_bio_extent_readpage should look for locked bits\n\nA recent commit caches the extent state in end_bio_extent_readpage,\nbut the search it does should look for locked extents.  This\nfixes things to make it more effective.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0ebc115da3ed67409792eb8de46361a5c673f072",
      "tree": "214b1a218dd84c3ac7bb66a3648fbbe41d72226b",
      "parents": [
        "e82e6f16a809bc47eb929c3408921def28638fcd",
        "b76225e22ac98070325ee2ba89473c1e1360c4cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 20:31:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 20:31:15 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  net/9p: nwname should be an unsigned int\n  9p: Fix sparse error\n  fs/9p: Fix error reported by coccicheck\n  9p: revert tsyncfs related changes\n  fs/9p: Use write_inode for data sync on server\n  fs/9p: Fix revalidate to return correct value\n"
    },
    {
      "commit": "47c2199b6eb5fbe38ddb844db7cdbd914d304f9c",
      "tree": "bdb4afa93c3236ec79374da9b4f47b1eb9c72548",
      "parents": [
        "e3b2854faabd10438f5e7e34e078b099c3375577"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 15 17:34:18 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Apr 15 18:28:22 2011 -0400"
      },
      "message": "NFSv4.1: Ensure state manager thread dies on last umount\n\nCurrently, the state manager may continue to try recovering state forever\neven after the last filesystem to reference that nfs_client has umounted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c1530019e311c91d14b24d8e74d233152d806e45",
      "tree": "37bd46f1d30534d8f03a186338295b653e75886c",
      "parents": [
        "5853b4f06f7b9b56f37f457d7923f7b96496074e"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Apr 15 11:39:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 15:28:12 2011 -0700"
      },
      "message": "vfs: Fix absolute RCU path walk failures due to uninitialized seq number\n\nDuring RCU walk in path_lookupat and path_openat, the rcu lookup\nfrequently failed if looking up an absolute path, because when root\ndirectory was looked up, seq number was not properly set in nameidata.\n\nWe dropped out of RCU walk in nameidata_drop_rcu due to mismatch in\ndirectory entry\u0027s seq number.  We reverted to slow path walk that need\nto take references.\n\nWith the following patch, I saw a 50% increase in an exim mail server\nbenchmark throughput on a 4-socket Nehalem-EX system.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: stable@kernel.org (v2.6.38)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "936bb2d7034165fd6ef7afea54057da65c329a27",
      "tree": "04f84ae7997497fe130ae721f83dd99eca398f67",
      "parents": [
        "df5d8c80f1871d9e79af4b0f3656a9528a7d4bab"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Mar 24 23:04:41 2011 +0530"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Apr 15 15:26:14 2011 -0500"
      },
      "message": "fs/9p: Fix error reported by coccicheck\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "df5d8c80f1871d9e79af4b0f3656a9528a7d4bab",
      "tree": "e9baf35f25e5dc97e8e2d06d5b5eaf5ecacfc624",
      "parents": [
        "c2ed388021a60bb4a9449fddfef770c95875b052"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Mar 24 20:38:35 2011 +0530"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Apr 15 15:26:14 2011 -0500"
      },
      "message": "9p: revert tsyncfs related changes\n\nNow that we use write_inode to flush server\ncache related to fid, we don\u0027t need tsyncfs either fort dotl or dotu\nprotocols. For dotu this helps to do a more efficient server flush.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "c2ed388021a60bb4a9449fddfef770c95875b052",
      "tree": "e31fe132019f5ad671d54108c3309a83b7bd5786",
      "parents": [
        "f2eda2c6cc138710ae775490397657e8877774b6"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Mar 23 15:11:27 2011 +0530"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Apr 15 15:26:14 2011 -0500"
      },
      "message": "fs/9p: Use write_inode for data sync on server\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "f2eda2c6cc138710ae775490397657e8877774b6",
      "tree": "9ff1d2414ff8bde4773ad98dc1f43de82bd57663",
      "parents": [
        "5853b4f06f7b9b56f37f457d7923f7b96496074e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Mar 23 19:48:16 2011 +0530"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Apr 15 15:26:13 2011 -0500"
      },
      "message": "fs/9p: Fix revalidate to return correct value\n\nrevalidate should return \u003e 0 on success. Also return 0 on ENOENT\nto force do_revalidate to return NULL dentry;\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "0e4f8f888845f9dca540ad175884244e5db5eea2",
      "tree": "cc43a4a6ff229a84f26376f27d9d938ac4dc1b26",
      "parents": [
        "329c5056be8774255db04b01242a9ff4f02eb8ea"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Apr 15 16:05:44 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Apr 15 16:05:44 2011 -0400"
      },
      "message": "Btrfs: don\u0027t force chunk allocation in find_free_extent\n\nfind_free_extent likes to allocate in contiguous clusters,\nwhich makes writeback faster, especially on SSD storage.  As\nthe FS fragments, these clusters become harder to find and we have\nto decide between allocating a new chunk to make more clusters\nor giving up on the cluster to allocate from the free space\nwe have.\n\nRight now it creates too many chunks, and you can end up with\na whole FS that is mostly empty metadata chunks.  This commit\nchanges the allocation code to be more strict and only\nallocate new chunks when we\u0027ve made good use of the chunks we\nalready have.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a970f5d513163a305d46f330d0a7d2dd4c4506f1",
      "tree": "b1f38ab9d31670b909c079ac743651162d2a2e70",
      "parents": [
        "7ebfa57f6d307b66bb88600145afccde31016ab5",
        "1dcffad74183bb00e8129ba1c5bb2c9931d31bd7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 07:44:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 07:44:22 2011 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix compilation warnings when compiling with gcc 4.5\n  UBIFS: fix oops when R/O file-system is fsync\u0027ed\n"
    },
    {
      "commit": "7ebfa57f6d307b66bb88600145afccde31016ab5",
      "tree": "f2f3574549fa2de097db2b8bb8fc4c35c744fa6a",
      "parents": [
        "e38f5b745075828ac51b12c8c95c85a7be4a3ec7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 07:34:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 15 07:34:26 2011 -0700"
      },
      "message": "vfs: fix incorrect dentry_update_name_case() BUG_ON() test\n\nThe case we should be verifying when updating the dentry name is that\nthe _parent_ inode (the directory) semaphore is held, not the semaphore\nfor the dentry itself.  It\u0027s the directory locking that rename and\nreaddir() etc all care about.\n\nThe comment just above even says so - but then the BUG_ON() still\nchecked the dentry inode itself.\n\nVery few people noticed, because this helper function really isn\u0027t used\nfor very much, so you had to be using ncpfs to ever hit it.\n\nI think I should just remove the BUG_ON (the function really has just\none user), but let\u0027s run with it fixed for a while before getting rid of\nit entirely.\n\nReported-and-tested-by: Bongani Hlope \u003cbonganih@bankservafrica.com\u003e\nReported-and-tested-by: Bernd Feige \u003cbernd.feige@uniklinik-freiburg.de\u003e\nCc: Petr Vandrovec \u003cpetr@vandrovec.name\u003e,\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b836aec53e2bce71de1d5415313380688c851477",
      "tree": "9ee79823fd8ac2ad868ce63f2b3569d04803a5d1",
      "parents": [
        "084189a88754d40e1bb9bfbc278e70c33e571685"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Apr 14 15:22:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:56 2011 -0700"
      },
      "message": "ramfs: fix memleak on no-mmu arch\n\nOn no-mmu arch, there is a memleak during shmem test.  The cause of this\nmemleak is ramfs_nommu_expand_for_mapping() added page refcount to 2\nwhich makes iput() can\u0027t free that pages.\n\nThe simple test file is like this:\n\n  int main(void)\n  {\n\tint i;\n\tkey_t k \u003d ftok(\"/etc\", 42);\n\n\tfor ( i\u003d0; i\u003c100; ++i) {\n\t\tint id \u003d shmget(k, 10000, 0644|IPC_CREAT);\n\t\tif (id \u003d\u003d -1) {\n\t\t\tprintf(\"shmget error\\n\");\n\t\t}\n\t\tif(shmctl(id, IPC_RMID, NULL ) \u003d\u003d -1) {\n\t\t\tprintf(\"shm  rm error\\n\");\n\t\t\treturn -1;\n\t\t}\n\t}\n\tprintf(\"run ok...\\n\");\n\treturn 0;\n  }\n\nAnd the result:\n\n  root:/\u003e free\n               total         used         free       shared      buffers\n  Mem:         60320        17912        42408            0            0\n  -/+ buffers:              17912        42408\n  root:/\u003e shmem\n  run ok...\n  root:/\u003e free\n               total         used         free       shared      buffers\n  Mem:         60320        19096        41224            0            0\n  -/+ buffers:              19096        41224\n  root:/\u003e shmem\n  run ok...\n  root:/\u003e free\n               total         used         free       shared      buffers\n  Mem:         60320        20296        40024            0            0\n  -/+ buffers:              20296        40024\n  ...\n\nAfter this patch the test result is:(no memleak anymore)\n\n  root:/\u003e free\n               total         used         free       shared      buffers\n  Mem:         60320        16668        43652            0            0\n  -/+ buffers:              16668        43652\n  root:/\u003e shmem\n  run ok...\n  root:/\u003e free\n               total         used         free       shared      buffers\n  Mem:         60320        16668        43652            0            0\n  -/+ buffers:              16668        43652\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\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": "ed5afeaf422202485bbebc7e911f13b2a6be2666",
      "tree": "479e2f57cef12140d9012a2404d0ad4b0aa2a15c",
      "parents": [
        "6a534c9d265ebabca4c3ae6f8712fc5a27cd3999"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Apr 14 15:22:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:56 2011 -0700"
      },
      "message": "fs/fhandle.c: add \u003clinux/personality.h\u003e for ia64\n\nforce_o_largefile() on ia64 is defined in \u003casm/fcntl.h\u003e and requires\n\u003clinux/personality.h\u003e.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4471a675dfc7ca676c165079e91c712b09dc9ce4",
      "tree": "9746321a818cefbb2aa97d8ac4d44c4a6ae84f5a",
      "parents": [
        "5de1743e2434fcb24e3d944a20130029b8fe867a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Apr 14 15:22:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:55 2011 -0700"
      },
      "message": "brk: COMPAT_BRK: fix detection of randomized brk\n\n5520e89 (\"brk: fix min_brk lower bound computation for COMPAT_BRK\")\ntried to get the whole logic of brk randomization for legacy\n(libc5-based) applications finally right.\n\nIt turns out that the way to detect whether brk has actually been\nrandomized in the end or not introduced by that patch still doesn\u0027t work\nfor those binaries, as reported by Geert:\n\n: /sbin/init from my old m68k ramdisk exists prematurely.\n:\n: Before the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80006000\n:\n: After the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80005c8e\n:\n: Old libc5 considers brk() to have failed if the return value is not\n: identical to the requested value.\n\nI don\u0027t like it, but currently see no better option than a bit flag in\ntask_struct to catch the CONFIG_COMPAT_BRK \u0026\u0026 randomize_va_space \u003d\u003d 2\ncase.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\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": "c340b1d640001c8c9ecff74f68fd90422ae2448a",
      "tree": "2615bb9abb9fb956197c8f357dee388d15d82d81",
      "parents": [
        "c344180c9e77145a9e7eab0050169c68afae04b2"
      ],
      "author": {
        "name": "Timo Warns",
        "email": "Warns@pre-sense.de",
        "time": "Thu Apr 14 15:21:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:54 2011 -0700"
      },
      "message": "fs/partitions/ldm.c: fix oops caused by corrupted partition table\n\nThe kernel automatically evaluates partition tables of storage devices.\nThe code for evaluating LDM partitions (in fs/partitions/ldm.c) contains\na bug that causes a kernel oops on certain corrupted LDM partitions.\nA kernel subsystem seems to crash, because, after the oops, the kernel no\nlonger recognizes newly connected storage devices.\n\nThe patch validates the value of vblk_size.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Timo Warns \u003cwarns@pre-sense.de\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Richard Russon \u003crich@flatcap.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3dfc2808ab82b13f8b6db62189da959c2eadeea",
      "tree": "5eb6f11f712396e67544539a4a28d4503d54a6b9",
      "parents": [
        "9b7160c55a41dd2fec3d467f979e55782d3f92ad"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:31 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:23 2011 -0400"
      },
      "message": "NFS: Use correct variable for page bounds checking\n\nWhile decoding a secinfo reply, I store the list of supported sec\nflavors on a page accessible through res-\u003eflavors.  Before reading\neach new flavor, I do some math to determine if there is enough\nspace left on this page, and I break out of my read look if there\nisn\u0027t.  In order to perform this check correctly, I need to use the\naddress of res-\u003eflavors, rather than the address of res.\n\nWhen this loop was broken early I lied to the caller and told them\nthat the entire list had been decoded.  This could lead to problems\nif the caller tries to use any the garbage data claiming to be a\nvalid sec flavor.  I fixed this by using res-\u003eflavors-\u003enum_flavors\nas a counter, incrementing it every time a sec flavor is\nsuccessfully decoded.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9b7160c55a41dd2fec3d467f979e55782d3f92ad",
      "tree": "5a0d71d9a9ed1cfee60014b3b10d71232dee0a09",
      "parents": [
        "801a16dc7b5c146f7980a0c61c30cef3ba93344d"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:30 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:23 2011 -0400"
      },
      "message": "NFS: don\u0027t negotiate when user specifies sec flavor\n\nWe were always attempting sec flavor negotiation, even if the user\ntold us a specific sec flavor to use.  If that sec flavor fails,\nwe should return an error rather than continuing with sec flavor\nnegotiation.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "801a16dc7b5c146f7980a0c61c30cef3ba93344d",
      "tree": "959e354fe7e13525efa8e4313176550dbcc3fe99",
      "parents": [
        "0fabee243a2c6edd66284a4d8948ccbe6727e3bb"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:30 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:23 2011 -0400"
      },
      "message": "NFS: Attempt mount with default sec flavor first\n\nnfs4_lookup_root() is already configured to use either RPC_AUTH_UNIX\nor a user specified flavor (through -o sec\u003d\u003cwhatever\u003e).  We should\nuse this flavor first, and only attempt negotiation if it fails\nwith -EPERM.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0fabee243a2c6edd66284a4d8948ccbe6727e3bb",
      "tree": "dc1903c78445c9367816a2765d923b8d7da41e3b",
      "parents": [
        "d1a8016a2d1e75021ecc8715e3c81442d7218eb6"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:29 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:22 2011 -0400"
      },
      "message": "NFS: flav_array honors NFS_MAX_SECFLAVORS\n\nNFS_MAX_SECFLAVORS should already take into account RPC_AUTH_UNIX\nand RPC_AUTH_NULL, so we don\u0027t need to set aside extra slots\nfor them.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d1a8016a2d1e75021ecc8715e3c81442d7218eb6",
      "tree": "b2aaef4f3aa4566765c6e3c743c74929a7790af2",
      "parents": [
        "79a48a1f5d99ab66cf83d2d5d805e7a0e08452ed"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 13 14:31:28 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 15:12:22 2011 -0400"
      },
      "message": "NFS: Fix infinite loop in gss_create_upcall()\n\nThere can be an infinite loop if gss_create_upcall() is called without\nthe userspace program running.  To prevent this, we return -EACCES if\nwe notice that pipe_version hasn\u0027t changed (indicating that the pipe\nhas not been opened).\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "79a48a1f5d99ab66cf83d2d5d805e7a0e08452ed",
      "tree": "158e953b809b93d93334cc91662136af27b69a8d",
      "parents": [
        "c0d0e96b840dcc73f9b9d45bf8f405dbce72a079"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Wed Apr 13 10:53:51 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 13 13:15:51 2011 -0400"
      },
      "message": "Don\u0027t mark_inode_dirty_sync() while holding lock\n\nmark_inode_dirty_sync() grabs the same inode lock!\n\nrace conditions between holding the lock in pnfs_set_layoutcommit() and in\nmark_inode_dirty_sync() can result in a second call to pnfs_layoutcommit_inode(), but\nthis will be a noop as NFS_INO_LAYOUTCOMMIT won\u0027t be set in the second call\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1dcffad74183bb00e8129ba1c5bb2c9931d31bd7",
      "tree": "a7553e2f7a24fd24f3313fd15140b0200d6c56ad",
      "parents": [
        "78530bf7f2559b317c04991b52217c1608d5a58d"
      ],
      "author": {
        "name": "Maksim Rayskiy",
        "email": "maksim.rayskiy@gmail.com",
        "time": "Tue Apr 12 15:14:56 2011 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 13 11:59:09 2011 +0300"
      },
      "message": "UBIFS: fix compilation warnings when compiling with gcc 4.5\n\nWhen compiling UBIFS with CONFIG_UBIFS_FS_DEBUG not set,\ngcc-4.5.2 generates a slew of \"warning: statement with no effect\"\non references to non-void functions defined as 0.\nTo avoid these warnings, replace #defines with dummy inline functions.\n\nArtem: massage the patch a bit, also remove the duplicate\n       \u0027dbg_check_lprops()\u0027 prototype.\n\nSigned-off-by: Maksim Rayskiy \u003cmaksim.rayskiy@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "78530bf7f2559b317c04991b52217c1608d5a58d",
      "tree": "c7f34bbcee5861a1fda8482afb36b168910e7cc7",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 13 10:31:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 13 10:43:32 2011 +0300"
      },
      "message": "UBIFS: fix oops when R/O file-system is fsync\u0027ed\n\nThis patch fixes severe UBIFS bug: UBIFS oopses when we \u0027fsync()\u0027 an\nfile on R/O-mounter file-system. We (the UBIFS authors) incorrectly\nthought that VFS would not propagate \u0027fsync()\u0027 down to the file-system\nif it is read-only, but this is not the case.\n\nIt is easy to exploit this bug using the following simple perl script:\n\nuse strict;\nuse File::Sync qw(fsync sync);\n\ndie \"File path is not specified\" if not defined $ARGV[0];\nmy $path \u003d $ARGV[0];\n\nopen FILE, \"\u003c\", \"$path\" or die \"Cannot open $path: $!\";\nfsync(\\*FILE) or die \"cannot fsync $path: $!\";\nclose FILE or die \"Cannot close $path: $!\";\n\nThanks to Reuben Dowle \u003cReuben.Dowle@navico.com\u003e for reporting about this\nissue.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReported-by: Reuben Dowle \u003cReuben.Dowle@navico.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "329c5056be8774255db04b01242a9ff4f02eb8ea",
      "tree": "a0aa0ebeb00644833b54df6274058c5a2aa8b7c4",
      "parents": [
        "3153495d8ed6a9bb9f00aea42c18dc488a885dd6"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Apr 13 14:07:59 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 13 14:25:35 2011 +0800"
      },
      "message": "Btrfs: Check validity before setting an acl\n\nCall posix_acl_valid() to check if an acl is valid or not.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "3153495d8ed6a9bb9f00aea42c18dc488a885dd6",
      "tree": "ee1b57cff9be737fee9d4e35290e3c6586785de8",
      "parents": [
        "b9e03af0bcc11310f6be4a3951c9ee2c26465011"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Apr 13 13:19:21 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 13 14:25:32 2011 +0800"
      },
      "message": "Btrfs: Fix incorrect inode nlink in btrfs_link()\n\nLink count of the inode is not decreased if btrfs_set_inode_index()\nfails.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSinged-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "b9e03af0bcc11310f6be4a3951c9ee2c26465011",
      "tree": "f7a89518879e38ae460f6b3c2e6cc9a32c7243bc",
      "parents": [
        "2e6a00356a066d34cd00872b067589549169ad48"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 10:43:58 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 13 14:25:31 2011 +0800"
      },
      "message": "Btrfs: Check if btrfs_next_leaf() returns error in btrfs_real_readdir()\n\nbtrfs_next_leaf() can return -errno, and we should propagate\nit to userspace.\n\nThis also simplifies how we walk the btree path.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "2e6a00356a066d34cd00872b067589549169ad48",
      "tree": "3fb780843d0f88b4e2939e33796eee5b96ae1716",
      "parents": [
        "109b36a2bb3eebf5c9994980e724958a5b2b62b6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Mar 17 15:17:59 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 13 14:25:28 2011 +0800"
      },
      "message": "Btrfs: Check if btrfs_next_leaf() returns error in btrfs_listxattr()\n\nbtrfs_next_leaf() can return -errno, and we should propagate\nit to userspace.\n\nThis also simplifies how we walk the btree path.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "109b36a2bb3eebf5c9994980e724958a5b2b62b6",
      "tree": "2f9211a615e24452d88040741d93f04714cfef34",
      "parents": [
        "874d0d2633e0f3fe955607c6b04d5fc5325781c4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 12 13:57:39 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 12 20:51:26 2011 -0400"
      },
      "message": "Btrfs: make uncache_state unconditional\n\nThe extent_io code can take cached pointers into the extent state trees,\nand these can make lookups much faster in common operations.  The\ncaching only happens when specific bits are set that prevent merging\nand splitting of the extent state.\n\nA help function was added to uncache the state, and it was testing\nthe same set of conditionals.  This can leak in very strange corner\ncases where the lock bit goes away unexpectedly.\n\nThe uncaching should be unconditional.  Once we have a ref on the\nextent we should always give it up.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c0d0e96b840dcc73f9b9d45bf8f405dbce72a079",
      "tree": "001b16eb41bf390bac014b4d76dc8ac91e6b4c13",
      "parents": [
        "561f0b0ad073859a87d22845ddfd9df149b22e5f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 12 12:29:15 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 12 19:34:23 2011 -0400"
      },
      "message": "NFS: Get rid of pointless test in nfs_commit_done\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "561f0b0ad073859a87d22845ddfd9df149b22e5f",
      "tree": "14ac040cb0f709854ba71513332b5b3871b87b4b",
      "parents": [
        "4b38a6db01b09198f4045661815a0039c3d80660"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Apr 12 08:47:15 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 12 19:34:23 2011 -0400"
      },
      "message": "NFS: Remove unused argument from nfs_find_best_sec()\n\nThe inode was used in an earlier version of the code, but it isn\u0027t\nused anymore.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b38a6db01b09198f4045661815a0039c3d80660",
      "tree": "cf298d705d7ac00f49fc02ea5e6ea3f0a17c109e",
      "parents": [
        "160bc1604f8a33202578846c9a63e2a61105a4b7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 11 11:56:23 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 12 19:34:22 2011 -0400"
      },
      "message": "NFS: Eliminate duplicate call to nfs_mark_request_dirty\n\nWe only need to call nfs_mark_request_dirty() once in nfs_writepage_setup().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "160bc1604f8a33202578846c9a63e2a61105a4b7",
      "tree": "55460a664616db57b89aaea7ff64bac69b7e4d97",
      "parents": [
        "6faf9a54156fb4d01d73344cc90cb52dda074433"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Apr 10 17:57:07 2011 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 12 19:34:21 2011 -0400"
      },
      "message": "NFS: Remove dead code from nfs_fs_mount()\n\nIn fs/nfs/super.c::nfs_fs_mount() we test for a NULL \u0027data\u0027:\n\n...\n \t\tif (data \u003d\u003d NULL || mntfh \u003d\u003d NULL)\n \t\t\tgoto out_free_fh;\n...\n\nand then further down in the function we test \u0027data\u0027 again:\n\n...\n \t\t\tnfs_fscache_get_super_cookie(\n \t\t\t\ts, data ? data-\u003efscache_uniq : NULL, NULL);\n...\n\nthis second check is just dead code since there is no way \u0027data\u0027 could\npossibly be NULL here.\nWe also rely on a non-NULL \u0027data\u0027 in more than one location between these\ntwo tests, further proving the point that the second test is bogus.\n\nThis patch removes the dead code.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6faf9a54156fb4d01d73344cc90cb52dda074433",
      "tree": "5b7e904314ea3d62ab79b04d6af63e6ac0ef8dee",
      "parents": [
        "d77d9597ad8f2bd381a5168005a21e82df6f18eb",
        "ca83ce3d5b9ad321ee24f5870a77f0b21ac5a5de"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 15:24:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 15:24:42 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: don\u0027t allow mmap\u0027ed pages to be dirtied while under writeback (try #3)\n  [CIFS] Warn on requesting default security (ntlm) on mount\n  [CIFS] cifs: clarify the meaning of tcpStatus \u003d\u003d CifsGood\n  cifs: wrap received signature check in srv_mutex\n  cifs: clean up various nits in unicode routines (try #2)\n  cifs: clean up length checks in check2ndT2\n  cifs: set ra_pages in backing_dev_info\n  cifs: fix broken BCC check in is_valid_oplock_break\n  cifs: always do is_path_accessible check in cifs_mount\n  various endian fixes to cifs\n  Elminate sparse __CHECK_ENDIAN__ warnings on port conversion\n  Max share size is too small\n  Allow user names longer than 32 bytes\n  cifs: replace /proc/fs/cifs/Experimental with a module parm\n  cifs: check for private_data before trying to put it\n"
    },
    {
      "commit": "0d88f6e804c824454b5ed0d3034ed3dcf7467a87",
      "tree": "3323e2860f7bf892c889270cf936a3c4a45f3b80",
      "parents": [
        "95042f9eb78a8d9a17455e2ef263f2f310ecef15"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Apr 12 19:18:08 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 12 14:17:24 2011 -0700"
      },
      "message": "nfs: don\u0027t call __mark_inode_dirty while holding i_lock\n\nnfs_scan_commit() is called with the inode-\u003ei_lock held, but it then\ncalls __mark_inode_dirty() while still holding the lock. This causes\na deadlock.\n\nPush the inode-\u003ei_lock into nfs_scan_commit() so it can protect only\nthe parts of the code it needs to and can be dropped before the call\nto __mark_inode_dirty() to avoid the deadlock.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nTested-by: Will Simoneau \u003csimoneau@ele.uri.edu\u003e\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": "ca83ce3d5b9ad321ee24f5870a77f0b21ac5a5de",
      "tree": "7added4d982e03c89599ef7c78c9b69845a7504d",
      "parents": [
        "d9b942013730c38ac83564d6669c6d0ecf6d754d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Apr 12 09:13:44 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Apr 12 14:19:55 2011 +0000"
      },
      "message": "cifs: don\u0027t allow mmap\u0027ed pages to be dirtied while under writeback (try #3)\n\nThis is more or less the same patch as before, but with some merge\nconflicts fixed up.\n\nIf a process has a dirty page mapped into its page tables, then it has\nthe ability to change it while the client is trying to write the data\nout to the server. If that happens after the signature has been\ncalculated then that signature will then be wrong, and the server will\nlikely reset the TCP connection.\n\nThis patch adds a page_mkwrite handler for CIFS that simply takes the\npage lock. Because the page lock is held over the life of writepage and\nwritepages, this prevents the page from becoming writeable until\nthe write call has completed.\n\nWith this, we can also remove the \"sign_zero_copy\" module option and\nalways inline the pages when writing.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    }
  ],
  "next": "d9b942013730c38ac83564d6669c6d0ecf6d754d"
}
