[GFS2] Fix two races relating to glock callbacks
authorSteven Whitehouse <swhiteho@redhat.com>
Mon, 23 Jul 2007 08:54:36 +0000 (09:54 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 10 Oct 2007 07:54:39 +0000 (08:54 +0100)
commit87124e581bfeaa5864662a435b6ee2a19e91b905
treef9bc5d965834f1c7435123f26b9ab8f961c8848f
parentbbf25010f1a6b761914430f5fca081ec8c7accd1
[GFS2] Fix two races relating to glock callbacks

One of the races relates to referencing a variable while not holding
its protecting spinlock. The patch simply moves the test inside the
spin lock. The other races occurs when a demote to unlocked request
occurs during the time a demote to shared request is already running.
This of course only happens in the case that the lock was in the
exclusive mode to start with. The patch adds a check to see if another
demote request has occurred in the mean time and if it has, then it
performs a second demote.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glock.c