<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/dlm/lock.c, branch linux-2.6.32.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-08-13T20:20:21Z</updated>
<entry>
<title>dlm: send reply before bast</title>
<updated>2010-08-13T20:20:21Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2010-02-24T17:59:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b52a196f50ca16eb07abea00443ff74884d11f0'/>
<id>urn:sha1:8b52a196f50ca16eb07abea00443ff74884d11f0</id>
<content type='text'>
commit cf6620acc0f6fac57968aafef79ab372bdcf6157 upstream.

When the lock master processes a successful operation (request,
convert, cancel, or unlock), it will process the effects of the
change before sending the reply for the operation.  The "effects"
of the operation are:

- blocking callbacks (basts) for any newly granted locks
- waiting or converting locks that can now be granted

The cast is queued on the local node when the reply from the lock
master is received.  This means that a lock holder can receive a
bast for a lock mode that is doesn't yet know has been granted.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>dlm: fix ordering of bast and cast</title>
<updated>2010-08-13T20:20:20Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2010-02-24T17:08:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ce7a93b30612fd11301dbbafaac8ae01497054d'/>
<id>urn:sha1:6ce7a93b30612fd11301dbbafaac8ae01497054d</id>
<content type='text'>
commit 7fe2b3190b8b299409f13cf3a6f85c2bd371f8bb upstream.

When both blocking and completion callbacks are queued for lock,
the dlm would always deliver the completion callback (cast) first.
In some cases the blocking callback (bast) is queued before the
cast, though, and should be delivered first.  This patch keeps
track of the order in which they were queued and delivers them
in that order.

This patch also keeps track of the granted mode in the last cast
and eliminates the following bast if the bast mode is compatible
with the preceding cast mode.  This happens when a remotely mastered
lock is demoted, e.g. EX-&gt;NL, in which case the local node queues
a cast immediately after sending the demote message.  In this way
a cast can be queued for a mode, e.g. NL, that makes an in-transit
bast extraneous.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>dlm: always use GFP_NOFS</title>
<updated>2010-08-13T20:20:20Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2009-11-30T22:34:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d53f591280e8ad6a3164534db63b8c511154c704'/>
<id>urn:sha1:d53f591280e8ad6a3164534db63b8c511154c704</id>
<content type='text'>
commit 573c24c4af6664ffcd9aa7ba617a35fde2b95534 upstream.

Replace all GFP_KERNEL and ls_allocation with GFP_NOFS.
ls_allocation would be GFP_KERNEL for userland lockspaces
and GFP_NOFS for file system lockspaces.

It was discovered that any lockspaces on the system can
affect all others by triggering memory reclaim in the
file system which could in turn call back into the dlm
to acquire locks, deadlocking dlm threads that were
shared by all lockspaces, like dlm_recv.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>dlm: Fix uninitialised variable warning in lock.c</title>
<updated>2009-06-17T16:31:32Z</updated>
<author>
<name>Steven Whitehouse</name>
</author>
<published>2009-06-15T07:26:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a566a6b11c86147fe9fc9db7ab15f9eecca3e862'/>
<id>urn:sha1:a566a6b11c86147fe9fc9db7ab15f9eecca3e862</id>
<content type='text'>
  CC [M]  fs/dlm/lock.o
fs/dlm/lock.c: In function ‘find_rsb’:
fs/dlm/lock.c:438: warning: ‘r’ may be used uninitialized in this function

Since r is used on the error path to set r_ret, set it to NULL.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: ignore cancel on granted lock</title>
<updated>2009-03-11T17:23:58Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2009-02-27T21:23:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a536e38125fe5da8ed49690f30c30a8f651cf1f5'/>
<id>urn:sha1:a536e38125fe5da8ed49690f30c30a8f651cf1f5</id>
<content type='text'>
Return immediately from dlm_unlock(CANCEL) if the lock is
granted and not being converted; there's nothing to cancel.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: clear defunct cancel state</title>
<updated>2009-03-11T17:23:39Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2009-01-28T20:37:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=43279e5376017c40b4be9af5bc79cbb4ef6f53d7'/>
<id>urn:sha1:43279e5376017c40b4be9af5bc79cbb4ef6f53d7</id>
<content type='text'>
When a conversion completes successfully and finds that a cancel
of the convert is still in progress (which is now a moot point),
preemptively clear the state associated with outstanding cancel.
That state could cause a subsequent conversion to be ignored.

Also, improve the consistency and content of error and debug
messages in this area.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: change rsbtbl rwlock to spinlock</title>
<updated>2009-01-08T21:12:39Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2009-01-07T22:50:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c7be761a8163d2f1ac0b606c21e4316b7abc5af7'/>
<id>urn:sha1:c7be761a8163d2f1ac0b606c21e4316b7abc5af7</id>
<content type='text'>
The rwlock is almost always used in write mode, so there's no reason
to not use a spinlock instead.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: add time stamp of blocking callback</title>
<updated>2008-12-23T16:18:34Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-12-09T20:47:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e3a84ad495d1fddb542e0922160f0194a1361950'/>
<id>urn:sha1:e3a84ad495d1fddb542e0922160f0194a1361950</id>
<content type='text'>
Record the time the latest blocking callback was queued for
a lock.  This will be used for debugging in combination with
lock queue timestamp changes in the previous patch.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: change lock time stamping</title>
<updated>2008-12-23T16:18:17Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-12-09T20:12:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eeda418d8c2646f33f24e9ad33d86c239adc6de7'/>
<id>urn:sha1:eeda418d8c2646f33f24e9ad33d86c239adc6de7</id>
<content type='text'>
Use ktime instead of jiffies for timestamping lkb's.  Also stamp the
time on every lkb whenever it's added to a resource queue, instead of
just stamping locks subject to timeouts.  This will allow us to use
timestamps more widely for debugging all locks.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: improve how bast mode handling</title>
<updated>2008-12-23T16:16:46Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-12-09T17:55:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd22a51bcc0b7b76fc729b02316214fd979f9fe1'/>
<id>urn:sha1:fd22a51bcc0b7b76fc729b02316214fd979f9fe1</id>
<content type='text'>
The lkb bastmode value is set in the context of processing the
lock, and read by the dlm_astd thread.  Because it's accessed
in these two separate contexts, the writing/reading ought to
be done under a lock.  This is simple to do by setting it and
reading it when the lkb is added to and removed from dlm_astd's
callback list which is properly locked.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
</feed>
