<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/relay.c, branch v2.6.28</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.28</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.28'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2008-12-10T16:01:52Z</updated>
<entry>
<title>relayfs: fix infinite loop with splice()</title>
<updated>2008-12-10T16:01:52Z</updated>
<author>
<name>Tom Zanussi</name>
<email>zanussi@comcast.net</email>
</author>
<published>2008-12-09T21:14:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fbb5b7ae4b442f1923513dc6165a66c7a7f29073'/>
<id>urn:sha1:fbb5b7ae4b442f1923513dc6165a66c7a7f29073</id>
<content type='text'>
Running kmemtraced, which uses splice() on relayfs, causes a hard lock on
x86-64 SMP.  As described by Tom Zanussi:

  It looks like you hit the same problem as described here:

  commit 8191ecd1d14c6914c660dfa007154860a7908857

      splice: fix infinite loop in generic_file_splice_read()

  relay uses the same loop but it never got noticed or fixed.

Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
Tested-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Signed-off-by: Tom Zanussi &lt;tzanussi@gmail.com&gt;
Signed-off-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&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>relay: fix cpu offline problem</title>
<updated>2008-11-18T14:08:56Z</updated>
<author>
<name>Lai Jiangshan</name>
<email>laijs@cn.fujitsu.com</email>
</author>
<published>2008-11-14T09:44:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=98ba4031ab2adc8b394295e68aa4c8fe9d5060db'/>
<id>urn:sha1:98ba4031ab2adc8b394295e68aa4c8fe9d5060db</id>
<content type='text'>
relay_open() will close allocated buffers when failed.
but if cpu offlined, some buffer will not be closed.
this patch fixed it.

and did cleanup for relay_reset() too.

Signed-off-by: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>relay: fix "full buffer with exactly full last subbuffer" accounting problem</title>
<updated>2008-08-05T21:33:46Z</updated>
<author>
<name>Tom Zanussi</name>
<email>tzanussi@gmail.com</email>
</author>
<published>2008-08-05T20:01:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=32194450330be327f3b25bf6b66298bd122599e9'/>
<id>urn:sha1:32194450330be327f3b25bf6b66298bd122599e9</id>
<content type='text'>
In relay's current read implementation, if the buffer is completely full
but hasn't triggered the buffer-full condition (i.e. the last write
didn't cross the subbuffer boundary) and the last subbuffer is exactly
full, the subbuffer accounting code erroneously finds nothing available.
This patch fixes the problem.

Signed-off-by: Tom Zanussi &lt;tzanussi@gmail.com&gt;
Cc: Eduard - Gabriel Munteanu &lt;eduard.munteanu@linux360.ro&gt;
Cc: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Cc: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Cc: Mathieu Desnoyers &lt;compudj@krystal.dyndns.org&gt;
Cc: Andrea Righi &lt;righi.andrea@gmail.com&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.25.x, 2.6.26.x]
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>relay: add buffer-only channels; useful for early logging</title>
<updated>2008-07-26T19:00:04Z</updated>
<author>
<name>Eduard - Gabriel Munteanu</name>
<email>eduard.munteanu@linux360.ro</email>
</author>
<published>2008-07-26T02:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=20d8b67c06fa5e74f44e80b0a0fd68c8327f7c6a'/>
<id>urn:sha1:20d8b67c06fa5e74f44e80b0a0fd68c8327f7c6a</id>
<content type='text'>
Allows one to create and use a channel with no associated files.  Files
can be initialized later.  This is useful in scenarios such as logging in
early code, before VFS is up.  Therefore, such channels can be created and
used as soon as kmem_cache_init() completed.

This is needed by kmemtrace to do tracing in early kernel code.

[kosaki.motohiro@jp.fujitsu.com: build fix]
Signed-off-by: Eduard - Gabriel Munteanu &lt;eduard.munteanu@linux360.ro&gt;
Cc: Tom Zanussi &lt;tzanussi@gmail.com&gt;
Signed-off-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&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>splice: fix sendfile() issue with relay</title>
<updated>2008-05-28T12:49:27Z</updated>
<author>
<name>Tom Zanussi</name>
<email>zanussi@comcast.net</email>
</author>
<published>2008-05-09T11:28:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a82c53a0e3f57f02782330372b7adad67b417645'/>
<id>urn:sha1:a82c53a0e3f57f02782330372b7adad67b417645</id>
<content type='text'>
Splice isn't always incrementing the ppos correctly, which broke
relay splice.

Signed-off-by: Tom Zanussi &lt;zanussi@comcast.net&gt;
Tested-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>Revert "relay: fix splice problem"</title>
<updated>2008-05-08T12:06:19Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2008-05-08T12:06:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=75065ff619e42fe35178eda863cbcddd57776794'/>
<id>urn:sha1:75065ff619e42fe35178eda863cbcddd57776794</id>
<content type='text'>
This reverts commit c3270e577c18b3d0e984c3371493205a4807db9d.
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block</title>
<updated>2008-04-29T15:18:03Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-04-29T15:18:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bd5d435a96837c3495e62eef37cbe4cb728b79ae'/>
<id>urn:sha1:bd5d435a96837c3495e62eef37cbe4cb728b79ae</id>
<content type='text'>
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  block: Skip I/O merges when disabled
  block: add large command support
  block: replace sizeof(rq-&gt;cmd) with BLK_MAX_CDB
  ide: use blk_rq_init() to initialize the request
  block: use blk_rq_init() to initialize the request
  block: rename and export rq_init()
  block: no need to initialize rq-&gt;cmd with blk_get_request
  block: no need to initialize rq-&gt;cmd in prepare_flush_fn hook
  block/blk-barrier.c:blk_ordered_cur_seq() mustn't be inline
  block/elevator.c:elv_rq_merge_ok() mustn't be inline
  block: make queue flags non-atomic
  block: add dma alignment and padding support to blk_rq_map_kern
  unexport blk_max_pfn
  ps3disk: Remove superfluous cast
  block: make rq_init() do a full memset()
  relay: fix splice problem
</content>
</entry>
<entry>
<title>relayfs: support larger relay buffer</title>
<updated>2008-04-29T15:06:28Z</updated>
<author>
<name>Masami Hiramatsu</name>
<email>mhiramat@redhat.com</email>
</author>
<published>2008-04-29T08:03:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=68ab3d883a2df13f4b93a923bae3a287cbee29d3'/>
<id>urn:sha1:68ab3d883a2df13f4b93a923bae3a287cbee29d3</id>
<content type='text'>
Use vmalloc() and memset() instead of kcalloc() to allocate a page* array when
the array size is bigger than one page.  This enables relayfs to support
bigger relay buffers than 64MB on 4k-page system, 512MB on 16k-page system.

[akpm@linux-foundation.org: cleanup]
Signed-off-by: Masami Hiramatsu &lt;mhiramat@redhat.com&gt;
Cc: David Wilder &lt;dwilder@us.ibm.com&gt;
Reviewed-by: Tom Zanussi &lt;zanussi@comcast.net&gt;
Reviewed-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&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>relay: fix splice problem</title>
<updated>2008-04-29T07:48:15Z</updated>
<author>
<name>Tom Zanussi</name>
<email>zanussi@comcast.ne</email>
</author>
<published>2008-04-24T10:52:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c3270e577c18b3d0e984c3371493205a4807db9d'/>
<id>urn:sha1:c3270e577c18b3d0e984c3371493205a4807db9d</id>
<content type='text'>
Splice isn't always incrementing the ppos correctly, which broke
relay splice.

Signed-off-by: Tom Zanussi &lt;zanussi@comcast.net&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>relay: set an spd_release() hook for splice</title>
<updated>2008-03-26T11:04:09Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2008-03-26T11:04:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5eb7f9fa847b8ab6e4864bfb8cb45f370844a47c'/>
<id>urn:sha1:5eb7f9fa847b8ab6e4864bfb8cb45f370844a47c</id>
<content type='text'>
relay doesn't reference the pages it adds, however we need a non-NULL
hook or splice_to_pipe() can oops.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
</feed>
