nfsd: fh_update should error out in unexpected cases
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 12 Sep 2013 13:31:39 +0000 (09:31 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 29 Oct 2013 21:43:52 +0000 (17:43 -0400)
commit49e7372063a220651b4f12fa46113559533cafee
tree5646b5f1a30977b5e31313d47973695662245b9c
parent956c4fee446c568ad102625da931e259f22c67ee
nfsd: fh_update should error out in unexpected cases

The reporter saw a NULL dereference when a filesystem's ->mknod returned
success but left the dentry negative, and then nfsd tried to dereference
d_inode (in this case because the CREATE was followed by a GETATTR in
the same nfsv4 compound).

fh_update already checks for this and another broken case, but for some
reason it returns success and leaves nfsd trying to soldier on.  If it
failed we'd avoid the crash.  There's only so much we can do with a
buggy filesystem, but it's easy enough to bail out here, so let's do
that.

Reported-by: Antti Tönkyrä <daedalus@pingtimeout.net>
Tested-by: Antti Tönkyrä <daedalus@pingtimeout.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfsfh.c