<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/lockd/host.c, branch linux-2.6.25.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-02-10T23:09:36Z</updated>
<entry>
<title>NLM: have server-side RPC clients default to soft RPC tasks</title>
<updated>2008-02-10T23:09:36Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2008-02-06T16:34:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90bd17c87821fe0e055e0f9a7446c2875f31eb4c'/>
<id>urn:sha1:90bd17c87821fe0e055e0f9a7446c2875f31eb4c</id>
<content type='text'>
Now that it no longer does an RPC ping, lockd always ends up queueing
an RPC task for the GRANT_MSG callback. But, it also requeues the block
for later attempts. Since these are hard RPC tasks, if the client we're
calling back goes unresponsive the GRANT_MSG callbacks can stack up in
the RPC queue.

Fix this by making server-side RPC clients default to soft RPC tasks.
lockd requeues the block anyway, so this should be OK.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@citi.umich.edu&gt;
</content>
</entry>
<entry>
<title>NLM: set RPC_CLNT_CREATE_NOPING for NLM RPC clients</title>
<updated>2008-02-10T23:09:36Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2008-02-06T16:34:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=031fd3aa20fcf6d1862ea7814ee8b2caf36c0d78'/>
<id>urn:sha1:031fd3aa20fcf6d1862ea7814ee8b2caf36c0d78</id>
<content type='text'>
It's currently possible for an unresponsive NLM client to completely
lock up a server's lockd. The scenario is something like this:

1) client1 (or a process on the server) takes a lock on a file
2) client2 tries to take a blocking lock on the same file and
   awaits the callback
3) client2 goes unresponsive (plug pulled, network partition, etc)
4) client1 releases the lock

...at that point the server's lockd will try to queue up a GRANT_MSG
callback for client2, but first it requeues the block with a timeout of
30s. nlm_async_call will attempt to bind the RPC client to client2 and
will call rpc_ping. rpc_ping entails a sync RPC call and if client2 is
unresponsive it will take around 60s for that to time out. Once it times
out, it's already time to retry the block and the whole process repeats.

Once in this situation, nlmsvc_retry_blocked will never return until
the host starts responding again. lockd won't service new calls.

Fix this by skipping the RPC ping on NLM RPC clients. This makes
nlm_async_call return quickly when called.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@citi.umich.edu&gt;
</content>
</entry>
<entry>
<title>NLM: tear down RPC clients in nlm_shutdown_hosts</title>
<updated>2008-02-01T21:42:15Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2008-01-29T15:30:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d801b861681116ea23a7fb87a70bf463d29c8b9c'/>
<id>urn:sha1:d801b861681116ea23a7fb87a70bf463d29c8b9c</id>
<content type='text'>
It's possible for a RPC to outlive the lockd daemon that created it, so
we need to make sure that all RPC's are killed when lockd is coming
down. When nlm_shutdown_hosts is called, kill off all RPC tasks
associated with the host. Since we need to wait until they have all gone
away, we might as well just shut down the RPC client altogether.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@citi.umich.edu&gt;
</content>
</entry>
<entry>
<title>NLM: Fix sign of length of NLM variable length strings</title>
<updated>2008-02-01T21:42:02Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2007-11-01T20:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48df020aa17ac95a012ff765b0086ede5996b320'/>
<id>urn:sha1:48df020aa17ac95a012ff765b0086ede5996b320</id>
<content type='text'>
According to The Open Group's NLM specification, NLM callers are variable
length strings.  XDR variable length strings use an unsigned 32 bit length.
And internally, negative string lengths are not meaningful for the Linux
NLM implementation.

Clean up: Make nlm_lock.len and nlm_reboot.len unsigned integers.  This
makes the sign of NLM string lengths consistent with the sign of xdr_netobj
lengths.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Acked-By: NeilBrown &lt;neilb@suse.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@citi.umich.edu&gt;
</content>
</entry>
<entry>
<title>NLM: fix source address of callback to client</title>
<updated>2007-07-11T03:40:49Z</updated>
<author>
<name>Frank van Maarseveen</name>
</author>
<published>2007-07-09T20:25:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c98451bdb2f3e6d6cc1e03adad641e9497512b49'/>
<id>urn:sha1:c98451bdb2f3e6d6cc1e03adad641e9497512b49</id>
<content type='text'>
Use the destination address of the original NLM request as the
source address in callbacks to the client.

Signed-off-by: Frank van Maarseveen &lt;frankvm@frankvm.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Convert rpc_clnt-&gt;cl_users to a kref</title>
<updated>2007-07-11T03:40:28Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2007-06-14T20:40:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=34f52e3591f241b825353ba27def956d8487c400'/>
<id>urn:sha1:34f52e3591f241b825353ba27def956d8487c400</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NLM: Fix locking client timeouts...</title>
<updated>2007-05-14T23:33:44Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2007-05-14T20:50:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21051ba6259c519e20a7d575ddceb16e84ad2a5d'/>
<id>urn:sha1:21051ba6259c519e20a7d575ddceb16e84ad2a5d</id>
<content type='text'>
nlmsvc_timeout is already in units of HZ...

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] remove many unneeded #includes of sched.h</title>
<updated>2007-02-14T16:09:54Z</updated>
<author>
<name>Tim Schmielau</name>
</author>
<published>2007-02-14T08:33:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd354f1ae75e6466a7e31b727faede57a1f89ca5'/>
<id>urn:sha1:cd354f1ae75e6466a7e31b727faede57a1f89ca5</id>
<content type='text'>
After Al Viro (finally) succeeded in removing the sched.h #include in module.h
recently, it makes sense again to remove other superfluous sched.h includes.
There are quite a lot of files which include it but don't actually need
anything defined in there.  Presumably these includes were once needed for
macros that used to live in sched.h, but moved to other header files in the
course of cleaning it up.

To ease the pain, this time I did not fiddle with any header files and only
removed #includes from .c-files, which tend to cause less trouble.

Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
configs in arch/arm/configs on arm.  I also checked that no new warnings were
introduced by the patch (actually, some warnings are removed that were emitted
by unnecessarily included header files).

Signed-off-by: Tim Schmielau &lt;tim@physik3.uni-rostock.de&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] knfsd: SUNRPC: Provide room in svc_rqst for larger addresses</title>
<updated>2007-02-12T17:48:36Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2007-02-12T08:53:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=27459f0940e16c68e080f5fc7e85aa9eb3f74528'/>
<id>urn:sha1:27459f0940e16c68e080f5fc7e85aa9eb3f74528</id>
<content type='text'>
Expand the rq_addr field to allow it to contain larger addresses.

Specifically, we replace a 'sockaddr_in' with a 'sockaddr_storage', then
everywhere the 'sockaddr_in' was referenced, we use instead an accessor
function (svc_addr_in) which safely casts the _storage to _in.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Cc: Aurelien Charbon &lt;aurelien.charbon@ext.bull.net&gt;
Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fs/lockd/host.c: make 2 functions static</title>
<updated>2006-12-07T16:39:40Z</updated>
<author>
<name>Adrian Bunk</name>
</author>
<published>2006-12-07T04:38:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c585646dd1d98caf0a5f2e85c794c1441df6fac1'/>
<id>urn:sha1:c585646dd1d98caf0a5f2e85c794c1441df6fac1</id>
<content type='text'>
Make the following needlessly global functions static:

 - nlm_lookup_host()
 - nsm_find()

Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
