GFS2: glock livelock
authorBob Peterson <rpeterso@redhat.com>
Wed, 14 Apr 2010 15:58:16 +0000 (11:58 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 14 Apr 2010 15:48:05 +0000 (16:48 +0100)
commit1a0eae8848cde6e0734360f6456496c995ee1e23
tree536f944468ef5bc6f47ec09325422adbc5a3907a
parent602c89d2e3e8652f94a697c9a919be739b9bcdd5
GFS2: glock livelock

This patch fixes a couple gfs2 problems with the reclaiming of
unlinked dinodes.  First, there were a couple of livelocks where
everything would come to a halt waiting for a glock that was
seemingly held by a process that no longer existed.  In fact, the
process did exist, it just had the wrong pid number in the holder
information.  Second, there was a lock ordering problem between
inode locking and glock locking.  Third, glock/inode contention
could sometimes cause inodes to be improperly marked invalid by
iget_failed.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/dir.c
fs/gfs2/export.c
fs/gfs2/glock.c
fs/gfs2/inode.c
fs/gfs2/inode.h
fs/gfs2/ops_fstype.c
fs/gfs2/rgrp.c