<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/sunrpc, branch v2.6.16.58</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/sunrpc?h=v2.6.16.58</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/sunrpc?h=v2.6.16.58'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2006-12-15T00:20:35Z</updated>
<entry>
<title>Fix SUNRPC wakeup/execute race condition</title>
<updated>2006-12-15T00:20:35Z</updated>
<author>
<name>Christophe Saout</name>
<email>christophe@saout.de</email>
</author>
<published>2006-12-15T00:20:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bbb978312500b3534a1515ca168597754647d96e'/>
<id>urn:sha1:bbb978312500b3534a1515ca168597754647d96e</id>
<content type='text'>
The sunrpc scheduler contains a race condition that can let an RPC
task end up being neither running nor on any wait queue. The race takes
place between rpc_make_runnable (called from rpc_wake_up_task) and
__rpc_execute under the following condition:

First __rpc_execute calls tk_action which puts the task on some wait
queue. The task is dequeued by another process before __rpc_execute
continues its execution. While executing rpc_make_runnable exactly after
setting the task `running' bit and before clearing the `queued' bit
__rpc_execute picks up execution, clears `running' and subsequently
both functions fall through, both under the false assumption somebody
else took the job.

Swapping rpc_test_and_set_running with rpc_clear_queued in
rpc_make_runnable fixes that hole. This introduces another possible
race condition that can be handled by checking for `queued' after
setting the `running' bit.

Bug noticed on a 4-way x86_64 system under XEN with an NFSv4 server
on the same physical machine, apparently one of the few ways to hit
this race condition at all.

Signed-off-by: Christophe Saout &lt;christophe@saout.de&gt;
Acked-by: Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>knfsd: Fix race that can disable NFS server.</title>
<updated>2006-11-05T08:03:18Z</updated>
<author>
<name>Neil Brown</name>
<email>neilb@suse.de</email>
</author>
<published>2006-11-05T08:03:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ac0a20823b92bf2bd39aa83c59c247b41ba3e44'/>
<id>urn:sha1:0ac0a20823b92bf2bd39aa83c59c247b41ba3e44</id>
<content type='text'>
This is a long standing bug that seems to have only recently become
apparent, presumably due to increasing use of NFS over TCP - many
distros seem to be making it the default.

The SK_CONN bit gets set when a listening socket may be ready
for an accept, just as SK_DATA is set when data may be available.

It is entirely possible for svc_tcp_accept to be called with neither
of these set.  It doesn't happen often but there is a small race in
svc_sock_enqueue as SK_CONN and SK_DATA are tested outside the
spin_lock.  They could be cleared immediately after the test and
before the lock is gained.

This normally shouldn't be a problem.  The sockets are non-blocking so
trying to read() or accept() when ther is nothing to do is not a problem.

However: svc_tcp_recvfrom makes the decision "Should I accept() or
should I read()" based on whether SK_CONN is set or not.  This usually
works but is not safe.  The decision should be based on whether it is
a TCP_LISTEN socket or a TCP_CONNECTED socket.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] SUNRPC: Fix potential deadlock in RPC code</title>
<updated>2006-03-14T15:57:18Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-03-14T05:20:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e6d83d55698b73b4d5d55d3d7715a4c26030d577'/>
<id>urn:sha1:e6d83d55698b73b4d5d55d3d7715a4c26030d577</id>
<content type='text'>
In rpc_wake_up() and rpc_wake_up_status(), it is possible for the call to
__rpc_wake_up_task() to fail if another thread happens to be calling
rpc_wake_up_task() on the same rpc_task.

Problem noticed by Bruno Faccini.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] SUNRPC: fix a NULL pointer dereference in net/sunrpc/clnt.c</title>
<updated>2006-03-14T15:57:17Z</updated>
<author>
<name>Adrian Bunk</name>
<email>bunk@stusta.de</email>
</author>
<published>2006-03-14T05:20:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=712917d1c002f820b177683f4fd491289bde3c32'/>
<id>urn:sha1:712917d1c002f820b177683f4fd491289bde3c32</id>
<content type='text'>
The Coverity checker spotted this possible NULL pointer dereference in
rpc_new_client().

Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Move upcall out of auth-&gt;au_ops-&gt;crcreate()</title>
<updated>2006-02-01T17:52:25Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-02-01T17:19:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fba3bad488a2eec2d76c067edb7a5ff92ef42431'/>
<id>urn:sha1:fba3bad488a2eec2d76c067edb7a5ff92ef42431</id>
<content type='text'>
 This fixes a bug whereby if two processes try to look up the same auth_gss
 credential, they may end up creating two creds, and triggering two upcalls
 because the upcall is performed before the credential is added to the
 credcache.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Remove the deprecated function lookup_hash() from rpc_pipefs code</title>
<updated>2006-02-01T17:52:24Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-02-01T17:19:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=adb12f63e0f837078c6832fa2c90649ddeaab54f'/>
<id>urn:sha1:adb12f63e0f837078c6832fa2c90649ddeaab54f</id>
<content type='text'>
 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: rpc_timeout_upcall_queue should not sleep</title>
<updated>2006-02-01T17:52:24Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-02-01T17:18:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9842ef3557abf5ec2fd92bfa6e29ce0e271b3f6e'/>
<id>urn:sha1:9842ef3557abf5ec2fd92bfa6e29ce0e271b3f6e</id>
<content type='text'>
 The function rpc_timeout_upcall_queue runs from a workqueue, and hence
 sleeping is not recommended. Convert the protection of the upcall queue
 from being mutex-based to being spinlock-based.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Fix a lock recursion in the auth_gss downcall</title>
<updated>2006-02-01T17:52:23Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-02-01T17:18:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8a3177604b729ec3b80e43790ee978863ac7551b'/>
<id>urn:sha1:8a3177604b729ec3b80e43790ee978863ac7551b</id>
<content type='text'>
 When we look up a new cred in the auth_gss downcall so that we can stuff
 the credcache, we do not want that lookup to queue up an upcall in order
 to initialise it. To do an upcall here not only redundant, but since we
 are already holding the inode-&gt;i_mutex, it will trigger a lock recursion.

 This patch allows rpcauth cache searches to indicate that they can cope
 with uninitialised credentials.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] DocBook: fix some kernel-doc comments in net/sunrpc</title>
<updated>2006-02-01T16:53:27Z</updated>
<author>
<name>Martin Waitz</name>
<email>tali@admingilde.org</email>
</author>
<published>2006-02-01T11:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=99acf0442111cc452ac1b93868dde8f6ff37a989'/>
<id>urn:sha1:99acf0442111cc452ac1b93868dde8f6ff37a989</id>
<content type='text'>
Fix the syntax of some kernel-doc comments

Signed-off-by: Martin Waitz &lt;tali@admingilde.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] svcrpc: gss: svc context creation error handling</title>
<updated>2006-01-19T03:20:25Z</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@citi.umich.edu</email>
</author>
<published>2006-01-19T01:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5fb8b49e2955cc473929c5994b8389111daed59d'/>
<id>urn:sha1:5fb8b49e2955cc473929c5994b8389111daed59d</id>
<content type='text'>
Allow mechanisms to return more varied errors on the context creation
downcall.

Signed-off-by: J. Bruce Fields &lt;bfields@citi.umich.edu&gt;
Signed-off-by: Neil Brown &lt;neilb@suse.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>
