nfsd4: check for negative dentry before use in nfsv4 readdir
commit824237356f629cf55af47468f1a4084771248c39
authorJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 5 May 2009 23:04:29 +0000 (5 19:04 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 18 May 2009 23:35:12 +0000 (18 16:35 -0700)
tree6f2261bcd2b1b78542ef6bbd2ec2f7e37dcb3b95
parent4eccd99ef7a39afd3005dadc91a80031aca5cbd6
nfsd4: check for negative dentry before use in nfsv4 readdir

commit b2c0cea6b1cb210e962f07047df602875564069e upstream.

After 2f9092e1020246168b1309b35e085ecd7ff9ff72 "Fix i_mutex vs.  readdir
handling in nfsd" (and 14f7dd63 "Copy XFS readdir hack into nfsd code"),
an entry may be removed between the first mutex_unlock and the second
mutex_lock. In this case, lookup_one_len() will return a negative
dentry.  Check for this case to avoid a NULL dereference.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Reviewed-by: J. R. Okajima <hooanon05@yahoo.co.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/nfsd/nfs4xdr.c