<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/block, branch v2.6.21</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>cfq-iosched: fix alias + front merge bug</title>
<updated>2007-04-25T15:41:48+00:00</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-04-25T09:53:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5044eed48886b105a123333fe7ca97c6bd496120'/>
<id>5044eed48886b105a123333fe7ca97c6bd496120</id>
<content type='text'>
There's a really rare and obscure bug in CFQ, that causes a crash in
cfq_dispatch_insert() due to rq == NULL.  One example of the resulting
oops is seen here:

	http://lkml.org/lkml/2007/4/15/41

Neil correctly diagnosed the situation for how this can happen: if two
concurrent requests with the exact same sector number (due to direct IO
or aliasing between MD and the raw device access), the alias handling
will add the request to the sortlist, but next_rq remains NULL.

Read the more complete analysis at:

	http://lkml.org/lkml/2007/4/25/57

This looks like it requires md to trigger, even though it should
potentially be possible to due with O_DIRECT (at least if you edit the
kernel and doctor some of the unplug calls).

The fix is to move the -&gt;next_rq update to when we add a request to the
rbtree. Then we remove the possibility for a request to exist in the
rbtree code, but not have -&gt;next_rq correctly updated.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's a really rare and obscure bug in CFQ, that causes a crash in
cfq_dispatch_insert() due to rq == NULL.  One example of the resulting
oops is seen here:

	http://lkml.org/lkml/2007/4/15/41

Neil correctly diagnosed the situation for how this can happen: if two
concurrent requests with the exact same sector number (due to direct IO
or aliasing between MD and the raw device access), the alias handling
will add the request to the sortlist, but next_rq remains NULL.

Read the more complete analysis at:

	http://lkml.org/lkml/2007/4/25/57

This looks like it requires md to trigger, even though it should
potentially be possible to due with O_DIRECT (at least if you edit the
kernel and doctor some of the unplug calls).

The fix is to move the -&gt;next_rq update to when we add a request to the
rbtree. Then we remove the possibility for a request to exist in the
rbtree code, but not have -&gt;next_rq correctly updated.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfq-iosched: fix sequential write regression</title>
<updated>2007-04-21T05:56:29+00:00</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-04-20T06:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a993800655ee516b6f6a6fc4c2ee13fedfb0590b'/>
<id>a993800655ee516b6f6a6fc4c2ee13fedfb0590b</id>
<content type='text'>
We have a 10-15% performance regression for sequential writes on TCQ/NCQ
enabled drives in 2.6.21-rcX after the CFQ update went in.  It has been
reported by Valerie Clement &lt;valerie.clement@bull.net&gt; and the Intel
testing folks.  The regression is because of CFQ's now more aggressive
queue control, limiting the depth available to the device.

This patches fixes that regression by allowing a greater depth when only
one queue is busy.  It has been tested to not impact sync-vs-async
workloads too much - we still do a lot better than 2.6.20.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have a 10-15% performance regression for sequential writes on TCQ/NCQ
enabled drives in 2.6.21-rcX after the CFQ update went in.  It has been
reported by Valerie Clement &lt;valerie.clement@bull.net&gt; and the Intel
testing folks.  The regression is because of CFQ's now more aggressive
queue control, limiting the depth available to the device.

This patches fixes that regression by allowing a greater depth when only
one queue is busy.  It has been tested to not impact sync-vs-async
workloads too much - we still do a lot better than 2.6.20.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] remove protection of LANANA-reserved majors</title>
<updated>2007-04-05T04:12:47+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@linux-foundation.org</email>
</author>
<published>2007-04-05T02:08:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2363cc0264c42636e9e7622f78dde5c2f66beb8e'/>
<id>2363cc0264c42636e9e7622f78dde5c2f66beb8e</id>
<content type='text'>
Revert all this.  It can cause device-mapper to receive a different major from
earlier kernels and it turns out that the Amanda backup program (via GNU tar,
apparently) checks major numbers on files when performing incremental backups.

Which is a bit broken of Amanda (or tar), but this feature isn't important
enough to justify the churn.

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Revert all this.  It can cause device-mapper to receive a different major from
earlier kernels and it turns out that the Amanda backup program (via GNU tar,
apparently) checks major numbers on files when performing incremental backups.

Which is a bit broken of Amanda (or tar), but this feature isn't important
enough to justify the churn.

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>make elv_register() output atomic</title>
<updated>2007-03-27T06:53:04+00:00</updated>
<author>
<name>Thibaut VARENE</name>
<email>T-Bone@parisc-linux.org</email>
</author>
<published>2007-03-15T11:59:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1ffb96c587fa2af0d690dc3548a4a781c477bfb7'/>
<id>1ffb96c587fa2af0d690dc3548a4a781c477bfb7</id>
<content type='text'>
Booting 2.6.21-rc3-g45592145 I noticed the following on one of my
machines in the bootlog:

io scheduler noop registered&lt;6&gt;Time: jiffies clocksource has been installed.

io scheduler deadline registered (default)

Looking at block/elevator.c, it appears that elv_register() uses two
consecutive printks in a non-atomic way, leading to the above glitch. The
attached trivial patch fixes this issue, by using a single printk.

Signed-off-by: Thibaut VARENE &lt;varenet@parisc-linux.org&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Booting 2.6.21-rc3-g45592145 I noticed the following on one of my
machines in the bootlog:

io scheduler noop registered&lt;6&gt;Time: jiffies clocksource has been installed.

io scheduler deadline registered (default)

Looking at block/elevator.c, it appears that elv_register() uses two
consecutive printks in a non-atomic way, leading to the above glitch. The
attached trivial patch fixes this issue, by using a single printk.

Signed-off-by: Thibaut VARENE &lt;varenet@parisc-linux.org&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>block: blk_max_pfn is somtimes wrong</title>
<updated>2007-03-27T06:52:47+00:00</updated>
<author>
<name>Vasily Tarasov</name>
<email>vtaras@openvz.org</email>
</author>
<published>2007-03-27T06:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f772b3d9ca135087a70406d8466e57d1cf29237e'/>
<id>f772b3d9ca135087a70406d8466e57d1cf29237e</id>
<content type='text'>
There is a small problem in handling page bounce.

At the moment blk_max_pfn equals max_pfn, which is in fact not maximum
possible _number_ of a page frame, but the _amount_ of page frames.  For
example for the 32bit x86 node with 4Gb RAM, max_pfn = 0x100000, but not
0xFFFF.

request_queue structure has a member q-&gt;bounce_pfn and queue needs bounce
pages for the pages _above_ this limit.  This routine is handled by
blk_queue_bounce(), where the following check is produced:

	if (q-&gt;bounce_pfn &gt;= blk_max_pfn)
		return;

Assume, that a driver has set q-&gt;bounce_pfn to 0xFFFF, but blk_max_pfn
equals 0x10000.  In such situation the check above fails and for each bio
we always fall down for iterating over pages tied to the bio.

I want to notice, that for quite a big range of device drivers (ide, md,
...) such problem doesn't happen because they use BLK_BOUNCE_ANY for
bounce_pfn.  BLK_BOUNCE_ANY is defined as blk_max_pfn &lt;&lt; PAGE_SHIFT, and
then the check above doesn't fail.  But for other drivers, which obtain
reuired value from drivers, it fails.  For example sata_nv uses
ATA_DMA_MASK or dev-&gt;dma_mask.

I propose to use (max_pfn - 1) for blk_max_pfn.  And the same for
blk_max_low_pfn.  The patch also cleanses some checks related with
bounce_pfn.

Signed-off-by: Vasily Tarasov &lt;vtaras@openvz.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a small problem in handling page bounce.

At the moment blk_max_pfn equals max_pfn, which is in fact not maximum
possible _number_ of a page frame, but the _amount_ of page frames.  For
example for the 32bit x86 node with 4Gb RAM, max_pfn = 0x100000, but not
0xFFFF.

request_queue structure has a member q-&gt;bounce_pfn and queue needs bounce
pages for the pages _above_ this limit.  This routine is handled by
blk_queue_bounce(), where the following check is produced:

	if (q-&gt;bounce_pfn &gt;= blk_max_pfn)
		return;

Assume, that a driver has set q-&gt;bounce_pfn to 0xFFFF, but blk_max_pfn
equals 0x10000.  In such situation the check above fails and for each bio
we always fall down for iterating over pages tied to the bio.

I want to notice, that for quite a big range of device drivers (ide, md,
...) such problem doesn't happen because they use BLK_BOUNCE_ANY for
bounce_pfn.  BLK_BOUNCE_ANY is defined as blk_max_pfn &lt;&lt; PAGE_SHIFT, and
then the check above doesn't fail.  But for other drivers, which obtain
reuired value from drivers, it fails.  For example sata_nv uses
ATA_DMA_MASK or dev-&gt;dma_mask.

I propose to use (max_pfn - 1) for blk_max_pfn.  And the same for
blk_max_low_pfn.  The patch also cleanses some checks related with
bounce_pfn.

Signed-off-by: Vasily Tarasov &lt;vtaras@openvz.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] lockdep: annotate BLKPG_DEL_PARTITION</title>
<updated>2007-02-21T01:10:16+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-02-20T21:58:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6d740cd5b18bc8128e70f98cfde8c74ebd21cea1'/>
<id>6d740cd5b18bc8128e70f98cfde8c74ebd21cea1</id>
<content type='text'>
&gt;=============================================
&gt;[ INFO: possible recursive locking detected ]
&gt;2.6.19-1.2909.fc7 #1
&gt;---------------------------------------------
&gt;anaconda/587 is trying to acquire lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;but task is already holding lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;other info that might help us debug this:
&gt;1 lock held by anaconda/587:
&gt; #0:  (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;stack backtrace:
&gt; [&lt;c0405812&gt;] show_trace_log_lvl+0x1a/0x2f
&gt; [&lt;c0405db2&gt;] show_trace+0x12/0x14
&gt; [&lt;c0405e36&gt;] dump_stack+0x16/0x18
&gt; [&lt;c043bd84&gt;] __lock_acquire+0x116/0xa09
&gt; [&lt;c043c960&gt;] lock_acquire+0x56/0x6f
&gt; [&lt;c05fb1fa&gt;] __mutex_lock_slowpath+0xe5/0x24a
&gt; [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt; [&lt;c04d82fb&gt;] blkdev_ioctl+0x600/0x76d
&gt; [&lt;c04946b1&gt;] block_ioctl+0x1b/0x1f
&gt; [&lt;c047ed5a&gt;] do_ioctl+0x22/0x68
&gt; [&lt;c047eff2&gt;] vfs_ioctl+0x252/0x265
&gt; [&lt;c047f04e&gt;] sys_ioctl+0x49/0x63
&gt; [&lt;c0404070&gt;] syscall_call+0x7/0xb

Annotate BLKPG_DEL_PARTITION's bd_mutex locking and add a little comment
clarifying the bd_mutex locking, because I confused myself and initially
thought the lock order was wrong too.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: 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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
&gt;=============================================
&gt;[ INFO: possible recursive locking detected ]
&gt;2.6.19-1.2909.fc7 #1
&gt;---------------------------------------------
&gt;anaconda/587 is trying to acquire lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;but task is already holding lock:
&gt; (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;other info that might help us debug this:
&gt;1 lock held by anaconda/587:
&gt; #0:  (&amp;bdev-&gt;bd_mutex){--..}, at: [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt;
&gt;stack backtrace:
&gt; [&lt;c0405812&gt;] show_trace_log_lvl+0x1a/0x2f
&gt; [&lt;c0405db2&gt;] show_trace+0x12/0x14
&gt; [&lt;c0405e36&gt;] dump_stack+0x16/0x18
&gt; [&lt;c043bd84&gt;] __lock_acquire+0x116/0xa09
&gt; [&lt;c043c960&gt;] lock_acquire+0x56/0x6f
&gt; [&lt;c05fb1fa&gt;] __mutex_lock_slowpath+0xe5/0x24a
&gt; [&lt;c05fb380&gt;] mutex_lock+0x21/0x24
&gt; [&lt;c04d82fb&gt;] blkdev_ioctl+0x600/0x76d
&gt; [&lt;c04946b1&gt;] block_ioctl+0x1b/0x1f
&gt; [&lt;c047ed5a&gt;] do_ioctl+0x22/0x68
&gt; [&lt;c047eff2&gt;] vfs_ioctl+0x252/0x265
&gt; [&lt;c047f04e&gt;] sys_ioctl+0x49/0x63
&gt; [&lt;c0404070&gt;] syscall_call+0x7/0xb

Annotate BLKPG_DEL_PARTITION's bd_mutex locking and add a little comment
clarifying the bd_mutex locking, because I confused myself and initially
thought the lock order was wrong too.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: 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;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] rework reserved major handling</title>
<updated>2007-02-21T01:10:13+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@linux-foundation.org</email>
</author>
<published>2007-02-20T21:57:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b446b60e4eb5e5457120c4728ada871b1209c1d0'/>
<id>b446b60e4eb5e5457120c4728ada871b1209c1d0</id>
<content type='text'>
Several people have reported failures in dynamic major device number handling
due to the recent changes in there to avoid handing out the local/experimental
majors.

Rolf reports that this is due to a gcc-4.1.0 bug.

The patch refactors that code a lot in an attempt to provoke the compiler into
behaving.

Cc: Rolf Eike Beer &lt;eike-kernel@sf-tec.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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several people have reported failures in dynamic major device number handling
due to the recent changes in there to avoid handing out the local/experimental
majors.

Rolf reports that this is due to a gcc-4.1.0 bug.

The patch refactors that code a lot in an attempt to provoke the compiler into
behaving.

Cc: Rolf Eike Beer &lt;eike-kernel@sf-tec.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>update I/O sched Kconfig help texts - CFQ is now default, not AS.</title>
<updated>2007-02-17T19:08:22+00:00</updated>
<author>
<name>Jesper Juhl</name>
<email>jesper.juhl@gmail.com</email>
</author>
<published>2007-02-17T19:08:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a8e14b950c9a9e2ec703df610e00ae8581040517'/>
<id>a8e14b950c9a9e2ec703df610e00ae8581040517</id>
<content type='text'>
Change I/O scheduler description to correctly show CFQ as being the default
scheduler and not the anticipatory scheduler that previously was default.

Signed-off-by: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change I/O scheduler description to correctly show CFQ as being the default
scheduler and not the anticipatory scheduler that previously was default.

Signed-off-by: Jesper Juhl &lt;jesper.juhl@gmail.com&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] mark struct file_operations const 3</title>
<updated>2007-02-12T17:48:45+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2007-02-12T08:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2b8693c0617e972fc0b2fd1ebf8de97e15b656c3'/>
<id>2b8693c0617e972fc0b2fd1ebf8de97e15b656c3</id>
<content type='text'>
Many struct file_operations in the kernel can be "const".  Marking them const
moves these to the .rodata section, which avoids false sharing with potential
dirty data.  In addition it'll catch accidental writes at compile time to
these shared resources.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many struct file_operations in the kernel can be "const".  Marking them const
moves these to the .rodata section, which avoids false sharing with potential
dirty data.  In addition it'll catch accidental writes at compile time to
these shared resources.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] register_blkdev(): don't hand out the LOCAL/EXPERIMENTAL majors</title>
<updated>2007-02-12T17:48:27+00:00</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2007-02-12T08:51:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fdf892be32d84a1745fa0aee5fc60517421b8038'/>
<id>fdf892be32d84a1745fa0aee5fc60517421b8038</id>
<content type='text'>
As pointed out in http://bugzilla.kernel.org/show_bug.cgi?id=7922, dynamic
blockdev major allocation can hand out majors which LANANA has defined as
being for local/experimental use.

Cc: Torben Mathiasen &lt;device@lanana.org&gt;
Cc: Greg KH &lt;greg@kroah.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Tomas Klas &lt;tomas.klas@mepatek.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As pointed out in http://bugzilla.kernel.org/show_bug.cgi?id=7922, dynamic
blockdev major allocation can hand out majors which LANANA has defined as
being for local/experimental use.

Cc: Torben Mathiasen &lt;device@lanana.org&gt;
Cc: Greg KH &lt;greg@kroah.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Tomas Klas &lt;tomas.klas@mepatek.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
