<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/dlm/rcom.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:20Z</updated>
<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 rcom_names message to self</title>
<updated>2008-02-21T21:19:54Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-02-21T19:39:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=599e0f584de8ff16b1428e2e16118757619f1d1b'/>
<id>urn:sha1:599e0f584de8ff16b1428e2e16118757619f1d1b</id>
<content type='text'>
The recent patch to validate data lengths in rcom_names messages
failed to account for fake messages a node directs to itself before
ever sending it.  In this case we need to fill in the message length
in the header for the validation code to use.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: proper types for asts and basts</title>
<updated>2008-02-06T06:35:45Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-02-06T06:35:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e5dae548b0b5397e070de793be925cfc5813ad95'/>
<id>urn:sha1:e5dae548b0b5397e070de793be925cfc5813ad95</id>
<content type='text'>
Use proper types for ast and bast functions, and use
consistent type for ast param.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: verify that places expecting rcom_lock have packet long enough</title>
<updated>2008-02-04T07:25:09Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-01-26T00:55:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae773d0b74bf2244887a6d0504372748381ab9c7'/>
<id>urn:sha1:ae773d0b74bf2244887a6d0504372748381ab9c7</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: missing length check in check_config()</title>
<updated>2008-02-04T07:24:20Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-01-25T08:03:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02ed16b64dc5b7a4f78476bdb64da9bbf88d84b3'/>
<id>urn:sha1:02ed16b64dc5b7a4f78476bdb64da9bbf88d84b3</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: use proper type for -&gt;ls_recover_buf</title>
<updated>2008-02-04T07:24:07Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-01-25T08:01:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4007685c6e6b5c92a07f27cd754bcca394168af2'/>
<id>urn:sha1:4007685c6e6b5c92a07f27cd754bcca394168af2</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: do not byteswap rcom_config</title>
<updated>2008-02-04T07:23:43Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-01-25T07:34:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93ff2971e99c90d1c4d39d242ef6050d2dc853d3'/>
<id>urn:sha1:93ff2971e99c90d1c4d39d242ef6050d2dc853d3</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: do not byteswap rcom_lock</title>
<updated>2008-02-04T07:23:14Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-01-25T07:08:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=163a1859ec6c4c33547bf4613efabf52031566aa'/>
<id>urn:sha1:163a1859ec6c4c33547bf4613efabf52031566aa</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>dlm: clean ups</title>
<updated>2008-01-30T17:04:43Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2008-01-29T20:52:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbcfc34733d1ae37e7a78c9e4e5325451223a5eb'/>
<id>urn:sha1:dbcfc34733d1ae37e7a78c9e4e5325451223a5eb</id>
<content type='text'>
A couple small clean-ups.  Remove unnecessary wrapper-functions in
rcom.c, and remove unnecessary casting and an unnecessary ASSERT in
util.c.

Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
</entry>
<entry>
<title>[DLM] block dlm_recv in recovery transition</title>
<updated>2007-10-10T07:56:38Z</updated>
<author>
<name>David Teigland</name>
</author>
<published>2007-09-27T20:53:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c36258b5925e6cf6bf72904635100593573bfcff'/>
<id>urn:sha1:c36258b5925e6cf6bf72904635100593573bfcff</id>
<content type='text'>
Introduce a per-lockspace rwsem that's held in read mode by dlm_recv
threads while working in the dlm.  This allows dlm_recv activity to be
suspended when the lockspace transitions to, from and between recovery
cycles.

The specific bug prompting this change is one where an in-progress
recovery cycle is aborted by a new recovery cycle.  While dlm_recv was
processing a recovery message, the recovery cycle was aborted and
dlm_recoverd began cleaning up.  dlm_recv decremented recover_locks_count
on an rsb after dlm_recoverd had reset it to zero.  This is fixed by
suspending dlm_recv (taking write lock on the rwsem) before aborting the
current recovery.

The transitions to/from normal and recovery modes are simplified by using
this new ability to block dlm_recv.  The switch from normal to recovery
mode means dlm_recv goes from processing locking messages, to saving them
for later, and vice versa.  Races are avoided by blocking dlm_recv when
setting the flag that switches between modes.

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