)]}'
{
  "log": [
    {
      "commit": "358dd55aa3a77fbbae482b83d96733d9ad441d05",
      "tree": "d72352df2fc26e94a22202917df7db13c9563085",
      "parents": [
        "ef0f3390ebedac78bff1936bbb26606bca83e891"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:55:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:53 2006 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: grant delegations more frequently\n\nKeep unused openowners around for at least one lease period, to avoid the need\nfor as many open confirmations and to allow handing out more delegations.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef0f3390ebedac78bff1936bbb26606bca83e891",
      "tree": "86fceb6260a80b9d3ba41b13371b2be73198c300",
      "parents": [
        "4e2fd495b520b51e4ba83340f13520b7f07e3743"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:55:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:53 2006 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: limit number of delegations handed out.\n\nIt\u0027s very easy for the server to DOS itself by just giving out too many\ndelegations.\n\nFor now we just solve the problem with a dumb hard limit.  Eventually we\u0027ll\nwant a smarter policy.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e2fd495b520b51e4ba83340f13520b7f07e3743",
      "tree": "91bc6f41267df3e19a71016546484edb7e648527",
      "parents": [
        "541e0e09814594e907e18fb8d9fc9b746aa4b18a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:55:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:53 2006 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: add missing rpciod_down()\n\nWe should be shutting down rpciod for the callback channel when we shut down\nthe server.\n\nAlso note that we do rpciod_up() and create the callback client *before*\nsetting cb_set--the cb_set only determines whether the initial null was\nsuccesful.  So cb_set is not a reliable determiner of whether we need to clean\nup, only cb_client is.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e8d5c29482dc56de5971ddc99c6e7f69e4d16f6",
      "tree": "fe50096b5742960ff6bcccbb053c1f9b379916c8",
      "parents": [
        "6f54e2d0d3a904e55c9c50b78542072f6c42080e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:55:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:52 2006 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: fix laundromat shutdown race\n\nWe need to make sure the laundromat work doesn\u0027t reschedule itself just when\nwe try to cancel it.  Also, we shouldn\u0027t be waiting for it to finish running\nwhile holding the state lock, as that\u0027s a potential deadlock.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e465a77f943f51df1a169426df879340bd0db3f3",
      "tree": "a9f11a318fd0ce3df430520a5c14c84e130402c4",
      "parents": [
        "d5b9026a670fdb404e6e2e2e0a1b447e9ea9c1f6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Apr 10 22:55:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:51 2006 -0700"
      },
      "message": "[PATCH] fs/nfsd/nfs4state.c: make a struct static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nCc: Andy Adamson \u003candros@citi.umich.edu\u003e\nCc: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5b9026a670fdb404e6e2e2e0a1b447e9ea9c1f6",
      "tree": "e657e09e5e1eb43f163775d1b8e599131516a67a",
      "parents": [
        "7775f4c85dcbd1175f21b2fbb7221c79ec70b722"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:55:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:51 2006 -0700"
      },
      "message": "[PATCH] knfsd: locks: flag NFSv4-owned locks\n\nUse the fl_lmops field to identify which locks are ours, instead of trying to\nlook them up in our private hash.  This is safer and more efficient.\n\nEarlier versions of this patch used a lock flag instead, but Trond pointed out\nthat adding a new flag for each lock manager wasn\u0027t going to scale well, and\nsuggested this approach instead; a separate patch converts lockd to using\nfl_lmops in the same way.\n\nIn the NFSv4 case this looks like a bit of a hack, since the NFSv4 server\nisn\u0027t currently actually defining a lock_manager_operations struct, so we end\nup defining one *just* to serve as a cookie to identify our locks.\n\nBut it works, and we actually do expect to start using the\nlock_manager_operations at some point anyway.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eb76b3fda1f7c2aa2d1523b36835048a15e5e5d2",
      "tree": "4a120685e7c1a3762a4da73d29327871f310a914",
      "parents": [
        "5842add2f3b519111b6401f3a35862bd00a3aa7e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Sun Mar 26 01:37:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] NFSD4: return conflict lock without races\n\nUpdate the NFSv4 server to use the new posix_lock_file_conf() interface.\nRemove unnecessary (and race-prone) posix_test_file() calls.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "353ab6e97b8f209dbecc9f650f1f84e3da2a7bb1",
      "tree": "bffabd9a5a493ffd2b41dd825e71e848ca6ba6d7",
      "parents": [
        "e655a250d5fc12b6dfe0d436180ba4a3bfffdc9f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 26 01:37:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: fs/\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Robert Love \u003crml@tech9.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8dc7c3115b611c00006eac3ee5b108296432aab7",
      "tree": "be44c59907cbdcb6fdf46d0ad9cc140af757acfc",
      "parents": [
        "2e0af86f618c697b44e2d67dff151256c58201c4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks,lockd: fix race in nlmsvc_testlock\n\nposix_test_lock() returns a pointer to a struct file_lock which is unprotected\nand can be removed while in use by the caller.  Move the conflicting lock from\nthe return to a parameter, and copy the conflicting lock.\n\nIn most cases the caller ends up putting the copy of the conflicting lock on\nthe stack.  On i386, sizeof(struct file_lock) appears to be about 100 bytes.\nWe\u0027re assuming that\u0027s reasonable.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7fcd53303de8dbbed863f6471ca92eb96a1faa28",
      "tree": "6a2b08da2310c5dc5b57b11558ecc09ebd6ecba7",
      "parents": [
        "de1ae286f863c46b7c8f9bed97df17d7f5ea510c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 18 17:43:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:28 2006 -0800"
      },
      "message": "[PATCH] nfsd4_lock() returns bogus values to clients\n\nmissing nfserrno() in default case of a switch by return value of\nposix_lock_file(); as the result we send negative host-endian to clients that\nexpect positive network-endian, preferably mentioned in RFC...  BTW, that case\nis not impossible - posix_lock_file() can return -ENOLCK and we do not handle\nthat one explicitly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de1ae286f863c46b7c8f9bed97df17d7f5ea510c",
      "tree": "602de8f33e97b5138d465137dad7d0cc43411696",
      "parents": [
        "9246585a117f182d26a5a5c15872c3e8fcf44dd6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 18 17:43:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:28 2006 -0800"
      },
      "message": "[PATCH] NFSERR_SERVERFAULT returned host-endian\n\n-\u003erp_status is network-endian and nobody byteswaps it before sending to\nclient; putting NFSERR_SERVERFAULT instead of nfserr_serverfault in there is\nnot nice...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9246585a117f182d26a5a5c15872c3e8fcf44dd6",
      "tree": "fe8d8ce681a9bf48f64d270fd95e128864962dfa",
      "parents": [
        "d75f2b9f5da71667aba7e97a962c49f1e17aa4ca"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 18 17:43:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:27 2006 -0800"
      },
      "message": "[PATCH] nfsd4_truncate() bogus return value\n\n-EINVAL (in host order, no less) is not a good thing to return to client.\n\nnfsd4_truncate() returns it in one case and its callers expect nfs_....  from\nit.  AFAICS, it should be nfserr_inval\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c26d08f02f829a833d393c3f1b196538a9ec2c4",
      "tree": "6425e263f072a73db7ced341c4df9507ae46ccef",
      "parents": [
        "fb553c0f17444e090db951b96df4d2d71b4f4b6b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:27 2006 -0800"
      },
      "message": "[PATCH] nfsd4: fix open_downgrade\n\nBad bookkeeping of the share reservations when handling open upgrades was\ncausing open downgrade to fail.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb553c0f17444e090db951b96df4d2d71b4f4b6b",
      "tree": "4eb83eab183f5dd8786aef63768a15fca1155fa6",
      "parents": [
        "0f442aa299bb47046db4077d9c122a1b539311ce"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:26 2006 -0800"
      },
      "message": "[PATCH] nfsd4: don\u0027t create on open that fails due to ERR_GRACE\n\nIn an earlier patch (commit b648330a1d741d5df8a5076b2a0a2519c69c8f41) I noted\nthat a too-early grace-period check was preventing us from bumping the\nsequence id on open.  Unfortunately in that patch I stupidly moved the\ngrace-period check back too far, so now an open for create can succesfully\ncreate the file while still returning ERR_GRACE.\n\nThe correct place for that check is after we\u0027ve set the open_owner and handled\nany replays, but before we actually start mucking with the filesystem.\n\nThanks to Avishay Traeger for reporting the bug.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f442aa299bb47046db4077d9c122a1b539311ce",
      "tree": "e7c04435a41d5084690ae0a70b593898dc25b0e7",
      "parents": [
        "375c5547cbf39423078535affac66c8afdc8fafb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:26 2006 -0800"
      },
      "message": "[PATCH] nfsd4: simplify process-open1 logic\n\nnfsd4_process_open1 is very highly nested; flatten it out a bit.\n\nAlso, the preceding comment, which just outlines the logic, seems redundant.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae8b625313db4dd4b060962c2a02f3a2837ca61b",
      "tree": "537c4cc4225321099423d37f85da9264e2b69c2b",
      "parents": [
        "a525825df15221a95d4c1f5a291d9fde77ef10bc"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:26 2006 -0800"
      },
      "message": "[PATCH] nfsd4: no replays on unconfirmed owners\n\nWe shouldn\u0027t check for replays until after checking whether the open owner is\nconfirmed.  Clients are allowed to reuse openowners without bumping the seqid.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "796dadfd02eda1e3e6e42ecc8379d8b1c1523ddf",
      "tree": "ff9d4c34f8b598aca7481d6b2bf41dd31a483c82",
      "parents": [
        "04ef59548470b81829e8593c1b39776ce0534d68"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:25 2006 -0800"
      },
      "message": "[PATCH] nfsd4: fix check_for_locks\n\nFix some bad logic.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04ef59548470b81829e8593c1b39776ce0534d68",
      "tree": "846dbe3d17ac1a745c2f23642129b15c3c150d19",
      "parents": [
        "3a65588adc4401622b204caa897123e16a4a0318"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:25 2006 -0800"
      },
      "message": "[PATCH] nfsd4: remove release_state_owner()\n\nIt\u0027s confusing having both release_stateowner() and release_state_owner().\n\nAnd as it turns out, release_state_owner() is short and only called from one\nplace; so just remove it.\n\nAlso note the confirmed check is superfluous there--preprocess_seqid_op\nalready check this.\n\nAnd remove a redundant comment and a superfluous line assignment while we\u0027re\nat it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a65588adc4401622b204caa897123e16a4a0318",
      "tree": "a96a8d4a28608b49440062273c70565c1129165d",
      "parents": [
        "8a280510852959c0d51b1d625e90c0491c238368"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:24 2006 -0800"
      },
      "message": "[PATCH] nfsd4: rename lk_stateowner\n\nOne of the things that\u0027s confusing about nfsd4_lock is that the lk_stateowner\nfield could be set to either of two different lockowners: the open owner or\nthe lock owner.  Rename to lk_replay_owner and add a comment to make it clear\nthat it\u0027s used for whichever stateowner has its sequence id bumped for replay\ndetection.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a280510852959c0d51b1d625e90c0491c238368",
      "tree": "e24b9167f5f979cc126f07ef32c851ab249a7766",
      "parents": [
        "a6f6ef2f1d7329111fcad7db48fb7adba5062d0a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:24 2006 -0800"
      },
      "message": "[PATCH] nfsd4: fix nfsd4_lock cleanup on failure\n\nrelease_state_owner also puts the lock owner on the close_lru.  There\u0027s no\nneed for that, though; replays of the failed lock would be handled by the\nopenowner not the lockowner.\n\nAlso consolidate the cleanup a bit, fixing leaks that can happen if errors\noccur between the time a new lock owner is allocated and the lock is done.\n\nRemove a comment and dprintk that look a little redundant.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a6f6ef2f1d7329111fcad7db48fb7adba5062d0a",
      "tree": "7fd08104892870699c8f191e2e23b753b5b119d5",
      "parents": [
        "1918e341383ab787d6c5b17200f4ed901b10c777"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Wed Jan 18 17:43:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:24 2006 -0800"
      },
      "message": "[PATCH] nfsd4: misc lock fixes\n\nLogic fixes for LOCK and UNLOCK.\n\n- Move the permission check on the current file handle outside of\n  nfs4_lock_state()\n\n- remove the file manager fl_release_private calls; fl_ops is not set.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73aea4ecd38ebeff9e322f738057f4ae2c32a3ee",
      "tree": "cabc00b17b3f96854cd818ea7e26734ac855843c",
      "parents": [
        "b59e3c0e172e3f3a147021aa16b929482b8d5846"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 13 01:25:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:32 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix setclientid unlock of unlocked state lock\n\nWe could try to unlock the state lock here without having first locked it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b59e3c0e172e3f3a147021aa16b929482b8d5846",
      "tree": "60aec6ff8a214adfa828af8a89460aca55731d46",
      "parents": [
        "f2327d9adb1e948a7041128e971effd8d6e2d42c"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 13 01:25:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:32 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix open seqid incrementing in lock\n\nIn the case of a lock which introduces a new lockowner, the openowner\u0027s\nsequence id should be incremented, even when the operation fails, if the\nerror is a sequence-id-mutating error.  The current code fails to do that\nin some cases.  Fix this by using the same sequence-id-incrementing\nmechanism that all other such operations use.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2327d9adb1e948a7041128e971effd8d6e2d42c",
      "tree": "c71c0eaee80dac069b7bb4f7d2e14bcbcfee14fe",
      "parents": [
        "849823c52d9c96cf777038670bb0ee3a291ca69d"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 13 01:25:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:31 2005 -0700"
      },
      "message": "[PATCH] nfsd4: move replay_owner\n\nIt seems more natural to move the setting of the replay_owner into the\nrelevant procedure instead of doing it in nfsv4_proc_compound.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "849823c52d9c96cf777038670bb0ee3a291ca69d",
      "tree": "d593c56185566e1257bf9483509c8ce5acad5ee6",
      "parents": [
        "fff71312e7227c6850f367ff9c72f96d5b33b1d0"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 13 01:25:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:31 2005 -0700"
      },
      "message": "[PATCH] nfsd4: printk reduction\n\nDemote some printk\u0027s that look like they could be triggered by non-buggy\nclients to dprintk\u0027s.  (For example, stale clientid\u0027s are normal\noccurrences on reboot, and on a server with a lot of clients these messages\ncould become annoying.)\n\nAlso remove some redundant dprintk\u0027s (e.g. no need for both STALE_CLIENTID\nand its callers to do dprintks).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c4cd222ee329025840bc2f8cebf71d36c62440c",
      "tree": "70d1d8e754e7ab7226a6eee6afeab8b892072600",
      "parents": [
        "3a4f98bbf481cb9f755005ac569ceb5303e1b69f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:11 2005 -0700"
      },
      "message": "[PATCH] nfsd4: check lock type against openmode.\n\nWe shouldn\u0027t be allowing, e.g., write locks on files not open for read.  To\nenforce this, we add a pointer from the lock stateid back to the open stateid\nit came from, so that the check will continue to be correct even after the\nopen is upgraded or downgraded.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a4f98bbf481cb9f755005ac569ceb5303e1b69f",
      "tree": "a3dfac239801fd5d96222f48a1f2caf59a650826",
      "parents": [
        "f8816512fcfde986326a2eb0f5a58e463d9904d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:10 2005 -0700"
      },
      "message": "[PATCH] nfsd4: clean up nfs4_preprocess_seqid_op\n\nAs long as we\u0027re here, do some miscellaneous cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f8816512fcfde986326a2eb0f5a58e463d9904d8",
      "tree": "3f79b8c23a393c119e0de31294c2843d7bd3b01e",
      "parents": [
        "52fd004e296ac07cde820af9e3139d47dda03cf8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:10 2005 -0700"
      },
      "message": "[PATCH] nfsd4: clarify close_lru handling\n\nThe handling of close_lru in preprocess_stateid_op was a source of some\nconfusion here recently.  Try to make the logic a little clearer, by renaming\nfind_openstateowner_id to make its purpose clearer and untangling some\nunnecessarily complicated goto\u0027s.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52fd004e296ac07cde820af9e3139d47dda03cf8",
      "tree": "1ded0ee9f0f3df0a268a09ef6873c8ae2a75cbff",
      "parents": [
        "b700949b781480819e53bdc38a53f053226dd75e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:09 2005 -0700"
      },
      "message": "[PATCH] nfsd4: renew lease on seqid modifying operations\n\nnfs4_preprocess_seqid_op is called by NFSv4 operations that imply an implicit\nrenewal of the client lease.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b700949b781480819e53bdc38a53f053226dd75e",
      "tree": "1e09ac2b3e4c39e7167d4780f21ebaa416a1092a",
      "parents": [
        "444c2c07c2d7a6936d1381d381ab80e3f5541427"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:09 2005 -0700"
      },
      "message": "[PATCH] nfsd4: return better error on io incompatible with open mode\n\nfrom RFC 3530:\n\"Share reservations are established by OPEN operations and by their\nnature are mandatory in that when the OPEN denies READ or WRITE\noperations, that denial results in such operations being rejected\nwith error NFS4ERR_LOCKED.\"\n\n(Note that share_denied is really only a legal error for OPEN.)\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "444c2c07c2d7a6936d1381d381ab80e3f5541427",
      "tree": "b4dc8b6ccc33208b39d01b8505c4a759b6ebdf7b",
      "parents": [
        "e66770cd7b0c36f28a2f6eb0957c0575ac8b3787"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:09 2005 -0700"
      },
      "message": "[PATCH] nfsd4: always update stateid on open\n\nAn OPEN from the same client/open stateowner requires a stateid update because\nof the share/deny access update.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e66770cd7b0c36f28a2f6eb0957c0575ac8b3787",
      "tree": "ee5bcf1ac04eac19c72fad96863bc7b0327a3f47",
      "parents": [
        "7fb64cee34f5dc743f697041717cafda8a94b5ac"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:09 2005 -0700"
      },
      "message": "[PATCH] nfsd4: relax new lock seqid check\n\nWe\u0027re insisting that the lock sequence id field passed in the\nopen_to_lockowner struct always be zero.  This is probably thanks to the\nsentence in rfc3530: \"The first request issued for any given lock_owner is\nissued with a sequence number of zero.\"\n\nBut there doesn\u0027t seem to be any problem with allowing initial sequence\nnumbers other than zero.  And currently this is causing lock reclaims from the\nLinux client to fail.\n\nIn the spirit of \"be liberal in what you accept, conservative in what you\nsend\", we\u0027ll relax the check (and patch the Linux client as well).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd9aac523b812d58e644fde5e59f5697fb9e3822",
      "tree": "a3adb8ac833a8e776cca8df91e96f85aa28e81c6",
      "parents": [
        "893f87701c9e5bd5610dfbb3f8bf1135f86d85cb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:09 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix open_reclaim seqid\n\nThe sequence number we store in the sequence id is the last one we received\nfrom the client.  So on the next operation we\u0027ll check that the client gives\nus the next higher number.\n\nWe increment sequence id\u0027s at the last moment, in encode, so that we\u0027re sure\nof knowing the right error return.  (The decision to increment the sequence id\ndepends on the exact error returned.)\n\nHowever on the *first* use of a sequence number, if we set the sequence number\nto the one received from the client and then let the increment happen on\nencode, we\u0027ll be left with a sequence number one to high.\n\nFor that reason, ENCODE_SEQID_OP_TAIL only increments the sequence id on\n*confirmed* stateowners.\n\nThis creates a problem for open reclaims, which are confirmed on first use.\nTherefore the open reclaim code, as a special exception, *decrements* the\nsequence id, cancelling out the undesired increment on encode.  But this\nprevents the sequence id from ever being incremented in the case where\nmultiple reclaims are sent with the same openowner.  Yuch!\n\nWe could add another exception to the open reclaim code, decrementing the\nsequence id only if this is the first use of the open owner.\n\nBut it\u0027s simpler by far to modify the meaning of the op_seqid field: instead\nof representing the previous value sent by the client, we take op_seqid, after\nencoding, to represent the *next* sequence id that we expect from the client.\nThis eliminates the need for special-case handling of the first use of a\nstateowner.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "893f87701c9e5bd5610dfbb3f8bf1135f86d85cb",
      "tree": "ee2de8fd627624cedc0c0e7067dd4892e160db67",
      "parents": [
        "375151773125f56b7f6d798d914ea469256b330b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: comment indentation\n\nYeah, it\u0027s trivial, but this drives me up the wall....\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "375151773125f56b7f6d798d914ea469256b330b",
      "tree": "2bc6c0d8d2a075b9daa2aa7dca440f572c566629",
      "parents": [
        "0dd395dc76071a06eea39839cc946c1241af3650"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: stop overusing RECLAIM_BAD\n\nA misreading of the spec lead us to convert all errors on open and lock\nreclaims to RECLAIM_BAD.  This causes problems--for example, a reboot within\nthe grace period could lead to reclaims with stale stateid\u0027s, and we\u0027d like to\nreturn STALE errors in those cases.\n\nWhat rfc3530 actually says about RECLAIM_BAD: \"The reclaim provided by the\nclient does not match any of the server\u0027s state consistency checks and is\nbad.\" I\u0027m assuming that \"state consistency checks\" refers to checks for\nconsistency with the state recorded to stable storage, and that the error\nshould be reserved for that case.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0dd395dc76071a06eea39839cc946c1241af3650",
      "tree": "f4b9b8b013dfebcba296f1f8145f8535521db3ae",
      "parents": [
        "b648330a1d741d5df8a5076b2a0a2519c69c8f41"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: ERR_GRACE should bump seqid on lock\n\nA GRACE or NOGRACE response to a lock request should also bump the sequence\nid.  So we delay the handling of grace period errors till after we\u0027ve found\nthe relevant owner.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b648330a1d741d5df8a5076b2a0a2519c69c8f41",
      "tree": "aa53fc54675d3c7b51aa8f86f5f8929acd0f85a3",
      "parents": [
        "0fa822e452084032b8495ca0d8e0199329847815"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: ERR_GRACE should bump seqid on open\n\nThe GRACE and NOGRACE errors should bump the sequence id on open.  So we delay\nthe handling of these errors until nfsd4_process_open2, at which point we\u0027ve\nset the open owner, so the encode routine will be able to bump the sequence\nid.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0fa822e452084032b8495ca0d8e0199329847815",
      "tree": "5be25dc1f1222d2998a9754e5b5e26d516601b9d",
      "parents": [
        "67be431350941765e211eeed237c12def3aaba70"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix release_lockowner\n\nWe oops in list_for_each_entry(), because release_stateowner frees something\non the list we\u0027re traversing.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "463090294e1e460cf97f5ade376d4b1e62bc5263",
      "tree": "eaf3f7b7c0bbc7c16aa39c77252da436bf62df06",
      "parents": [
        "89b39f5d8d701ddd93546b3d8edbefa5d568529d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:07 2005 -0700"
      },
      "message": "[PATCH] nfsd4: reboot recovery fix\n\nWe need to remove the recovery directory here too.  (This chunk just got lost\nsomehow in the process of commuting the reboot recovery patches past the other\npatches.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0964a3d3f1aa96468091924f6b0c391a46dc6d0b",
      "tree": "0a6b0587d1922d64ca7e4aa7f306ad869bccf452",
      "parents": [
        "c7b9a45927e74c81d6562153f7fde9d32da00159"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:36 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4 reboot dirname fix\n\nSet the recovery directory via /proc/fs/nfsd/nfs4recoverydir.\n\nIt may be changed any time, but is used only on startup.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7b9a45927e74c81d6562153f7fde9d32da00159",
      "tree": "d21fb5d43052bce7469c168d1ad485c821a42079",
      "parents": [
        "190e4fbf96037e5e526ba3210f2bcc2a3b6fe964"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:36 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: reboot recovery\n\nThis patch adds the code to create and remove client subdirectories from the\nrecovery directory, as described in the previous patch comment.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "190e4fbf96037e5e526ba3210f2bcc2a3b6fe964",
      "tree": "957fb35a6a2895622c4db0052160fd91d06153e8",
      "parents": [
        "cb36d6345752fa24827044c68e15f6708a40d9f6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: initialize recovery directory\n\nNFSv4 clients are required to know what state they have on the server so that\nthey can reclaim it on server reboot.  However, it is possible for\npathalogical combinations of server reboots and network partitions to leave a\nclient in a state where it cannot know whether it has lost its state on the\nserver.\n\nFor this reason, rfc3530 requires that we store some information about clients\nto stable storage.\n\nSo we maintain a directory /var/lib/nfs/v4recovery with a subdirectory for\neach client with active state.  We leave open the possibility of including\nfiles underneath each such subdirectory with information about the client, but\nfor now the subdirectories are empty.\n\nWe create a client subdirectory whenever a client makes its first non-reclaim\nopen_confirm.\n\nWe remove a client subdirectory whenever either\n        a) its lease expires, or\n\tb) the grace period ends without it reclaiming anything.\nWhen handling reclaims, we allow the reclaim if and only if the client doing\nthe reclaim has a subdirectory.\n\nThis patch adds just the code to scan the recovery directory on nfsd startup.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb36d6345752fa24827044c68e15f6708a40d9f6",
      "tree": "adc6b7201525c87685815037cfa5fd1c248f6e95",
      "parents": [
        "3e9e3dbe0fe36c824ce2c5d7b05997c87a64bbdc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: remove cb_parsed\n\nThe cb_parsed field is only used by probe_callback, to determine whether the\ncallback information has been filled in by setclientid.  But there is no way\nthat probe_callback() can be called without that having already happened, so\nthat check is superfluous, as is cb_parsed.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e9e3dbe0fe36c824ce2c5d7b05997c87a64bbdc",
      "tree": "f8291afbbe83259c5309d1b4b968359f1bf63fd4",
      "parents": [
        "ea1da636e956ad1591a74904f23d98bbc26a644b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:20 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: allow multiple lockowners\n\n\u003eFrom the language of rfc3530 section 8.1.3 (e.g., the suggestion that a\n\"process id\" might be a reasonable lockowner value) it\u0027s conceivable that a\nclient might want to use the same lockowner string on multiple files, so we may\nas well allow that.  We expect each use of open_to_lockowner to create a\ndistinct seqid stream, though.\n\nFor now we\u0027re also allowing multiple uses of open_to_lockowner with the same\nopen, though it seems unlikely clients would actually do that.\n\nAlso add a comment reminding myself of some very non-scalable data structures.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea1da636e956ad1591a74904f23d98bbc26a644b",
      "tree": "193d0667adad25b094e209856dfcc1300d1d85dc",
      "parents": [
        "21ab45a480ec7705d177e959ebf452d62340c004"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: rename state list fields\n\nTrivial renaming patch:\n\nI can never remember, while looking at various lists relating the nfsd4 state\nstructures, which are the \"heads\" and which are items on other lists, or which\nstructures are actually on the various lists.  The following convention helps\nme: given structures foo and bar, with foo containing the head of a list of\nbars, use \"bars\" for the name of the head of the list contained in the struct\nfoo, and use \"per_foo\" for the entries in the struct bars.\n\nAlready done for struct nfs4_file; go ahead and do it for the other nfsd4\nstate structures.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21ab45a480ec7705d177e959ebf452d62340c004",
      "tree": "019722d5b362e78ca50cf21823d1b8d6f221a9a7",
      "parents": [
        "7c79f7377cd4f2a50d51475f4c7966a3e60596a7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:34 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: miscellaneous setclientid_confirm cleanup\n\nMinor cleanup, remove some unnecessary printk\u0027s.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c79f7377cd4f2a50d51475f4c7966a3e60596a7",
      "tree": "96dbf206231739934ba95a76281dbea1504800d2",
      "parents": [
        "08e8987c37cd04d2df211c1e019d8f165d44266e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:34 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: setclientid_confirm comments\n\nTrivial whitespace and comment fixes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "08e8987c37cd04d2df211c1e019d8f165d44266e",
      "tree": "5cce86377d0bcae663940acd2600d45b8dc4153d",
      "parents": [
        "22de4d837439071a0bec897485d3911383b6ffad"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:34 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: setclientid_confirm gotoectomy\n\nChange from \"goto\" to \"else if\" format in setclientid_confirm.\n\nFrom: Fred Isaman\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22de4d837439071a0bec897485d3911383b6ffad",
      "tree": "060a06df409be203303f78d8be2adfe913e64249",
      "parents": [
        "1a69c179a28a9bb9f4d086927b192d5cffe88e50"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:34 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: fix setclientid_confirm error return\n\nNFS4_INVAL is not a valid error for setclientid_confirm, and INUSE is the more\nlogical error here anyway.\n\nFrom: Fred Isaman\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a69c179a28a9bb9f4d086927b192d5cffe88e50",
      "tree": "e2155b4eb77f6d98f8643238b2836065abe1a836",
      "parents": [
        "31f4a6c127f619886bf97f643e546f7788248f3f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:34 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: fix setclientid_confirm cases\n\nSetclientid_confirm code confused states 1 and 3 (numbering from the\nIMPLEMENTATION section of rfc3530, section 14.2.33).  Fix this.\n\nState 1 allows the client to change the callback channel on the fly.  We don\u0027t\nimplement this currently, so just turn off the callback channel in this case.\n\nFrom: Fred Isaman\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "31f4a6c127f619886bf97f643e546f7788248f3f",
      "tree": "5c473562ea9051e42a53631f26486959d43fcaa4",
      "parents": [
        "fd39ca9a808c6026989bc2188868a0574eb37108"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: fix uncomfirmed list\n\nSetclientid code assumes there is only one match in unconfirmed list.\nMake sure that assumption holds.\n\nFrom: Fred Isaman\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd39ca9a808c6026989bc2188868a0574eb37108",
      "tree": "9dbb4df308afd32e1a913e3df9c828863c6f98ee",
      "parents": [
        "a76b4319ca85b5e3a8098470c623a272d40271cd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: make needlessly global code static\n\nThis patch contains the following possible cleanups:\n\n- make needlessly global code static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a76b4319ca85b5e3a8098470c623a272d40271cd",
      "tree": "c9e862136b066c0bccf6a1a0d977a71b58542d87",
      "parents": [
        "28ce6054f1de89834e5e9522f9e451cd88a35f85"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: grace period end\n\nFor the purposes of reboot recovery, we want to do some work during the\ntransition period at the end of the grace period.  Some of that work must be\nguaranteed to have a certain relationship with the end of the grace period, so\nwe want to control the transition there.\n\nOur approach is to modify the in_grace() checks to consult a global variable\ninstead of checking the time directly, to schedule the first run of the\nlaundromat thread at the end of the grace period, and to set the global\nend-of-grace-period there.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28ce6054f1de89834e5e9522f9e451cd88a35f85",
      "tree": "653406eb3f3323fd15086007f1ced3a1f090c0e0",
      "parents": [
        "a55370a3c0106106a975c5a09cee800611d0cf50"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: add find_{un}conf_by_str functions to simplify setclientid\n\nMinor setclientid cleanup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a55370a3c0106106a975c5a09cee800611d0cf50",
      "tree": "408d5dc0ecf970c103ef091388e66da267adb2e2",
      "parents": [
        "7dea9d280c96f90382ec5d5709433e66a0993ec9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: reboot hash\n\nFor the purposes of reboot recovery we keep a directory with subdirectories\neach having a name that is the ascii hex representation of the md5 sum of a\nclient identifier for an active client.\n\nThis adds the code to calculate that name.  We also use it for the purposes of\ncomparing clients, so if someone ever manages to find two client names that\nare md5 collisions, then we\u0027ll return clid_inuse to the second.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7dea9d280c96f90382ec5d5709433e66a0993ec9",
      "tree": "046d0665956b1c37fbacaa12276bc8cc2c4b5049",
      "parents": [
        "bd0b1e954e3ba3e5d2cab941458cf98206471bd2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:32 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: setclientid simplification\n\nWe can be a little more concise here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "707d4ab7b3aa6d1f7a7d2cd123fb83ba9a528205",
      "tree": "b5b12bf45baacc0659fd419a5df93166710748f3",
      "parents": [
        "ac4d8ff2a57179de3ef7834c6ab3fac430b0a05d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:32 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: remove nfs4_reclaim_init\n\nnfs4_reclaim_init is no longer performing any useful function.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac4d8ff2a57179de3ef7834c6ab3fac430b0a05d",
      "tree": "8c0f7125177a47d4140a73e4b59309a5bb3ffd2c",
      "parents": [
        "76a3550ec50ed86885a10a767ebaebb7c9104721"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:32 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: clean up state initialization\n\nSeparate out stuff that needs initialization on startup from stuff that only\nneeds initialization on module init from static data.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76a3550ec50ed86885a10a767ebaebb7c9104721",
      "tree": "0961d1eb0a61378852cf90f203dba09a22ac012d",
      "parents": [
        "7b190fecfa33d72bcf74c9473134c2ad14ae9545"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: rename nfs4_state_init\n\nSomewhat gratuitous rename to simplify following patch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b190fecfa33d72bcf74c9473134c2ad14ae9545",
      "tree": "94769b846f9d4e38a831f6e343db34bbfdb403bc",
      "parents": [
        "d99a05adf8490cc171b7709554936b8f3ac9e362"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: delegation recovery\n\nAllow recovery of delegations after reboot.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d99a05adf8490cc171b7709554936b8f3ac9e362",
      "tree": "64be372b75ff074a4220491a439add60d7d92323",
      "parents": [
        "58da282b733cff4caef805c6555c7a3b90772946"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: simplify lease changing\n\nThe only way the protocol gives to change the lease time on the fly is to\nsimulate a reboot.  We don\u0027t have that completely right in the current code;\namong other things, we should probably put lockd in grace too while we do\nthis.\n\nFor now, let\u0027s just keep this simple, and wait till the next time nfsd starts\nto register any changes in lease time.  If the administrator really wants to\nchange the lease time *now*, they can go ahead and bring nfsd down and then\nback up again after changing the lease time.\n\nAlso remove the \"if (reclaim_str_hashtbl_size \u003d\u003d 0)\" case, a shortcut which\nskips the grace period if we know of no clients in need of recovery.  This\nisn\u0027t going to work well with nlm.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58da282b733cff4caef805c6555c7a3b90772946",
      "tree": "3defc7d637584c133421b6a0314756cb78467bc9",
      "parents": [
        "dfc8356570b6fcb4035c7d916ade5bbbe6c3b50a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: create separate laundromat workqueue\n\nWe\u0027re running the laundromat work on the default kevent worker thread.  But\nthe laundromat takes the nfsv4 state semaphore, which is used for way too much\nstuff, and the potential for deadlocks is high.  Better to have this on a\nseparate workqueue.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfc8356570b6fcb4035c7d916ade5bbbe6c3b50a",
      "tree": "97ee8450e6f0344cf484dfc70f9803fb85080598",
      "parents": [
        "5ba266d6323e957588712f6a7d31252cd6b797bb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:30 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: nfs4_check_open_reclaim cleanup\n\nMinor cleanup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13cd21845d6a9729ca95e36ae6e8c669623fbfd4",
      "tree": "d60064a17994393bfdc412cc1a85ffdf2a5f5914",
      "parents": [
        "8beefa249371f55432394ac96864c83b0b309c28"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:30 2005 -0700"
      },
      "message": "[PATCH] nfsd4: reference count struct nfs4_file\n\nAdd a struct kref to each nfs4_file and take a reference to it from each\nstateid and delegation that refers to it.  The atomicity guarantees are\noverkill given that all this stuff is done under the single nfsd4 state lock,\nbut a) we\u0027d like finer-grained locking some day, and b) this simplifies the\ncleanup of the structures a bit, something that has previously been a bit\ncomplicated and bug-prone.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8beefa249371f55432394ac96864c83b0b309c28",
      "tree": "1d31a36da779a930a6676bdfc7d8fe4fa564a05c",
      "parents": [
        "6fa305ded4cc859deb4727ad9b25df0bbc064e99"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: rename nfs4_file fields\n\nTrivial renaming patch:\n\nI can never remember, while looking at various lists relating the nfsd4 state\nstructures, which are the \"heads\" and which are items on other lists, or which\nstructures are actually on the various lists.  The following convention helps\nme: given structures foo and bar, with foo containing the head of a list of\nbars, use \"bars\" for the name of the head of the list contained in the struct\nfoo, and use \"per_foo\" for the entries in the struct bars.\n\nGo ahead and do this for struct nfs4_file.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6fa305ded4cc859deb4727ad9b25df0bbc064e99",
      "tree": "aea444d9e9a348c73eba57b3ba0eb1cd3818f781",
      "parents": [
        "5b2d21c1965859acc881dd862b6ebbfae67cdc14"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: remove debugging counters\n\nThese remaining debugging counters haven\u0027t proved that useful.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b2d21c1965859acc881dd862b6ebbfae67cdc14",
      "tree": "4d7879cd09f0d0efd5e19e9a008668879327efe9",
      "parents": [
        "5ac049ac66416bbe84923f7c2384f23f6ee4aa88"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: slabify delegations\n\nAllocate delegations from a slab cache.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ac049ac66416bbe84923f7c2384f23f6ee4aa88",
      "tree": "060a781f1f246078c9e8c0c0096be7155771c46d",
      "parents": [
        "e60d4398a7c20fbe9c4a6cc39d7188ef9f65d2f1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: slabify stateids\n\nAllocate stateid\u0027s from a slab cache.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e60d4398a7c20fbe9c4a6cc39d7188ef9f65d2f1",
      "tree": "d634acd73c61b04e873349eee638251fc433cd2c",
      "parents": [
        "c815afc73eeef089922449857ca4ed4d2e8950cb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: slabify nfs4_files\n\nThe structures the server uses to keep track of various pieces of nfsv4 state\n(open files, outstanding delegations, etc.) are likely to be allocated and\ndeallocated frequently and seem reasonable candidates for slab caches.\n\nWhile we\u0027re at it, the slab code keeps statistics that help catch leaks and\nsuch, so we may as well take this chance to eliminate some debugging counters\nthat we\u0027ve been keeping ourselves.\n\nStart with the struct nfs4_file.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c44c5eeb2c022ddac98a8543c08dc8ff820561dc",
      "tree": "17e5d443ec77c228c1881cf624f63e01933a3f03",
      "parents": [
        "567d98292e81033182e3da4c33b41ada9c113447"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:02:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:28 2005 -0700"
      },
      "message": "[PATCH] nfsd4: add open state code for CLAIM_DELEGATE_CUR\n\nState logic for OPEN with claim type CLAIM_DELEGATE_CUR, which the NFSv4\nclient uses to report local OPENs on a delegated file back to the NFSv4\nserver.\n\nnfs4_check_deleg() performs input delegation stateid lookup and sanity check.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "567d98292e81033182e3da4c33b41ada9c113447",
      "tree": "21319e7fb48cd374e917d0557cf7601d35187282",
      "parents": [
        "4a6e43e6d4e43723699879f421d321e39eab5e41"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:02:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:28 2005 -0700"
      },
      "message": "[PATCH] nfsd4: don\u0027t reopen for delegated client\n\nWe don\u0027t really need to be doing a separate open for every stateid.  And in\nthe case of an open from a client that already has a delegation on a file, it\nunnecessarily results in a delegation recall.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a6e43e6d4e43723699879f421d321e39eab5e41",
      "tree": "81de781defa837bc59c51725355181a94adb2652",
      "parents": [
        "52f4fb43063c182f3ef7e257ab336a8be8066bb0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:02:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:27 2005 -0700"
      },
      "message": "[PATCH] nfsd4: nfs4_check_delegmode\n\nAdditional minor code reshuffling to prepare for claim_deleg_cur support.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52f4fb43063c182f3ef7e257ab336a8be8066bb0",
      "tree": "f7e551168995e5210a0706fb273f6c54ba6bffef",
      "parents": [
        "0c0a400d1debb172c596b24ab82efab4975990a9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:02:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:27 2005 -0700"
      },
      "message": "[PATCH] nfsd4: find_delegation_file()\n\nFactor out a bit of common code that will be useful elsewhere.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c907132d534c10b4f34a60383c8384403cb424a4",
      "tree": "706511b06aeeee25615f45701e640d01f4f1d51a",
      "parents": [
        "f1ee4f22f21d74bc3ca63b95ca5b63d3a8620527"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Sat Apr 16 15:26:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:26:38 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix struct file leak\n\nWe were failing to close on an error path, resulting in a leak of struct files\nwhich could take a v4 server down fairly quickly....  So call\nnfs4_close_delegation instead of just open-coding parts of it.\n\nSimplify the cleanup on delegation failure while we\u0027re at it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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"
    }
  ]
}
