)]}'
{
  "log": [
    {
      "commit": "4b75f78edcab291eb29fe9a205cbf7b80c1c644f",
      "tree": "810267067c330304c9870d9d631b0ec7f6bd675a",
      "parents": [
        "df61bec3ae8983984070db24ae481fe7297a6dff"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 08 02:39:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:01 2006 -0800"
      },
      "message": "[PATCH] lockdep: annotate nfsd4 recover code\n\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [ INFO: possible recursive locking detected ]\n\u003e 2.6.18-1.2724.lockdepPAE #1\n\u003e ---------------------------------------------\n\u003e nfsd/6884 is trying to acquire lock:\n\u003e  (\u0026inode-\u003ei_mutex){--..}, at: [\u003cc04811e5\u003e] vfs_rmdir+0x73/0xf4\n\u003e\n\u003e but task is already holding lock:\n\u003e  (\u0026inode-\u003ei_mutex){--..}, at: [\u003cf8dfa621\u003e]\n\u003e nfsd4_clear_clid_dir+0x1f/0x3d [nfsd]\n\u003e\n\u003e other info that might help us debug this:\n\u003e 3 locks held by nfsd/6884:\n\u003e  #0:  (hash_sem){----}, at: [\u003cf8de05eb\u003e] nfsd+0x181/0x2ea [nfsd]\n\u003e  #1:  (client_mutex){--..}, at: [\u003cf8df6d19\u003e]\n\u003e nfsd4_setclientid_confirm+0x3b/0x2cf [nfsd]\n\u003e  #2:  (\u0026inode-\u003ei_mutex){--..}, at: [\u003cf8dfa621\u003e]\n\u003e nfsd4_clear_clid_dir+0x1f/0x3d [nfsd]\n\u003e\n\u003e stack backtrace:\n\u003e  [\u003cc040524d\u003e] dump_trace+0x69/0x1af\n\u003e  [\u003cc04053ab\u003e] show_trace_log_lvl+0x18/0x2c\n\u003e  [\u003cc040595f\u003e] show_trace+0xf/0x11\n\u003e  [\u003cc0405a53\u003e] dump_stack+0x15/0x17\n\u003e  [\u003cc043ca7a\u003e] __lock_acquire+0x110/0x9b6\n\u003e  [\u003cc043d91e\u003e] lock_acquire+0x5c/0x7a\n\u003e  [\u003cc061a41b\u003e] __mutex_lock_slowpath+0xde/0x234\n\u003e  [\u003cc04811e5\u003e] vfs_rmdir+0x73/0xf4\n\u003e  [\u003cf8dfa62b\u003e] nfsd4_clear_clid_dir+0x29/0x3d [nfsd]\n\u003e  [\u003cf8dfa733\u003e] nfsd4_remove_clid_dir+0xb8/0xf8 [nfsd]\n\u003e  [\u003cf8df6e90\u003e] nfsd4_setclientid_confirm+0x1b2/0x2cf [nfsd]\n\u003e  [\u003cf8def19a\u003e] nfsd4_proc_compound+0x137a/0x166c [nfsd]\n\u003e  [\u003cf8de00d5\u003e] nfsd_dispatch+0xc5/0x180 [nfsd]\n\u003e  [\u003cf8d09d83\u003e] svc_process+0x3bd/0x631 [sunrpc]\n\u003e  [\u003cf8de0604\u003e] nfsd+0x19a/0x2ea [nfsd]\n\u003e  [\u003cc0404e27\u003e] kernel_thread_helper+0x7/0x10\n\u003e DWARF2 unwinder stuck at kernel_thread_helper+0x7/0x10\n\u003e Leftover inexact backtrace:\n\u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSome nesting annotation to the nfsd4 recovery code.\nThe vfs operations called will take dentry-\u003ed_inode-\u003ei_mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "7ef55b8a05c02db7c07d81827c69fe8f124e8654",
      "tree": "f588e5256e88595d04662c1faf105f9b95656c6b",
      "parents": [
        "77d6e1397a004c9376fed855e4164ca2b1dba2ed"
      ],
      "author": {
        "name": "Srinivasa Ds",
        "email": "srinivasa@in.ibm.com",
        "time": "Thu Nov 02 22:07:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 03 12:27:57 2006 -0800"
      },
      "message": "[PATCH] NFS4: fix for recursive locking problem\n\nWhen I was performing some operations on NFS, I got below error on server\nside.\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible recursive locking detected ]\n  2.6.19-prep #1\n  ---------------------------------------------\n  nfsd4/3525 is trying to acquire lock:\n   (\u0026inode-\u003ei_mutex){--..}, at: [\u003cc0611e5a\u003e] mutex_lock+0x21/0x24\n\n  but task is already holding lock:\n   (\u0026inode-\u003ei_mutex){--..}, at: [\u003cc0611e5a\u003e] mutex_lock+0x21/0x24\n\n  other info that might help us debug this:\n  2 locks held by nfsd4/3525:\n   #0:  (client_mutex){--..}, at: [\u003cc0611e5a\u003e] mutex_lock+0x21/0x24\n   #1:  (\u0026inode-\u003ei_mutex){--..}, at: [\u003cc0611e5a\u003e] mutex_lock+0x21/0x24\n\n  stack backtrace:\n   [\u003cc04051ed\u003e] show_trace_log_lvl+0x58/0x16a\n   [\u003cc04057fa\u003e] show_trace+0xd/0x10\n   [\u003cc0405913\u003e] dump_stack+0x19/0x1b\n   [\u003cc043b6f1\u003e] __lock_acquire+0x778/0x99c\n   [\u003cc043be86\u003e] lock_acquire+0x4b/0x6d\n   [\u003cc0611ceb\u003e] __mutex_lock_slowpath+0xbc/0x20a\n   [\u003cc0611e5a\u003e] mutex_lock+0x21/0x24\n   [\u003cc047fd7e\u003e] vfs_rmdir+0x76/0xf8\n   [\u003cf94b7ce9\u003e] nfsd4_clear_clid_dir+0x2c/0x41 [nfsd]\n   [\u003cf94b7de9\u003e] nfsd4_remove_clid_dir+0xb1/0xe8 [nfsd]\n   [\u003cf94b307b\u003e] laundromat_main+0x9b/0x1c3 [nfsd]\n   [\u003cc04333d6\u003e] run_workqueue+0x7a/0xbb\n   [\u003cc0433d0b\u003e] worker_thread+0xd2/0x107\n   [\u003cc0436285\u003e] kthread+0xc3/0xf2\n   [\u003cc0402005\u003e] kernel_thread_helper+0x5/0xb\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCause for this problem was,2 successive mutex_lock calls on 2 diffrent inodes ,as shown below\n\n\tstatic int\n\tnfsd4_clear_clid_dir(struct dentry *dir, struct dentry *dentry)\n\t{\n\t        int status;\n\n\t        /* For now this directory should already be empty, but we empty it of\n        \t * any regular files anyway, just in case the directory was created by\n\t         * a kernel from the future.... */\n        \tnfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file);\n\t        mutex_lock(\u0026dir-\u003ed_inode-\u003ei_mutex);\n\t        status \u003d vfs_rmdir(dir-\u003ed_inode, dentry);\n\t...\n\n\tint vfs_rmdir(struct inode *dir, struct dentry *dentry)\n\t{\n\t        int error \u003d may_delete(dir, dentry, 1);\n\n\t        if (error)\n\t                return error;\n\n\t        if (!dir-\u003ei_op || !dir-\u003ei_op-\u003ermdir)\n        \t        return -EPERM;\n\n\t        DQUOT_INIT(dir);\n\n\t        mutex_lock(\u0026dentry-\u003ed_inode-\u003ei_mutex);\n\t...\n\nSo I have developed the patch to overcome this problem.\n\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b37ad28bcaa7c486a4ff0fb6c3bdaaacd67b86ce",
      "tree": "17bb3677f3e63dc469b64a123a74cee0266768df",
      "parents": [
        "6264d69d7df654ca64f625e9409189a0e50734e9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Oct 19 23:28:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:42 2006 -0700"
      },
      "message": "[PATCH] nfsd: nfs4 code returns error values in net-endian\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-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": "afefdbb28a0a2af689926c30b94a14aea6036719",
      "tree": "6ee500575cac928cd90045bcf5b691cf2b8daa09",
      "parents": [
        "1d32849b14bc8792e6f35ab27dd990d74b16126c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 03 01:13:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:03:40 2006 -0700"
      },
      "message": "[PATCH] VFS: Make filldir_t and struct kstat deal in 64-bit inode numbers\n\nThese patches make the kernel pass 64-bit inode numbers internally when\ncommunicating to userspace, even on a 32-bit system.  They are required\nbecause some filesystems have intrinsic 64-bit inode numbers: NFS3+ and XFS\nfor example.  The 64-bit inode numbers are then propagated to userspace\nautomatically where the arch supports it.\n\nProblems have been seen with userspace (eg: ld.so) using the 64-bit inode\nnumber returned by stat64() or getdents64() to differentiate files, and\nfailing because the 64-bit inode number space was compressed to 32-bits, and\nso overlaps occur.\n\nThis patch:\n\nMake filldir_t take a 64-bit inode number and struct kstat carry a 64-bit\ninode number so that 64-bit inode numbers can be passed back to userspace.\n\nThe stat functions then returns the full 64-bit inode number where\navailable and where possible.  If it is not possible to represent the inode\nnumber supplied by the filesystem in the field provided by userspace, then\nerror EOVERFLOW will be issued.\n\nSimilarly, the getdents/readdir functions now pass the full 64-bit inode\nnumber to userspace where possible, returning EOVERFLOW instead when a\ndirectory entry is encountered that can\u0027t be properly represented.\n\nNote that this means that some inodes will not be stat\u0027able on a 32-bit\nsystem with old libraries where they were before - but it does mean that\nthere will be no ambiguity over what a 32-bit inode number refers to.\n\nNote similarly that directory scans may be cut short with an error on a\n32-bit system with old libraries where the scan would work before for the\nsame reasons.\n\nIt is judged unlikely that this situation will occur because modern glibc\nuses 64-bit capable versions of stat and getdents class functions\nexclusively, and that older systems are unlikely to encounter\nunrepresentable inode numbers anyway.\n\n[akpm: alpha build fix]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "35058687912aa2f0b4554383cc10be4e0683b9a4",
      "tree": "3e18d13aef6682553887076c1e9872e91e6fc5c4",
      "parents": [
        "dc64ddf4918f0da52df10d83c2a5941a547c2035"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Aug 24 19:10:20 2006 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Sep 21 11:46:21 2006 +1000"
      },
      "message": "[CRYPTO] users: Use crypto_hash interface instead of crypto_digest\n\nThis patch converts all remaining crypto_digest users to use the new\ncrypto_hash interface.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "c2642ab05b855d2d3b850ddf90dbb02b1b9358ac",
      "tree": "38625ce3e2d5adb2d669875a41b2698b289d8ddb",
      "parents": [
        "d22749b62f3e12de26b86a200f9a5bf7afe3590e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:26 2006 -0800"
      },
      "message": "[PATCH] nfsd4: recovery lookup dir check\n\nMake sure we get a directory when we look up the recovery directory.\n\nThanks to Christoph Hellwig for the bug report.\n\nBased on feedback from Christoph and others, we may remove the need for this\nlookup and just pass in a file descriptor from userspace instead, and/or\ncompletely move the directory handling to userspace.  For now we\u0027re just\nfixing the obvious bugs.\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": "d22749b62f3e12de26b86a200f9a5bf7afe3590e",
      "tree": "dba05760944d9c91565955de182b2684af0bb19a",
      "parents": [
        "5fb8b49e2955cc473929c5994b8389111daed59d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 18 17:43:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:26 2006 -0800"
      },
      "message": "[PATCH] nfsd4: fix open of recovery directory\n\nWe should be opening this directory RDONLY, not RDWR.\n\nThanks to Christoph Hellwig for the bug report.\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": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "573dbd95964b01a942aa0c68e92b06f2c9536964",
      "tree": "4ada5dff2a15e1ad1edee7294d6f0d3c260987d1",
      "parents": [
        "5170dbebbb2e9159cdf6bbf35e5d79cd7009799a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Thu Sep 01 17:44:29 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 17:44:29 2005 -0700"
      },
      "message": "[CRYPTO]: crypto_free_tfm() callers no longer need to check for NULL\n\nSince the patch to add a NULL short-circuit to crypto_free_tfm() went in,\nthere\u0027s no longer any need for callers of that function to check for NULL.\nThis patch removes the redundant NULL checks and also a few similar checks\nfor NULL before calls to kfree() that I ran into while doing the\ncrypto_free_tfm bits.\n\nI\u0027ve succesfuly compile tested this patch, and a kernel with the patch \napplied boots and runs just fine.\n\nWhen I posted the patch to LKML (and other lists/people on Cc) it drew the\nfollowing comments :\n\n J. Bruce Fields commented\n  \"I\u0027ve no problem with the auth_gss or nfsv4 bits.--b.\"\n\n Sridhar Samudrala said\n  \"sctp change looks fine.\"\n\n Herbert Xu signed off on the patch.\n\nSo, I guess this is ready to be dropped into -mm and eventually mainline.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb6f1160ddb2fdadf50f350da79d0796c37f17e2",
      "tree": "e7b048b089b4b0ec9f121eea9a7f5864999dbac3",
      "parents": [
        "64baf3cfea974d2b9e671ccfdbc03e030ea5ebc6"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Sep 01 17:43:25 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 17:43:25 2005 -0700"
      },
      "message": "[CRYPTO]: Use CRYPTO_TFM_REQ_MAY_SLEEP where appropriate\n\nThis patch goes through the current users of the crypto layer and sets\nCRYPTO_TFM_REQ_MAY_SLEEP at crypto_alloc_tfm() where all crypto operations\nare performed in process context.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67be431350941765e211eeed237c12def3aaba70",
      "tree": "58683397c9ab328f721d55b0d95f25e57dbcbda8",
      "parents": [
        "cdc5524e8a257b1c91dd8e4cdfbab979f4e17a60"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:08 2005 -0700"
      },
      "message": "[PATCH] nfsd4: prevent multiple unlinks of recovery directories\n\nMake sure we don\u0027t try to delete client recovery directories multiple times;\nfixes some spurious error messages.\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": "cdc5524e8a257b1c91dd8e4cdfbab979f4e17a60",
      "tree": "8db1b2c1ac28d1525f7e953e1ac5de8616da4663",
      "parents": [
        "a6ccbbb8865101d83c2e716f08feae1da1c48584"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:07 2005 -0700"
      },
      "message": "[PATCH] nfsd4: lookup_one_len takes i_sem\n\nOops, this lookup_one_len needs the i_sem.\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": "a6ccbbb8865101d83c2e716f08feae1da1c48584",
      "tree": "0b55b0673704dcae39d614cb1495cf47590628fb",
      "parents": [
        "463090294e1e460cf97f5ade376d4b1e62bc5263"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jul 07 17:59:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:07 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix sync\u0027ing of recovery directory\n\nWe need to fsync the recovery directory after writing to it, but we weren\u0027t\ndoing this correctly.  (For example, we weren\u0027t taking the i_sem when calling\n-\u003efsync().)\n\nJust reuse the existing nfsd fsync code instead.\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": "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"
    }
  ]
}
