Re: dlm: Don't send callback to node making lock request when "try1cb" fails

From: David Teigland
Date: Fri Sep 03 2010 - 11:13:35 EST


On Fri, Sep 03, 2010 at 10:40:16AM +0100, Steven Whitehouse wrote:
>
> When converting a lock, an lkb is in the granted state and also being used
> to request a new state. In the case that the conversion was a "try 1cb"
> type which has failed, and if the new state was incompatible with the old
> state, a callback was being generated to the requesting node. This is
> incorrect as callbacks should only be sent to all the other nodes holding
> blocking locks. The requesting node should receive the normal (failed)
> response to its "try 1cb" conversion request only.
>
> This was discovered while debugging a performance problem on GFS2, however
> this fix also speeds up GFS as well. In the GFS2 case the performance gain
> is over 10x for cases of write activity to an inode whose glock is cached
> on another, idle (wrt that glock) node.

Thanks, I added a comment and queued it up.
Dave