)]}'
{
  "log": [
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e970a573ce30a3976234dcfb67906c164b0df9ee",
      "tree": "767cbc42caf0956c0251efb23828cfdf6a8a48c9",
      "parents": [
        "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:14 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "nfsd: open a file descriptor for fsync in nfs4 recovery\n\nInstead of just looking up a path use do_filp_open to get us a file\nstructure for the nfs4 recovery directory.  This allows us to get\nrid of the last non-standard vfs_fsync caller with a NULL file\npointer.\n\n[AV: should be using fput(), not filp_close()]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4e83ea47babd9d4bf95a13aed87f8ef51e46472",
      "tree": "3949e01791c172f21f0d408d3352a857fcda9258",
      "parents": [
        "47cee541a46a73b20dc279bf4c4690f776f6c81b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 16:21:39 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 18 19:03:50 2010 -0400"
      },
      "message": "Revert \"nfsd4: distinguish expired from stale stateids\"\n\nThis reverts commit 78155ed75f470710f2aecb3e75e3d97107ba8374.\n\nWe\u0027re depending here on the boot time that we use to generate the\nstateid being monotonic, but get_seconds() is not necessarily.\n\nWe still depend at least on boot_time being different every time, but\nthat is a safer bet.\n\nWe have a few reports of errors that might be explained by this problem,\nthough we haven\u0027t been able to confirm any of them.\n\nBut the minor gain of distinguishing expired from stale errors seems not\nworth the risk.\n\nConflicts:\n\n\tfs/nfsd/nfs4state.c\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "47cee541a46a73b20dc279bf4c4690f776f6c81b",
      "tree": "d54461a8fd6a4c70d5b092334ccf38359bcd4994",
      "parents": [
        "b7299f44394336f51b526247a870d47d28f4f97c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon May 17 20:00:37 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 18 12:05:20 2010 -0400"
      },
      "message": "nfsd: safer initialization order in find_file()\n\nThe alloc_init_file() first adds a file to the hash and then\ninitializes its fi_inode, fi_id and fi_had_conflict.\n\nThe uninitialized fi_inode could thus be erroneously checked by\nthe find_file(), so move the hash insertion lower.\n\nThe client_mutex should prevent this race in practice; however, we\neventually hope to make less use of the client_mutex, so the ordering\nhere is an accident waiting to happen.\n\nI didn\u0027t find whether the same can be true for two other fields,\nbut the common sense tells me it\u0027s better to initialize an object\nbefore putting it into a global hash table :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b7299f44394336f51b526247a870d47d28f4f97c",
      "tree": "bb8e365349e9e048f0f927843acca26ddd6a8e2b",
      "parents": [
        "15ddb4aec54422ead137b03ea4e9b3f5db3f7cc2"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 14 17:57:35 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 18 11:51:38 2010 -0400"
      },
      "message": "nfs4: minor callback code simplification, comment\n\nNote the position in the version array doesn\u0027t have to match the actual\nrpc version number--to me it seems clearer to maintain the distinction.\n\nAlso document choice of rpc callback version number, as discussed in\ne.g. http://www.ietf.org/mail-archive/web/nfsv4/current/msg07985.html\nand followups.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "15ddb4aec54422ead137b03ea4e9b3f5db3f7cc2",
      "tree": "7553c06ca7ba059d30289bb8f2e09753671220de",
      "parents": [
        "4dc6ec00f6347b72312fa41dfc587d5302b05544"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri May 14 15:33:36 2010 +0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 14 18:46:14 2010 -0400"
      },
      "message": "NFSD: don\u0027t report compiled-out versions as present\n\nThe /proc/fs/nfsd/versions file calls nfsd_vers() to check whether\nthe particular nfsd version is present/available. The problem is\nthat once I turn off e.g. NFSD-V4 this call returns -1 which is\ntrue from the callers POV which is wrong.\n\nThe proposal is to report false in that case.\n\nThe bug has existed since 6658d3a7bbfd1768 \"[PATCH] knfsd: remove\nnfsd_versbits as intermediate storage for desired versions\".\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: stable@kernel.org\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4dc6ec00f6347b72312fa41dfc587d5302b05544",
      "tree": "fbb00e0c8341561f155a6dcd6fc5f83282c638b0",
      "parents": [
        "ab707e156593ff7fffd615757332dbff6616836a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 19 15:11:28 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 12:03:11 2010 -0400"
      },
      "message": "nfsd4: implement reclaim_complete\n\nThis is a mandatory operation.  Also, here (not in open) is where we\nshould be committing the reboot recovery information.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ab707e156593ff7fffd615757332dbff6616836a",
      "tree": "a9d1c7d851ca178e616f05aab30377ab778762b4",
      "parents": [
        "d76829889ac4250a18cfcc1a606bb256bb9c570c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:14:06 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 11:59:11 2010 -0400"
      },
      "message": "nfsd4: nfsd4_destroy_session must set callback client under the state lock\n\nnfsd4_set_callback_client must be called under the state lock to atomically\nset or unset the callback client and shutting down the previous one.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d76829889ac4250a18cfcc1a606bb256bb9c570c",
      "tree": "27a675ed794809b4aa2430aa3a03e4ffb0f11816",
      "parents": [
        "07cd4909a6c0c275ef42fd27748226975919e336"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:13:54 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 11:58:54 2010 -0400"
      },
      "message": "nfsd4: keep a reference count on client while in use\n\nGet a refcount on the client on SEQUENCE,\nRelease the refcount and renew the client when all respective compounds completed.\nDo not expire the client by the laundromat while in use.\nIf the client was expired via another path, free it when the compounds\ncomplete and the refcount reaches 0.\n\nNote that unhash_client_locked must call list_del_init on cl_lru as\nit may be called twice for the same client (once from nfs4_laundromat\nand then from expire_client)\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "07cd4909a6c0c275ef42fd27748226975919e336",
      "tree": "90ffb93321817320cdf3cf8dbd643272b5752f7a",
      "parents": [
        "46583e2597af649f134462d2f2c1be5e6689198d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:13:41 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 11:47:22 2010 -0400"
      },
      "message": "nfsd4: mark_client_expired\n\nMark the client as expired under the client_lock so it won\u0027t be renewed\nwhen an nfsv4.1 session is done, after it was explicitly expired\nduring processing of the compound.\n\nDo not renew a client mark as expired (in particular, it is not\non the lru list anymore)\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "46583e2597af649f134462d2f2c1be5e6689198d",
      "tree": "4d760a1f60db3f057f8f3ea1549a8422c9eff031",
      "parents": [
        "84d38ac9abf0a5bc0044c9363acaad55a9a4be0d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:13:29 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 11:47:03 2010 -0400"
      },
      "message": "nfsd4: introduce nfs4_client.cl_refcount\n\nCurrently just initialize the cl_refcount to 1\nand decrement in expire_client(), conditionally freeing the\nclient when the refcount reaches 0.\n\nTo be used later by nfsv4.1 compounds to keep the client from\ntiming out while in use.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "84d38ac9abf0a5bc0044c9363acaad55a9a4be0d",
      "tree": "88d54cef8c221be2384d4dbc3a75555cc436a0a6",
      "parents": [
        "36acb66bda512dd8159c3e1b40358c5219524868"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:13:16 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 11 21:02:02 2010 -0400"
      },
      "message": "nfsd4: refactor expire_client\n\nSeparate out unhashing of the client and session.\nTo be used later by the laundromat.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "36acb66bda512dd8159c3e1b40358c5219524868",
      "tree": "f65fddbb0ad59a93f762010c85b7b533ede4dff8",
      "parents": [
        "328efbab0f8ae1617448917906a12e5f568553b6"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:13:04 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 11 21:02:02 2010 -0400"
      },
      "message": "nfsd4: extend the client_lock to cover cl_lru\n\nTo be used later on to hold a reference count on the client while in use by a\nnfsv4.1 compound.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "328efbab0f8ae1617448917906a12e5f568553b6",
      "tree": "1bf619463f9a3e7e5a832860ea50b020938d654e",
      "parents": [
        "be1fdf6c4386f56271d2f690b93ef686b769587c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:12:51 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 11 21:02:01 2010 -0400"
      },
      "message": "nfsd4: use list_move in move_to_confirmed\n\nrather than list_del_init, list_add\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "be1fdf6c4386f56271d2f690b93ef686b769587c",
      "tree": "2c49c5af57912ed20967b6ad35cde915c6b4cc81",
      "parents": [
        "9089f1b4782ff52835059779fd37b7ad765a25c7"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:12:39 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 11 21:02:01 2010 -0400"
      },
      "message": "nfsd4: fold release_session into expire_client\n\nand grab the client lock once for all the client\u0027s sessions.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9089f1b4782ff52835059779fd37b7ad765a25c7",
      "tree": "c65b34d9054a8591f1877713073cac3ca80b431c",
      "parents": [
        "5d4cec2f2fdbb3d830fa014226d0d965df548bad"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 12 00:12:26 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 11 21:02:01 2010 -0400"
      },
      "message": "nfsd4: rename sessionid_lock to client_lock\n\nIn preparation to share the lock\u0027s scope to both client\nand session hash tables.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5d4cec2f2fdbb3d830fa014226d0d965df548bad",
      "tree": "f5cb399d4fc29aec57e700d2b77731fe68e4a537",
      "parents": [
        "5306293c9cd2caf41849cc909281bda628bb989e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat May 01 12:56:06 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri May 07 19:08:47 2010 -0400"
      },
      "message": "nfsd4: fix bare destroy_session null dereference\n\nIt\u0027s legal to send a DESTROY_SESSION outside any session (as the only\noperation in a compound), in which case cstate-\u003esession will be NULL;\ncheck for that case.\n\nWhile we\u0027re at it, move these checks into a separate helper function.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5306293c9cd2caf41849cc909281bda628bb989e",
      "tree": "3be4e8231e2772c8a43ddbef5c6a72c20b3054bb",
      "parents": [
        "dbd65a7e44fff4741a0b2c84bd6bace85d22c242",
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:27:05 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 11:29:05 2010 -0400"
      },
      "message": "Merge commit \u0027v2.6.34-rc6\u0027\n\nConflicts:\n\tfs/nfsd/nfs4callback.c\n"
    },
    {
      "commit": "dbd65a7e44fff4741a0b2c84bd6bace85d22c242",
      "tree": "cc049fb7838574ce7c43fc53ba7b7891236b9bc7",
      "parents": [
        "fb4b698fc78347419aa9ae7114e1375f92107500"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon May 03 19:31:33 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue May 04 10:10:36 2010 -0400"
      },
      "message": "nfsd4: use local variable in nfs4svc_encode_compoundres\n\n\u0027cs\u0027 is already computed, re-use it.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "26c0c75e69265961e891ed80b38fb62a548ab371",
      "tree": "1ecbc767a1b2ad3e8f25d88e918076806d8c2eb1",
      "parents": [
        "e0c8233622cbd49d171bc57b60e725f2fb748750"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Apr 24 15:35:43 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon May 03 08:32:31 2010 -0400"
      },
      "message": "nfsd4: fix unlikely race in session replay case\n\nIn the replay case, the\n\n\trenew_client(session-\u003ese_client);\n\nhappens after we\u0027ve droppped the sessionid_lock, and without holding a\nreference on the session; so there\u0027s nothing preventing the session\nbeing freed before we get here.\n\nThanks to Benny Halevy for catching a bug in an earlier version of this\npatch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nAcked-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "2bc3c1179c781b359d4f2f3439cb3df72afc17fc",
      "tree": "1ec45ae9721da85fb3807003067dd6be2b73a96d",
      "parents": [
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 20 12:16:52 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 26 15:39:08 2010 -0400"
      },
      "message": "nfsd4: bug in read_buf\n\nWhen read_buf is called to move over to the next page in the pagelist\nof an NFSv4 request, it sets argp-\u003eend to essentially a random\nnumber, certainly not an address within the page which argp-\u003ep now\npoints to.  So subsequent calls to READ_BUF will think there is much\nmore than a page of spare space (the cast to u32 ensures an unsigned\ncomparison) so we can expect to fall off the end of the second\npage.\n\nWe never encountered thsi in testing because typically the only\noperations which use more than two pages are write-like operations,\nwhich have their own decoding logic.  Something like a getattr after a\nwrite may cross a page boundary, but it would be very unusual for it to\ncross another boundary after that.\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d03859a4aca3969efd91dc77be7efa2ae45b05d8",
      "tree": "d0cef571e89763223e133315233333bb1a8f128d",
      "parents": [
        "5771635592267758e7dc5647f2a0088aa6244159"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Apr 22 11:30:59 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 12:03:02 2010 -0400"
      },
      "message": "nfsd: potential ERR_PTR dereference on exp_export() error paths.\n\nWe \"goto finish\" from several places where \"exp\" is an ERR_PTR.  Also I\nchanged the check for \"fsid_key\" so that it was consistent with the check\nI added.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5771635592267758e7dc5647f2a0088aa6244159",
      "tree": "71ffa3a85fe311d5eef591ba69e0bbe7d0b17edc",
      "parents": [
        "4b21d0defcc9680da8a694e92d5fe8eb668c2c0b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Apr 21 12:27:19 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:35:14 2010 -0400"
      },
      "message": "nfsd4: complete enforcement of 4.1 op ordering\n\nEnforce the rules about compound op ordering.\n\nMotivated by implementing RECLAIM_COMPLETE, for which the client is\nimplicit in the current session, so it is important to ensure a\nsuccesful SEQUENCE proceeds the RECLAIM_COMPLETE.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "4b21d0defcc9680da8a694e92d5fe8eb668c2c0b",
      "tree": "35684f814bbbc428236e0e542b292521e59f06e3",
      "parents": [
        "2bf23875f55af6038a5d1c164a52cec4c24609ba"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Mar 07 23:39:01 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: allow 4.0 clients to change callback path\n\nThe rfc allows a client to change the callback parameters, but we didn\u0027t\npreviously implement it.\n\nTeach the callbacks to rerun themselves (by placing themselves on a\nworkqueue) when they recognize that their rpc task has been killed and\nthat the callback connection has changed.\n\nThen we can change the callback connection by setting up a new rpc\nclient, modifying the nfs4 client to point at it, waiting for any work\nin progress to complete, and then shutting down the old client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2bf23875f55af6038a5d1c164a52cec4c24609ba",
      "tree": "b001fc6594833c6554c11836d23958c7c7049e35",
      "parents": [
        "b12a05cbdfdf7e4d8cbe8fa78e995f971420086b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 08 12:37:27 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: rearrange cb data structures\n\nMainly I just want to separate the arguments used for setting up the tcp\nclient from the rest.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b12a05cbdfdf7e4d8cbe8fa78e995f971420086b",
      "tree": "05f82bd2abf8ab0b688383c467b76db713cdcc09",
      "parents": [
        "b5a1a81e5c25fb6bb3fdc1812ba69ff6ab638fcf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 11:32:59 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:02 2010 -0400"
      },
      "message": "nfsd4: cl_count is unused\n\nNow that the shutdown sequence guarantees callbacks are shut down before\nthe client is destroyed, we no longer have a use for cl_count.\n\nWe\u0027ll probably reinstate a reference count on the client some day, but\nit will be held by users other than callbacks.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b5a1a81e5c25fb6bb3fdc1812ba69ff6ab638fcf",
      "tree": "c524a75d111f4060eb985161478362ac18c17169",
      "parents": [
        "3c4ab2aaa90826060b1e8d4036f9bb8325f8759e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 14:52:55 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 22 11:34:01 2010 -0400"
      },
      "message": "nfsd4: don\u0027t sleep in lease-break callback\n\nThe NFSv4 server\u0027s fl_break callback can sleep (dropping the BKL), in\norder to allocate a new rpc task to send a recall to the client.\n\nAs far as I can tell this doesn\u0027t cause any races in the current code,\nbut the analysis is difficult.  Also, the sleep here may complicate the\nmove away from the BKL.\n\nSo, just schedule some work to do the job for us instead.  The work will\nlater also prove useful for restarting a call after the callback\ninformation is changed.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3c4ab2aaa90826060b1e8d4036f9bb8325f8759e",
      "tree": "6575a63b8f33e23f0a85e28a7f08f96193549f1e",
      "parents": [
        "408b79bcc32d7221a4975771ab6bff3d3173d530"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 19 15:12:51 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 19 15:12:51 2010 -0400"
      },
      "message": "nfsd4: indentation cleanup\n\nLooks like a put-and-paste mistake.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "408b79bcc32d7221a4975771ab6bff3d3173d530",
      "tree": "b39fb803b110f524601693c7faf8f95c94371ef4",
      "parents": [
        "9045b4b9f7f340f43de0cf687b5b52f6feaaa984"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Apr 15 15:11:09 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 16 21:47:37 2010 -0400"
      },
      "message": "nfsd4: consistent session flag setting\n\nWe should clear these flags on any new create_session, not just on the\nfirst one.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9045b4b9f7f340f43de0cf687b5b52f6feaaa984",
      "tree": "5f955b3544bb8051723646090c2f2ecc91b07225",
      "parents": [
        "3df796dbe97a98a6a25e6b7b88e9d326e261f371"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 21 17:53:04 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 17:04:32 2010 -0400"
      },
      "message": "nfsd4: remove probe task\u0027s reference on client\n\nAny null probe rpc will be synchronously destroyed by the\nrpc_shutdown_client() in expire_client(), so the rpc task cannot outlast\nthe nfs4 client.  Therefore there\u0027s no need for that task to hold a\nreference on the client.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3df796dbe97a98a6a25e6b7b88e9d326e261f371",
      "tree": "b00b6ffb38a17fa6347db918d85a22c3fe9b3cf7",
      "parents": [
        "147efd0dd702ce2f1ab44449bd70369405ef68fd"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 21 17:51:53 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 17:04:31 2010 -0400"
      },
      "message": "nfsd4: remove dprintk\n\nI haven\u0027t found this useful.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "147efd0dd702ce2f1ab44449bd70369405ef68fd",
      "tree": "8d50a3d1bc78fffb9189a1ba3927f53c2ee8bb8a",
      "parents": [
        "227f98d98d2ed7929f41426adc21f57b927354a6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 21 17:41:19 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 16:36:30 2010 -0400"
      },
      "message": "nfsd4: shutdown callbacks on expiry\n\nOnce we\u0027ve expired the client, there\u0027s no further purpose to the\ncallbacks; go ahead and shut down the callback client rather than\nwaiting for the last reference to go.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "227f98d98d2ed7929f41426adc21f57b927354a6",
      "tree": "8186b54a4f4e0cb5b3a7778f76854b00c7ce43db",
      "parents": [
        "788e69e548cc8d127b90f0de1f7b7e983d1d587a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Feb 18 08:27:24 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 02 16:28:11 2010 -0400"
      },
      "message": "nfsd4: preallocate nfs4_rpc_args\n\nInstead of allocating this small structure, just include it in the\ndelegation.\n\nThe nfsd4_callback structure isn\u0027t really necessary yet, but we plan to\nadd to it all the information necessary to perform a callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "91885258e8343bb65c08f668d7e6c16563eb4284",
      "tree": "3178dabadca5342d63cc1d20ea843539a180aa94",
      "parents": [
        "61f8603d93fa0b0e2f73be7a4f048696417a24a3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Mar 19 08:06:28 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 22 15:37:53 2010 -0400"
      },
      "message": "nfsd: don\u0027t break lease while servicing a COMMIT\n\nThis is the second attempt to fix the problem whereby a COMMIT call\ncauses a lease break and triggers a possible deadlock.\n\nThe problem is that nfsd attempts to break a lease on a COMMIT call.\nThis triggers a delegation recall if the lease is held for a delegation.\nIf the client is the one holding the delegation and it\u0027s the same one on\nwhich it\u0027s issuing the COMMIT, then it can\u0027t return that delegation\nuntil the COMMIT is complete. But, nfsd won\u0027t complete the COMMIT until\nthe delegation is returned. The client and server are essentially\ndeadlocked until the state is marked bad (due to the client not\nresponding on the callback channel).\n\nThe first patch attempted to deal with this by eliminating the open of\nthe file altogether and simply had nfsd_commit pass a NULL file pointer\nto the vfs_fsync_range. That would conflict with some work in progress\nby Christoph Hellwig to clean up the fsync interface, so this patch\ntakes a different approach.\n\nThis declares a new NFSD_MAY_NOT_BREAK_LEASE access flag that indicates\nto nfsd_open that it should not break any leases when opening the file,\nand has nfsd_commit set that flag on the nfsd_open call.\n\nFor now, this patch leaves nfsd_commit opening the file with write\naccess since I\u0027m not clear on what sort of access would be more\nappropriate.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "61f8603d93fa0b0e2f73be7a4f048696417a24a3",
      "tree": "7de2f0fffd744026ef608c6df835944e8c4ba8bb",
      "parents": [
        "d202cce8963d9268ff355a386e20243e8332b308"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 03 17:31:31 2010 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 16 18:05:11 2010 -0400"
      },
      "message": "nfsd: factor out hash functions for export caches.\n\nBoth the _lookup and the _update functions for these two caches\nindependently calculate the hash of the key.\nSo factor out that code for improved reuse.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e739cf1da48e841bc5d744a99764c1a668b4bdd2",
      "tree": "1d39318bbbcdd66ad8cd34823ad9befb7af08b1f",
      "parents": [
        "e7b184f199fd3c80b618ec8244cbda70857d2779",
        "57d54889cd00db2752994b389ba714138652e60c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 09 17:22:08 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 09 17:22:08 2010 -0500"
      },
      "message": "Merge commit \u0027v2.6.34-rc1\u0027 into for-2.6.35-incoming\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "e7b184f199fd3c80b618ec8244cbda70857d2779",
      "tree": "217afb84633da9f4e563450950439e763e773e05",
      "parents": [
        "efc4bb4fdd09c11f5558446e584a494c6feb43c7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 02 11:18:40 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:10 2010 -0500"
      },
      "message": "nfsd4: document lease/grace-period limits\n\nThe current documentation here is out of date, and not quite right.\n\n(Future work: some user documentation would be useful.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "efc4bb4fdd09c11f5558446e584a494c6feb43c7",
      "tree": "2eacda55996d59bd5c3a44bf56001f3d94e9cacc",
      "parents": [
        "f013574014816c7a557b3c52233f3620463f0b9b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 02 11:04:06 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:08 2010 -0500"
      },
      "message": "nfsd4: allow setting grace period time\n\nAllow explicit configuration of the grace period time as well as the\nlease period time.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f013574014816c7a557b3c52233f3620463f0b9b",
      "tree": "d02032686b7e0580e6eb515c23dd1d245d1fda4a",
      "parents": [
        "f958a1320ff7a1e0e861d3c90de6da12a88839dc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 01 19:32:36 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:03 2010 -0500"
      },
      "message": "nfsd4: reshuffle lease-setting code to allow reuse\n\nWe\u0027ll soon allow setting the grace period, so we\u0027ll want to share this\ncode.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f958a1320ff7a1e0e861d3c90de6da12a88839dc",
      "tree": "32ab7959a6bf6c6062634eb2a10ba1cbaf6451bb",
      "parents": [
        "e46b498c84163e86e2627c30bca298c968664f65"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 01 19:43:02 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:03 2010 -0500"
      },
      "message": "nfsd4: remove unnecessary lease-setting function\n\nThis is another layer of indirection that doesn\u0027t really buy us\nanything.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e46b498c84163e86e2627c30bca298c968664f65",
      "tree": "2d55637d4f61e68e0a9a7340f0529fe3b6d44dd7",
      "parents": [
        "cf07d2ea43e5c22149435ee9002cb737eac20eca"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 01 19:21:21 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:02 2010 -0500"
      },
      "message": "nfsd4: simplify lease/grace interaction\n\nThe original code here assumed we\u0027d allow the user to change the lease\nany time, but only allow the change to take effect on restart.  Since\nthen we modified the code to allow setting the lease on when the server\nis down.  Update the rest of the code to reflect that fact, clarify\nvariable names, and add document.\n\nAlso, the code insisted that the grace period always be the longer of\nthe old and new lease periods, but that\u0027s overly conservative--as long\nas it lasts at least the old lease period, old clients should still know\nto recover in time.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "cf07d2ea43e5c22149435ee9002cb737eac20eca",
      "tree": "be8af254331398b2be20090b2b61da432229f109",
      "parents": [
        "4ea41e2de5bba756858bb40f964e3490b6d1a25c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 28 23:20:19 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Mar 06 15:02:01 2010 -0500"
      },
      "message": "nfsd4: simplify references to nfsd4 lease time\n\nInstead of accessing the lease time directly, some users call\nnfs4_lease_time(), and some a macro, NFSD_LEASE_TIME, defined as\nnfs4_lease_time().  Neither layer of indirection serves any purpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "05c5cb31ec47cacf38db56d9efaa37ca9d473132",
      "tree": "03f900679819abd8700d5ea93c22e3a59d3af7ca",
      "parents": [
        "4582a30c2fdca5d2b40f63a20ea082b93230ff2b",
        "4ea41e2de5bba756858bb40f964e3490b6d1a25c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:31:38 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd4: fix minor memory leak\n  svcrpc: treat uid\u0027s as unsigned\n  nfsd: ensure sockets are closed on error\n  Revert \"sunrpc: move the close processing after do recvfrom method\"\n  Revert \"sunrpc: fix peername failed on closed listener\"\n  sunrpc: remove unnecessary svc_xprt_put\n  NFSD: NFSv4 callback client should use RPC_TASK_SOFTCONN\n  xfs_export_operations.commit_metadata\n  commit_metadata export operation replacing nfsd_sync_dir\n  lockd: don\u0027t clear sm_monitored on nsm_reboot_lookup\n  lockd: release reference to nsm_handle in nlm_host_rebooted\n  nfsd: Use vfs_fsync_range() in nfsd_commit\n  NFSD: Create PF_INET6 listener in write_ports\n  SUNRPC: NFS kernel APIs shouldn\u0027t return ENOENT for \"transport not found\"\n  SUNRPC: Bury \"#ifdef IPV6\" in svc_create_xprt()\n  NFSD: Support AF_INET6 in svc_addsock() function\n  SUNRPC: Use rpc_pton() in ip_map_parse()\n  nfsd: 4.1 has an rfc number\n  nfsd41: Create the recovery entry for the NFSv4.1 client\n  nfsd: use vfs_fsync for non-directories\n  ...\n"
    },
    {
      "commit": "42e49608683ab25fbbbf9c40edb944601e543882",
      "tree": "5cc8beee91f235cdaf6be986f90275e04137c2bc",
      "parents": [
        "85f1fb72fa76eabc4481dc79f42d2b011df54762"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Fri Mar 05 13:42:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "vfs: take f_lock on modifying f_mode after open time\n\nWe\u0027ll introduce FMODE_RANDOM which will be runtime modified.  So protect\nall runtime modification to f_mode with f_lock to avoid races.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t\t[2.6.33.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4ea41e2de5bba756858bb40f964e3490b6d1a25c",
      "tree": "51a688be321dd42f80d8a0c966eb6a60408d50b3",
      "parents": [
        "8d75da8afd068fa58b35e69c7c8c46770d9e7a98",
        "398007f863a4af2b4a5a07219c5a617f1a098115"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 12:03:16 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Mar 04 12:04:51 2010 -0500"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs into for-2.6.34-incoming\n\nResolve merge conflict in fs/xfs/linux-2.6/xfs_export.c.\n"
    },
    {
      "commit": "8d75da8afd068fa58b35e69c7c8c46770d9e7a98",
      "tree": "9bec3e2fb1334df46403073e260795d8fd9bf156",
      "parents": [
        "ccdb357ccb77cc4cbe4f7abee9efd19957f0753a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 16:13:29 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 03 16:13:29 2010 -0500"
      },
      "message": "nfsd4: fix minor memory leak\n\nThere\u0027s no need to allocate this cred more than once.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "462d60577a997aa87c935ae4521bd303733a9f2b",
      "tree": "2b706cdb006078189ba409ad174d893d67b23daf",
      "parents": [
        "3088dd7080d1ecc6d18c27ef9e617cbbd2a2e51e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 30 16:11:21 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:57 2010 -0500"
      },
      "message": "fix NFS4 handling of mountpoint stat\n\nRFC says we need to follow the chain of mounts if there\u0027s more\nthan one stacked on that point.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8737c9305bd5602b11f7eb4655d5695d4a42a0c6",
      "tree": "54038cac1135b039a292151ebe9b156f80904843",
      "parents": [
        "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:47:55 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:21 2010 -0500"
      },
      "message": "Switch may_open() and break_lease() to passing O_...\n\n... instead of mixing FMODE_ and O_\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "58255a4e3ce506b43bb14d5579006731a981490d",
      "tree": "3b7cbbea0fc728b1a5c66b553a92f57440997ddb",
      "parents": [
        "978ebd97d1426d5708d3f353179ab81f191a7eeb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Feb 24 13:48:06 2010 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 24 17:50:28 2010 -0800"
      },
      "message": "NFSD: NFSv4 callback client should use RPC_TASK_SOFTCONN\n\nThe server\u0027s callback client should stop trying to connect to the\nclient\u0027s callback server as soon as it gets ECONNREFUSED.\n\nThe NFS server\u0027s callback client does not call rpc_ping(), but appears\nto have it\u0027s own \"ping\" procedure, so it wasn\u0027t covered by commit\ncaabea8a.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f501912a35c02eadc55ca9396ece55fe36f785d0",
      "tree": "f5d6f66d2ad14910e3c2c3d6725cac9402f37c1a",
      "parents": [
        "7e469af97eed947ba9204712601281a69ae8eb6c"
      ],
      "author": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 17 14:05:11 2010 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 20 13:13:44 2010 -0800"
      },
      "message": "commit_metadata export operation replacing nfsd_sync_dir\n\n- Add commit_metadata export_operation to allow the underlying filesystem to\ndecide how to commit an inode most efficiently.\n\n- Usage of nfsd_sync_dir and write_inode_now has been replaced with the\ncommit_metadata function that takes a svc_fh.\n\n- The commit_metadata function calls the commit_metadata export_op if it\u0027s\nthere, or else falls back to sync_inode instead of fsync and write_inode_now\nbecause only metadata need be synced here.\n\n- nfsd4_sync_rec_dir now uses vfs_fsync so that commit_metadata can be static\n\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aeaa5ccd6421fbf9e7ded0ac67b12ea2b9fcf51e",
      "tree": "f614a33edbd3daab32d616446eb45a526e68d21b",
      "parents": [
        "4e70af56319e56423d6eb1ce25fc321cdf8cd41d"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Mon Feb 15 18:07:39 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 20 00:47:31 2010 -0500"
      },
      "message": "vfs: don\u0027t call ima_file_check() unconditionally in nfsd_open()\n\ncommit 1e41568d7378d1ba8c64ba137b9ddd00b59f893a (\"Take ima_path_check()\nin nfsd past dentry_open() in nfsd_open()\") moved this code back to its\noriginal location but missed the \"else\".\n\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ad2f3fbb961429d2aa627465ae4829758bc7e07",
      "tree": "f365c513e8f5b477a61336a600ff54f32b7ad6e1",
      "parents": [
        "1537a3638cbf741d3826c1002026cce487a6bee0"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed Feb 03 08:01:28 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 09 11:13:56 2010 +0100"
      },
      "message": "tree-wide: Assorted spelling fixes\n\nIn particular, several occurances of funny versions of \u0027success\u0027,\n\u0027unknown\u0027, \u0027therefore\u0027, \u0027acknowledge\u0027, \u0027argument\u0027, \u0027achieve\u0027, \u0027address\u0027,\n\u0027beginning\u0027, \u0027desirable\u0027, \u0027separate\u0027 and \u0027necessary\u0027 are fixed.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "deb0c98c7f6035d47a247e548384517a955314a5",
      "tree": "26428b06c7c0c7db106d731c61c1dee2069c3a39",
      "parents": [
        "a5f28ae4df291d81d9d23066f88c55ca45e388d3",
        "260c64d23532caf19abb77e696971da05c388489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 08 17:08:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 08 17:08:01 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  Revert \"nfsd4: fix error return when pseudoroot missing\"\n"
    },
    {
      "commit": "260c64d23532caf19abb77e696971da05c388489",
      "tree": "75e0565f42f5e0639b5436c33470f67a591406b5",
      "parents": [
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 08 13:42:26 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 08 15:25:23 2010 -0500"
      },
      "message": "Revert \"nfsd4: fix error return when pseudoroot missing\"\n\nCommit f39bde24b275ddc45d fixed the error return from PUTROOTFH in the\ncase where there is no pseudofilesystem.\n\nThis is really a case we shouldn\u0027t hit on a correctly configured server:\nin the absence of a root filehandle, there\u0027s no point accepting version\n4 NFS rpc calls at all.\n\nBut the shared responsibility between kernel and userspace here means\nthe kernel on its own can\u0027t eliminate the possiblity of this happening.\nAnd we have indeed gotten this wrong in distro\u0027s, so new client-side\nmount code that attempts to negotiate v4 by default first has to work\naround this case.\n\nTherefore when commit f39bde24b275ddc45d arrived at roughly the same\ntime as the new v4-default mount code, which explicitly checked only for\nthe previous error, the result was previously fine mounts suddenly\nfailing.\n\nWe\u0027ll fix both sides for now: revert the error change, and make the\nclient-side mount workaround more robust.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9bbb6cad0173e6220f3ac609e26beb48dab3b7cd",
      "tree": "680e0de3071c938ca9858fa9ed5bd5ca8ff2f20f",
      "parents": [
        "54bb6552bd9405dc7685653157a4ec260c77a71c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Jan 26 17:02:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "ima: rename ima_path_check to ima_file_check\n\nima_path_check actually deals with files!  call it ima_file_check instead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8eb988c70e7709b7bd1a69f0ec53d19ac20dea84",
      "tree": "6d0283a9fbca5cc104f591b9cc628edf39bc0b05",
      "parents": [
        "1e41568d7378d1ba8c64ba137b9ddd00b59f893a"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Jan 20 15:35:41 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "fix ima breakage\n\nThe \"Untangling ima mess, part 2 with counters\" patch messed\nup the counters.  Based on conversations with Al Viro, this patch\nstreamlines ima_path_check() by removing the counter maintaince.\nThe counters are now updated independently, from measuring the file,\nin __dentry_open() and alloc_file() by calling ima_counts_get().\nima_path_check() is called from nfsd and do_filp_open().\nIt also did not measure all files that should have been measured.\nReason: ima_path_check() got bogus value passed as mask.\n[AV: mea culpa]\n[AV: add missing nfsd bits]\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1e41568d7378d1ba8c64ba137b9ddd00b59f893a",
      "tree": "755987f08fe2cc44dbdac089eb18a21ec844f179",
      "parents": [
        "4b06e5b9ad8abb20105b2b25e42c509ebe9b2d76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 26 05:43:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:22 2010 -0500"
      },
      "message": "Take ima_path_check() in nfsd past dentry_open() in nfsd_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa696a6f349638428982bb52763f4cda851632fa",
      "tree": "0a539326e81aa2eaacb2a57c9882d37e988058b3",
      "parents": [
        "37498292aa97658a5d0a9bb84699ce8c1016bb74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 29 16:44:25 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Jan 29 18:53:11 2010 -0500"
      },
      "message": "nfsd: Use vfs_fsync_range() in nfsd_commit\n\nThe NFS COMMIT operation allows the client to specify the exact byte range\nthat it wishes to sync to disk in order to optimise server performance.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "37498292aa97658a5d0a9bb84699ce8c1016bb74",
      "tree": "d428a82fd275b739a7d631a2707314d76b82e84c",
      "parents": [
        "68717908155a9dcd4161f4d730fea478712d9794"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 26 14:04:22 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 27 17:01:08 2010 -0500"
      },
      "message": "NFSD: Create PF_INET6 listener in write_ports\n\nTry to create a PF_INET6 listener for NFSD, if IPv6 is enabled in the\nkernel.\n\nMake sure nfsd_serv\u0027s reference count is decreased if\n__write_ports_addxprt() failed to create a listener.  See\n__write_ports_addfd().\n\nOur current plan is to rely on rpc.nfsd to create appropriate IPv6\nlisteners when server-side NFS/IPv6 support is desired.  Legacy\nbehavior, via the write_threads or write_svc kernel APIs, will remain\nthe same -- only IPv4 listeners are created.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[bfields@citi.umich.edu: Move error-handling code to end]\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "68717908155a9dcd4161f4d730fea478712d9794",
      "tree": "4553be47ed74cad18791ca6977f55f38d332fa37",
      "parents": [
        "d6783b2b6c4050df0ba0a84c6842cf5bc2212ef9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 26 14:04:13 2010 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 26 17:59:21 2010 -0500"
      },
      "message": "SUNRPC: NFS kernel APIs shouldn\u0027t return ENOENT for \"transport not found\"\n\nwrite_ports() converts svc_create_xprt()\u0027s ENOENT error return to\nEPROTONOSUPPORT so that rpc.nfsd (in user space) can report an error\nmessage that makes sense.\n\nIt turns out that several of the other kernel APIs rpc.nfsd use can\nalso return ENOENT from svc_create_xprt(), by way of lockd_up().\n\nOn the client side, an NFSv2 or NFSv3 mount request can also return\nthe result of lockd_up().  This error may also be returned during an\nNFSv4 mount request, since the NFSv4 callback service uses\nsvc_create_xprt() to create the callback listener.  An ENOENT error\nreturn results in a confusing error message from the mount command.\n\nLet\u0027s have svc_create_xprt() return EPROTONOSUPPORT instead of ENOENT.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8b8aae4009349397fffe7bd38a8fa200c9a5bcad",
      "tree": "0cf7e11305196002aeadd250d7eb664dbece3b91",
      "parents": [
        "6a68f89ee1f2d177af4a5410fa7a45734c975fd6"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Fri Dec 11 19:10:48 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Jan 14 12:24:46 2010 -0500"
      },
      "message": "nfsd41: Create the recovery entry for the NFSv4.1 client\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6a68f89ee1f2d177af4a5410fa7a45734c975fd6",
      "tree": "1a462b27a4d783d1b6a368bf6cf9c7970f93b8ae",
      "parents": [
        "de3cab793c6a5c8505d66bee111edcc7098380ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:45:13 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 13 09:42:26 2010 -0500"
      },
      "message": "nfsd: use vfs_fsync for non-directories\n\nInstead of opencoding the fsync calling sequence use vfs_fsync.  This also\ngets rid of the useless i_mutex over the data writeout.\n\nConsolidate the remaining special code for syncing directories and document\nit\u0027s quirks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "de3cab793c6a5c8505d66bee111edcc7098380ba",
      "tree": "d4c74af987ac1ca2a74b63e08b2055eef97fb48f",
      "parents": [
        "c551866e649bac66a5145d100f34086d6edb581e"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Fri Dec 11 20:03:27 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 13 09:42:26 2010 -0500"
      },
      "message": "nfsd4: Use FIRST_NFS4_OP in nfsd4_decode_compound()\n\nSince we\u0027re checking for LAST_NFS4_OP, use FIRST_NFS4_OP to be consistent.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c551866e649bac66a5145d100f34086d6edb581e",
      "tree": "ff6362dc3d14841575a42d30fb605a178793dcb1",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Fri Dec 11 19:10:49 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 13 09:42:26 2010 -0500"
      },
      "message": "nfsd41: nfsd4_decode_compound() does not recognize all ops\n\nThe server incorrectly assumes that the operations in the\narray start with value 0.  The first operation (OP_ACCESS)\nhas a value of 3, causing the check in nfsd4_decode_compound\nto be off.\n\nInstead of comparing that the operation number is less than\nthe number of elements in the array, the server should verify\nthat it is less than the maximum valid operation number\ndefined by LAST_NFS4_OP.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "93939f4e5df30e6229a0b5257fdcaf3faf88471c",
      "tree": "f30acb3e4a35ea96b342f3b1dd25700e7b531def",
      "parents": [
        "b1c0ec8966fa79891b796f58bf2bda1026ca5566",
        "b292cf9ce70d221c3f04ff62db5ab13d9a249ca8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:10:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.33\u0027 of git://linux-nfs.org/~bfields/linux:\n  sunrpc: fix peername failed on closed listener\n  nfsd: make sure data is on disk before calling -\u003efsync\n  nfsd: fix \"insecure\" export option\n"
    },
    {
      "commit": "7211a4e859ad070b28545c06e0a6cb60b3b8aa31",
      "tree": "2a769132446f73cf593661428e68d7086168a5b2",
      "parents": [
        "f69ac2f5a36948e1adf071074414c5d1907b89b7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Dec 25 17:44:45 2009 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 06 17:37:26 2010 -0500"
      },
      "message": "nfsd: make sure data is on disk before calling -\u003efsync\n\nnfsd is not using vfs_fsync, so I missed it when changing the calling\nconvention during the 2.6.32 window.  This patch fixes it to not only\nstart the data writeout, but also wait for it to complete before calling\ninto -\u003efsync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3d354cbc43db36e7e8b27ed78901064b87864ffc",
      "tree": "08de81316e22a8edf430f4de9074968d2d73b57a",
      "parents": [
        "dd59f6c76b265ed2ff18b497d6105a9511b1feb1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 20 10:43:35 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 20 20:19:51 2009 -0800"
      },
      "message": "nfsd: fix \"insecure\" export option\n\nA typo in 12045a6ee9908b \"nfsd: let \"insecure\" flag vary by\npseudoflavor\" reversed the sense of the \"insecure\" flag.\n\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f69ac2f5a36948e1adf071074414c5d1907b89b7",
      "tree": "71fd91c4f6d644f118efe0e04c16413c44d15e00",
      "parents": [
        "7663dacd926584093dfc350892792054692b6cb3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 18 16:31:34 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 20 10:22:58 2009 -0500"
      },
      "message": "nfsd: fix \"insecure\" export option\n\nA typo in 12045a6ee9908b \"nfsd: let \"insecure\" flag vary by\npseudoflavor\" reversed the sense of the \"insecure\" flag.\n\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bac5e54c29f352d962a2447d22735316b347b9f1",
      "tree": "7642993fa93164835ffaa2dacd341388193f1979",
      "parents": [
        "529e89430d6c0d64db8ac474cb95e68e2527c79a",
        "c05c4edd876b7ae92787d1295868afcb89b6a348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 12:04:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (38 commits)\n  direct I/O fallback sync simplification\n  ocfs: stop using do_sync_mapping_range\n  cleanup blockdev_direct_IO locking\n  make generic_acl slightly more generic\n  sanitize xattr handler prototypes\n  libfs: move EXPORT_SYMBOL for d_alloc_name\n  vfs: force reval of target when following LAST_BIND symlinks (try #7)\n  ima: limit imbalance msg\n  Untangling ima mess, part 3: kill dead code in ima\n  Untangling ima mess, part 2: deal with counters\n  Untangling ima mess, part 1: alloc_file()\n  O_TRUNC open shouldn\u0027t fail after file truncation\n  ima: call ima_inode_free ima_inode_free\n  IMA: clean up the IMA counts updating code\n  ima: only insert at inode creation time\n  ima: valid return code from ima_inode_alloc\n  fs: move get_empty_filp() deffinition to internal.h\n  Sanitize exec_permission_lite()\n  Kill cached_lookup() and real_lookup()\n  Kill path_lookup_open()\n  ...\n\nTrivial conflicts in fs/direct-io.c\n"
    },
    {
      "commit": "1429b3eca23818f87f9fa569a15d9816de81f698",
      "tree": "3100f009ec8863ee4692ee197b8e0c16c11258e6",
      "parents": [
        "b65a9cfc2c38eebc33533280b8ad5841caee8b6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:38:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 3: kill dead code in ima\n\nKill the \u0027update\u0027 argument of ima_path_check(), kill\ndead code in ima.\n\nCurrent rules: ima counters are bumped at the same time\nwhen the file switches from put_filp() fodder to fput()\none.  Which happens exactly in two places - alloc_file()\nand __dentry_open().  Nothing else needs to do that at\nall.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b65a9cfc2c38eebc33533280b8ad5841caee8b6e",
      "tree": "d6e5b713615cc5e65c900162ab09235ae4847909",
      "parents": [
        "0552f879d45cecc35d8e372a591fc5ed863bca58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 06:27:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:47 2009 -0500"
      },
      "message": "Untangling ima mess, part 2: deal with counters\n\n* do ima_get_count() in __dentry_open()\n* stop doing that in followups\n* move ima_path_check() to right after nameidata_to_filp()\n* don\u0027t bump counters on it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7663dacd926584093dfc350892792054692b6cb3",
      "tree": "3300005fc836d8a6661d758212289963f850d728",
      "parents": [
        "1557aca7904ed6fadd22cdc3364754070bb3d3c3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:49:00 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:47 2009 -0500"
      },
      "message": "nfsd: remove pointless paths in file headers\n\nThe new .h files have paths at the top that are now out of date.  While\nwe\u0027re here, just remove all of those from fs/nfsd; they never served any\npurpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1557aca7904ed6fadd22cdc3364754070bb3d3c3",
      "tree": "97af309e4cff7e9fc2cb9d90aeceff8404c2c47f",
      "parents": [
        "c7af6b0895229bd080b86afc91302b66f6df0378"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Dec 04 19:36:06 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:46 2009 -0500"
      },
      "message": "nfsd: move most of nfsfh.h to fs/nfsd\n\nMost of this can be trivially moved to a private header as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "774b147828e32ec698e49d95d0498fc71da7082d",
      "tree": "a6fbbe083696229eff979e11a4fda1df3dd382f8",
      "parents": [
        "03a816b46d7eba78da11e4025f0af195b32fa464"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Dec 13 20:21:48 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 15:01:44 2009 -0500"
      },
      "message": "nfsd: make V4ROOT exports read-only\n\nI can\u0027t see any use for writeable V4ROOT exports.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03a816b46d7eba78da11e4025f0af195b32fa464",
      "tree": "5069e9183dd5535c61bc7eff8a8a03202a19568d",
      "parents": [
        "f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 15:06:05 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: restrict filehandles accepted in V4ROOT case\n\nOn V4ROOT exports, only accept filehandles that are the *root* of some\nexport.  This allows mountd to allow or deny access to individual\ndirectories and symlinks on the pseudofilesystem.\n\nNote that the checks in readdir and lookup are not enough, since a\nmalicious host with access to the network could guess filehandles that\nthey weren\u0027t able to obtain through lookup or readdir.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f2ca7153ca49a407ea1c7232c9fa7e9849f03f9c",
      "tree": "56e85e17fa0c579bf4d6aa12eec13da5833b2bb7",
      "parents": [
        "3227fa41abc191384fa81b3bcf52aa7fccb31536"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 12 17:26:19 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: allow exports of symlinks\n\nWe want to allow exports of symlinks, to allow mountd to communicate to\nthe kernel which symlinks lead to exports, and hence which symlinks need\nto be visible on the pseudofilesystem.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3227fa41abc191384fa81b3bcf52aa7fccb31536",
      "tree": "f50512f2feecfc2fde13b0843cbbfb87728e2442",
      "parents": [
        "82ead7fe41da960ed80652d13d5a1072f85f5aca"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:43:01 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:24 2009 -0500"
      },
      "message": "nfsd: filter readdir results in V4ROOT case\n\nAs with lookup, we treat every boject as a mountpoint and pretend it\ndoesn\u0027t exist if it isn\u0027t exported.\n\nThe preexisting code here is confusing, but I haven\u0027t yet figured out\nhow to make it clearer.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "82ead7fe41da960ed80652d13d5a1072f85f5aca",
      "tree": "b4f870c1c6ef0e66ceca68be03a8e4eb3b139e2e",
      "parents": [
        "3b6cee7bc4b2f7858e9202293104acda8826bb68"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:33:15 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd: filter lookup results in V4ROOT case\n\nWe treat every object as a mountpoint and pretend it doesn\u0027t exist if\nit isn\u0027t exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3b6cee7bc4b2f7858e9202293104acda8826bb68",
      "tree": "52a1775073ef330a307ec6d81bc2da4d419a71b4",
      "parents": [
        "eb4c86c6a5adec423c9e615d4937fdddd06a16c5"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Oct 25 21:18:19 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:07:23 2009 -0500"
      },
      "message": "nfsd4: don\u0027t continue \"under\" mounts in V4ROOT case\n\nIf /A/mount/point/ has filesystem \"B\" mounted on top of it, and if \"A\"\nis exported, but not \"B\", then the nfs server has always returned to the\nclient a filehandle for the mountpoint, instead of for the root of \"B\",\nallowing the client to see the subtree of \"A\" that would otherwise be\nhidden by B.\n\nDisable this behavior in the case of V4ROOT exports; we implement the\npath restrictions of V4ROOT exports by treating *every* directory as if\nit were a mountpoint, and allowing traversal *only* if the new directory\nis exported.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "eb4c86c6a5adec423c9e615d4937fdddd06a16c5",
      "tree": "50aee7013c9ca92cce9828268af4ee3d220a416c",
      "parents": [
        "12045a6ee9908b38b6d286530c7d816e39071346"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Wed Sep 09 14:58:22 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 15 14:00:40 2009 -0500"
      },
      "message": "nfsd: introduce export flag for v4 pseudoroot\n\nNFSv4 differs from v2 and v3 in that it presents a single unified\nfilesystem tree, whereas v2 and v3 exported multiple filesystem (whose\nroots could be found using a separate mount protocol).\n\nOur original NFSv4 server implementation asked the administrator to\ndesignate a single filesystem as the NFSv4 root, then to mount\nfilesystems they wished to export underneath.  (Often using bind mounts\nof already-existing filesystems.)\n\nThis was conceptually simple, and allowed easy implementation, but\ncreated a serious obstacle to upgrading between v2/v3: since the paths\nto v4 filesystems were different, administrators would have to adjust\nall the paths in client-side mount commands when switching to v4.\n\nVarious workarounds are possible.  For example, the administrator could\nexport \"/\" and designate it as the v4 root.  However, the security risks\nof that approach are obvious, and in any case we shouldn\u0027t be requiring\nthe administrator to take extra steps to fix this problem; instead, the\nserver should present consistent paths across different versions by\ndefault.\n\nThese patches take a modified version of that approach: we provide a new\nexport option which exports only a subset of a filesystem.  With this\nflag, it becomes safe for mountd to export \"/\" by default, with no need\nfor additional configuration.\n\nWe begin just by defining the new flag.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "12045a6ee9908b38b6d286530c7d816e39071346",
      "tree": "649491cd62d895c32cde4ab488df7e32557eedff",
      "parents": [
        "e8e8753f7a32ce4f636771126fc8eba0dc4ad817"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 08 18:15:52 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 19:08:58 2009 -0500"
      },
      "message": "nfsd: let \"insecure\" flag vary by pseudoflavor\n\nThis was an oversight; it should be among the export flags that can be\nallowed to vary by pseudoflavor.  This allows an administrator to (for\nexample) allow auth_sys mounts only from low ports, but allow auth_krb5\nmounts to use any port.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e8e8753f7a32ce4f636771126fc8eba0dc4ad817",
      "tree": "b7298d70312e7ea267343ebe4ed001aa8f1986c8",
      "parents": [
        "9a74af21330c8d46efa977d088a62cc1bfa954e9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 12:53:32 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:51:29 2009 -0500"
      },
      "message": "nfsd: new interface to advertise export features\n\nSoon we will add the new V4ROOT flag, and allow the INSECURE flag to\nvary by pseudoflavor.  It would be useful for nfs-utils (for example,\nfor improved exportfs error reporting) to be able to know when this\nhappens.  Use this new interface for that purpose.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a74af21330c8d46efa977d088a62cc1bfa954e9",
      "tree": "6f2e4b775738ae93da05ad475b244785bf40461e",
      "parents": [
        "68590c382b875cc9a76b06097f3dff6730d787c1"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:30:56 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:12 2009 -0500"
      },
      "message": "nfsd: Move private headers to source directory\n\nLots of include/linux/nfsd/* headers are only used by\nnfsd module. Move them to the source directory\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "341eb184469f8e4a6841fc49a57ad4a27e51c335",
      "tree": "df6b06cc5b15ae421b589865fc008df1219589a4",
      "parents": [
        "72579ac9cd68081108277c31781b127d0f420d61"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Dec 03 20:29:12 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:12:09 2009 -0500"
      },
      "message": "nfsd: Source files #include cleanups\n\nNow that the headers are fixed and carry their own wait, all fs/nfsd/\nsource files can include a minimal set of headers. and still compile just\nfine.\n\nThis patch should improve the compilation speed of the nfsd module.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "57ecb34febc4c133ca0ccc7817796605a78a01d3",
      "tree": "cc0b9443c5b1c56c138b3bc0066d36afe55faaeb",
      "parents": [
        "864f0f61f829bac5f150a903aad9619322a25424"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 01 19:42:57 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Dec 14 18:06:54 2009 -0500"
      },
      "message": "nfsd4: fix share mode permissions\n\nNFSv4 opens may function as locks denying other NFSv4 users the rights\nto open a file.\n\nWe\u0027re requiring a user to have write permissions before they can deny\nwrite.  We\u0027re *not* requiring a user to have write permissions to deny\nread, which is if anything a more drastic denial.\n\nWhat was intended was to require write permissions for DENY_READ.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "864f0f61f829bac5f150a903aad9619322a25424",
      "tree": "77a864ab5538255dfba454d13f67de60807f2973",
      "parents": [
        "9b8b317d58084b9a44f6f33b355c4278d9f841fb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 25 17:42:05 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 25 17:55:46 2009 -0500"
      },
      "message": "nfsd: simplify fh_verify access checks\n\nAll nfsd security depends on the security checks in fh_verify, and\nespecially on nfsd_setuser().\n\nIt therefore bothers me that the nfsd_setuser call may be made from\nthree different places, depending on whether the filehandle has already\nbeen mapped to a dentry, and on whether subtreechecking is in force.\n\nInstead, make an unconditional call in fh_verify(), so it\u0027s trivial to\nverify that the call always occurs.\n\nThat leaves us with a redundant nfsd_setuser() call in the subtreecheck\ncase--it needs the correct user set earlier in order to check execute\npermissions on the path to this filehandle--but I\u0027m willing to accept\nthat minor inefficiency in the subtreecheck case in return for more\nstraightforward permission checking.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9b8b317d58084b9a44f6f33b355c4278d9f841fb",
      "tree": "e0df89800bf4301c4017db3cdf04a2056ec1a852",
      "parents": [
        "78c210efdefe07131f91ed512a3308b15bb14e2f",
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 23 12:34:58 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Nov 23 12:34:58 2009 -0500"
      },
      "message": "Merge commit \u0027v2.6.32-rc8\u0027 into HEAD\n"
    },
    {
      "commit": "479c2553af9a176a0613894b9f1ec73425fd56a3",
      "tree": "3d306d6ee61bfbd6117f2a6e8ec54bffe472c9a2",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Sat Nov 14 10:47:07 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 12:55:55 2009 -0800"
      },
      "message": "Fix memory corruption caused by nfsd readdir+\n\nCommit 8177e6d6dfb9cd03d9bdeb647c32161f8f58f686 (\"nfsd: clean up\nreaddirplus encoding\") introduced single character typo in nfs3 readdir+\nimplementation.  Unfortunately that typo has quite bad side effects:\nrandom memory corruption, followed (on my box) with immediate\nspontaneous box reboot.\n\nUsing \u0027p1\u0027 instead of \u0027p\u0027 fixes my Linux box rebooting whenever VMware\nESXi box tries to list contents of my home directory.\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a3adadee42f2865bb867b8c5f4955b7def9baad",
      "tree": "de98be9152faba8ea38bae24a7f5cce33ae99148",
      "parents": [
        "ea4878a24d7e6a467d369b962bab95bd6a12cbe0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 04 18:12:35 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Nov 13 13:23:02 2009 -0500"
      },
      "message": "nfsd: make fs/nfsd/vfs.h for common includes\n\nNone of this stuff is used outside nfsd, so move it out of the common\nlinux include directory.\n\nActually, probably none of the stuff in include/linux/nfsd/nfsd.h really\nbelongs there, so later we may remove that file entirely.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c10cbdb4af642d9a2efb45ea89251aaab905360",
      "tree": "5d3527560565ed0a9d392368b14c581db5707c79",
      "parents": [
        "1b7e0403c6a72d18bebd4f2a6858b6c69c4bd428"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Mon Oct 19 12:04:53 2009 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Nov 05 12:06:29 2009 -0500"
      },
      "message": "nfsd: use STATEID_FMT and STATEID_VAL for printing stateids\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1b7e0403c6a72d18bebd4f2a6858b6c69c4bd428",
      "tree": "94ef83aeae87abc76464b58e439642c5bcd79050",
      "parents": [
        "aba24d71580180dfdf6a1a83a5858a1c048fd785"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Mon Nov 02 16:59:07 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Nov 04 13:46:37 2009 -0500"
      },
      "message": "nfsd: register NFS_ACL with rpcbind\n\nModify the NFS server to register the NFS_ACL services with the rpcbind\ndaemon.  This allows the client to ping for the existence of the NFS_ACL\nsupport via commands such as \"rpcinfo -t \u003cserver\u003e nfs_acl\".\n\nThis patch also modifies the NFS_ACL support so that responses to\nversion 2 NULLPROC requests can be made.\n\nThe changelog for the patch which turned off this functionality\nmentioned something about not registering the NFS_ACL as being part of\nsome tradition.  I can\u0027t find this tradition and the only other\nimplementation which supports NFS_ACL does register them with the\nrpcbind daemon.\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "aba24d71580180dfdf6a1a83a5858a1c048fd785",
      "tree": "fc96b617d4ec4b92965513cab2a1bdfc8298fec5",
      "parents": [
        "dc83d6e27fa80babe31c80aa8568f125f72edf57"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Wed Oct 21 16:45:02 2009 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:44 2009 -0400"
      },
      "message": "nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups\n\nWe have been doing some extensive testing of Linux support for ACLs on\nNFDS v4. We have noticed that the server rejects ACLs where the groups\nare out of order, for example, the following ACL is rejected:\n\nA::OWNER@:rwaxtTcCy\nA::user101@domain:rwaxtcy\nA::GROUP@:rwaxtcy\nA:g:group102@domain:rwaxtcy\nA:g:group101@domain:rwaxtcy\nA::EVERYONE@:rwaxtcy\n\nExamining the server code, I found that after converting an NFS v4 ACL\nto POSIX, sort_pacl is called to sort the user ACEs and group ACEs.\nUnfortunately, a minor bug causes the group sort to be skipped.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "efe0cb6d5a1f20ad4df045a055048afed4c5e660",
      "tree": "850a3205944995a78f321cac0ed04cb260055d14",
      "parents": [
        "dd829c45640ff14d7a039af40b3b3975f1b2e484"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 24 20:52:16 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:43 2009 -0400"
      },
      "message": "nfsd4.1: common slot allocation size calculation\n\nWe do the same calculation in a couple places; use a helper function,\nand add a little documentation, in the hopes of preventing bugs like\nthat fixed in the last patch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd829c45640ff14d7a039af40b3b3975f1b2e484",
      "tree": "e19e0b89419521e5baeb095ca858493a2d47bcf7",
      "parents": [
        "dc7a08166f3a5f23e79e839a8a88849bd3397c32"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Oct 21 17:54:13 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 19:34:43 2009 -0400"
      },
      "message": "nfsd4.1: fix session memory use calculation\n\nUnbalanced calculations on creation and destruction of sessions could\ncause our estimate of cache memory used to become negative, sometimes\nresulting in spurious SERVERFAULT returns to client CREATE_SESSION\nrequests.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e343eb0d60f74547e0aeb5bd151105c2e6cfe588",
      "tree": "92586df0daf3298262a957640e5c86679c963f41",
      "parents": [
        "ddc04fd4d5163aee9ebdb38a56c365b602e2b7b7",
        "012abeea669ea49636cf952d13298bb68654146a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 18:45:17 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 27 18:45:17 2009 -0400"
      },
      "message": "Merge commit \u0027v2.6.32-rc5\u0027 into for-2.6.33\n"
    }
  ],
  "next": "828c09509b9695271bcbdc53e9fc9a6a737148d2"
}
