nfsd4: check for negative dentry before use in nfsv4 readdir
authorJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 5 May 2009 23:04:29 +0000 (19:04 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Wed, 6 May 2009 20:16:36 +0000 (16:16 -0400)
commitb2c0cea6b1cb210e962f07047df602875564069e
treef6327b45df075955d8ef9e9ad93c453ea5fc7a4c
parentccecee1e5e42981f5eb37f4411e8552b9db04d30
nfsd4: check for negative dentry before use in nfsv4 readdir

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>
Cc: stable@kernel.org
fs/nfsd/nfs4xdr.c