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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 20 May 2009 05:20:14 +0000 (22:20 -0700)
commit7af264b6aab8c3bd89c61751b793a8f6a8e64173
tree68b8eb0d87df2b98d6748b2b5acf35433dd651e6
parent6ee4627d39d5020bb7f75f6558a1f64b697556fc
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