nfsd4: fix bad pointer on failure to find delegation
authorJ. Bruce Fields <bfields@redhat.com>
Mon, 7 Mar 2011 00:11:03 +0000 (19:11 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 7 Mar 2011 16:44:53 +0000 (11:44 -0500)
commit32b007b4e19b50ff4d27ea8b69cd6d744cfec86b
treeada73d6c52a6e9b37cbdc95d086485fdf338561a
parent2c9c8f36c34e1defcaa7e4c298651998b47f5282
nfsd4: fix bad pointer on failure to find delegation

In case of a nonempty list, the return on error here is obviously bogus;
it ends up being a pointer to the list head instead of to any valid
delegation on the list.

In particular, if nfsd4_delegreturn() hits this case, and you're quite unlucky,
then renew_client may oops, and it may take an embarassingly long time to
figure out why.  Facepalm.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000090
IP: [<ffffffff81292965>] nfsd4_delegreturn+0x125/0x200
...

Cc: stable@kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c