gfs-kernel: Bug 466645 - reproduceable gfs (dlm) hanger with simple stresstest
GFS used to attempt to prefetch inode/iopen locks in readdir
in the anticipation that stats will be called on the dirents
returned. Running a simple 'find' without stat, resulted in
wasteful prefetching and poor performance to the point that
it seemed like find was hanging the system.
This patch performs prefetch on a directory's inodes based
on a stat-rate. i.e the rate at which stats are performed on
the dirents returned by readdir. If there are a significant
number of stats being performed, we enable prefetching.
Otherwise, readdir is performed without prefetches.