<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/fs/nfs/blocklayout, branch linux-3.3.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>pnfsblock: alloc short extent before submit bio</title>
<updated>2012-01-12T21:52:10+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7c5465d6ccd759caa959828e2add5603518dafc4'/>
<id>7c5465d6ccd759caa959828e2add5603518dafc4</id>
<content type='text'>
As discussed earlier, it is better for block client to allocate memory for
tracking extents state before submitting bio. So the patch does it by allocating
a short_extent for every INVALID extent touched by write pagelist and for
every zeroing page we created, saving them in layout header. Then in end_io we
can just use them to create commit list items and avoid memory allocation there.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As discussed earlier, it is better for block client to allocate memory for
tracking extents state before submitting bio. So the patch does it by allocating
a short_extent for every INVALID extent touched by write pagelist and for
every zeroing page we created, saving them in layout header. Then in end_io we
can just use them to create commit list items and avoid memory allocation there.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: remove rpc_call_ops from struct parallel_io</title>
<updated>2012-01-12T21:52:10+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c0411a94a8f318379464e29dd81db806249dbca6'/>
<id>c0411a94a8f318379464e29dd81db806249dbca6</id>
<content type='text'>
block layout can just make use of generic read/write_done.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
block layout can just make use of generic read/write_done.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: move find lock page logic out of bl_write_pagelist</title>
<updated>2012-01-12T21:52:10+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=72c508879979522de347bcec706507e00d7c443d'/>
<id>72c508879979522de347bcec706507e00d7c443d</id>
<content type='text'>
Also avoid unnecessary lock_page if page is handled by others.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also avoid unnecessary lock_page if page is handled by others.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: cleanup bl_mark_sectors_init</title>
<updated>2012-01-12T21:52:09+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=60c52e3a72fda10e82f38b6f979956eb2dcb3d4e'/>
<id>60c52e3a72fda10e82f38b6f979956eb2dcb3d4e</id>
<content type='text'>
It does not need to manipulate on partial initialized blocks.
Writeback code takes care of it.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It does not need to manipulate on partial initialized blocks.
Writeback code takes care of it.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: limit bio page count</title>
<updated>2012-01-12T21:39:05+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=74a6eeb44ca6174d9cc93b9b8b4d58211c57bc80'/>
<id>74a6eeb44ca6174d9cc93b9b8b4d58211c57bc80</id>
<content type='text'>
One bio can have at most BIO_MAX_PAGES pages. We should limit it bec otherwise
bio_alloc will fail when there are many pages in one read/write_pagelist.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One bio can have at most BIO_MAX_PAGES pages. We should limit it bec otherwise
bio_alloc will fail when there are many pages in one read/write_pagelist.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: don't spinlock when freeing block_dev</title>
<updated>2012-01-12T21:39:04+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93a3844ee0f843b05a1df4b52e1a19ff26b98d24'/>
<id>93a3844ee0f843b05a1df4b52e1a19ff26b98d24</id>
<content type='text'>
bl_free_block_dev() may sleep. We can not call it with spinlock held.
Besides, there is no need to take bm_lock as we are last user freeing bm_devlist.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
bl_free_block_dev() may sleep. We can not call it with spinlock held.
Besides, there is no need to take bm_lock as we are last user freeing bm_devlist.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: clean up _add_entry</title>
<updated>2012-01-12T21:38:55+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=57582b372f63d0f655b1a35b0d306d73d1a46775'/>
<id>57582b372f63d0f655b1a35b0d306d73d1a46775</id>
<content type='text'>
It is wrong to kmalloc in _add_entry() as it is inside
spinlock. memory should be already allocated _add_entry() is called.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is wrong to kmalloc in _add_entry() as it is inside
spinlock. memory should be already allocated _add_entry() is called.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: set read/write tk_status to pnfs_error</title>
<updated>2012-01-12T21:38:51+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=82b906d6550ee5fe0d5553359b3c9692dd0aed31'/>
<id>82b906d6550ee5fe0d5553359b3c9692dd0aed31</id>
<content type='text'>
To pass the IO status to upper layer.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To pass the IO status to upper layer.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: acquire im_lock in _preload_range</title>
<updated>2012-01-12T21:38:49+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-01-12T15:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=39e567ae36fe03c2b446e1b83ee3d39bea08f90b'/>
<id>39e567ae36fe03c2b446e1b83ee3d39bea08f90b</id>
<content type='text'>
When calling _add_entry, we should take the im_lock to protect
agains other modifiers.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When calling _add_entry, we should take the im_lock to protect
agains other modifiers.

Cc: &lt;stable@vger.kernel.org&gt; #3.1+
Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Benny Halevy &lt;bhalevy@tonian.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfsblock: fix writeback deadlock</title>
<updated>2011-10-18T16:08:15+00:00</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2011-09-23T01:50:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7542274519b3ba87555410c66e8356ac1e3bc9b3'/>
<id>7542274519b3ba87555410c66e8356ac1e3bc9b3</id>
<content type='text'>
We should check if the sector is already initialized before
trying to grab the page from page cache. Otherwise when two
pages of the same block are written back by two threads each
calling from writepage_locked, it can cause deadlock like bellow.

 [ 1080.972099] INFO: task kswapd0:25 blocked for more than 120 seconds.
 [ 1080.972377] "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 [ 1080.972812] kswapd0         D ffff88000c4926c0     0    25      2 0x00000000
 [ 1080.972816]  ffff88000df276b0 0000000000000046 ffff88000df27640 ffffffff81013ba7
 [ 1080.972821]  ffff88000c492310 ffff88000df27fd8 ffff88000df27fd8 00000000001d3440
 [ 1080.972824]  ffff88000c378000 ffff88000c492310 ffff8800175d3d40 ffff880017fc75a8
 [ 1080.972828] Call Trace:
 [ 1080.972860]  [&lt;ffffffff81013ba7&gt;] ? read_tsc+0x9/0x19
 [ 1080.972877]  [&lt;ffffffff810e0b23&gt;] ? lock_page+0x2b/0x2b
 [ 1080.972899]  [&lt;ffffffff81475a1d&gt;] io_schedule+0x63/0x7e
 [ 1080.972902]  [&lt;ffffffff810e0b31&gt;] sleep_on_page+0xe/0x12
 [ 1080.972905]  [&lt;ffffffff81475fe8&gt;] __wait_on_bit_lock+0x46/0x8f
 [ 1080.972916]  [&lt;ffffffff810822d7&gt;] ? lock_release_holdtime.part.7+0x6b/0x72
 [ 1080.972919]  [&lt;ffffffff810e0af6&gt;] __lock_page+0x66/0x68
 [ 1080.972928]  [&lt;ffffffff81072705&gt;] ? autoremove_wake_function+0x3d/0x3d
 [ 1080.972932]  [&lt;ffffffff810e0b1f&gt;] lock_page+0x27/0x2b
 [ 1080.972934]  [&lt;ffffffff810e0bcf&gt;] find_lock_page+0x34/0x57
 [ 1080.972937]  [&lt;ffffffff810e1738&gt;] find_or_create_page+0x34/0x8a
 [ 1080.972947]  [&lt;ffffffffa034245b&gt;] bl_write_pagelist+0x205/0x6da [blocklayoutdriver]
 [ 1080.972951]  [&lt;ffffffffa034145d&gt;] ? bl_free_lseg+0x38/0x38 [blocklayoutdriver]
 [ 1080.972995]  [&lt;ffffffffa02e27b9&gt;] ? nfs_write_rpcsetup+0x118/0x123 [nfs]
 [ 1080.973033]  [&lt;ffffffffa030246b&gt;] pnfs_generic_pg_writepages+0x10b/0x1f4 [nfs]
 [ 1080.973089]  [&lt;ffffffffa02deaae&gt;] nfs_pageio_doio+0x1a/0x43 [nfs]
 [ 1080.973098]  [&lt;ffffffffa02df035&gt;] nfs_pageio_complete+0x16/0x2d [nfs]
 [ 1080.973108]  [&lt;ffffffffa02e2d8f&gt;] nfs_writepage_locked+0xa0/0xbf [nfs]
 [ 1080.973119]  [&lt;ffffffffa02e36a1&gt;] nfs_writepage+0x16/0x2b [nfs]
 [ 1080.973122]  [&lt;ffffffff810e8762&gt;] ? clear_page_dirty_for_io+0x87/0x9a
 [ 1080.973133]  [&lt;ffffffff810efc5b&gt;] shrink_page_list+0x39b/0x6c8
 [ 1080.973139]  [&lt;ffffffff810f03bb&gt;] shrink_inactive_list+0x22c/0x39e
 [ 1080.973144]  [&lt;ffffffff810822d7&gt;] ? lock_release_holdtime.part.7+0x6b/0x72
 [ 1080.973148]  [&lt;ffffffff810f0c33&gt;] shrink_zone+0x445/0x588
 [ 1080.973152]  [&lt;ffffffff810f1a11&gt;] balance_pgdat+0x2c2/0x56b
 [ 1080.973170]  [&lt;ffffffff81254208&gt;] ? __bitmap_weight+0x34/0x80
 [ 1080.973175]  [&lt;ffffffff810f1f78&gt;] kswapd+0x2be/0x2fa
 [ 1080.973179]  [&lt;ffffffff810726c8&gt;] ? __init_waitqueue_head+0x4b/0x4b
 [ 1080.973183]  [&lt;ffffffff810f1cba&gt;] ? balance_pgdat+0x56b/0x56b
 [ 1080.973187]  [&lt;ffffffff81071f69&gt;] kthread+0xa8/0xb0
 [ 1080.973200]  [&lt;ffffffff814806b4&gt;] kernel_thread_helper+0x4/0x10
 [ 1080.973205]  [&lt;ffffffff81071ec1&gt;] ? __init_kthread_worker+0x5a/0x5a
 [ 1080.973210]  [&lt;ffffffff814806b0&gt;] ? gs_change+0x13/0x13
 [ 1080.973213] no locks held by kswapd0/25.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Cc: stable@kernel.org [3.0]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should check if the sector is already initialized before
trying to grab the page from page cache. Otherwise when two
pages of the same block are written back by two threads each
calling from writepage_locked, it can cause deadlock like bellow.

 [ 1080.972099] INFO: task kswapd0:25 blocked for more than 120 seconds.
 [ 1080.972377] "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 [ 1080.972812] kswapd0         D ffff88000c4926c0     0    25      2 0x00000000
 [ 1080.972816]  ffff88000df276b0 0000000000000046 ffff88000df27640 ffffffff81013ba7
 [ 1080.972821]  ffff88000c492310 ffff88000df27fd8 ffff88000df27fd8 00000000001d3440
 [ 1080.972824]  ffff88000c378000 ffff88000c492310 ffff8800175d3d40 ffff880017fc75a8
 [ 1080.972828] Call Trace:
 [ 1080.972860]  [&lt;ffffffff81013ba7&gt;] ? read_tsc+0x9/0x19
 [ 1080.972877]  [&lt;ffffffff810e0b23&gt;] ? lock_page+0x2b/0x2b
 [ 1080.972899]  [&lt;ffffffff81475a1d&gt;] io_schedule+0x63/0x7e
 [ 1080.972902]  [&lt;ffffffff810e0b31&gt;] sleep_on_page+0xe/0x12
 [ 1080.972905]  [&lt;ffffffff81475fe8&gt;] __wait_on_bit_lock+0x46/0x8f
 [ 1080.972916]  [&lt;ffffffff810822d7&gt;] ? lock_release_holdtime.part.7+0x6b/0x72
 [ 1080.972919]  [&lt;ffffffff810e0af6&gt;] __lock_page+0x66/0x68
 [ 1080.972928]  [&lt;ffffffff81072705&gt;] ? autoremove_wake_function+0x3d/0x3d
 [ 1080.972932]  [&lt;ffffffff810e0b1f&gt;] lock_page+0x27/0x2b
 [ 1080.972934]  [&lt;ffffffff810e0bcf&gt;] find_lock_page+0x34/0x57
 [ 1080.972937]  [&lt;ffffffff810e1738&gt;] find_or_create_page+0x34/0x8a
 [ 1080.972947]  [&lt;ffffffffa034245b&gt;] bl_write_pagelist+0x205/0x6da [blocklayoutdriver]
 [ 1080.972951]  [&lt;ffffffffa034145d&gt;] ? bl_free_lseg+0x38/0x38 [blocklayoutdriver]
 [ 1080.972995]  [&lt;ffffffffa02e27b9&gt;] ? nfs_write_rpcsetup+0x118/0x123 [nfs]
 [ 1080.973033]  [&lt;ffffffffa030246b&gt;] pnfs_generic_pg_writepages+0x10b/0x1f4 [nfs]
 [ 1080.973089]  [&lt;ffffffffa02deaae&gt;] nfs_pageio_doio+0x1a/0x43 [nfs]
 [ 1080.973098]  [&lt;ffffffffa02df035&gt;] nfs_pageio_complete+0x16/0x2d [nfs]
 [ 1080.973108]  [&lt;ffffffffa02e2d8f&gt;] nfs_writepage_locked+0xa0/0xbf [nfs]
 [ 1080.973119]  [&lt;ffffffffa02e36a1&gt;] nfs_writepage+0x16/0x2b [nfs]
 [ 1080.973122]  [&lt;ffffffff810e8762&gt;] ? clear_page_dirty_for_io+0x87/0x9a
 [ 1080.973133]  [&lt;ffffffff810efc5b&gt;] shrink_page_list+0x39b/0x6c8
 [ 1080.973139]  [&lt;ffffffff810f03bb&gt;] shrink_inactive_list+0x22c/0x39e
 [ 1080.973144]  [&lt;ffffffff810822d7&gt;] ? lock_release_holdtime.part.7+0x6b/0x72
 [ 1080.973148]  [&lt;ffffffff810f0c33&gt;] shrink_zone+0x445/0x588
 [ 1080.973152]  [&lt;ffffffff810f1a11&gt;] balance_pgdat+0x2c2/0x56b
 [ 1080.973170]  [&lt;ffffffff81254208&gt;] ? __bitmap_weight+0x34/0x80
 [ 1080.973175]  [&lt;ffffffff810f1f78&gt;] kswapd+0x2be/0x2fa
 [ 1080.973179]  [&lt;ffffffff810726c8&gt;] ? __init_waitqueue_head+0x4b/0x4b
 [ 1080.973183]  [&lt;ffffffff810f1cba&gt;] ? balance_pgdat+0x56b/0x56b
 [ 1080.973187]  [&lt;ffffffff81071f69&gt;] kthread+0xa8/0xb0
 [ 1080.973200]  [&lt;ffffffff814806b4&gt;] kernel_thread_helper+0x4/0x10
 [ 1080.973205]  [&lt;ffffffff81071ec1&gt;] ? __init_kthread_worker+0x5a/0x5a
 [ 1080.973210]  [&lt;ffffffff814806b0&gt;] ? gs_change+0x13/0x13
 [ 1080.973213] no locks held by kswapd0/25.

Signed-off-by: Peng Tao &lt;peng_tao@emc.com&gt;
Signed-off-by: Jim Rees &lt;rees@umich.edu&gt;
Cc: stable@kernel.org [3.0]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
