gfs2: Switch to a private inodes rhashtable

Change gfs2 to use a private rhashtable for inode lookup instead of the
VFS inode hash table.

For evicting inodes, gfs2 needs to interact with DLM to release and
sometimes even acquire cluster-wide locks.  When evictions are triggered
by memory pressuse due to a memory allocation in DLM itself, this will
cause DLM to deadlock; similar deadlock scenarios exist between
custer-wide locking and fencing.  Therefore, upon memory pressure, we
will only queue up inodes for eviction.  The actual eviction will happen
in the context of work queue workers.

The ugly side to this is that increased memory pressure will not
directly lead to a higher rate of inode eviction anymore.

Signed-off-by: Andreas Gruenbacher <>
6 files changed