<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/sunrpc, branch v2.6.15</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>SUNRPC: Fix "EPIPE" error on mount of rpcsec_gss-protected partitions</title>
<updated>2005-12-20T04:12:21+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2005-12-19T22:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=48e49187753ec3b4fa84a7165c9b7a59f3875b56'/>
<id>48e49187753ec3b4fa84a7165c9b7a59f3875b56</id>
<content type='text'>
 gss_create_upcall() should not error just because rpc.gssd closed the
 pipe on its end. Instead, it should requeue the pending requests and then
 retry.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 gss_create_upcall() should not error just because rpc.gssd closed the
 pipe on its end. Instead, it should requeue the pending requests and then
 retry.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RPC: Do not block on skb allocation</title>
<updated>2005-12-20T04:11:54+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2005-12-13T21:13:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b079fa7baa86b47579f3f60f86d03d21c76159b8'/>
<id>b079fa7baa86b47579f3f60f86d03d21c76159b8</id>
<content type='text'>
 If we get something like the following,
 [  125.300636]  [&lt;c04086e1&gt;] schedule_timeout+0x54/0xa5
 [  125.305931]  [&lt;c040866e&gt;] io_schedule_timeout+0x29/0x33
 [  125.311495]  [&lt;c02880c4&gt;] blk_congestion_wait+0x70/0x85
 [  125.317058]  [&lt;c014136b&gt;] throttle_vm_writeout+0x69/0x7d
 [  125.322720]  [&lt;c014714d&gt;] shrink_zone+0xe0/0xfa
 [  125.327560]  [&lt;c01471d4&gt;] shrink_caches+0x6d/0x6f
 [  125.332581]  [&lt;c01472a6&gt;] try_to_free_pages+0xd0/0x1b5
 [  125.338056]  [&lt;c013fa4b&gt;] __alloc_pages+0x135/0x2e8
 [  125.343258]  [&lt;c03b74ad&gt;] tcp_sendmsg+0xaa0/0xb78
 [  125.348281]  [&lt;c03d4666&gt;] inet_sendmsg+0x48/0x53
 [  125.353212]  [&lt;c0388716&gt;] sock_sendmsg+0xb8/0xd3
 [  125.358147]  [&lt;c0388773&gt;] kernel_sendmsg+0x42/0x4f
 [  125.363259]  [&lt;c038bc00&gt;] sock_no_sendpage+0x5e/0x77
 [  125.368556]  [&lt;c03ee7af&gt;] xs_tcp_send_request+0x2af/0x375
 then the socket is blocked until memory is reclaimed, and no
 progress can ever be made.

 Try to access the emergency pools by using GFP_ATOMIC.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 If we get something like the following,
 [  125.300636]  [&lt;c04086e1&gt;] schedule_timeout+0x54/0xa5
 [  125.305931]  [&lt;c040866e&gt;] io_schedule_timeout+0x29/0x33
 [  125.311495]  [&lt;c02880c4&gt;] blk_congestion_wait+0x70/0x85
 [  125.317058]  [&lt;c014136b&gt;] throttle_vm_writeout+0x69/0x7d
 [  125.322720]  [&lt;c014714d&gt;] shrink_zone+0xe0/0xfa
 [  125.327560]  [&lt;c01471d4&gt;] shrink_caches+0x6d/0x6f
 [  125.332581]  [&lt;c01472a6&gt;] try_to_free_pages+0xd0/0x1b5
 [  125.338056]  [&lt;c013fa4b&gt;] __alloc_pages+0x135/0x2e8
 [  125.343258]  [&lt;c03b74ad&gt;] tcp_sendmsg+0xaa0/0xb78
 [  125.348281]  [&lt;c03d4666&gt;] inet_sendmsg+0x48/0x53
 [  125.353212]  [&lt;c0388716&gt;] sock_sendmsg+0xb8/0xd3
 [  125.358147]  [&lt;c0388773&gt;] kernel_sendmsg+0x42/0x4f
 [  125.363259]  [&lt;c038bc00&gt;] sock_no_sendpage+0x5e/0x77
 [  125.368556]  [&lt;c03ee7af&gt;] xs_tcp_send_request+0x2af/0x375
 then the socket is blocked until memory is reclaimed, and no
 progress can ever be made.

 Try to access the emergency pools by using GFP_ATOMIC.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>SUNRPC: Fix Oopsable condition in rpc_pipefs</title>
<updated>2005-12-03T20:20:10+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2005-12-03T20:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bb184f3356adbbb1605df2f7c570b4c92231fa3a'/>
<id>bb184f3356adbbb1605df2f7c570b4c92231fa3a</id>
<content type='text'>
 The elements on rpci-&gt;in_upcall are tracked by the filp-&gt;private_data,
 which will ensure that they get released when the file is closed.

 The exception is if rpc_close_pipes() gets called first, since that
 sets rpci-&gt;ops to NULL.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 The elements on rpci-&gt;in_upcall are tracked by the filp-&gt;private_data,
 which will ensure that they get released when the file is closed.

 The exception is if rpc_close_pipes() gets called first, since that
 sets rpci-&gt;ops to NULL.

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>SUNRPC: Funny looking code in __rpc_purge_upcall</title>
<updated>2005-11-25T22:11:30+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2005-11-25T22:10:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b3eb67a2ab4e14fc6cc035907400b86462d174db'/>
<id>b3eb67a2ab4e14fc6cc035907400b86462d174db</id>
<content type='text'>
 In __rpc_purge_upcall (net/sunrpc/rpc_pipe.c), the newer code to clean up
 the in_upcall list has a typo.
 Thanks to Vince Busam &lt;vbusam@google.com&gt; for spotting this!

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 In __rpc_purge_upcall (net/sunrpc/rpc_pipe.c), the newer code to clean up
 the in_upcall list has a typo.
 Thanks to Vince Busam &lt;vbusam@google.com&gt; for spotting this!

 Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] knfsd: make sure nfsd doesn't hog a cpu forever</title>
<updated>2005-11-15T16:59:19+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@cse.unsw.edu.au</email>
</author>
<published>2005-11-15T08:09:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1887b93529410633b5529a7c2d304897dbed5b3e'/>
<id>1887b93529410633b5529a7c2d304897dbed5b3e</id>
<content type='text'>
Being kernel-threads, nfsd servers don't get pre-empted (depending on
CONFIG).  If there is a steady stream of NFS requests that can be served
from cache, an nfsd thread may hold on to a cpu indefinitely, which isn't
very friendly.

So it is good to have a cond_resched in there (just before looking for a
new request to serve), to make sure we play nice.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Being kernel-threads, nfsd servers don't get pre-empted (depending on
CONFIG).  If there is a steady stream of NFS requests that can be served
from cache, an nfsd thread may hold on to a cpu indefinitely, which isn't
very friendly.

So it is good to have a cond_resched in there (just before looking for a
new request to serve), to make sure we play nice.

Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET]: Detect hardware rx checksum faults correctly</title>
<updated>2005-11-10T21:01:24+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2005-11-10T21:01:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fb286bb2990a107009dbf25f6ffebeb7df77f9be'/>
<id>fb286bb2990a107009dbf25f6ffebeb7df77f9be</id>
<content type='text'>
Here is the patch that introduces the generic skb_checksum_complete
which also checks for hardware RX checksum faults.  If that happens,
it'll call netdev_rx_csum_fault which currently prints out a stack
trace with the device name.  In future it can turn off RX checksum.

I've converted every spot under net/ that does RX checksum checks to
use skb_checksum_complete or __skb_checksum_complete with the
exceptions of:

* Those places where checksums are done bit by bit.  These will call
netdev_rx_csum_fault directly.

* The following have not been completely checked/converted:

ipmr
ip_vs
netfilter
dccp

This patch is based on patches and suggestions from Stephen Hemminger
and David S. Miller.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Here is the patch that introduces the generic skb_checksum_complete
which also checks for hardware RX checksum faults.  If that happens,
it'll call netdev_rx_csum_fault which currently prints out a stack
trace with the device name.  In future it can turn off RX checksum.

I've converted every spot under net/ that does RX checksum checks to
use skb_checksum_complete or __skb_checksum_complete with the
exceptions of:

* Those places where checksums are done bit by bit.  These will call
netdev_rx_csum_fault directly.

* The following have not been completely checked/converted:

ipmr
ip_vs
netfilter
dccp

This patch is based on patches and suggestions from Stephen Hemminger
and David S. Miller.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] SUNRPC: don't reencode when looping in call transmit.</title>
<updated>2005-11-10T03:31:33+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@fys.uio.no</email>
</author>
<published>2005-11-10T02:45:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=940e3318c36394939d805e797d7be39ddaaa7911'/>
<id>940e3318c36394939d805e797d7be39ddaaa7911</id>
<content type='text'>
If the call to xprt_transmit() fails due to socket buffer space
exhaustion, we do not need to re-encode the RPC message when we
loop back through call_transmit.

Re-encoding can actually end up triggering the WARN_ON() in
call_decode() if we re-encode something like a read() request and
auth-&gt;au_rslack has changed.
It can also cause us to increment the RPCSEC_GSS sequence number
beyond the limits of the allowed window.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the call to xprt_transmit() fails due to socket buffer space
exhaustion, we do not need to re-encode the RPC message when we
loop back through call_transmit.

Re-encoding can actually end up triggering the WARN_ON() in
call_decode() if we re-encode something like a read() request and
auth-&gt;au_rslack has changed.
It can also cause us to increment the RPCSEC_GSS sequence number
beyond the limits of the allowed window.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] sanitize lookup_hash prototype</title>
<updated>2005-11-09T15:56:00+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2005-11-09T05:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=49705b7743fd8f5632a95ec4c6547d169d27ac1f'/>
<id>49705b7743fd8f5632a95ec4c6547d169d27ac1f</id>
<content type='text'>
-&gt;permission and -&gt;lookup have a struct nameidata * argument these days to
pass down lookup intents.  Unfortunately some callers of lookup_hash don't
actually pass this one down.  For lookup_one_len() we don't have a struct
nameidata to pass down, but as this function is a library function only
used by filesystem code this is an acceptable limitation.  All other
callers should pass down the nameidata, so this patch changes the
lookup_hash interface to only take a struct nameidata argument and derives
the other two arguments to __lookup_hash from it.  All callers already have
the nameidata argument available so this is not a problem.

At the same time I'd like to deprecate the lookup_hash interface as there
are better exported interfaces for filesystem usage.  Before it can
actually be removed I need to fix up rpc_pipefs.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Ram Pai &lt;linuxram@us.ibm.com&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Al Viro &lt;viro@ftp.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
-&gt;permission and -&gt;lookup have a struct nameidata * argument these days to
pass down lookup intents.  Unfortunately some callers of lookup_hash don't
actually pass this one down.  For lookup_one_len() we don't have a struct
nameidata to pass down, but as this function is a library function only
used by filesystem code this is an acceptable limitation.  All other
callers should pass down the nameidata, so this patch changes the
lookup_hash interface to only take a struct nameidata argument and derives
the other two arguments to __lookup_hash from it.  All callers already have
the nameidata argument available so this is not a problem.

At the same time I'd like to deprecate the lookup_hash interface as there
are better exported interfaces for filesystem usage.  Before it can
actually be removed I need to fix up rpc_pipefs.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Ram Pai &lt;linuxram@us.ibm.com&gt;
Cc: Jeff Mahoney &lt;jeffm@suse.com&gt;
Cc: Al Viro &lt;viro@ftp.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET]: kfree cleanup</title>
<updated>2005-11-08T17:41:34+00:00</updated>
<author>
<name>Jesper Juhl</name>
<email>jesper.juhl@gmail.com</email>
</author>
<published>2005-11-08T17:41:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a51482bde22f99c63fbbb57d5d46cc666384e379'/>
<id>a51482bde22f99c63fbbb57d5d46cc666384e379</id>
<content type='text'>
From: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;

This is the net/ part of the big kfree cleanup patch.

Remove pointless checks for NULL prior to calling kfree() in net/.

Signed-off-by: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;

This is the net/ part of the big kfree cleanup patch.

Remove pointless checks for NULL prior to calling kfree() in net/.

Signed-off-by: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Acked-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] knfsd: make sure svc_process call the correct pg_authenticate for multi-service port</title>
<updated>2005-11-07T15:53:49+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@cse.unsw.edu.au</email>
</author>
<published>2005-11-07T09:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=80d188a643b0f550a2aaedf7bf4dd1abd86cfc45'/>
<id>80d188a643b0f550a2aaedf7bf4dd1abd86cfc45</id>
<content type='text'>
If an RPC socket is serving multiple programs, then the pg_authenticate of
the first program in the list is called, instead of pg_authenticate for the
program to be run.

This does not cause a problem with any programs in the current kernel, but
could confuse future code.

Also set pg_authenticate for nfsd_acl_program incase it ever gets used.

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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If an RPC socket is serving multiple programs, then the pg_authenticate of
the first program in the list is called, instead of pg_authenticate for the
program to be run.

This does not cause a problem with any programs in the current kernel, but
could confuse future code.

Also set pg_authenticate for nfsd_acl_program incase it ever gets used.

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;
</pre>
</div>
</content>
</entry>
</feed>
