]> git.baikalelectronics.ru Git - kernel.git/commit
GFS2: skip dlm_unlock calls in unmount
authorDavid Teigland <teigland@redhat.com>
Tue, 13 Nov 2012 15:58:56 +0000 (10:58 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 14 Nov 2012 09:37:04 +0000 (09:37 +0000)
commit5f7ee90089d1f812e113694d1fa3f063c9d3dc0f
tree939570529b651b02ab06b491d4a672fa4bcc5ebc
parentccbb5ed3a660875c31772331d3da1a8a584ce9f2
GFS2: skip dlm_unlock calls in unmount

When unmounting, gfs2 does a full dlm_unlock operation on every
cached lock.  This can create a very large amount of work and can
take a long time to complete.  However, the vast majority of these
dlm unlock operations are unnecessary because after all the unlocks
are done, gfs2 leaves the dlm lockspace, which automatically clears
the locks of the leaving node, without unlocking each one individually.
So, gfs2 can skip explicit dlm unlocks, and use dlm_release_lockspace to
remove the locks implicitly.  The one exception is when the lock's lvb is
being used.  In this case, dlm_unlock is called because it may update the
lvb of the resource.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glock.c
fs/gfs2/incore.h
fs/gfs2/lock_dlm.c