)]}'
{
  "log": [
    {
      "commit": "51581f3bf922512880f52a7777923fd6dcfc792b",
      "tree": "91e9c6c6a89705e76ec07574d296967c3bde24a9",
      "parents": [
        "3e4f6290ca4df7464ee066123f2bca4298c2dab4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "message": "NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "286d7d6a0cb38d3d4316a1dfea9b0c0fc5a6455b",
      "tree": "844ea8a14db8261a3977ae4d460e227402a4a426",
      "parents": [
        "b4454fe1a7cb76a248d0641c9d68a44a1b8d9a1f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:26 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:47 2006 -0500"
      },
      "message": "NFSv4: Remove requirement for machine creds for the \"setclientid\" operation\n\n Use a cred from the nfs4_client-\u003ecl_state_owners list.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4454fe1a7cb76a248d0641c9d68a44a1b8d9a1f",
      "tree": "50ddc265e9700b1924e45ffce0f4583ba1013177",
      "parents": [
        "58d9714a44a79bba9b414da3ffbf3c753dc5915f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:25 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:47 2006 -0500"
      },
      "message": "NFSv4: Remove requirement for machine creds for the \"renew\" operation\n\n In RFC3530, the RENEW operation is allowed to use either\n\n the same principal, RPC security flavour and (if RPCSEC_GSS), the same\n  mechanism and service that was used for SETCLIENTID_CONFIRM\n\n OR\n\n Any principal, RPC security flavour and service combination that\n currently has an OPEN file on the server.\n\n Choose the latter since that doesn\u0027t require us to keep credentials for\n the same principal for the entire duration of the mount.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5043e900f5404c01864fbeb5826aa7de3981bbc1",
      "tree": "eaefbbcfd6afb79cc1ad8c9beed49cc56d9ecd53",
      "parents": [
        "433fbe4c8837e3cc2ba6a6374edf28737d01a2e9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:23 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:46 2006 -0500"
      },
      "message": "NFS: Convert instances of kernel_thread() to kthread()\n\n Convert private implementations in NFSv4 state recovery and delegation\n code to use kthreads.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "433fbe4c8837e3cc2ba6a6374edf28737d01a2e9",
      "tree": "9448a58eafca388efaab5d3653c818fe60a4450d",
      "parents": [
        "26e976a884be9aa08f8ff906372f25f68df0d948"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:22 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:45 2006 -0500"
      },
      "message": "NFSv4: State recovery cleanup\n\n Use wait_on_bit() when waiting for state recovery to complete.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e761692381f294ea079d2e869fcd7c0afc79e394",
      "tree": "34ebc00c001cddc94866936c460547d311e5dabb",
      "parents": [
        "cdd4e68b5f0ed12c64b3e2be83655d2a47588a74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:13 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:43 2006 -0500"
      },
      "message": "NFSv4: Make nfs4_state track O_RDWR, O_RDONLY and O_WRONLY separately\n\n A closer reading of RFC3530 reveals that OPEN_DOWNGRADE must always\n specify a access modes that have been the argument of a previous OPEN\n operation.\n IOW: doing OPEN(O_RDWR) and then OPEN_DOWNGRADE(O_WRONLY) is forbidden\n unless the user called OPEN(O_WRONLY)\n\n In order to fix that, we really need to track the three possible open\n states separately.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36f20c6df75d599393d79c7feb6283b20913e3d5",
      "tree": "89b95044fe7342fd585f8ebfb62d816d46dc7f1d",
      "parents": [
        "af95598744a83506063b411d81c4f819bf774f62"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:09:57 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:11:28 2005 -0500"
      },
      "message": "NFSv4: Fix buggy nfs_wait_on_sequence()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f99d49adf527fa6f7a9c42257fa76bca6b8df1e3",
      "tree": "41dddbc336016f9dc9557cdb15300de5e599dac1",
      "parents": [
        "6044ec8882c726e325017bd948aa0cd94ad33abc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Nov 07 01:01:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] kfree cleanup: fs\n\nThis is the fs/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in fs/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "43b2a33aa868054bd477ab2c1cd20f1ba1af2c3e",
      "tree": "f22ad362b9f877dfd4bc44139894a045aa48059a",
      "parents": [
        "34ea818846e6cccdd6e05354ab8c8a6d7e34657a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:35:30 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:35:30 2005 -0500"
      },
      "message": "NFSv4: Fix recovery of flock() locks.\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d530838bfa507d67b40d13b00d9cbd7a46a47e78",
      "tree": "f4b2be26c0a7b9ed3233a2be016b7e97427f8705",
      "parents": [
        "4cecb76ff86db46d2823550256c828b6597f418e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "message": "NFSv4: Fix problem with OPEN_DOWNGRADE\n\n RFC 3530 states that for OPEN_DOWNGRADE \"The share_access and share_deny\n bits specified must be exactly equal to the union of the share_access and\n share_deny bits specified for some subset of the OPENs in effect for\n current openowner on the current file.\n\n Setattr is currently violating the NFSv4 rules for OPEN_DOWNGRADE in that\n it may cause a downgrade from OPEN4_SHARE_ACCESS_BOTH to\n OPEN4_SHARE_ACCESS_WRITE despite the fact that there exists no open file\n with O_WRONLY access mode.\n\n Fix the problem by replacing nfs4_find_state() with a modified version of\n nfs_find_open_context().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cecb76ff86db46d2823550256c828b6597f418e",
      "tree": "db80c6f4423d2559661234e8d1cd34b2c15f7750",
      "parents": [
        "462aae65f6ea41de05ebc2a54a9e6b95563591f3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:32:58 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:32:58 2005 -0500"
      },
      "message": "NFSv4: Fix a race between open() and close()\n\n We must not remove the nfs4_state structure from the inode open lists\n before we are in sequence lock.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec073428281b401f1142cb84b277a5b00c7994c9",
      "tree": "c96e6d10af61dc3fd678c46dda505791812ca985",
      "parents": [
        "4e51336a00bdcb42960acca52c23e90e9f4e6959"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:47 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:47 2005 -0700"
      },
      "message": "NFSv4: Fix up locking for nfs4_state_owner\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4e51336a00bdcb42960acca52c23e90e9f4e6959",
      "tree": "87d619bcd796a0c272abe2499bcc56bc3eda30b4",
      "parents": [
        "a0857d03b21fa54653c9d2fe7a315381176015b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:41 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:41 2005 -0700"
      },
      "message": "NFSv4: Final tweak to sequence id\n\n Sacrifice queueing fairness for performance.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7f709a48fa798cfa0f2f777c8752e12995054f78",
      "tree": "fde5f4b4918205ba4c547ecaac95acbc8a37caa0",
      "parents": [
        "cb1f7be73b6f708d4f4ce225a3bbc02908b729e4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 23:19:39 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 23:19:39 2005 -0700"
      },
      "message": "NFSv4: Fix an oopsable condition in nfs_free_seqid\n\n Storing a pointer to the struct rpc_task in the nfs_seqid is broken\n since the nfs_seqid may be freed well after the task has been destroyed.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "faf5f49c2d9c0af2847837c232a432cc146e203b",
      "tree": "f0c097ae68ca3ec3cd5ee0a904916493b00b9c1b",
      "parents": [
        "0a8838f972883112f0a7b259141b24db17583c2d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "message": "NFSv4: Make NFS clean up byte range locks asynchronously\n\n Currently we fail to do so if the process was signalled.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "83c9d41e456033000ccfadf535f3098d8739488d",
      "tree": "09f5573ba348225bb7eed14c20b3305f49449e06",
      "parents": [
        "e6dfa553cffcb9740f932311dff42f81d6ac63bb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "message": "NFSv4: Remove nfs4_client-\u003ecl_sem from close() path\n\n We no longer need to worry about collisions between close() and the state\n recovery code, since the new close will automatically recheck the\n file state once it is done waiting on its sequence slot.\n\n Ditto for the nfs4_proc_locku() procedure.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6dfa553cffcb9740f932311dff42f81d6ac63bb",
      "tree": "d5519b749b6a7fb6e25b0459385011cd69a6caaf",
      "parents": [
        "9512135df14f8293b9bc5e8fb22d4279dee5ff66"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "message": "NFSv4: Remove obsolete state_owner and lock_owner semaphores\n\n OPEN, CLOSE, etc no longer need these semaphores to ensure ordering of\n requests.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9512135df14f8293b9bc5e8fb22d4279dee5ff66",
      "tree": "83fb778ed53ba10c46734968f538aa0a57d376a1",
      "parents": [
        "cee54fc944422c44e476736c045a9e8053cb0644"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "message": "NFSv4: Fix a potential CLOSE race\n\n Once the state_owner and lock_owner semaphores get removed, it will be\n possible for other OPEN requests to reopen the same file if they have\n lower sequence ids than our CLOSE call.\n This patch ensures that we recheck the file state once\n nfs_wait_on_sequence() has completed waiting.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cee54fc944422c44e476736c045a9e8053cb0644",
      "tree": "95f4728b3ffa8a2456727b10cd3a68f2a3065415",
      "parents": [
        "5e5ce5be6f0161d2a069a4f8a1154fe639c5c02f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "message": "NFSv4: Add functions to order RPC calls\n\n NFSv4 file state-changing functions such as OPEN, CLOSE, LOCK,... are all\n labelled with \"sequence identifiers\" in order to prevent the server from\n reordering RPC requests, as this could cause its file state to\n become out of sync with the client.\n\n Currently the NFS client code enforces this ordering locally using\n semaphores to restrict access to structures until the RPC call is done.\n This, of course, only works with synchronous RPC calls, since the\n user process must first grab the semaphore.\n By dropping semaphores, and instead teaching the RPC engine to hold\n the RPC calls until they are ready to be sent, we can extend this\n process to work nicely with asynchronous RPC calls too.\n\n This patch adds a new list called \"rpc_sequence\" that defines the order\n of the RPC calls to be sent. We add one such list for each state_owner.\n When an RPC call is ready to be sent, it checks if it is top of the\n rpc_sequence list. If so, it proceeds. If not, it goes back to sleep,\n and loops until it hits top of the list.\n Once the RPC call has completed, it can then bump the sequence id counter,\n and remove itself from the rpc_sequence list, and then wake up the next\n sleeper.\n\n Note that the state_owner sequence ids and lock_owner sequence ids are\n all indexed to the same rpc_sequence list, so OPEN, LOCK,... requests\n are all ordered w.r.t. each other.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d0a8a9d0ec790086c64d210af413ac351d89e35",
      "tree": "003a1481e4a8d8487956a6bf04db80dd93264b8b",
      "parents": [
        "ecdbf769b2cb8903e07cd482334c714d89fd1146"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:32 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:42 2005 -0400"
      },
      "message": "[PATCH] NFSv4: Clean up nfs4 lock state accounting\n\n Ensure that lock owner structures are not released prematurely.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a19275ada9137435da58990c8f8d3f58e170bf1",
      "tree": "927f8aa96c9b558a0bed5355dde66df9c0ec8554",
      "parents": [
        "438b6fdebf2a2e8573e7290bc176feb4d4475f43"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:23 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:16 2005 -0400"
      },
      "message": "[PATCH] RPC: [PATCH] improve rpcauthauth_create error returns\n\n Currently we return -ENOMEM for every single failure to create a new auth.\n This is actually accurate for auth_null and auth_unix, but for auth_gss it\u0027s a\n bit confusing.\n\n Allow rpcauth_create (and the -\u003ecreate methods) to return errors.  With this\n patch, the user may sometimes see an EINVAL instead.  Whee.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ce79717ce32a9f88c1ddce4b9658556cb59d37a",
      "tree": "7f0c5e4bdbc2ee15b8e902b951d1be200b35411f",
      "parents": [
        "9085bbcb76421a90bea28f4d3d03fa9977319c49"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:06 2005 -0400"
      },
      "message": "[PATCH] NFS: Header file cleanup...\n\n - Move NFSv4 state definitions into a private header file.\n - Clean up gunk in nfs_fs.h\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
