)]}'
{
  "log": [
    {
      "commit": "b108fe6b08f3f61c2c465649b20b7d4b4c185728",
      "tree": "9a6ec64da43419e90439a7716bdae35e9b27a48d",
      "parents": [
        "fc2952a2a9f724f7d200c69a2b059ec331a80363"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Apr 25 15:30:00 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 15:38:23 2012 -0400"
      },
      "message": "nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek\n\nThey\u0027re equivalent, but SEEK_SET is more informative...\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9dc4e6c4d1182d34604ea40fef641775f5b15456",
      "tree": "22b055349ea646026a97ea0b0cc7da32c18f26dd",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 09 18:06:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:49:52 2012 -0400"
      },
      "message": "nfsd: don\u0027t fail unchecked creates of non-special files\n\nAllow a v3 unchecked open of a non-regular file succeed as if it were a\nlookup; typically a client in such a case will want to fall back on a\nlocal open, so succeeding and giving it the filehandle is more useful\nthan failing with nfserr_exist, which makes it appear that nothing at\nall exists by that name.\n\nSimilarly for v4, on an open-create, return the same errors we would on\nan attempt to open a non-regular file, instead of returning\nnfserr_exist.\n\nThis fixes a problem found doing a v4 open of a symlink with\nO_RDONLY|O_CREAT, which resulted in the current client returning EEXIST.\n\nThanks also to Trond for analysis.\n\nCc: stable@kernel.org\nReported-by: Orion Poplawski \u003corion@cora.nwra.com\u003e\nTested-by: Orion Poplawski \u003corion@cora.nwra.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "71db34fc4330f7c784397acb9f1e6ee7f7b32eb2",
      "tree": "77dd08f6f778a799dcd0c48eb72d0742349df235",
      "parents": [
        "50483c3268918ee51a56d1baa39b9149d2d0d521",
        "797a9d797f8483bb67f265c761b76dcd5a077a23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from Bruce Fields:\n\nHighlights:\n - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,\n   moving us closer to a complete 4.1 implementation.\n - Bernd Schubert fixed a long-standing problem with readdir cookies on\n   ext2/3/4.\n - Jeff Layton performed a long-overdue overhaul of the server reboot\n   recovery code which will allow us to deprecate the current code (a\n   rather unusual user of the vfs), and give us some needed flexibility\n   for further improvements.\n - Like the client, we now support numeric uid\u0027s and gid\u0027s in the\n   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.\n\nPlus miscellaneous bugfixes and cleanup.\n\nThanks to everyone!\n\nThere are also some delegation fixes waiting on vfs review that I\nsuppose will have to wait for 3.5.  With that done I think we\u0027ll finally\nturn off the \"EXPERIMENTAL\" dependency for v4 (though that\u0027s mostly\nsymbolic as it\u0027s been on by default in distro\u0027s for a while).\n\nAnd the list of 4.1 todo\u0027s should be achievable for 3.5 as well:\n\n   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\nthough we may still want a bit more experience with it before turning it\non by default.\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux: (55 commits)\n  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n  nfsd4: use auth_unix unconditionally on backchannel\n  nfsd: fix NULL pointer dereference in cld_pipe_downcall\n  nfsd4: memory corruption in numeric_name_to_id()\n  sunrpc: skip portmap calls on sessions backchannel\n  nfsd4: allow numeric idmapping\n  nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n  nfsd: add the infrastructure to handle the cld upcall\n  nfsd: add a header describing upcall to nfsdcld\n  nfsd: add a per-net-namespace struct for nfsd\n  sunrpc: create nfsd dir in rpc_pipefs\n  nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n  nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n  NFSD: Fix nfs4_verifier memory alignment\n  NFSD: Fix warnings when NFSD_DEBUG is not defined\n  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n  nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n  ext4: return 32/64-bit dir name hash according to usage type\n  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash\n  ...\n"
    },
    {
      "commit": "68ac1234fb949b66941d94dce4157742799fc581",
      "tree": "04059b7dbaed92d672b8ceef1fcf25c6185e06f8",
      "parents": [
        "40ffe67d2e89c7a475421d007becc11a2f88ea3d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 15 08:21:57 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:41 2012 -0400"
      },
      "message": "switch touch_atime to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06effdbb49af5f6c7d20affaec74603914acc768",
      "tree": "6cb59cbb05565e6c23c8ecf5eb79618083f330f7",
      "parents": [
        "999448a8c0202d8c41711c92385323520644527b"
      ],
      "author": {
        "name": "Bernd Schubert",
        "email": "bernd.schubert@itwm.fraunhofer.de",
        "time": "Sun Mar 18 22:44:50 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 18 22:44:50 2012 -0400"
      },
      "message": "nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n\nUse 32-bit or 64-bit llseek() hashes for directory offsets depending on\nthe NFS version. NFSv2 gets 32-bit hashes only.\n\nNOTE: This patch got rather complex as Christoph asked to set the\nfilp-\u003ef_mode flag in the open call or immediatly after dentry_open()\nin nfsd_open() to avoid races.\nPersonally I still do not see a reason for that and in my opinion\nFMODE_32BITHASH/FMODE_64BITHASH flags could be set nfsd_readdir(), as it\nfollows directly after nfsd_open() without a chance of races.\n\nSigned-off-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: J. Bruce Fields\u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "999448a8c0202d8c41711c92385323520644527b",
      "tree": "50dc184cdbb8a695419636511429d1a2b6fc5568",
      "parents": [
        "d1f5273e9adb40724a85272f248f210dc4ce919a"
      ],
      "author": {
        "name": "Bernd Schubert",
        "email": "bernd.schubert@itwm.fraunhofer.de",
        "time": "Sun Mar 18 22:44:49 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 18 22:44:49 2012 -0400"
      },
      "message": "nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n\nJust rename this variable, as the next patch will add a flag and\n\u0027access\u0027 as variable name would not be correct any more.\n\nSigned-off-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: J. Bruce Fields\u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0b48d42235caf627121f440b57d376f48a9af8b6",
      "tree": "400967c5fcb1cd08bbc0e1739e229f9717590f19",
      "parents": [
        "8e63dd6e1c589ba99a18df9cbaa41c3178607641",
        "7a6ef8c72314f254c107c6a9ed7cb201961ee05a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:26:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:26:41 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-3.3\u0027 of git://linux-nfs.org/~bfields/linux: (31 commits)\n  nfsd4: nfsd4_create_clid_dir return value is unused\n  NFSD: Change name of extended attribute containing junction\n  svcrpc: don\u0027t revert to SVC_POOL_DEFAULT on nfsd shutdown\n  svcrpc: fix double-free on shutdown of nfsd after changing pool mode\n  nfsd4: be forgiving in the absence of the recovery directory\n  nfsd4: fix spurious 4.1 post-reboot failures\n  NFSD: forget_delegations should use list_for_each_entry_safe\n  NFSD: Only reinitilize the recall_lru list under the recall lock\n  nfsd4: initialize special stateid\u0027s at compile time\n  NFSd: use network-namespace-aware cache registering routines\n  SUNRPC: create svc_xprt in proper network namespace\n  svcrpc: update outdated BKL comment\n  nfsd41: allow non-reclaim open-by-fh\u0027s in 4.1\n  svcrpc: avoid memory-corruption on pool shutdown\n  svcrpc: destroy server sockets all at once\n  svcrpc: make svc_delete_xprt static\n  nfsd: Fix oops when parsing a 0 length export\n  nfsd4: Use kmemdup rather than duplicating its implementation\n  nfsd4: add a separate (lockowner, inode) lookup\n  nfsd4: fix CONFIG_NFSD_FAULT_INJECTION compile error\n  ...\n"
    },
    {
      "commit": "9b4146e85536ebd6b989f43906986e34486efdba",
      "tree": "907a6476f6106f890756fd3f8521d4c955762df2",
      "parents": [
        "9689dcce0b456793c46bdeea7a79adfab1bc9c5d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 04 16:26:43 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 05 15:35:57 2012 -0500"
      },
      "message": "NFSD: Change name of extended attribute containing junction\n\nAs of fedfs-utils-0.8.0, user space stores all NFS junction\ninformation in a single extended attribute: \"trusted.junction.nfs\".\n\nBoth FedFS and NFS basic junctions are stored in this one attribute,\nand the intention is that all future forms of NFS junction metadata\nwill be stored in this attribute.  Other protocols may use a different\nextended attribute.\n\nThus NFSD needs to look only for that one extended attribute.  The\n\"trusted.junction.type\" xattr is deprecated.  fedfs-utils-0.8.0 will\ncontinue to attach a \"trusted.junction.type\" xattr to junctions, but\nfuture fedfs-utils releases may no longer do that.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "175a4eb7ea531cdbf6d574f5d5ba9aa0f5e8ed13",
      "tree": "841812b19b8a5546e472be321b32ca58528b76c3",
      "parents": [
        "030a8ba48fa6fa2a1304bab5b0f49360613c4af2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:30:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:10 2012 -0500"
      },
      "message": "fs: propagate umode_t, misc bits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bad0dcffc21d17a07dbb83a2bf764f35a57feba5",
      "tree": "bb2ed8685bafc927df70307ba13df53469000255",
      "parents": [
        "a561be7100cd610bd2e082f3211c1dfb45835817"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 12:03:18 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "new helpers: fh_{want,drop}_write()\n\nA bunch of places in nfsd does mnt_{want,drop}_write on vfsmount of\nexport of given fhandle.  Switched to obvious inlined helpers...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "856121b2e83bd64bffdc8de449d24c9295e92ff3",
      "tree": "d60a777368fa48120a878407dd7abdcc780d2eba",
      "parents": [
        "4cdc951b8611de4ce25e35c9fb8c0656150c9245"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Oct 13 11:37:11 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 17 17:50:08 2011 -0400"
      },
      "message": "nfsd4: warn on open failure after create\n\nIf we create the object and then return failure to the client, we\u0027re\nleft with an unexpected file in the filesystem.\n\nI\u0027m trying to eliminate such cases but not 100% sure I have so an\nassertion might be helpful for now.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "11fcee0293a6d9f0973e04f8b3fb6cd15a55bcce",
      "tree": "f8d823a811d5806db67fe145ee79e24b279183cb",
      "parents": [
        "2f1ddda1749a223d1a05e16dc6ea28632b9ec570"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 12 19:37:26 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Sep 13 22:44:17 2011 -0400"
      },
      "message": "NFSD: Add a cache for fs_locations information\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ cel: since this is server-side, use nfsd4_ prefix instead of nfs4_ prefix. ]\n[ cel: implement S_ISVTX filter in bfields-normal form ]\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a043226bc140a2c1dde162246d68a67e5043e6b2",
      "tree": "8d2f2a52835d37150c0cae42787903793e57bd86",
      "parents": [
        "c10bd39d800d42adef55ed9016f802677cd0ab5f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 25 10:48:39 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Aug 27 14:20:20 2011 -0400"
      },
      "message": "nfsd4: permit read opens of executable-only files\n\nA client that wants to execute a file must be able to read it.  Read\nopens over nfs are therefore implicitly allowed for executable files\neven when those files are not readable.\n\nNFSv2/v3 get this right by using a passed-in NFSD_MAY_OWNER_OVERRIDE on\nread requests, but NFSv4 has gotten this wrong ever since\ndc730e173785e29b297aa605786c94adaffe2544 \"nfsd4: fix owner-override on\nopen\", when we realized that the file owner shouldn\u0027t override\npermissions on non-reclaim NFSv4 opens.\n\nSo we can\u0027t use NFSD_MAY_OWNER_OVERRIDE to tell nfsd_permission to allow\nreads of executable files.\n\nSo, do the same thing we do whenever we encounter another weird NFS\npermission nit: define yet another NFSD_MAY_* flag.\n\nThe industry\u0027s future standardization on 128-bit processors will be\nmotivated primarily by the need for integers with enough bits for all\nthe NFSD_MAY_* flags.\n\nReported-by: Leonardo Borda \u003cleonardoborda@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e281d8100995133dc65e00b1dec8f84b91b6e8c3",
      "tree": "c8c6d62daef31a0241f22b666265a6108a51ad0b",
      "parents": [
        "e10f9e1413576f58c18b89f6ae212a37a88b24e7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Aug 15 16:57:07 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 26 18:22:49 2011 -0400"
      },
      "message": "nfsd4: fix incorrect comment in nfsd4_set_nfs4_acl\n\nZero means \"I don\u0027t care what kind of file this is\".  And that\u0027s\nprobably what we want--acls are also settable at least on directories,\nand if the filesystem doesn\u0027t want them on other objects, leave it to it\nto complain.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7d818a7b8fc8d26c24ee44ed1c5dece69455a7b6",
      "tree": "660675f24b5dcb74630defb9a576d1cba6fb36a8",
      "parents": [
        "3d2544b1e4909b6dffa0d140273628913e255e45"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Aug 15 16:59:55 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 26 18:22:47 2011 -0400"
      },
      "message": "nfsd: open-code special directory-hardlink check\n\nWe allow the fh_verify caller to specify that any object *except* those\nof a given type is allowed, by passing a negative type.  But only one\ncaller actually uses it.  Open-code that check in the one caller.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "105f4622104848ff1ee1f644d661bef9dec3eb27",
      "tree": "b50b0fb47e9530b8d67cb8cfd717f7bbd7559138",
      "parents": [
        "7d751f6f8c679f51b73d01a1b5269347a929004c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jun 07 11:50:23 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 20 10:38:01 2011 -0400"
      },
      "message": "nfsd4: fix break_lease flags on nfsd open\n\nThanks to Casey Bodley for pointing out that on a read open we pass 0,\ninstead of O_RDONLY, to break_lease, with the result that a read open is\ntreated like a write open for the purposes of lease breaking!\n\nReported-by: Casey Bodley \u003ccbodley@citi.umich.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7d751f6f8c679f51b73d01a1b5269347a929004c",
      "tree": "d3197afcf1f8f241000eca04c45735fff973e70d",
      "parents": [
        "be1f4084b4824301e640e81d63b6275cd99ee6a1"
      ],
      "author": {
        "name": "Casey Bodley",
        "email": "cbodley@citi.umich.edu",
        "time": "Fri Jun 03 12:21:23 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jun 06 18:46:56 2011 -0400"
      },
      "message": "nfsd: link returns nfserr_delay when breaking lease\n\nfix for commit 4795bb37effb7b8fe77e2d2034545d062d3788a8, nfsd: break\nlease on unlink, link, and rename\n\nif the LINK operation breaks a delegation, it returns NFS4ERR_NOENT\n(which is not a valid error in rfc 5661) instead of NFS4ERR_DELAY.\nthe return value of nfsd_break_lease() in nfsd_link() must be\nconverted from host_err to err\n\nSigned-off-by: Casey Bodley \u003ccbodley@citi.umich.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a74d70b63f1a0230831bcca3145d85ae016f9d4c",
      "tree": "24392a2843b19e81a1a38d88b34e772bd688502b",
      "parents": [
        "b11b06d90a41766c2d31f0acb8a87aa0f2a7188f",
        "c47d832bc0155153920e507f075647519bad09a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd: make local functions static\n  NFSD: Remove unused variable from nfsd4_decode_bind_conn_to_session()\n  NFSD: Check status from nfsd4_map_bcts_dir()\n  NFSD: Remove setting unused variable in nfsd_vfs_read()\n  nfsd41: error out on repeated RECLAIM_COMPLETE\n  nfsd41: compare request\u0027s opcnt with session\u0027s maxops at nfsd4_sequence\n  nfsd v4.1 lOCKT clientid field must be ignored\n  nfsd41: add flag checking for create_session\n  nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n  nfsd4: fix wrongsec handling for PUTFH + op cases\n  nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n  nfsd4: introduce OPDESC helper\n  nfsd4: allow fh_verify caller to skip pseudoflavor checks\n  nfsd: distinguish functions of NFSD_MAY_* flags\n  svcrpc: complete svsk processing on cb receive failure\n  svcrpc: take advantage of tcp autotuning\n  SUNRPC: Don\u0027t wait for full record to receive tcp data\n  svcrpc: copy cb reply instead of pages\n  svcrpc: close connection if client sends short packet\n  svcrpc: note network-order types in svc_process_calldir\n  ...\n"
    },
    {
      "commit": "fccb13c947de83a368e1f3c2216bbf4d8d41efa1",
      "tree": "48f4ce535e1e34e610cf0eb4b6127db76e7b6a55",
      "parents": [
        "bcecf1ccc336200ee488e8eb68acdafc4b0dbd1a"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 27 15:47:14 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:57 2011 -0400"
      },
      "message": "NFSD: Remove setting unused variable in nfsd_vfs_read()\n\nCompiling gave me this warning:\nfs/nfsd/vfs.c: In function ‘nfsd_vfs_read’:\nfs/nfsd/vfs.c:880:16: warning: variable ‘inode’ set but not used\n[-Wunused-but-set-variable]\n\nI discovered that a local variable \"inode\" was being set towards the\nbeginning of nfsd_vfs_read() and then ignored for the rest of the\nfunction.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ac6721a13e5b1a90728e790600f827a5e5f5da2f",
      "tree": "f39f1faaaa4059956d8fde5fbb29fc5500d1e513",
      "parents": [
        "68d93184352f2e723f135b0a9bad93b58f9d120b"
      ],
      "author": {
        "name": "Mi Jinlong",
        "email": "mijinlong@cn.fujitsu.com",
        "time": "Wed Apr 20 17:06:25 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Apr 29 20:47:52 2011 -0400"
      },
      "message": "nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n\nThe NFS server uses nfsd_create_v3 to handle EXCLUSIVE4_1 opens, but\nthat function is not prepared to handle them.\n\nRename nfsd_create_v3() to do_nfsd_create(), and add handling of\nEXCLUSIVE4_1.\n\nSigned-off-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\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": "29a78a3ed7fc9c4ee49962751eb321b038c190a2",
      "tree": "88798f9c1a4247fa7de6bb7f698cbd47213895ac",
      "parents": [
        "22b03214962ec2a9748abc9987fc2e66dec4626d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Apr 09 11:28:53 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:22 2011 -0400"
      },
      "message": "nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n\nThe secinfo caller actually won\u0027t want this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "aea93397db4b39c9d15443a0e7cc9a380ba990c6",
      "tree": "fe98a2b9f48b814c0d911d5ff1d700a7465f40d3",
      "parents": [
        "8985ef0b8af895c3b85a8c1b7108e0169fcbd20b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Apr 10 10:35:12 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Apr 11 08:42:03 2011 -0400"
      },
      "message": "nfsd: distinguish functions of NFSD_MAY_* flags\n\nMost of the NFSD_MAY_* flags actually request permissions, but over the\nyears we\u0027ve accreted a few that modify the behavior of the permission or\nopen code in other ways.\n\nDistinguish the two cases a little more.  In particular, allow the\nshortcut at the start of nfsd_permission to ignore the\nnon-permission-requesting bits.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "dc87c55120b0a5b0c4d731183f8bb348981aba65",
      "tree": "c5a4f94ed6cc1678072c125f2cae08f04ce4f2b8",
      "parents": [
        "5818fcc8bd1b27af4d40b8357b91a56cc3fae6a4",
        "4be34b9d69c97211ff4eb00d79078f3c1593804d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 08:20:39 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  SUNRPC: Remove resource leak in svc_rdma_send_error()\n  nfsd: wrong index used in inner loop\n  nfsd4: fix comment and remove unused nfsd4_file fields\n  nfs41: make sure nfs server return right ca_maxresponsesize_cached\n  nfsd: fix compile error\n  svcrpc: fix bad argument in unix_domain_find\n  nfsd4: fix struct file leak\n  nfsd4: minor nfs4state.c reshuffling\n  svcrpc: fix rare race on unix_domain creation\n  nfsd41: modify the members value of nfsd4_op_flags\n  nfsd: add proc file listing kernel\u0027s gss_krb5 enctypes\n  gss:krb5 only include enctype numbers in gm_upcall_enctypes\n  NFSD, VFS: Remove dead code in nfsd_rename()\n  nfsd: kill unused macro definition\n  locks: use assign_type()\n"
    },
    {
      "commit": "7cc90cc3ffe22a0d81b8d605b20a82ec7911012d",
      "tree": "a870fc960dd10a12be6fb905ea266c65547c11bb",
      "parents": [
        "b12cea9198fa99ffd3de1776c323bc7464d26b44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 18 09:04:20 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 18 09:04:20 2011 -0400"
      },
      "message": "don\u0027t pass \u0027mounting_here\u0027 flag to follow_down()\n\nit\u0027s always false now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46d4cef9cf54f2f8b15216e3f6dad69750c69e0c",
      "tree": "43996e82b91a206579d57b99c620be40e78a3f95",
      "parents": [
        "35079582e72efcabf7c70f3d3ee4f96e6f196606"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Mar 06 00:30:35 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 12:05:14 2011 -0500"
      },
      "message": "NFSD, VFS: Remove dead code in nfsd_rename()\n\nCurrently we have the following code in fs/nfsd/vfs.c::nfsd_rename() :\n\n\t...\n\thost_err \u003d nfsd_break_lease(odentry-\u003ed_inode);\n\tif (host_err)\n\t\tgoto out_drop_write;\n\tif (ndentry-\u003ed_inode) {\n\t\thost_err \u003d nfsd_break_lease(ndentry-\u003ed_inode);\n\t\tif (host_err)\n\t\t\tgoto out_drop_write;\n\t}\n\tif (host_err)\n\t\tgoto out_drop_write;\n\t...\n\n\u0027host_err\u0027 is guaranteed to be 0 by the time we test \u0027ndentry-\u003ed_inode\u0027.\nIf \u0027host_err\u0027 becomes !\u003d 0 inside the \u0027if\u0027 statement, then we goto\n\u0027out_drop_write\u0027. So, after the \u0027if\u0027 statement there is no way that\n\u0027host_err\u0027 can be anything but 0, so the test afterwards is just dead\ncode.\nThis patch removes the dead code.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "83f6b0c18204f68961f58b9f69e5dba0d36056a2",
      "tree": "87d08d398b61bee64a2ebc5a538f57f752c6c0d9",
      "parents": [
        "acfdf5c383b38f7f4dddae41b97c97f1ae058f49"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Feb 06 16:46:30 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd: break lease on unlink due to rename\n\n4795bb37effb7b8fe77e2d2034545d062d3788a8 \"nfsd: break lease on unlink,\nlink, and rename\", only broke the lease on the file that was being\nrenamed, and didn\u0027t handle the case where the target path refers to an\nalready-existing file that will be unlinked by a rename--in that case\nthe target file should have any leases broken as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3aa6e0aa8ab3e64bbfba092c64d42fd1d006b124",
      "tree": "d86305c39f790e90c51f4095b26157053538d2a5",
      "parents": [
        "0af3f814ccf0a13d3e01e8115b96f1824379fc72"
      ],
      "author": {
        "name": "Konstantin Khorenko",
        "email": "khorenko@parallels.com",
        "time": "Tue Feb 01 17:16:29 2011 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "NFSD: memory corruption due to writing beyond the stat array\n\nIf nfsd fails to find an exported via NFS file in the readahead cache, it\nshould increment corresponding nfsdstats counter (ra_depth[10]), but due to a\nbug it may instead write to ra_depth[11], corrupting the following field.\n\nIn a kernel with NFSDv4 compiled in the corruption takes the form of an\nincrement of a counter of the number of NFSv4 operation 0\u0027s received; since\nthere is no operation 0, this is harmless.\n\nIn a kernel with NFSDv4 disabled it corrupts whatever happens to be in the\nmemory beyond nfsdstats.\n\nSigned-off-by: Konstantin Khorenko \u003ckhorenko@openvz.org\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "541ce98c10111dae7604543dda6c6f7e7a6015d8",
      "tree": "007ffb90e9992569030905a5f0df82e7a0f839f4",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 20:00:02 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:31:08 2011 -0500"
      },
      "message": "nfsd: don\u0027t leak dentry count on mnt_want_write failure\n\nThe exit cleanup isn\u0027t quite right here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f8206b925fb0eba3a11839419be118b09105d7b1",
      "tree": "5d41b356a043da09c816ed80bd79d1ea8b2b47e5",
      "parents": [
        "1b59be2a6cdcb5a12e18d8315c07c94a624de48f",
        "f03c65993b98eeb909a4012ce7833c5857d74755"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)\n  sanitize vfsmount refcounting changes\n  fix old umount_tree() breakage\n  autofs4: Merge the remaining dentry ops tables\n  Unexport do_add_mount() and add in follow_automount(), not -\u003ed_automount()\n  Allow d_manage() to be used in RCU-walk mode\n  Remove a further kludge from __do_follow_link()\n  autofs4: Bump version\n  autofs4: Add v4 pseudo direct mount support\n  autofs4: Fix wait validation\n  autofs4: Clean up autofs4_free_ino()\n  autofs4: Clean up dentry operations\n  autofs4: Clean up inode operations\n  autofs4: Remove unused code\n  autofs4: Add d_manage() dentry operation\n  autofs4: Add d_automount() dentry operation\n  Remove the automount through follow_link() kludge code from pathwalk\n  CIFS: Use d_automount() rather than abusing follow_link()\n  NFS: Use d_automount() rather than abusing follow_link()\n  AFS: Use d_automount() rather than abusing follow_link()\n  Add an AT_NO_AUTOMOUNT flag to suppress terminal automount\n  ...\n"
    },
    {
      "commit": "cc53ce53c86924bfe98a12ea20b7465038a08792",
      "tree": "3c9a4923dd9f413c46bfa83a20cb579446df6deb",
      "parents": [
        "9875cf806403fae66b2410a3c2cc820d97731e04"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:26 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:31 2011 -0500"
      },
      "message": "Add a dentry op to allow processes to be held during pathwalk transit\n\nAdd a dentry op (d_manage) to permit a filesystem to hold a process and make it\nsleep when it tries to transit away from one of that filesystem\u0027s directories\nduring a pathwalk.  The operation is keyed off a new dentry flag\n(DCACHE_MANAGE_TRANSIT).\n\nThe filesystem is allowed to be selective about which processes it holds and\nwhich it permits to continue on or prohibits from transiting from each flagged\ndirectory.  This will allow autofs to hold up client processes whilst letting\nits userspace daemon through to maintain the directory or the stuff behind it\nor mounted upon it.\n\nThe -\u003ed_manage() dentry operation:\n\n\tint (*d_manage)(struct path *path, bool mounting_here);\n\ntakes a pointer to the directory about to be transited away from and a flag\nindicating whether the transit is undertaken by do_add_mount() or\ndo_move_mount() skipping through a pile of filesystems mounted on a mountpoint.\n\nIt should return 0 if successful and to let the process continue on its way;\n-EISDIR to prohibit the caller from skipping to overmounted filesystems or\nautomounting, and to use this directory; or some other error code to return to\nthe user.\n\n-\u003ed_manage() is called with namespace_sem writelocked if mounting_here is true\nand no other locks held, so it may sleep.  However, if mounting_here is true,\nit may not initiate or wait for a mount or unmount upon the parameter\ndirectory, even if the act is actually performed by userspace.\n\nWithin fs/namei.c, follow_managed() is extended to check with d_manage() first\non each managed directory, before transiting away from it or attempting to\nautomount upon it.\n\nfollow_down() is renamed follow_down_one() and should only be used where the\nfilesystem deliberately intends to avoid management steps (e.g. autofs).\n\nA new follow_down() is added that incorporates the loop done by all other\ncallers of follow_down() (do_add/move_mount(), autofs and NFSD; whilst AFS, NFS\nand CIFS do use it, their use is removed by converting them to use\nd_automount()).  The new follow_down() calls d_manage() as appropriate.  It\nalso takes an extra parameter to indicate if it is being called from mount code\n(with namespace_sem writelocked) which it passes to d_manage().  follow_down()\nignores automount points so that it can be used to mount on them.\n\n__follow_mount_rcu() is made to abort rcu-walk mode if it hits a directory with\nDCACHE_MANAGE_TRANSIT set on the basis that we\u0027re probably going to have to\nsleep.  It would be possible to enter d_manage() in rcu-walk mode too, and have\nthat determine whether to abort or not itself.  That would allow the autofs\ndaemon to continue on in rcu-walk mode.\n\nNote that DCACHE_MANAGE_TRANSIT on a directory should be cleared when it isn\u0027t\nrequired as every tranist from that directory will cause d_manage() to be\ninvoked.  It can always be set again when necessary.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWHAT THIS MEANS FOR AUTOFS\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAutofs currently uses the lookup() inode op and the d_revalidate() dentry op to\ntrigger the automounting of indirect mounts, and both of these can be called\nwith i_mutex held.\n\nautofs knows that the i_mutex will be held by the caller in lookup(), and so\ncan drop it before invoking the daemon - but this isn\u0027t so for d_revalidate(),\nsince the lock is only held on _some_ of the code paths that call it.  This\nmeans that autofs can\u0027t risk dropping i_mutex from its d_revalidate() function\nbefore it calls the daemon.\n\nThe bug could manifest itself as, for example, a process that\u0027s trying to\nvalidate an automount dentry that gets made to wait because that dentry is\nexpired and needs cleaning up:\n\n\tmkdir         S ffffffff8014e05a     0 32580  24956\n\tCall Trace:\n\t [\u003cffffffff885371fd\u003e] :autofs4:autofs4_wait+0x674/0x897\n\t [\u003cffffffff80127f7d\u003e] avc_has_perm+0x46/0x58\n\t [\u003cffffffff8009fdcf\u003e] autoremove_wake_function+0x0/0x2e\n\t [\u003cffffffff88537be6\u003e] :autofs4:autofs4_expire_wait+0x41/0x6b\n\t [\u003cffffffff88535cfc\u003e] :autofs4:autofs4_revalidate+0x91/0x149\n\t [\u003cffffffff80036d96\u003e] __lookup_hash+0xa0/0x12f\n\t [\u003cffffffff80057a2f\u003e] lookup_create+0x46/0x80\n\t [\u003cffffffff800e6e31\u003e] sys_mkdirat+0x56/0xe4\n\nversus the automount daemon which wants to remove that dentry, but can\u0027t\nbecause the normal process is holding the i_mutex lock:\n\n\tautomount     D ffffffff8014e05a     0 32581      1              32561\n\tCall Trace:\n\t [\u003cffffffff80063c3f\u003e] __mutex_lock_slowpath+0x60/0x9b\n\t [\u003cffffffff8000ccf1\u003e] do_path_lookup+0x2ca/0x2f1\n\t [\u003cffffffff80063c89\u003e] .text.lock.mutex+0xf/0x14\n\t [\u003cffffffff800e6d55\u003e] do_rmdir+0x77/0xde\n\t [\u003cffffffff8005d229\u003e] tracesys+0x71/0xe0\n\t [\u003cffffffff8005d28d\u003e] tracesys+0xd5/0xe0\n\nwhich means that the system is deadlocked.\n\nThis patch allows autofs to hold up normal processes whilst the daemon goes\nahead and does things to the dentry tree behind the automouter point without\nrisking a deadlock as almost no locks are held in d_manage() and none in\nd_automount().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nWas-Acked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "4795bb37effb7b8fe77e2d2034545d062d3788a8",
      "tree": "1c87d2880d5552005cd7e845594672d0b4babc7f",
      "parents": [
        "6a76bebefe15d9a08864f824d7f8d5beaf37c997"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 13:55:46 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:09 2011 -0500"
      },
      "message": "nfsd: break lease on unlink, link, and rename\n\nAny change to any of the links pointing to an entry should also break\ndelegations.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6a76bebefe15d9a08864f824d7f8d5beaf37c997",
      "tree": "d52ae82116e8681c094f62f70cdb12b654dd9f29",
      "parents": [
        "9ce137eee4febaabca81143be07d4205d2bd52d4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 12:54:39 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:08 2011 -0500"
      },
      "message": "nfsd4: break lease on nfsd setattr\n\nLeases (delegations) should really be broken on any metadata change, not\njust on size change.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9ce137eee4febaabca81143be07d4205d2bd52d4",
      "tree": "e52e5225e1d113164382bf85bca83a2c0330d64e",
      "parents": [
        "9ee1ba5402e9d35fb35f8e61c968f4987b5fb443"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 11 14:07:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jan 13 21:04:07 2011 -0500"
      },
      "message": "nfsd: don\u0027t support msnfs export option\n\nWe\u0027ve long had these pointless #ifdef MSNFS\u0027s sprinkled throughout the\ncode--pointless because MSNFS is always defined (and we give no config\noption to make that easy to change).  So we could just remove the\nifdef\u0027s and compile the resulting code unconditionally.\n\nBut as long as we\u0027re there: why not just rip out this code entirely?\nThe only purpose is to implement the \"msnfs\" export option which turns\non Windows-like behavior in some cases, and:\n\n\t- the export option isn\u0027t documented anywhere;\n\t- the userland utilities (which would need to be able to parse\n\t  \"msnfs\" in an export file) don\u0027t support it;\n\t- I don\u0027t know how to maintain this, as I don\u0027t know what the\n\t  proper behavior is; and\n\t- google shows no evidence that anyone has ever used this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2ca72e17e5acb1052c35c9faba609c2289ce7a92",
      "tree": "fc93ed7824a22a9492f408a2f2143ac795afc741",
      "parents": [
        "f6af99ec1b261e21219d5eba99e3af48fc6c32d4"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 17:37:15 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 18:22:09 2011 -0500"
      },
      "message": "nfsd4: move idmap and acl header files into fs/nfsd\n\nThese are internal nfsd interfaces.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "da165dd60e136d0609e0a2c0c2a9b9a5372200d6",
      "tree": "e6cb7540b6233d447be9ff29cc6a20c357249b35",
      "parents": [
        "062304a815fe10068c478a4a3f28cf091c55cb82"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Jan 02 22:13:18 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jan 04 16:49:23 2011 -0500"
      },
      "message": "nfsd: remove some unnecessary dropit handling\n\nWe no longer need a few of these special cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3603b8eaccc8e41d3f355b3cadd662a3dd6699fd",
      "tree": "7aaf66e8b6dceddd96ade80e451f09982fb2c977",
      "parents": [
        "e61eb2e93fe86931d46831752a82dab25a5335ca"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Dec 20 09:15:19 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Dec 20 09:15:19 2010 +0100"
      },
      "message": "Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n\nCommit a8adbe3 forgot to remove the return variable, kill it.\n\ndrivers/block/loop.c: In function \u0027lo_splice_actor\u0027:\ndrivers/block/loop.c:398: warning: unused variable \u0027ret\u0027\n[...]\nfs/nfsd/vfs.c: In function \u0027nfsd_splice_actor\u0027:\nfs/nfsd/vfs.c:848: warning: unused variable \u0027ret\u0027\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "a8adbe378b56acd5945df70753c7e8f6fe223304",
      "tree": "afbaae1cb71be95f342f6638bfe2d3f1e22dd9a4",
      "parents": [
        "e4ea0c16a85d221ebcc3a21f32e321440459e0fc"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Fri Dec 17 08:56:44 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Dec 17 08:56:44 2010 +0100"
      },
      "message": "fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n\nThis patch pulls calls to buf-\u003eops-\u003econfirm() from all actors passed\n(also indirectly) to splice_from_pipe_feed().\n\nIs avoiding the call to buf-\u003eops-\u003econfirm() while splice()ing to\n/dev/null is an intentional optimization? No other user does that\nand this will remove this special case.\n\nAgainst current linux.git 6313e3c21743cc88bb5bd8aa72948ee1e83937b6.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c37650161a53c01ddd88587675f9a4adc909a73e",
      "tree": "85821998de9a6723dedc42488b9491db9692d1e3",
      "parents": [
        "81fca444001e5a41ab80ce8cf9a5734c00ec6546"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 06 10:48:20 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:18:19 2010 -0400"
      },
      "message": "fs: add sync_inode_metadata\n\nAdd a new helper to write out the inode using the writeback code,\nthat is including the correct dirty bit and list manipulation.  A few\nof filesystems already opencode this, and a lot of others should be\nusing it instead of using write_inode_now which also writes out the\ndata.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6360efb83cd6dd1476cd758834c8277508c1f15",
      "tree": "e57015159bf6f361d45050f28a8da7beaceaea60",
      "parents": [
        "f632265d0ffb5acf331252d98c64939849d96bb2"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Aug 13 15:53:49 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Aug 26 13:23:16 2010 -0400"
      },
      "message": "nfsd: fix NULL dereference in nfsd_statfs()\n\nThe commit ebabe9a9001af0af56c0c2780ca1576246e7a74b\n    pass a struct path to vfs_statfs\nintroduced the struct path initialization, and this seems to trigger\nan Oops on my machine.\n\nfh_dentry field may be NULL and set later in fh_verify(), thus the\ninitialization of path must be after fh_verify().\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8c8946f509a494769a8c602b5ed189df01917d39",
      "tree": "dfd96bd6ca5ea6803c6d77f65ba37e04f78b2d3b",
      "parents": [
        "5f248c9c251c60af3403902b26e08de43964ea0b",
        "1968f5eed54ce47bde488fd9a450912e4a2d7138"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:39:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:39:13 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify: (132 commits)\n  fanotify: use both marks when possible\n  fsnotify: pass both the vfsmount mark and inode mark\n  fsnotify: walk the inode and vfsmount lists simultaneously\n  fsnotify: rework ignored mark flushing\n  fsnotify: remove global fsnotify groups lists\n  fsnotify: remove group-\u003emask\n  fsnotify: remove the global masks\n  fsnotify: cleanup should_send_event\n  fanotify: use the mark in handler functions\n  audit: use the mark in handler functions\n  dnotify: use the mark in handler functions\n  inotify: use the mark in handler functions\n  fsnotify: send fsnotify_mark to groups in event handling functions\n  fsnotify: Exchange list heads instead of moving elements\n  fsnotify: srcu to protect read side of inode and vfsmount locks\n  fsnotify: use an explicit flag to indicate fsnotify_destroy_mark has been called\n  fsnotify: use _rcu functions for mark list traversal\n  fsnotify: place marks on object in order of group memory address\n  vfs/fsnotify: fsnotify_close can delay the final work in fput\n  fsnotify: store struct file not struct path\n  ...\n\nFix up trivial delete/modify conflict in fs/notify/inotify/inotify.c.\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "ebabe9a9001af0af56c0c2780ca1576246e7a74b",
      "tree": "b263299f575c650b6e9d95c7c4bdeef958af2fc9",
      "parents": [
        "336fb3b97b78edc65bae0b223b83bf676cfe29e2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 07 18:53:11 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:42 2010 -0400"
      },
      "message": "pass a struct path to vfs_statfs\n\nWe\u0027ll need the path to implement the flags field for statvfs support.\nWe do have it available in all callers except:\n\n - ecryptfs_statfs.  This one doesn\u0027t actually need vfs_statfs but just\n   needs to do a caller to the lower filesystem statfs method.\n - sys_ustat.  Add a non-exported statfs_by_dentry helper for it which\n   doesn\u0027t won\u0027t be able to fill out the flags field later on.\n\nIn addition rename the helpers for statfs vs fstatfs to do_*statfs instead\nof the misleading vfs prefix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d9f9e122c74583de15a86d1c660c08dc298f2c8",
      "tree": "a04ad387e231db43db112753fa2eae23754189a9",
      "parents": [
        "df44f9f4f9b5d362b5a2d1c8444fe7e6d4c42653",
        "998db52c03cd293d16a457f1b396cea932244147"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:24:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:24:41 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux: (34 commits)\n  nfsd4: fix file open accounting for RDWR opens\n  nfsd: don\u0027t allow setting maxblksize after svc created\n  nfsd: initialize nfsd versions before creating svc\n  net: sunrpc: removed duplicated #include\n  nfsd41: Fix a crash when a callback is retried\n  nfsd: fix startup/shutdown order bug\n  nfsd: minor nfsd read api cleanup\n  gcc-4.6: nfsd: fix initialized but not read warnings\n  nfsd4: share file descriptors between stateid\u0027s\n  nfsd4: fix openmode checking on IO using lock stateid\n  nfsd4: miscellaneous process_open2 cleanup\n  nfsd4: don\u0027t pretend to support write delegations\n  nfsd: bypass readahead cache when have struct file\n  nfsd: minor nfsd_svc() cleanup\n  nfsd: move more into nfsd_startup()\n  nfsd: just keep single lockd reference for nfsd\n  nfsd: clean up nfsd_create_serv error handling\n  nfsd: fix error handling in __write_ports_addxprt\n  nfsd: fix error handling when starting nfsd with rpcbind down\n  nfsd4: fix v4 state shutdown error paths\n  ...\n"
    },
    {
      "commit": "039a87ca536a85bc169ce092e44bd57adfa1f563",
      "tree": "015ddd79fb489241b0171ce3c863353ae6c03522",
      "parents": [
        "69049961014992f50b10d6c3cd3cd172d4aae5ac"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jul 30 11:33:32 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jul 30 12:54:54 2010 -0400"
      },
      "message": "nfsd: minor nfsd read api cleanup\n\nChristoph points that the NFSv2/v3 callers know which case they want\nhere, so we may as well just call the file\u003dNULL case directly instead of\nmaking this conditional.\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "69049961014992f50b10d6c3cd3cd172d4aae5ac",
      "tree": "d6717d7bc3eae733374cc9acb3a278a82498dced",
      "parents": [
        "f9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jul 20 15:24:27 2010 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jul 29 19:32:17 2010 -0400"
      },
      "message": "gcc-4.6: nfsd: fix initialized but not read warnings\n\nFixes at least one real minor bug: the nfs4 recovery dir sysctl\nwould not return its status properly.\n\nAlso I finished Al\u0027s 1e41568d7378d (\"Take ima_path_check() in nfsd\npast dentry_open() in nfsd_open()\") commit, it moved the IMA\ncode, but left the old path initializer in there.\n\nThe rest is just dead code removed I think, although I was not\nfully sure about the \"is_borc\" stuff. Some more review\nwould be still good.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2a12a9d7814631e918dec93abad856e692d5286d",
      "tree": "12817004ae9667bf83f869606f38050636edeb61",
      "parents": [
        "8112e2d6a7356e8c3ff1f7f3c86f375ed0305705"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Dec 17 21:24:21 2009 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 28 09:58:32 2010 -0400"
      },
      "message": "fsnotify: pass a file instead of an inode to open, read, and write\n\nfanotify, the upcoming notification system actually needs a struct path so it can\ndo opens in the context of listeners, and it needs a file so it can get f_flags\nfrom the original process.  Close was the only operation that already was passing\na struct file to the notification hook.  This patch passes a file for access,\nmodify, and open as well as they are easily available to these hooks.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "fa0a21269f807bb2e95b8b642c4a739714780172",
      "tree": "ce469ff0ce6bcc7373b17fc90d1451cb93883bf2",
      "parents": [
        "af4718f3f996925f770e540004ec9224243d1682"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jul 27 16:48:54 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jul 27 18:15:54 2010 -0400"
      },
      "message": "nfsd: bypass readahead cache when have struct file\n\nThe readahead cache compensates for the fact that the NFS server\ncurrently does an open and close on every IO operation in the NFSv2 and\nNFSv3 case.\n\nIn the NFSv4 case we have long-lived struct files associated with client\nopens, so there\u0027s no need for this.  In fact, concurrent IO\u0027s using\ntrying to modify the same file-\u003ef_ra may cause problems.\n\nSo, don\u0027t bother with the readahead cache in that case.\n\nNote eventually we\u0027ll likely do this in the v2/v3 case as well by\nkeeping a cache of struct files instead of struct file_ra_state\u0027s.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "55b13354d789dcf0b85db6d86fc3a9e57dca02c1",
      "tree": "54a3039de3de7fc2c532fdf8ece577a894aacea4",
      "parents": [
        "43a9aa64a2f4330a9cb59aaf5c5636566bce067c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jul 19 16:38:24 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jul 23 08:50:39 2010 -0400"
      },
      "message": "nfsd: remove unused assignment from nfsd_link\n\nTrivial cleanup, since \"dest\" is never used.\n\nReported-by: Anshul Madan \u003cAnshul.Madan@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "6a85d6c76962db769bb2f2cb11b17b16f32c4158",
      "tree": "65388abfab32f42d5ce3699b01638cc16f6085d5",
      "parents": [
        "8eab945c5616fc984e97b922d6a2559be93f39a1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 06 12:39:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 06 12:40:22 2010 -0400"
      },
      "message": "nfsd4: comment nitpick\n\nReported-by: \"Madan, Anshul\" \u003cAnshul.Madan@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b95a56809343fb727c818ad1b9da14a17fa92ef6",
      "tree": "b79ff0d36f216fcadce546aa33219e06f1126b58",
      "parents": [
        "a7f5378e2449fc8ae3f92739a6cc2239748ef86a",
        "44b56603c4c476b845a824cff6fe905c6268b2a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 09 12:43:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 09 12:43:04 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.35\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.35\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd4: shut down callback queue outside state lock\n  nfsd: nfsd_setattr needs to call commit_metadata\n"
    },
    {
      "commit": "44b56603c4c476b845a824cff6fe905c6268b2a1",
      "tree": "b7e792414fef2390718a657765719fbbb529ce84",
      "parents": [
        "c3935e30495869dd611e1cd62253c94ebc7c6c04",
        "b160fdabe93a8a53094f90f02bf4dcb500782aab"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 08 20:05:18 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 08 20:05:18 2010 -0400"
      },
      "message": "Merge branch \u0027for-2.6.34-incoming\u0027 into for-2.6.35-incoming\n"
    },
    {
      "commit": "b160fdabe93a8a53094f90f02bf4dcb500782aab",
      "tree": "b9d91c54bd22b5d059479ba69c7a732a90d566ac",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jun 01 21:59:18 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jun 01 19:17:50 2010 -0400"
      },
      "message": "nfsd: nfsd_setattr needs to call commit_metadata\n\nThe conversion of write_inode_now calls to commit_metadata in commit\nf501912a35c02eadc55ca9396ece55fe36f785d0 missed out the call in nfsd_setattr.\n\nBut without this conversion we can\u0027t guarantee that a SETATTR request\nhas actually been commited to disk with XFS, which causes a regression\nfrom 2.6.32 (only for NFSv2, but anyway).\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5306293c9cd2caf41849cc909281bda628bb989e",
      "tree": "3be4e8231e2772c8a43ddbef5c6a72c20b3054bb",
      "parents": [
        "dbd65a7e44fff4741a0b2c84bd6bace85d22c242",
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:27:05 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:29:05 2010 -0400"
      },
      "message": "Merge commit \u0027v2.6.34-rc6\u0027\n\nConflicts:\n\tfs/nfsd/nfs4callback.c\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "91885258e8343bb65c08f668d7e6c16563eb4284",
      "tree": "3178dabadca5342d63cc1d20ea843539a180aa94",
      "parents": [
        "61f8603d93fa0b0e2f73be7a4f048696417a24a3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Mar 19 08:06:28 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 22 15:37:53 2010 -0400"
      },
      "message": "nfsd: don\u0027t break lease while servicing a COMMIT\n\nThis is the second attempt to fix the problem whereby a COMMIT call\ncauses a lease break and triggers a possible deadlock.\n\nThe problem is that nfsd attempts to break a lease on a COMMIT call.\nThis triggers a delegation recall if the lease is held for a delegation.\nIf the client is the one holding the delegation and it\u0027s the same one on\nwhich it\u0027s issuing the COMMIT, then it can\u0027t return that delegation\nuntil the COMMIT is complete. But, nfsd won\u0027t complete the COMMIT until\nthe delegation is returned. The client and server are essentially\ndeadlocked until the state is marked bad (due to the client not\nresponding on the callback channel).\n\nThe first patch attempted to deal with this by eliminating the open of\nthe file altogether and simply had nfsd_commit pass a NULL file pointer\nto the vfs_fsync_range. That would conflict with some work in progress\nby Christoph Hellwig to clean up the fsync interface, so this patch\ntakes a different approach.\n\nThis declares a new NFSD_MAY_NOT_BREAK_LEASE access flag that indicates\nto nfsd_open that it should not break any leases when opening the file,\nand has nfsd_commit set that flag on the nfsd_open call.\n\nFor now, this patch leaves nfsd_commit opening the file with write\naccess since I\u0027m not clear on what sort of access would be more\nappropriate.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "05c5cb31ec47cacf38db56d9efaa37ca9d473132",
      "tree": "03f900679819abd8700d5ea93c22e3a59d3af7ca",
      "parents": [
        "4582a30c2fdca5d2b40f63a20ea082b93230ff2b",
        "4ea41e2de5bba756858bb40f964e3490b6d1a25c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd4: fix minor memory leak\n  svcrpc: treat uid\u0027s as unsigned\n  nfsd: ensure sockets are closed on error\n  Revert \"sunrpc: move the close processing after do recvfrom method\"\n  Revert \"sunrpc: fix peername failed on closed listener\"\n  sunrpc: remove unnecessary svc_xprt_put\n  NFSD: NFSv4 callback client should use RPC_TASK_SOFTCONN\n  xfs_export_operations.commit_metadata\n  commit_metadata export operation replacing nfsd_sync_dir\n  lockd: don\u0027t clear sm_monitored on nsm_reboot_lookup\n  lockd: release reference to nsm_handle in nlm_host_rebooted\n  nfsd: Use vfs_fsync_range() in nfsd_commit\n  NFSD: Create PF_INET6 listener in write_ports\n  SUNRPC: NFS kernel APIs shouldn\u0027t return ENOENT for \"transport not found\"\n  SUNRPC: Bury \"#ifdef IPV6\" in svc_create_xprt()\n  NFSD: Support AF_INET6 in svc_addsock() function\n  SUNRPC: Use rpc_pton() in ip_map_parse()\n  nfsd: 4.1 has an rfc number\n  nfsd41: Create the recovery entry for the NFSv4.1 client\n  nfsd: use vfs_fsync for non-directories\n  ...\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4ea41e2de5bba756858bb40f964e3490b6d1a25c",
      "tree": "51a688be321dd42f80d8a0c966eb6a60408d50b3",
      "parents": [
        "8d75da8afd068fa58b35e69c7c8c46770d9e7a98",
        "398007f863a4af2b4a5a07219c5a617f1a098115"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 12:03:16 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 12:04:51 2010 -0500"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs into for-2.6.34-incoming\n\nResolve merge conflict in fs/xfs/linux-2.6/xfs_export.c.\n"
    },
    {
      "commit": "8737c9305bd5602b11f7eb4655d5695d4a42a0c6",
      "tree": "54038cac1135b039a292151ebe9b156f80904843",
      "parents": [
        "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:47:55 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:21 2010 -0500"
      },
      "message": "Switch may_open() and break_lease() to passing O_...\n\n... instead of mixing FMODE_ and O_\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f501912a35c02eadc55ca9396ece55fe36f785d0",
      "tree": "f5d6f66d2ad14910e3c2c3d6725cac9402f37c1a",
      "parents": [
        "7e469af97eed947ba9204712601281a69ae8eb6c"
      ],
      "author": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 17 14:05:11 2010 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 20 13:13:44 2010 -0800"
      },
      "message": "commit_metadata export operation replacing nfsd_sync_dir\n\n- Add commit_metadata export_operation to allow the underlying filesystem to\ndecide how to commit an inode most efficiently.\n\n- Usage of nfsd_sync_dir and write_inode_now has been replaced with the\ncommit_metadata function that takes a svc_fh.\n\n- The commit_metadata function calls the commit_metadata export_op if it\u0027s\nthere, or else falls back to sync_inode instead of fsync and write_inode_now\nbecause only metadata need be synced here.\n\n- nfsd4_sync_rec_dir now uses vfs_fsync so that commit_metadata can be static\n\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aeaa5ccd6421fbf9e7ded0ac67b12ea2b9fcf51e",
      "tree": "f614a33edbd3daab32d616446eb45a526e68d21b",
      "parents": [
        "4e70af56319e56423d6eb1ce25fc321cdf8cd41d"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Mon Feb 15 18:07:39 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 20 00:47:31 2010 -0500"
      },
      "message": "vfs: don\u0027t call ima_file_check() unconditionally in nfsd_open()\n\ncommit 1e41568d7378d1ba8c64ba137b9ddd00b59f893a (\"Take ima_path_check()\nin nfsd past dentry_open() in nfsd_open()\") moved this code back to its\noriginal location but missed the \"else\".\n\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9bbb6cad0173e6220f3ac609e26beb48dab3b7cd",
      "tree": "680e0de3071c938ca9858fa9ed5bd5ca8ff2f20f",
      "parents": [
        "54bb6552bd9405dc7685653157a4ec260c77a71c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Jan 26 17:02:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "ima: rename ima_path_check to ima_file_check\n\nima_path_check actually deals with files!  call it ima_file_check instead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8eb988c70e7709b7bd1a69f0ec53d19ac20dea84",
      "tree": "6d0283a9fbca5cc104f591b9cc628edf39bc0b05",
      "parents": [
        "1e41568d7378d1ba8c64ba137b9ddd00b59f893a"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Jan 20 15:35:41 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "fix ima breakage\n\nThe \"Untangling ima mess, part 2 with counters\" patch messed\nup the counters.  Based on conversations with Al Viro, this patch\nstreamlines ima_path_check() by removing the counter maintaince.\nThe counters are now updated independently, from measuring the file,\nin __dentry_open() and alloc_file() by calling ima_counts_get().\nima_path_check() is called from nfsd and do_filp_open().\nIt also did not measure all files that should have been measured.\nReason: ima_path_check() got bogus value passed as mask.\n[AV: mea culpa]\n[AV: add missing nfsd bits]\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1e41568d7378d1ba8c64ba137b9ddd00b59f893a",
      "tree": "755987f08fe2cc44dbdac089eb18a21ec844f179",
      "parents": [
        "4b06e5b9ad8abb20105b2b25e42c509ebe9b2d76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 26 05:43:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "Take ima_path_check() in nfsd past dentry_open() in nfsd_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa696a6f349638428982bb52763f4cda851632fa",
      "tree": "0a539326e81aa2eaacb2a57c9882d37e988058b3",
      "parents": [
        "37498292aa97658a5d0a9bb84699ce8c1016bb74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 29 16:44:25 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jan 29 18:53:11 2010 -0500"
      },
      "message": "nfsd: Use vfs_fsync_range() in nfsd_commit\n\nThe NFS COMMIT operation allows the client to specify the exact byte range\nthat it wishes to sync to disk in order to optimise server performance.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6a68f89ee1f2d177af4a5410fa7a45734c975fd6",
      "tree": "1a462b27a4d783d1b6a368bf6cf9c7970f93b8ae",
      "parents": [
        "de3cab793c6a5c8505d66bee111edcc7098380ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:45:13 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 13 09:42:26 2010 -0500"
      },
      "message": "nfsd: use vfs_fsync for non-directories\n\nInstead of opencoding the fsync calling sequence use vfs_fsync.  This also\ngets rid of the useless i_mutex over the data writeout.\n\nConsolidate the remaining special code for syncing directories and document\nit\u0027s quirks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "93939f4e5df30e6229a0b5257fdcaf3faf88471c",
      "tree": "f30acb3e4a35ea96b342f3b1dd25700e7b531def",
      "parents": [
        "b1c0ec8966fa79891b796f58bf2bda1026ca5566",
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  sunrpc: fix peername failed on closed listener\n  nfsd: make sure data is on disk before calling -\u003efsync\n  nfsd: fix \"insecure\" export option\n"
    },
    {
      "commit": "7211a4e859ad070b28545c06e0a6cb60b3b8aa31",
      "tree": "2a769132446f73cf593661428e68d7086168a5b2",
      "parents": [
        "f69ac2f5a36948e1adf071074414c5d1907b89b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:44:45 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 06 17:37:26 2010 -0500"
      },
      "message": "nfsd: make sure data is on disk before calling -\u003efsync\n\nnfsd is not using vfs_fsync, so I missed it when changing the calling\nconvention during the 2.6.32 window.  This patch fixes it to not only\nstart the data writeout, but also wait for it to complete before calling\ninto -\u003efsync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bac5e54c29f352d962a2447d22735316b347b9f1",
      "tree": "7642993fa93164835ffaa2dacd341388193f1979",
      "parents": [
        "529e89430d6c0d64db8ac474cb95e68e2527c79a",
        "c05c4edd876b7ae92787d1295868afcb89b6a348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)\n  direct I/O fallback sync simplification\n  ocfs: stop using do_sync_mapping_range\n  cleanup blockdev_direct_IO locking\n  make generic_acl slightly more generic\n  sanitize xattr handler prototypes\n  libfs: move EXPORT_SYMBOL for d_alloc_name\n  vfs: force reval of target when following LAST_BIND symlinks (try #7)\n  ima: limit imbalance msg\n  Untangling ima mess, part 3: kill dead code in ima\n  Untangling ima mess, part 2: deal with counters\n  Untangling ima mess, part 1: alloc_file()\n  O_TRUNC open shouldn\u0027t fail after file truncation\n  ima: call ima_inode_free ima_inode_free\n  IMA: clean up the IMA counts updating code\n  ima: only insert at inode creation time\n  ima: valid return code from ima_inode_alloc\n  fs: move get_empty_filp() deffinition to internal.h\n  Sanitize exec_permission_lite()\n  Kill cached_lookup() and real_lookup()\n  Kill path_lookup_open()\n  ...\n\nTrivial conflicts in fs/direct-io.c\n"
    },
    {
      "commit": "1429b3eca23818f87f9fa569a15d9816de81f698",
      "tree": "3100f009ec8863ee4692ee197b8e0c16c11258e6",
      "parents": [
        "b65a9cfc2c38eebc33533280b8ad5841caee8b6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:38:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 3: kill dead code in ima\n\nKill the \u0027update\u0027 argument of ima_path_check(), kill\ndead code in ima.\n\nCurrent rules: ima counters are bumped at the same time\nwhen the file switches from put_filp() fodder to fput()\none.  Which happens exactly in two places - alloc_file()\nand __dentry_open().  Nothing else needs to do that at\nall.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b65a9cfc2c38eebc33533280b8ad5841caee8b6e",
      "tree": "d6e5b713615cc5e65c900162ab09235ae4847909",
      "parents": [
        "0552f879d45cecc35d8e372a591fc5ed863bca58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:27:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 2: deal with counters\n\n* do ima_get_count() in __dentry_open()\n* stop doing that in followups\n* move ima_path_check() to right after nameidata_to_filp()\n* don\u0027t bump counters on it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7663dacd926584093dfc350892792054692b6cb3",
      "tree": "3300005fc836d8a6661d758212289963f850d728",
      "parents": [
        "1557aca7904ed6fadd22cdc3364754070bb3d3c3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:49:00 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:47 2009 -0500"
      },
      "message": "nfsd: remove pointless paths in file headers\n\nThe new .h files have paths at the top that are now out of date.  While\nwe\u0027re here, just remove all of those from fs/nfsd; they never served any\npurpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03a816b46d7eba78da11e4025f0af195b32fa464",
      "tree": "5069e9183dd5535c61bc7eff8a8a03202a19568d",
      "parents": [
        "f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:06:05 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: restrict filehandles accepted in V4ROOT case\n\nOn V4ROOT exports, only accept filehandles that are the *root* of some\nexport.  This allows mountd to allow or deny access to individual\ndirectories and symlinks on the pseudofilesystem.\n\nNote that the checks in readdir and lookup are not enough, since a\nmalicious host with access to the network could guess filehandles that\nthey weren\u0027t able to obtain through lookup or readdir.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3227fa41abc191384fa81b3bcf52aa7fccb31536",
      "tree": "f50512f2feecfc2fde13b0843cbbfb87728e2442",
      "parents": [
        "82ead7fe41da960ed80652d13d5a1072f85f5aca"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:43:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: filter readdir results in V4ROOT case\n\nAs with lookup, we treat every boject as a mountpoint and pretend it\ndoesn\u0027t exist if it isn\u0027t exported.\n\nThe preexisting code here is confusing, but I haven\u0027t yet figured out\nhow to make it clearer.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "82ead7fe41da960ed80652d13d5a1072f85f5aca",
      "tree": "b4f870c1c6ef0e66ceca68be03a8e4eb3b139e2e",
      "parents": [
        "3b6cee7bc4b2f7858e9202293104acda8826bb68"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:33:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd: filter lookup results in V4ROOT case\n\nWe treat every object as a mountpoint and pretend it doesn\u0027t exist if\nit isn\u0027t exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3b6cee7bc4b2f7858e9202293104acda8826bb68",
      "tree": "52a1775073ef330a307ec6d81bc2da4d419a71b4",
      "parents": [
        "eb4c86c6a5adec423c9e615d4937fdddd06a16c5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:18:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd4: don\u0027t continue \"under\" mounts in V4ROOT case\n\nIf /A/mount/point/ has filesystem \"B\" mounted on top of it, and if \"A\"\nis exported, but not \"B\", then the nfs server has always returned to the\nclient a filehandle for the mountpoint, instead of for the root of \"B\",\nallowing the client to see the subtree of \"A\" that would otherwise be\nhidden by B.\n\nDisable this behavior in the case of V4ROOT exports; we implement the\npath restrictions of V4ROOT exports by treating *every* directory as if\nit were a mountpoint, and allowing traversal *only* if the new directory\nis exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a74af21330c8d46efa977d088a62cc1bfa954e9",
      "tree": "6f2e4b775738ae93da05ad475b244785bf40461e",
      "parents": [
        "68590c382b875cc9a76b06097f3dff6730d787c1"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:30:56 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:12 2009 -0500"
      },
      "message": "nfsd: Move private headers to source directory\n\nLots of include/linux/nfsd/* headers are only used by\nnfsd module. Move them to the source directory\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "341eb184469f8e4a6841fc49a57ad4a27e51c335",
      "tree": "df6b06cc5b15ae421b589865fc008df1219589a4",
      "parents": [
        "72579ac9cd68081108277c31781b127d0f420d61"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:29:12 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:09 2009 -0500"
      },
      "message": "nfsd: Source files #include cleanups\n\nNow that the headers are fixed and carry their own wait, all fs/nfsd/\nsource files can include a minimal set of headers. and still compile just\nfine.\n\nThis patch should improve the compilation speed of the nfsd module.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0a3adadee42f2865bb867b8c5f4955b7def9baad",
      "tree": "de98be9152faba8ea38bae24a7f5cce33ae99148",
      "parents": [
        "ea4878a24d7e6a467d369b962bab95bd6a12cbe0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 04 18:12:35 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Nov 13 13:23:02 2009 -0500"
      },
      "message": "nfsd: make fs/nfsd/vfs.h for common includes\n\nNone of this stuff is used outside nfsd, so move it out of the common\nlinux include directory.\n\nActually, probably none of the stuff in include/linux/nfsd/nfsd.h really\nbelongs there, so later we may remove that file entirely.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "289ede453e5a621de19c61e630302b1845cc1d59",
      "tree": "0935cb943ed716441e22cea668ef60bc3bb2e3cf",
      "parents": [
        "fed83811269d0f559d2da9139e12c5e5d9874d5c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Sep 26 20:32:24 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:07:53 2009 -0400"
      },
      "message": "nfsd: minor nfsd_lookup cleanup\n\nBreak out some of nfsd_lookup_dentry into helper functions.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fed83811269d0f559d2da9139e12c5e5d9874d5c",
      "tree": "148843d2c71b54ec556a46702c3a0e3e8d1056d4",
      "parents": [
        "03d6a74b5f85ff46f20e1382982b7f4860f5fec6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Sep 26 16:53:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 28 12:07:52 2009 -0400"
      },
      "message": "nfsd4: cross mountpoints when looking up parents\n\n3c394ddaa7ea4205f933fd9b481166b2669368a9 \"nfsd4: nfsv4 clients should\ncross mountpoints\" forgot to handle lookups of parents directories.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
      "tree": "f8e3cb2d339d8ed0e987d55f725e501730cdc81d",
      "parents": [
        "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
        "3c394ddaa7ea4205f933fd9b481166b2669368a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux: (68 commits)\n  nfsd4: nfsv4 clients should cross mountpoints\n  nfsd: revise 4.1 status documentation\n  sunrpc/cache: avoid variable over-loading in cache_defer_req\n  sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req\n  nfsd: return success for non-NFS4 nfs4_state_start\n  nfsd41: Refactor create_client()\n  nfsd41: modify nfsd4.1 backchannel to use new xprt class\n  nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n  nfsd41: Backchannel: cb_sequence callback\n  nfsd41: Backchannel: Setup sequence information\n  nfsd41: Backchannel: Server backchannel RPC wait queue\n  nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n  nfsd41: Backchannel: callback infrastructure\n  nfsd4: use common rpc_cred for all callbacks\n  nfsd4: allow nfs4 state startup to fail\n  SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous\n  nfsd4: fix null dereference creating nfsv4 callback client\n  nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n  nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n  sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.\n  ...\n"
    },
    {
      "commit": "3c394ddaa7ea4205f933fd9b481166b2669368a9",
      "tree": "6c1cfe2fefe0959c4eeb5b43e1c9f151ee1e2df3",
      "parents": [
        "285a0f00c27a02f1223a198c88de2130e9bab059"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:02:40 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 21 16:02:25 2009 -0400"
      },
      "message": "nfsd4: nfsv4 clients should cross mountpoints\n\nAllow NFS v4 clients to seamlessly cross mount point without\nhave to set either the \u0027crossmnt\u0027 or the \u0027nohide\u0027 export\noptions.\n\nSigned-Off-By: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e0e817392b9acf2c98d3be80c233dddb1b52003d",
      "tree": "ee680c020039313c9f9c40ab3542bb30a7363381",
      "parents": [
        "ed6d76e4c32de0c2ad5f1d572b948ef49e465176"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:13:40 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:01 2009 +1000"
      },
      "message": "CRED: Add some configurable debugging [try #6]\n\nAdd a config option (CONFIG_DEBUG_CREDENTIALS) to turn on some debug checking\nfor credential management.  The additional code keeps track of the number of\npointers from task_structs to any given cred struct, and checks to see that\nthis number never exceeds the usage count of the cred struct (which includes\nall references, not just those from task_structs).\n\nFurthermore, if SELinux is enabled, the code also checks that the security\npointer in the cred struct is never seen to be invalid.\n\nThis attempts to catch the bug whereby inode_has_perm() faults in an nfsd\nkernel thread on seeing cred-\u003esecurity be a NULL pointer (it appears that the\ncredential struct has been previously released):\n\n\thttp://www.kerneloops.org/oops.php?number\u003d252883\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "033a666ccb842ab4134fcd0c861d5ba9f5d6bf3a",
      "tree": "95da0764ea928ce4f821023e23a25001297c7bf3",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 02 14:35:32 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jul 03 10:21:10 2009 -0400"
      },
      "message": "NFSD: Don\u0027t hold unrefcounted creds over call to nfsd_setuser()\n\nnfsd_open() gets an unrefcounted pointer to the current process\u0027s effective\ncredentials at the top of the function, then calls nfsd_setuser() via\nfh_verify() - which may replace and destroy the current process\u0027s effective\ncredentials - and then passes the unrefcounted pointer to dentry_open() - but\nthe credentials may have been destroyed by this point.\n\nInstead, the value from current_cred() should be passed directly to\ndentry_open() as one of its arguments, rather than being cached in a variable.\n\nPossibly fh_verify() should return the creds to use.\n\nThis is a regression introduced by\n745ca2475a6ac596e3d8d37c2759c0fbe2586227 \"CRED: Pass credentials through\ndentry_open()\".\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-and-Verified-By: Steve Dickson \u003csteved@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e0338c0de18c50f09aea1fbef45110cf7d64a3c",
      "tree": "30a935c1f6eee7125a9fbb802a33292b1f7268fa",
      "parents": [
        "df36b439c5fedefe013d4449cb6a50d15e2f4d70",
        "47fcb03fefee2501e79176932a4184fc24d6f8ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd\n\n* \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd: (60 commits)\n  SUNRPC: Fix the TCP server\u0027s send buffer accounting\n  nfsd41: Backchannel: minorversion support for the back channel\n  nfsd41: Backchannel: cleanup nfs4.0 callback encode routines\n  nfsd41: Remove ip address collision detection case\n  nfsd: optimise the starting of zero threads when none are running.\n  nfsd: don\u0027t take nfsd_mutex twice when setting number of threads.\n  nfsd41: sanity check client drc maxreqs\n  nfsd41: move channel attributes from nfsd4_session to a nfsd4_channel_attr struct\n  NFS: kill off complicated macro \u0027PROC\u0027\n  sunrpc: potential memory leak in function rdma_read_xdr\n  nfsd: minor nfsd_vfs_write cleanup\n  nfsd: Pull write-gathering code out of nfsd_vfs_write\n  nfsd: track last inode only in use_wgather case\n  sunrpc: align cache_clean work\u0027s timer\n  nfsd: Use write gathering only with NFSv2\n  NFSv4: kill off complicated macro \u0027PROC\u0027\n  NFSv4: do exact check about attribute specified\n  knfsd: remove unreported filehandle stats counters\n  knfsd: fix reply cache memory corruption\n  knfsd: reply cache cleanups\n  ...\n"
    },
    {
      "commit": "e4636d535e32768c8c500641ddb144f56e3dc5c0",
      "tree": "207cbe50efc428f4c5d07641d6da9c27d79d00ea",
      "parents": [
        "d911df7b8d44de41661363a4e29ee710180ba025"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 19:07:13 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 19:18:34 2009 -0700"
      },
      "message": "nfsd: minor nfsd_vfs_write cleanup\n\nThere\u0027s no need to check host_err \u003e\u003d 0 every time here when we could\ncheck host_err \u003c 0 once, following the usual kernel style.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d911df7b8d44de41661363a4e29ee710180ba025",
      "tree": "c1a7513dfd46e9cfc9b464c82de2666b406e6deb",
      "parents": [
        "9d2a3f31d6d7832cd441eeda08bc2266cdd5d972"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 16:03:53 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:54:05 2009 -0700"
      },
      "message": "nfsd: Pull write-gathering code out of nfsd_vfs_write\n\nThis is a relatively self-contained piece of code that handles a special\ncase--move it to its own function.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9d2a3f31d6d7832cd441eeda08bc2266cdd5d972",
      "tree": "c2089263f2d68ff9c5174ebea96ef0cbcb085682",
      "parents": [
        "6aad89c8376e432231b78d1bdbcc10ef7708b011"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:47:56 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:52:47 2009 -0700"
      },
      "message": "nfsd: track last inode only in use_wgather case\n\nUpdating last_ino and last_dev probably isn\u0027t useful in the !use_wgather\ncase.\n\nAlso remove some pointless ifdef\u0027d-out code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "48e03bc515cff75718de5460458680a230ae997e",
      "tree": "d8c3095c15e362e574b82b962ebf26f7589dc412",
      "parents": [
        "7eef4091a653c243a87e5375c54504cc03bec4d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Fri Jun 05 12:35:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Jun 15 18:14:57 2009 -0700"
      },
      "message": "nfsd: Use write gathering only with NFSv2\n\nNFSv3 and above can use unstable writes whenever they are sending more\nthan one write, rather than relying on the flaky write gathering\nheuristics. More often than not, write gathering is currently getting it\nwrong when the NFSv3 clients are sending a single write with FILE_SYNC\nfor efficiency reasons.\n\nThis patch turns off write gathering for NFSv3/v4, and ensures that\nit only applies to the one case that can actually benefit: namely NFSv2.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e64c390ca0b60fd2119331ef1fa888d7ea27e424",
      "tree": "f1fc964af0abc20b2325cea513cbafdf09537c39",
      "parents": [
        "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:00:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_parent()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f",
      "tree": "ee26e614577b079102327393832b2ed503a4b527",
      "parents": [
        "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:42:05 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f"
}
