)]}'
{
  "log": [
    {
      "commit": "419f4319495043a9507ac3e616be9ca60af09744",
      "tree": "0f747d80d11a6d4cd726ad6556839d5cd40b23ac",
      "parents": [
        "fb21affa49204acd409328415b49bfe90136653c",
        "6eccece90b6addf80ef9e6db79b0bc873301034b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:32:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 08:32:58 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull the rest of the nfsd commits from Bruce Fields:\n \"... and then I cherry-picked the remainder of the patches from the\n  head of my previous branch\"\n\nThis is the rest of the original nfsd branch, rebased without the\ndelegation stuff that I thought really needed to be redone.\n\nI don\u0027t like rebasing things like this in general, but in this situation\nthis was the lesser of two evils.\n\n* \u0027for-3.5\u0027 of git://linux-nfs.org/~bfields/linux: (50 commits)\n  nfsd4: fix, consolidate client_has_state\n  nfsd4: don\u0027t remove rebooted client record until confirmation\n  nfsd4: remove some dprintk\u0027s and a comment\n  nfsd4: return \"real\" sequence id in confirmed case\n  nfsd4: fix exchange_id to return confirm flag\n  nfsd4: clarify that renewing expired client is a bug\n  nfsd4: simpler ordering of setclientid_confirm checks\n  nfsd4: setclientid: remove pointless assignment\n  nfsd4: fix error return in non-matching-creds case\n  nfsd4: fix setclientid_confirm same_cred check\n  nfsd4: merge 3 setclientid cases to 2\n  nfsd4: pull out common code from setclientid cases\n  nfsd4: merge last two setclientid cases\n  nfsd4: setclientid/confirm comment cleanup\n  nfsd4: setclientid remove unnecessary terms from a logical expression\n  nfsd4: move rq_flavor into svc_cred\n  nfsd4: stricter cred comparison for setclientid/exchange_id\n  nfsd4: move principal name into svc_cred\n  nfsd4: allow removing clients not holding state\n  nfsd4: rearrange exchange_id logic to simplify\n  ...\n"
    },
    {
      "commit": "a00b6151a2ae4c52576c35d3998e144a993d50b8",
      "tree": "fc312be05c4deb4dead7a6afa09e88017d3a0146",
      "parents": [
        "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
        "b108fe6b08f3f61c2c465649b20b7d4b4c185728"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd update from Bruce Fields.\n\n* \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux: (23 commits)\n  nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek\n  SUNRPC: split upcall function to extract reusable parts\n  nfsd: allocate id-to-name and name-to-id caches in per-net operations.\n  nfsd: make name-to-id cache allocated per network namespace context\n  nfsd: make id-to-name cache allocated per network namespace context\n  nfsd: pass network context to idmap init/exit functions\n  nfsd: allocate export and expkey caches in per-net operations.\n  nfsd: make expkey cache allocated per network namespace context\n  nfsd: make export cache allocated per network namespace context\n  nfsd: pass pointer to export cache down to stack wherever possible.\n  nfsd: pass network context to export caches init/shutdown routines\n  Lockd: pass network namespace to creation and destruction routines\n  NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches\n  nfsd: pass pointer to expkey cache down to stack wherever possible.\n  nfsd: use hash table from cache detail in nfsd export seq ops\n  nfsd: pass svc_export_cache pointer as private data to \"exports\" seq file ops\n  nfsd: use exp_put() for svc_export_cache put\n  nfsd: use cache detail pointer from svc_export structure on cache put\n  nfsd: add link to owner cache detail to svc_export structure\n  nfsd: use passed cache_detail pointer expkey_parse()\n  ...\n"
    },
    {
      "commit": "6eccece90b6addf80ef9e6db79b0bc873301034b",
      "tree": "89ca95d5ea308a87c0162fdc23950e1612f5b3d6",
      "parents": [
        "b9831b59f31eca65e1beec01fadf02ca82485813"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 16:37:44 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:39 2012 -0400"
      },
      "message": "nfsd4: fix, consolidate client_has_state\n\nWhoops: first, I reimplemented the already-existing has_resources\nwithout noticing; second, I got the test backwards.  I did pick a better\nname, though.  Combine the two....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b9831b59f31eca65e1beec01fadf02ca82485813",
      "tree": "b3fb99210c6033f55dd8112549322d54c3d3bcc6",
      "parents": [
        "32f16b3823b854a1f73bfad43782fbbcfe086090"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 14:44:28 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:34 2012 -0400"
      },
      "message": "nfsd4: don\u0027t remove rebooted client record until confirmation\n\nIn the NFSv4.1 client-reboot case we\u0027re currently removing the client\u0027s\nprevious state in exchange_id.  That\u0027s wrong--we should be waiting till\nthe confirming create_session.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "32f16b3823b854a1f73bfad43782fbbcfe086090",
      "tree": "1ea8f6980351f646ac1c21408717ac804f68bb2b",
      "parents": [
        "778df3f0feaeb03ebf9f370cba8437491ffa889f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue May 29 14:26:30 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:31 2012 -0400"
      },
      "message": "nfsd4: remove some dprintk\u0027s and a comment\n\nThe comment is redundant, and if we really want dprintk\u0027s here they\u0027d\nprobably be better in the common (check-slot_seqid) code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "778df3f0feaeb03ebf9f370cba8437491ffa889f",
      "tree": "d1459666a0db61d07c631787b446243a8c1ae08a",
      "parents": [
        "0f1ba0ef213193aecf9baf8b4a3919cff4907e5d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 25 21:40:23 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:27 2012 -0400"
      },
      "message": "nfsd4: return \"real\" sequence id in confirmed case\n\nThe client should ignore the returned sequence_id in the case where the\nCONFIRMED flag is set on an exchange_id reply--and in the unconfirmed\ncase \"1\" is always the right response.  So it shouldn\u0027t actually matter\nwhat we return here.\n\nWe could continue returning 1 just to catch clients ignoring the spec\nhere, but I\u0027d rather be generous.  Other things equal, returning the\nexisting sequence_id seems more informative.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "0f1ba0ef213193aecf9baf8b4a3919cff4907e5d",
      "tree": "378038d3254fdba35c798a7eb542fc2226c9b956",
      "parents": [
        "7447758be712e891aa4c57f8fa11902ccfdff151"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 25 21:24:40 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:21 2012 -0400"
      },
      "message": "nfsd4: fix exchange_id to return confirm flag\n\nOtherwise nfsd4_set_ex_flags writes over the return flags.\n\nReported-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7447758be712e891aa4c57f8fa11902ccfdff151",
      "tree": "9764abcab312590c1ede8981a7e69998955bbfdb",
      "parents": [
        "90d700b7792a1a7d57554620796df46246e26ce6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 04 14:57:52 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:14 2012 -0400"
      },
      "message": "nfsd4: clarify that renewing expired client is a bug\n\nThis can\u0027t happen:\n\t- cl_time is zeroed only by unhash_client_locked, which is only\n\t  ever called under both the state lock and the client lock.\n\t- every caller of renew_client() should have looked up a\n\t  (non-expired) client and then called renew_client() all\n\t  without dropping the state lock.\n\t- the only other caller of renew_client_locked() is\n\t  release_session_client(), which first checks under the\n\t  client_lock that the cl_time is nonzero.\n\nSo make it clear that this is a bug, not something we handle.  I can\u0027t\nquite bring myself to make this a BUG(), though, as there are a lot of\nrenew_client() callers, and returning here is probably safer than a\nBUG().\n\nWe\u0027ll consider making it a BUG() after some more cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "90d700b7792a1a7d57554620796df46246e26ce6",
      "tree": "aaea6476800b50552166505938932cd9dc98e93c",
      "parents": [
        "f3d03b9202e4303f0e687f93ffeab87724f6dcfb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 19 13:55:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:07 2012 -0400"
      },
      "message": "nfsd4: simpler ordering of setclientid_confirm checks\n\nThe cases here divide into two main categories:\n\n\t- if there\u0027s an uncomfirmed record with a matching verifier,\n\t  then this is a \"normal\", succesful case: we\u0027re either creating\n\t  a new client, or updating an existing one.\n\t- otherwise, this is a weird case: a replay, or a server reboot.\n\nReordering to reflect that makes the code a bit more concise and the\nlogic a lot easier to understand.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f3d03b9202e4303f0e687f93ffeab87724f6dcfb",
      "tree": "4415438ebc609e35d6a908149f6d6053b5d1a5b7",
      "parents": [
        "8695b90ac3c37278010c76ab3680f35ab358caf9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed May 23 11:38:38 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:06 2012 -0400"
      },
      "message": "nfsd4: setclientid: remove pointless assignment\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8695b90ac3c37278010c76ab3680f35ab358caf9",
      "tree": "6376644c7d8f6c0c36874c0388400dc5f1e41fac",
      "parents": [
        "788c1eba50133777df5ca2972cda3c9a8f78f52f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 19 10:05:58 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:04 2012 -0400"
      },
      "message": "nfsd4: fix error return in non-matching-creds case\n\nNote CLID_INUSE is for the case where two clients are trying to use the\nsame client-provided long-form client identifiers.  But what we\u0027re\nlooking at here is the server-returned shorthand client id--if those\nclash there\u0027s a bug somewhere.\n\nFix the error return, pull the check out into common code, and do the\ncheck unconditionally in all cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "788c1eba50133777df5ca2972cda3c9a8f78f52f",
      "tree": "c1b9c1e4a47e52cd854272aec9d5dfc22bfd3313",
      "parents": [
        "34b232bb3742dc88eef7352da2ca018f51ac4561"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:42:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:03 2012 -0400"
      },
      "message": "nfsd4: fix setclientid_confirm same_cred check\n\nNew clients are created only by nfsd4_setclientid(), which always gives\nany new client a unique clientid.  The only exception is in the\n\"callback update\" case, in which case it may create an unconfirmed\nclient with the same clientid as a confirmed client.  In that case it\nalso checks that the confirmed client has the same credential.\n\nTherefore, it is pointless for setclientid_confirm to check whether a\nconfirmed and unconfirmed client with the same clientid have matching\ncredentials--they\u0027re guaranteed to.\n\nInstead, it should be checking whether the credential on the\nsetclientid_confirm matches either of those.  Otherwise, it could be\nanyone sending the setclientid_confirm.  Granted, I can\u0027t see why anyone\nwould, but still it\u0027s probalby safer to check.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "34b232bb3742dc88eef7352da2ca018f51ac4561",
      "tree": "469c41eb6e86d9205560c154cdfe3b8a03d33a79",
      "parents": [
        "8f9307119d7fb2f2c04fce27aa492d30e7ac4518"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:23:42 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:02 2012 -0400"
      },
      "message": "nfsd4: merge 3 setclientid cases to 2\n\nBoy, is this simpler.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8f9307119d7fb2f2c04fce27aa492d30e7ac4518",
      "tree": "07fd67a23b0aa364e78c0ba8eeb87d7309c432a8",
      "parents": [
        "ad72aae5ada1970f423ae7ee0027d0d7eb477597"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:06:41 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:01 2012 -0400"
      },
      "message": "nfsd4: pull out common code from setclientid cases\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ad72aae5ada1970f423ae7ee0027d0d7eb477597",
      "tree": "33b41826e3cedb3a70cf8bd7f81e453b0469cfb4",
      "parents": [
        "63db46328a9854d0adcde69871a28d94e0fc7746"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 22:00:38 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:30:00 2012 -0400"
      },
      "message": "nfsd4: merge last two setclientid cases\n\nThe code here is mostly the same.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "63db46328a9854d0adcde69871a28d94e0fc7746",
      "tree": "44c26667054a3740a82d3d555f5f36c26fc0c91a",
      "parents": [
        "e98479b8d6a451bfae1a29e9b2dd503e435f7a48"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 21:54:19 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:59 2012 -0400"
      },
      "message": "nfsd4: setclientid/confirm comment cleanup\n\nBe a little more concise.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e98479b8d6a451bfae1a29e9b2dd503e435f7a48",
      "tree": "b76bea20badf010097507c47ae8a0c2f5b623b86",
      "parents": [
        "d5497fc693a446ce9100fcf4117c3f795ddfd0d2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 18 21:34:55 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:58 2012 -0400"
      },
      "message": "nfsd4: setclientid remove unnecessary terms from a logical expression\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d5497fc693a446ce9100fcf4117c3f795ddfd0d2",
      "tree": "7254a8eb06629de6c9ac4b8dbe8e38c79c979af3",
      "parents": [
        "8fbba96e5b327665265ad02b7f331b68536828bf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 22:06:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:58 2012 -0400"
      },
      "message": "nfsd4: move rq_flavor into svc_cred\n\nMove the rq_flavor into struct svc_cred, and use it in setclientid and\nexchange_id comparisons as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8fbba96e5b327665265ad02b7f331b68536828bf",
      "tree": "3a838a9a822042ac0a988e21e4824f64c1ada7f2",
      "parents": [
        "03a4e1f6ddf25f48848e1bddcffc0ad489648331"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 21:20:54 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:57 2012 -0400"
      },
      "message": "nfsd4: stricter cred comparison for setclientid/exchange_id\n\nThe typical setclientid or exchange_id will probably be performed with a\ncredential that maps to either root or nobody, so comparing just uid\u0027s\nis unlikely to be useful.  So, use everything else we can get our hands\non.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "03a4e1f6ddf25f48848e1bddcffc0ad489648331",
      "tree": "f140e3deb767d092eca997037ebb7b098d8afce9",
      "parents": [
        "631fc9ea05c97e5d1d14ea58a7347be4857d09da"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 19:55:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:55 2012 -0400"
      },
      "message": "nfsd4: move principal name into svc_cred\n\nInstead of keeping the principal name associated with a request in a\nstructure that\u0027s private to auth_gss and using an accessor function,\nmove it to svc_cred.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "631fc9ea05c97e5d1d14ea58a7347be4857d09da",
      "tree": "58c003e19609e7adf678bc9e197011ad2803c67e",
      "parents": [
        "136e658d621f71b67982dda51a2327830146ef9d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 15:57:23 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:55 2012 -0400"
      },
      "message": "nfsd4: allow removing clients not holding state\n\nRFC 5661 actually says we should allow an exchange_id to remove a\nmatching client, even if the exchange_id comes from a different\nprincipal, *if* the victim client lacks any state.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "136e658d621f71b67982dda51a2327830146ef9d",
      "tree": "17ba8c7424310d869c1b08a1f9cc11fcd19241b1",
      "parents": [
        "2dbb269dfed9e8653be81d49e8f109a243bea25c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 12 20:37:23 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:54 2012 -0400"
      },
      "message": "nfsd4: rearrange exchange_id logic to simplify\n\nMinor cleanup: it\u0027s simpler to have separate code paths for the update\nand non-update cases.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2dbb269dfed9e8653be81d49e8f109a243bea25c",
      "tree": "c9102bb541e4b7e21a0b78bbc61b739e4ac4abb4",
      "parents": [
        "83e08fd46cea3b59dce9285461e3854b594042af"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 09:47:11 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:53 2012 -0400"
      },
      "message": "nfsd4: exchange_id cleanup: comments\n\nMake these comments a bit more concise and uniform.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "83e08fd46cea3b59dce9285461e3854b594042af",
      "tree": "e0c90f655459e83b011a94e85d31df4aac2495d3",
      "parents": [
        "1a308118c238c5aa0af3d303b42fa6bbee279394"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon May 14 09:08:10 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:52 2012 -0400"
      },
      "message": "nfsd4: exchange_id cleanup: local shorthands for repeated tests\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1a308118c238c5aa0af3d303b42fa6bbee279394",
      "tree": "96998e1b4bfe4577846102d83df17f2482d3fc99",
      "parents": [
        "ea236d0704b9b9e7742b107313bbdddbba62724a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 12 21:32:30 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:52 2012 -0400"
      },
      "message": "nfsd4: allow an EXCHANGE_ID to kill a 4.0 client\n\nFollowing rfc 5661 section 2.4.1, we can permit a 4.1 client to remove\nan established 4.0 client\u0027s state.\n\n(But we don\u0027t allow updates.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ea236d0704b9b9e7742b107313bbdddbba62724a",
      "tree": "7740b9f39781f7efeb052c35fdfd395a28e1c9c3",
      "parents": [
        "2786cc3a056e642809a348d9b1e6a857b9d23d25"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 12 21:08:41 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:51 2012 -0400"
      },
      "message": "nfsd4: exchange_id: check creds before killing confirmed client\n\nWe mustn\u0027t allow a client to destroy another client with established\nstate unless it has the right credential.\n\nAnd some minor cleanup.\n\n(Note: our comparison of credentials is actually pretty bogus currently;\nthat will need to be fixed in another patch.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2786cc3a056e642809a348d9b1e6a857b9d23d25",
      "tree": "dabf5d6de0fd0d87260c8842b338c3e561b11ab7",
      "parents": [
        "11ae681052022a60c1b5a697f00052a6c8c61f7e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat May 12 20:53:20 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:50 2012 -0400"
      },
      "message": "nfsd4: exchange_id error cleanup\n\nThere\u0027s no point to the dprintk here as the main proc_compound loop\nalready does this.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "11ae681052022a60c1b5a697f00052a6c8c61f7e",
      "tree": "2ac81505452bb11d1b895f433acdd476a1ec7c5f",
      "parents": [
        "3ddbe8794ff1bcba5af09f2e6949755d6251958f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri May 04 15:16:06 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:50 2012 -0400"
      },
      "message": "nfsd4: exchange_id has a pointless copy\n\nWe just verified above that these two verifiers are already the same.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5fb35a3a9bc482110b2c6afd1a5004909fa12501",
      "tree": "ed8196cdcb00aa54958e9314a50543d8f42fd981",
      "parents": [
        "ce0fc43c5a09d50ff5ffe208cbb0d3a9c82f038a"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu May 10 15:31:10 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:48 2012 -0400"
      },
      "message": "nfsd: return 0 on reads of fault injection files\n\ndebugfs read operations were returning the contents of an uninitialized u64.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ce0fc43c5a09d50ff5ffe208cbb0d3a9c82f038a",
      "tree": "ce9842a9df9b30da17e35df89c6be0fbba8fdd7e",
      "parents": [
        "82c5ff1b1409f43ccb282cbdfcb06991714e4c5f"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 11 09:45:14 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:48 2012 -0400"
      },
      "message": "nfsd: wrap all accesses to st_deny_bmap\n\nHandle the st_deny_bmap in a similar fashion to the st_access_bmap. Add\naccessor functions and use those instead of bare bitops.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "82c5ff1b1409f43ccb282cbdfcb06991714e4c5f",
      "tree": "ac739fd456e92cd514208341c58918b62f4e90b0",
      "parents": [
        "3a3286147f557f05e002be3ec7512b582373ae65"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 11 09:45:13 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:47 2012 -0400"
      },
      "message": "nfsd: wrap accesses to st_access_bmap\n\nCurrently, we do this for the most part with \"bare\" bitops, but\neventually we\u0027ll need to expand the share mode code to handle access\nand deny modes on other nodes.\n\nIn order to facilitate that code in the future, move to some generic\naccessor functions. For now, these are mostly static inlines, but\neventually we\u0027ll want to move these to \"real\" functions that are\nable to handle multi-node configurations or have a way to \"swap in\"\nnew operations to be done in lieu of or in conjunction with these\natomic bitops.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3a3286147f557f05e002be3ec7512b582373ae65",
      "tree": "6a925ec5343386118b512ccce6c9e8817b410b8c",
      "parents": [
        "5ae037e599de5a97eb6ae1054db2fdfbfbac65b5"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 11 09:45:12 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:46 2012 -0400"
      },
      "message": "nfsd: make test_share a bool return\n\nAll of the callers treat the return that way already.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5ae037e599de5a97eb6ae1054db2fdfbfbac65b5",
      "tree": "a8fd1d7db096c4479e5582b64a0227c56751ce4b",
      "parents": [
        "f07ea10dc8f20dfc215b15b012741fcf9f5aa17b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 11 09:45:11 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:46 2012 -0400"
      },
      "message": "nfsd: consolidate set_access and set_deny\n\nThese functions are identical. Also, rename them to bmap_to_share_mode\nto better reflect what they do, and have them just return the result\ninstead of passing in a pointer to the storage location.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f07ea10dc8f20dfc215b15b012741fcf9f5aa17b",
      "tree": "5edad80d5cd3cc5ff11df5fc6b155fb664e7adc0",
      "parents": [
        "8dbf28e495337b0c66657e3e278ae0ff175b7140"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 15 17:42:08 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:45 2012 -0400"
      },
      "message": "NFSD: SETCLIENTID_CONFIRM returns NFS4ERR_CLID_INUSE too often\n\nAccording to RFC 3530bis, the only items SETCLIENTID_CONFIRM processing\nshould be concerned with is the clientid, clientid verifier, and\nprincipal.  The client\u0027s IP address is not supposed to be interesting.\n\nAnd, NFS4ERR_CLID_INUSE is meant only for principal mismatches.\n\nI triggered this logic with a prototype UCS client -- one that\nuses the same nfs_client_id4 string for all servers.  The client\nmounted our server via its IPv4, then via its IPv6 address.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "786185b5f8abefa6a8a16695bb4a59c164d5a071",
      "tree": "780eafd98f98a093fda540898595b47b4261764c",
      "parents": [
        "9793f7c88937e7ac07305ab1af1a519225836823"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri May 04 12:49:41 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:40 2012 -0400"
      },
      "message": "SUNRPC: move per-net operations from svc_destroy()\n\nThe idea is to separate service destruction and per-net operations,\nbecause these are two different things and the mix looks ugly.\n\nNotes:\n\n1) For NFS server this patch looks ugly (sorry for that). But these\nplace will be rewritten soon during NFSd containerization.\n\n2) LockD per-net counter increase int lockd_up() was moved prior to\nmake_socks() to make lockd_down_net() call safe in case of error.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9793f7c88937e7ac07305ab1af1a519225836823",
      "tree": "48a4283a15cb0d5a427e722075fe546cc8cdcc53",
      "parents": [
        "c52226daf553b21891f39777d78a54ea4e7e8654"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed May 02 16:08:38 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:39 2012 -0400"
      },
      "message": "SUNRPC: new svc_bind() routine introduced\n\nThis new routine is responsible for service registration in a specified\nnetwork context.\n\nThe idea is to separate service creation from per-net operations.\n\nNote also: since registering service with svc_bind() can fail, the\nservice will be destroyed and during destruction it will try to\nunregister itself from rpcbind. In this case unregistration has to be\nskipped.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e7a0444aef4a1649bc155fd5c6d6ab3f8bdc88ab",
      "tree": "e3afdeb61ecb045dd95c371f4d6cc89246d0663b",
      "parents": [
        "45eaa1c1a16122a98bf995c004c23806759d2e5f"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Apr 24 11:07:59 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:38 2012 -0400"
      },
      "message": "nfsd: add IPv6 addr escaping to fs_location hosts\n\nThe fs_location-\u003ehosts list is split on colons, but this doesn\u0027t work when\nIPv6 addresses are used (they contain colons).\nThis patch adds the function nfsd4_encode_components_esc() to\nallow the caller to specify escape characters when splitting on \u0027sep\u0027.\nIn order to fix referrals, this patch must be used with the mountd patch\nthat similarly fixes IPv6 [] escaping.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "45eaa1c1a16122a98bf995c004c23806759d2e5f",
      "tree": "59fd1bf7a126ddb62e2e583f13d69038afbef1f2",
      "parents": [
        "d1829b38241394c0c66d407a165fbd6d9897c241"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 18:11:04 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:38 2012 -0400"
      },
      "message": "nfsd4: fix change attribute endianness\n\nThough actually this doesn\u0027t matter much, as NFSv4.0 clients are\nrequired to treat the change attribute as opaque.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d1829b38241394c0c66d407a165fbd6d9897c241",
      "tree": "151e5e02dcbff5d3354184107bcd42d7ea34da0a",
      "parents": [
        "57b7b43b403136dc18d067909050e8677f97aeed"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 18:04:54 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:37 2012 -0400"
      },
      "message": "nfsd4: fix free_stateid return endianness\n\nCc: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "57b7b43b403136dc18d067909050e8677f97aeed",
      "tree": "e2c740acdb88c39292aab0ac13b65f76e728e923",
      "parents": [
        "bc1b542be9aba019ea89ef04da1f3592018a2a60"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 17:58:50 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:37 2012 -0400"
      },
      "message": "nfsd4: int/__be32 fixes\n\nIn each of these cases there\u0027s a simple unambiguous correct choice, and\nno actual bug.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bc1b542be9aba019ea89ef04da1f3592018a2a60",
      "tree": "5b1cc12a84c0506018051f0be7a60b4139c99dd4",
      "parents": [
        "2355c59644def5950f982fc1509dd45037e79ded"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 16:58:05 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:36 2012 -0400"
      },
      "message": "nfsd4: preserve __user annotation on cld downcall msg\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2355c59644def5950f982fc1509dd45037e79ded",
      "tree": "8e0fe0a1cc32fc808e8451cfa3b054b15dc05ffd",
      "parents": [
        "bfa4b36525577dfe2b52c7e52e03525aba1b74d3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 16:56:22 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:35 2012 -0400"
      },
      "message": "nfsd4: fix missing \"static\"\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bfa4b36525577dfe2b52c7e52e03525aba1b74d3",
      "tree": "ca887a84f7e4b3633fd23a44596c6b621102599b",
      "parents": [
        "b108fe6b08f3f61c2c465649b20b7d4b4c185728"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 25 16:49:18 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu May 31 20:29:35 2012 -0400"
      },
      "message": "nfsd: state.c should include current_stateid.h\n\nOK, admittedly I\u0027m mainly just trying to shut sparse up.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "ae2975bc3476243b45a1e2344236d7920c268f38",
      "tree": "e4b2a8472f6047734b6e7e2bdc994375b2790323",
      "parents": [
        "22d917d80e842829d0ca0a561967d728eb1d6303"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 14 15:56:38 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 03 03:27:21 2012 -0700"
      },
      "message": "userns: Convert group_info values from gid_t to kgid_t.\n\nAs a first step to converting struct cred to be all kuid_t and kgid_t\nvalues convert the group values stored in group_info to always be\nkgid_t values.   Unless user namespaces are used this change should\nhave no effect.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "8a7dc4b04b22be285ea5bef7d01a02f91e30d562",
      "tree": "20a8c483fbbee01c7b972dd4bd45b6753fa2d92f",
      "parents": [
        "fbf717629ff03f110f177d244933276423f99a27"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Apr 30 12:25:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 30 12:28:48 2012 -0700"
      },
      "message": "nfsd: fix nfs4recover.c printk format warning\n\nFix printk format warnings -- both items are size_t,\nso use %zu to print them.\n\nfs/nfsd/nfs4recover.c:580:3: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027size_t\u0027\nfs/nfsd/nfs4recover.c:580:3: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027unsigned int\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: linux-nfs@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "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": "c6f5c93098f5577210f8f3ea22209b3f266c66af",
      "tree": "bc641dfb6f71b6584cedde4b6721ca716f8bf3d0",
      "parents": [
        "19853301ef3289bda2d5264c1093e74efddaeab9",
        "d22053cdbd914a6c97ea101adf411a8fd7e282ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 19 14:54:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 19 14:54:52 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd bugfixes from J. Bruce Fields:\n \"One bugfix, and one minor header fix from Jeff Layton while we\u0027re\n  here\"\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: include cld.h in the headers_install target\n  nfsd: don\u0027t fail unchecked creates of non-special files\n"
    },
    {
      "commit": "efe39651f08813180f37dc508d950fc7d92b29a8",
      "tree": "69351781601d1c3c64a91f5728b7b388609281e3",
      "parents": [
        "afcf6792afd66209161495f691e19d4fc5460a93"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 00:32:14 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 10:12:02 2012 -0400"
      },
      "message": "nfsd: fix compose_entry_fh() failure exits\n\nRestore the original logics (\"fail on mountpoints, negatives and in\ncase of fh_compose() failures\").  Since commit 8177e (nfsd: clean up\nreaddirplus encoding) that got broken -\n\trv \u003d fh_compose(fhp, exp, dchild, \u0026cd-\u003efh);\n\tif (rv)\n\t       goto out;\n\tif (!dchild-\u003ed_inode)\n\t\tgoto out;\n\trv \u003d 0;\nout:\nis equivalent to\n\trv \u003d fh_compose(fhp, exp, dchild, \u0026cd-\u003efh);\nout:\nand the second check has no effect whatsoever...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "afcf6792afd66209161495f691e19d4fc5460a93",
      "tree": "06a936461753cad8681f4ac37479a78e44c18ab6",
      "parents": [
        "02f5fde5df0ea930e70f93763dd48beff182b208"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 00:15:37 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 10:12:01 2012 -0400"
      },
      "message": "nfsd: fix error value on allocation failure in nfsd4_decode_test_stateid()\n\nPTR_ERR(NULL) is going to be 0...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02f5fde5df0ea930e70f93763dd48beff182b208",
      "tree": "ad2f156f7f3ec5c9b4af2fb19135b40b82878a28",
      "parents": [
        "04da6e9d63427b2d0fd04766712200c250b3278f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 00:10:34 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 10:12:01 2012 -0400"
      },
      "message": "nfsd: fix endianness breakage in TEST_STATEID handling\n\n-\u003ets_id_status gets nfs errno, i.e. it\u0027s already big-endian; no need\nto apply htonl() to it.  Broken by commit 174568 (NFSD: Added TEST_STATEID\noperation) last year...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "04da6e9d63427b2d0fd04766712200c250b3278f",
      "tree": "94045bad930d8a89f8b6e9ef8a26b6b6d0dfb3f1",
      "parents": [
        "96f6f98501196d46ce52c2697dd758d9300c63f5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 00:00:04 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 10:12:01 2012 -0400"
      },
      "message": "nfsd: fix error values returned by nfsd4_lockt() when nfsd_open() fails\n\nnfsd_open() already returns an NFS error value; only vfs_test_lock()\nresult needs to be fed through nfserrno().  Broken by commit 55ef12\n(nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT)\nthree years ago...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96f6f98501196d46ce52c2697dd758d9300c63f5",
      "tree": "08d3795842459047a88ade0708fc10c8b91656bb",
      "parents": [
        "ecca5c3acc0d0933d89abc44e60afb0cc8170e35"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 12 23:47:00 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 13 10:12:00 2012 -0400"
      },
      "message": "nfsd: fix b0rken error value for setattr on read-only mount\n\n..._want_write() returns -EROFS on failure, _not_ an NFS error value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f69adb2fe2553f0536ad3603828c835239d5ec3e",
      "tree": "42ccba71deba4b0a374178f85d2a4fdbf915215c",
      "parents": [
        "9e75a4dee08e8fe21f349e11c43955c34523bced"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 17:33:05 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:12:11 2012 -0400"
      },
      "message": "nfsd: allocate id-to-name and name-to-id caches in per-net operations.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9e75a4dee08e8fe21f349e11c43955c34523bced",
      "tree": "f256b13c433c642d639eba419da134059c3d56a4",
      "parents": [
        "c2e76ef5e0716bc82364e6049e8023ffd5bbe395"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 17:32:58 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:12:10 2012 -0400"
      },
      "message": "nfsd: make name-to-id cache allocated per network namespace context\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c2e76ef5e0716bc82364e6049e8023ffd5bbe395",
      "tree": "b4993d56cdd8fa8d0fe44b3c4799cebfbecf5b12",
      "parents": [
        "43ec1a20bfbe1fbf6df6bf5a7b9c88ea090dbfcd"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 17:32:51 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:12:10 2012 -0400"
      },
      "message": "nfsd: make id-to-name cache allocated per network namespace context\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "43ec1a20bfbe1fbf6df6bf5a7b9c88ea090dbfcd",
      "tree": "aa0fb40cc8955d358bc9a39444c4ad2cc66d1e9b",
      "parents": [
        "5717e0128422b96be6aa414fa752ec90c1cd31e9"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 17:32:44 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:12:10 2012 -0400"
      },
      "message": "nfsd: pass network context to idmap init/exit functions\n\nThese functions will be called from per-net operations.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5717e0128422b96be6aa414fa752ec90c1cd31e9",
      "tree": "015b3be152cf778b585625810dce7c36f876e2fb",
      "parents": [
        "e5f06f720eff24e32f1cc08ec03bcc8c4b2d2934"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:35 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:11:47 2012 -0400"
      },
      "message": "nfsd: allocate export and expkey caches in per-net operations.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e5f06f720eff24e32f1cc08ec03bcc8c4b2d2934",
      "tree": "9afeda20ea7ea07f6c1bbcc9dc5979c98cc62def",
      "parents": [
        "b3853e0ea1f2ef58f7e7c03e47819e2ae3766dea"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:28 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:11:46 2012 -0400"
      },
      "message": "nfsd: make expkey cache allocated per network namespace context\n\nThis patch also changes svcauth_unix_purge() function: added network namespace\nas a parameter and thus loop over all networks was replaced by only one call\nfor ip map cache purge.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b3853e0ea1f2ef58f7e7c03e47819e2ae3766dea",
      "tree": "e1d54f74e25a7878c2d786d120cd1a97f240ac18",
      "parents": [
        "2a75cfa64e63502e54e40f99ba07411544bd3190"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:21 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:11:11 2012 -0400"
      },
      "message": "nfsd: make export cache allocated per network namespace context\n\nThis patch also changes prototypes of nfsd_export_flush() and exp_rootfh():\nnetwork namespace parameter added.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2a75cfa64e63502e54e40f99ba07411544bd3190",
      "tree": "b8e0334427cc048ea10e36893c6e826f7be07036",
      "parents": [
        "b89109bef4a6a4a8ab5788778ee0addca0787870"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:42 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Apr 12 09:10:19 2012 -0400"
      },
      "message": "nfsd: pass pointer to export cache down to stack wherever possible.\n\nThis cache will be per-net soon. And it\u0027s easier to get the pointer to desired\nper-net instance only once and then pass it down instead of discovering it in\nevery place were required.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b89109bef4a6a4a8ab5788778ee0addca0787870",
      "tree": "d42ef77b42075c474e1d8f4f4b95a1d5f03c564f",
      "parents": [
        "e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Apr 11 15:13:14 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 18:01:33 2012 -0400"
      },
      "message": "nfsd: pass network context to export caches init/shutdown routines\n\nThese functions will be called from per-net operations.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0",
      "tree": "688a94f2c86e0d7c637609239925f94f8ee08626",
      "parents": [
        "f890edbbeff6928b7db0c6179a9036cbd4f0efbf"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Mar 29 18:54:33 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:06 2012 -0400"
      },
      "message": "Lockd: pass network namespace to creation and destruction routines\n\nv2: dereference of most probably already released nlm_host removed in\nnlmclnt_done() and reclaimer().\n\nThese routines are called from locks reclaimer() kernel thread. This thread\nworks in \"init_net\" network context and currently relays on persence on lockd\nthread and it\u0027s per-net resources. Thus lockd_up() and lockd_down() can\u0027t relay\non current network context. So let\u0027s pass corrent one into them.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f890edbbeff6928b7db0c6179a9036cbd4f0efbf",
      "tree": "82c057972c3b9e5247a1f6be8a3f99850a05cb96",
      "parents": [
        "c89172e36e3d3972f9f3fa107c1f3e666f1e05cf"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Thu Mar 29 19:34:16 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:05 2012 -0400"
      },
      "message": "NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches\n\nThese dereferences to global static caches are redundant. They also prevents\nconverting these caches into per-net ones. So this patch is cleanup + precursor\nof patch set,a which will make them per-net.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c89172e36e3d3972f9f3fa107c1f3e666f1e05cf",
      "tree": "29ad59f5e834176a1ca7ac0494a3119c9e6f6356",
      "parents": [
        "83e0ed700d4d2cad2f555ae536fafd531f55b6d0"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:50 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:05 2012 -0400"
      },
      "message": "nfsd: pass pointer to expkey cache down to stack wherever possible.\n\nThis cache will be per-net soon. And it\u0027s easier to get the pointer to desired\nper-net instance only once and then pass it down instead of discovering it in\nevery place were required.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "83e0ed700d4d2cad2f555ae536fafd531f55b6d0",
      "tree": "f8582d3f601b45a82d0a9c904c87bbb192bd7981",
      "parents": [
        "f2c7ea10f901b7648eb61f1da7243588351f1dac"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:35 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:04 2012 -0400"
      },
      "message": "nfsd: use hash table from cache detail in nfsd export seq ops\n\nHard-code is redundant and will prevent from making caches per net ns.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f2c7ea10f901b7648eb61f1da7243588351f1dac",
      "tree": "26dd9756b573c3eb2a46f51b3e4d9fbfd2f19769",
      "parents": [
        "a09581f29434ae67f8fc6ae487e4f30a7f0d019f"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:29 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:03 2012 -0400"
      },
      "message": "nfsd: pass svc_export_cache pointer as private data to \"exports\" seq file ops\n\nGlobal svc_export_cache cache is going to be replaced with per-net instance. So\nprepare the ground for it.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a09581f29434ae67f8fc6ae487e4f30a7f0d019f",
      "tree": "1cde7fcd7cf89ed98f92dc26b2439e335251be11",
      "parents": [
        "71234978e81ee515c8025d087a197561b311c183"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:22 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:02 2012 -0400"
      },
      "message": "nfsd: use exp_put() for svc_export_cache put\n\nThis patch replaces cache_put() call for svc_export_cache by exp_put() call.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "db3a35326362624dd4d8473e676d63afa52bedcc",
      "tree": "1714bb7b59c3793ce10ee6ce8f2b454c85cbc320",
      "parents": [
        "d4bb527e9e6c00e6e24f3475fe65db7775ff6c63"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:08 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:01 2012 -0400"
      },
      "message": "nfsd: add link to owner cache detail to svc_export structure\n\nWithout info about owner cache datail it won\u0027t be able to find out, which\nper-net cache detail have to be.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "d4bb527e9e6c00e6e24f3475fe65db7775ff6c63",
      "tree": "de2e533486768f53da9e445e792ff5d28c0b30e1",
      "parents": [
        "33dcc481eddc3f532732a9582095373fa5354369"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Mar 28 19:09:01 2012 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:00 2012 -0400"
      },
      "message": "nfsd: use passed cache_detail pointer expkey_parse()\n\nUsing of hard-coded svc_expkey_cache pointer in expkey_parse() looks redundant.\nMoreover, global cache will be replaced with per-net instance soon.\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "33dcc481eddc3f532732a9582095373fa5354369",
      "tree": "33aaf10432675f5e8ab3b83a6d970d4a83cb21f0",
      "parents": [
        "a9aa53df6e6c768fc0f25a7c80ba586b0290720a"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Apr 10 11:08:48 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:55:00 2012 -0400"
      },
      "message": "nfsd: don\u0027t use locks_in_grace to determine whether to call nfs4_grace_end\n\nIt\u0027s possible that lockd or another lock manager might still be on the\nlist after we call nfsd4_end_grace. If the laundromat thread runs\nagain at that point, then we could end up calling nfsd4_end_grace more\nthan once.\n\nThat\u0027s not only inefficient, but calling nfsd4_recdir_purge_old more\nthan once could be problematic. Fix this by adding a new global\n\"grace_ended\" flag and use that to determine whether we\u0027ve already\ncalled nfsd4_grace_end.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "03af42c59e5fc073fa93b7fe44e80161acb22772",
      "tree": "49223a7baa044ae615a3559075a8995dfb1befb0",
      "parents": [
        "9dc4e6c4d1182d34604ea40fef641775f5b15456"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Mar 30 09:46:21 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Apr 11 17:54:58 2012 -0400"
      },
      "message": "nfsd: trivial: remove unused variable from nfsd4_lock\n\n...\"fp\" is set but never used.\n\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": "797a9d797f8483bb67f265c761b76dcd5a077a23",
      "tree": "bc114410d0b6f7cc596d1ef8e2905fab00bf321b",
      "parents": [
        "4ca1f872cda31fe1cfe5e90e027f7bef4980364c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Mar 29 07:52:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 29 08:01:07 2012 -0400"
      },
      "message": "nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n\nOtherwise, we get a warning or error similar to this when building with\nCONFIG_NFSD_V4 disabled:\n\n    ERROR: \"nfsd4_cld_block\" [fs/nfsd/nfsd.ko] undefined!\n\nFix this by wrapping the calls to rpc_pipefs_notifier_register and\n..._unregister in another function and providing no-op replacements\nwhen CONFIG_NFSD_V4 is disabled.\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4ca1f872cda31fe1cfe5e90e027f7bef4980364c",
      "tree": "18c154d1548ce19b37cbcbc17de1e57cdc065b3a",
      "parents": [
        "21f72c9f0a6774d104fb655bda6099c378518945"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 14:18:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 19:14:36 2012 -0400"
      },
      "message": "nfsd4: use auth_unix unconditionally on backchannel\n\nThis isn\u0027t actually correct, but it works with the Linux client, and\nagrees with the behavior we used to have before commit 80fc015bdfe.\n\nLater patches will implement the spec-mandated behavior (which is to use\nthe security parameters explicitly given by the client in create_session\nor backchannel_ctl).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "21f72c9f0a6774d104fb655bda6099c378518945",
      "tree": "fa320f8b928d9aa4277711f03d6d44af60e151b4",
      "parents": [
        "3af706135bcc06b1519ba50beaf1b47d32d0fc26"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 28 07:36:01 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:24 2012 -0400"
      },
      "message": "nfsd: fix NULL pointer dereference in cld_pipe_downcall\n\nIf we find that \"cup\" is NULL in this case, then we obviously don\u0027t\nwant to dereference it. What we really want to print in this case\nis the xid that we copied off earlier.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3af706135bcc06b1519ba50beaf1b47d32d0fc26",
      "tree": "52ee3c46416e12fae8f9a1f6e7a6faa3cd3416ad",
      "parents": [
        "92769108f5382a0bdb4c35eb80c183fb7797cfae"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Mar 28 13:44:59 2012 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:23 2012 -0400"
      },
      "message": "nfsd4: memory corruption in numeric_name_to_id()\n\n\"id\" is type is a uid_t (32 bits) but on 64 bit systems strict_strtoul()\nmodifies 64 bits of data.  We should use kstrtouint() instead.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e9541ce8efc22c233a045f091c2b969923709038",
      "tree": "db3fc2a326dae9ada480bbdaeb08202a4b596098",
      "parents": [
        "cc27e0d407021a278d08c1952f5af4ab38c49eda"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 22 16:07:18 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd4: allow numeric idmapping\n\nMimic the client side by providing a module parameter that turns off\nidmapping in the auth_sys case, for backwards compatibility with NFSv2\nand NFSv3.\n\nUnlike in the client case, we don\u0027t have any way to negotiate, since the\nclient can return an error to us if it doesn\u0027t like the id that we\nreturn to it in (for example) a getattr call.\n\nHowever, it has always been possible for servers to return numeric id\u0027s,\nand as far as we\u0027re aware clients have always been able to handle them.\n\nAlso, in the auth_sys case clients already need to have numeric id\u0027s the\nsame between client and server.\n\nTherefore we believe it\u0027s safe to default this to on; but the module\nparameter is available to return to previous behavior if this proves to\nbe a problem in some unexpected setup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cc27e0d407021a278d08c1952f5af4ab38c49eda",
      "tree": "553dcc5c2acdce04caab305c02693303abb4e822",
      "parents": [
        "813fd320c16691eac508fe350b4ee7362c6c4a56"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:09 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n\nThis code isn\u0027t set up for containers, so don\u0027t allow it to be\nused for anything but init_net.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "813fd320c16691eac508fe350b4ee7362c6c4a56",
      "tree": "3ec14685fb13b2f5fba6ed1ce78e5e6bdb7c173e",
      "parents": [
        "f3f8014862d813cca81a597c83bd1dbf0fb2b8f6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:08 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n\nIn the event that rpc_pipefs isn\u0027t mounted when nfsd starts, we\nmust register a notifier to handle creating the dentry once it\nis mounted, and to remove the dentry on unmount.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f3f8014862d813cca81a597c83bd1dbf0fb2b8f6",
      "tree": "f9d41fd42d38690d3f8e9e70a3542928706065c7",
      "parents": [
        "0ab628d856a63d63b47307b09851d1e955c706ac"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:07 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: add the infrastructure to handle the cld upcall\n\n...and add a mechanism for switching between the \"legacy\" tracker and\nthe new one. The decision is made by looking to see whether the\nv4recoverydir exists. If it does, then the legacy client tracker is\nused.\n\nIf it\u0027s not, then the kernel will create a \"cld\" pipe in rpc_pipefs.\nThat pipe is used to talk to a daemon for handling the upcall.\n\nMost of the data structures for the new client tracker are handled on a\nper-namespace basis, so this upcall should be essentially ready for\ncontainerization. For now however, nfsd just starts it by calling the\ninitialization and exit functions for init_net.\n\nI\u0027m making the assumption that at some point in the future we\u0027ll be able\nto determine the net namespace from the nfs4_client. Until then, this\npatch hardcodes init_net in those places. I\u0027ve sprinkled some \"FIXME\"\ncomments around that code to attempt to make it clear where we\u0027ll need\nto fix that up later.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7ea34ac15e45b790f2faa7d5f69c560a43f2de70",
      "tree": "1f44c11731e76f25036042d8b41231e42348e958",
      "parents": [
        "b3537c35c21f0e6750aa8bd786949b55509c6d0d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:05 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: add a per-net-namespace struct for nfsd\n\nEventually, we\u0027ll need this when nfsd gets containerized fully. For\nnow, create a struct on a per-net-namespace basis that will just hold\na pointer to the cld_net structure. That struct will hold all of the\nper-net data that we need for the cld tracker.\n\nEventually we can add other pernet objects to struct nfsd_net.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2a4317c55438d8589a015d42912454ede12031f0",
      "tree": "cfcc8d551c750bd46ea86fb5fd4ed5d305063615",
      "parents": [
        "a52d726bbd928164609e6abc4dc967e819dbf09c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 16:42:43 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n\nAbstract out the mechanism that we use to track clients into a set of\nclient name tracking functions.\n\nThis gives us a mechanism to plug in a new set of client tracking\nfunctions without disturbing the callers. It also gives us a way to\ndecide on what tracking scheme to use at runtime.\n\nFor now, this just looks like pointless abstraction, but later we\u0027ll\nadd a new alternate scheme for tracking clients on stable storage.\n\nNote too that this patch anticipates the eventual containerization\nof this code by passing in struct net pointers in places. No attempt\nis made to containerize the legacy client tracker however.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a52d726bbd928164609e6abc4dc967e819dbf09c",
      "tree": "604df65589a95311ab297f80ce377e82525ce597",
      "parents": [
        "1df00640c9111c881633d9b219f18e66c52599ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:02 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n\nWe\u0027ll need a way to flag the nfs4_client as already being recorded on\nstable storage so that we don\u0027t continually upcall. Currently, that\u0027s\nrecorded in the cl_firststate field of the client struct. Using an\nentire u32 to store a flag is rather wasteful though.\n\nThe cl_cb_flags field is only using 2 bits right now, so repurpose that\nto a generic flags field. Rename NFSD4_CLIENT_KILL to\nNFSD4_CLIENT_CB_KILL to make it evident that it\u0027s part of the callback\nflags. Add a mask that we can use for existing checks that look to see\nwhether any flags are set, so that the new flags don\u0027t interfere.\n\nConvert all references to cl_firstate to the NFSD4_CLIENT_STABLE flag,\nand add a new NFSD4_CLIENT_RECLAIM_COMPLETE flag.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1df00640c9111c881633d9b219f18e66c52599ec",
      "tree": "e36d3924d84f47ec93f6650ff1fd5b8ea7d10d24",
      "parents": [
        "ab4684d1560f8d77f6ce82bd3f1f82937070d397",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 21 16:42:14 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:48:54 2012 -0400"
      },
      "message": "Merge nfs containerization work from Trond\u0027s tree\n\nThe nfs containerization work is a prerequisite for Jeff Layton\u0027s reboot\nrecovery rework.\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "88187398cc5fa6650f38b9dcd5464667f468888f",
      "tree": "eb9d45cdbe4506340b1131951bc7f2dba2f2a796",
      "parents": [
        "a051f71ce97c53cde3ac64de64eb02d658d9308e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 06:00:24 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:53 2012 -0400"
      },
      "message": "debugfs-related mode_t whack-a-mole\n\nall of those should be umode_t...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\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": "ab4684d1560f8d77f6ce82bd3f1f82937070d397",
      "tree": "71da95fc7b956d6c69f9ecf5ef98a76b158c387f",
      "parents": [
        "8f199b8262cb150d055d29ba31faf0128ace4714"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 02 17:13:50 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 20 15:36:15 2012 -0400"
      },
      "message": "NFSD: Fix nfs4_verifier memory alignment\n\nClean up due to code review.\n\nThe nfs4_verifier\u0027s data field is not guaranteed to be u32-aligned.\nCasting an array of chars to a u32 * is considered generally\nhazardous.\n\nWe can fix most of this by using a __be32 array to generate the\nverifier\u0027s contents and then byte-copying it into the verifier field.\n\nHowever, there is one spot where there is a backwards compatibility\nconstraint: the do_nfsd_create() call expects a verifier which is\n32-bit aligned.  Fix this spot by forcing the alignment of the create\nverifier in the nfsd4_open args structure.\n\nAlso, sizeof(nfs4_verifer) is the size of the in-core verifier data\nstructure, but NFS4_VERIFIER_SIZE is the number of octets in an XDR\u0027d\nverifier.  The two are not interchangeable, even if they happen to\nhave the same value.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "8f199b8262cb150d055d29ba31faf0128ace4714",
      "tree": "364e4fa206a5d45557d9ca30aaf3420007906db6",
      "parents": [
        "62b9510cb373d5722fdaba71d961d8f695acfcd5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 20 15:11:17 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 20 15:34:19 2012 -0400"
      },
      "message": "NFSD: Fix warnings when NFSD_DEBUG is not defined\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "62b9510cb373d5722fdaba71d961d8f695acfcd5",
      "tree": "5a16a206a7e1aac18b96bed26f21ebbe15605fa6",
      "parents": [
        "8546ee518c6662ddb3075249fb31d89e5dbfb7d5",
        "06effdbb49af5f6c7d20affaec74603914acc768"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 19 12:34:39 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 19 12:35:05 2012 -0400"
      },
      "message": "nfsd: merge cookie collision fixes from ext4 tree\n\nThese changes fix readdir loops on ext4 filesystems with dir_index\nturned on.  I\u0027m pulling them from Ted\u0027s tree as I\u0027d like to give them\nsome extra nfsd testing, and expect to be applying (potentially\nconflicting) patches to the same code before the next merge window.\n\nFrom the nfs-ext4-premerge branch of\n\n\tgit://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\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": "8546ee518c6662ddb3075249fb31d89e5dbfb7d5",
      "tree": "0e56f5de9c1ebd807e06a391cb521421625fe392",
      "parents": [
        "59deeb9e5a2b535b95327c0d29bb3c2c4c3e8234"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 09 17:02:28 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Mar 09 17:05:01 2012 -0500"
      },
      "message": "nfsd4: make sure set CB_PATH_DOWN sequence flag set\n\nMake sure this is set whenever there is no callback channel.\n\nIf a client does not set up a callback channel at all, then it will get\nthis flag set from the very start.  That\u0027s OK, it can just ignore the\nflag if it doesn\u0027t care.  If a client does care, I think it\u0027s better to\ninform it of the problem as early as possible.\n\nReported-by: Rick Macklem \u003crmacklem@uoguelph.ca\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "59deeb9e5a2b535b95327c0d29bb3c2c4c3e8234",
      "tree": "df61459adb758aef2d1cf4da812ad0f750412bbd",
      "parents": [
        "41fd1e42f861e50e49f3d44127596344f2505f01"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 27 16:49:55 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 06 18:13:37 2012 -0500"
      },
      "message": "nfsd4: reduce do_open_lookup() stack usage\n\nI get 320 bytes for struct svc_fh on x86_64, really a little large to be\nputting on the stack; kmalloc() instead.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "41fd1e42f861e50e49f3d44127596344f2505f01",
      "tree": "beffdd3a5bbbf72eb6efa329aaa92022035f27fa",
      "parents": [
        "508dc6e110c6dbdc0bbe84298ccfe22de7538486"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 27 16:26:02 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 06 18:13:36 2012 -0500"
      },
      "message": "nfsd4: delay setting current filehandle till success\n\nCompound processing stops on error, so the current filehandle won\u0027t be\nused on error.  Thus the order here doesn\u0027t really matter.  It\u0027ll be\nmore convenient to do it later, though.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "508dc6e110c6dbdc0bbe84298ccfe22de7538486",
      "tree": "f55bd04f6a51fecb020a6b677935e232a3d9d709",
      "parents": [
        "e27f49c33b7410f4db065bc4382a8e03769eecc3"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@tonian.com",
        "time": "Thu Feb 23 17:40:52 2012 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 06 18:13:35 2012 -0500"
      },
      "message": "nfsd41: free_session/free_client must be called under the client_lock\n\nThe session client is manipulated under the client_lock hence\nboth free_session and nfsd4_del_conns must be called under this lock.\n\nThis patch adds a BUG_ON that checks this condition in the\nrespective functions and implements the missing locks.\n\nnfsd4_{get,put}_session helpers were moved to the C file that uses them\nso to prevent use from external files and an unlocked version of\nnfsd4_put_session is provided for external use from nfs4xdr.c\n\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e27f49c33b7410f4db065bc4382a8e03769eecc3",
      "tree": "2b036ce4d8362762b94df6ac0bf4a3bc97e4392e",
      "parents": [
        "4aa8913cb0cd257543f257ddb4baf0b37eb30b9d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "benny@tonian.com",
        "time": "Tue Feb 21 14:16:54 2012 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 06 18:13:35 2012 -0500"
      },
      "message": "nfsd41: refactor nfsd4_deleg_xgrade_none_ext logic out of nfsd4_process_open2\n\nHandle the case where the nfsv4.1 client asked to uprade or downgrade\nits delegations and server returns no delegation.\n\nIn this case, op_delegate_type is set to NFS4_OPEN_DELEGATE_NONE_EXT\nand op_why_no_deleg is set respectively to WND4_NOT_SUPP_{UP,DOWN}GRADE\n\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4aa8913cb0cd257543f257ddb4baf0b37eb30b9d",
      "tree": "5a277572634a66f6298f2d3c1a2f0be71aa7f64d",
      "parents": [
        "1fa9c4440c151c61eb3309579a85aae22c9adb6d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "benny@tonian.com",
        "time": "Tue Feb 21 14:16:44 2012 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 06 18:13:34 2012 -0500"
      },
      "message": "nfsd41: refactor nfs4_open_deleg_none_ext logic out of nfs4_open_delegation\n\nWhen a 4.1 client asks for a delegation and the server returns none\nop_delegate_type is set to NFS4_OPEN_DELEGATE_NONE_EXT\nand op_why_no_deleg is set to either WND4_CONTENTION or WND4_RESOURCE.\nOr, if the client sent a NFS4_SHARE_WANT_CANCEL (which it is not supposed\nto ever do until our server supports delegations signaling),\nop_why_no_deleg is set to WND4_CANCELLED.\n\nNote that for WND4_CONTENTION and WND4_RESOURCE, the xdr layer is hard coded\nat this time to encode boolean FALSE for ond_server_will_push_deleg /\nond_server_will_signal_avail.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@tonian.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "a8ae08ebf1f336808e20c1c275f68d36d88e0682"
}
