]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd4: don't do lookup within readdir in recovery code
authorJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 13 Mar 2009 20:02:59 +0000 (16:02 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Wed, 18 Mar 2009 21:38:40 +0000 (17:38 -0400)
commite18d879dc821b45f31afc166a2b06784f81768ea
treec646c8932bf7e78ff0960ade2f50cf43848d3bda
parentfbd1de501623f844ea1f7a8012b5870750d85d44
nfsd4: don't do lookup within readdir in recovery code

The main nfsd code was recently modified to no longer do lookups from
withing the readdir callback, to avoid locking problems on certain
filesystems.

This (rather hacky, and overdue for replacement) NFSv4 recovery code has
the same problem.  Fix it to build up a list of names (instead of
dentries) and do the lookups afterwards.

Reported symptoms were a deadlock in the xfs code (called from
nfsd4_recdir_load), with /var/lib/nfs on xfs.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Reported-by: David Warren <warren@atmos.washington.edu>
fs/nfsd/nfs4recover.c