<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/internal.h, branch linux-3.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-01-13T04:13:09Z</updated>
<entry>
<title>mm: compaction: introduce sync-light migration for use by compaction</title>
<updated>2012-01-13T04:13:09Z</updated>
<author>
<name>Mel Gorman</name>
</author>
<published>2012-01-13T01:19:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6bc32b899223a877f595ef9ddc1e89ead5072b8'/>
<id>urn:sha1:a6bc32b899223a877f595ef9ddc1e89ead5072b8</id>
<content type='text'>
This patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT
mode that avoids writing back pages to backing storage.  Async compaction
maps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.
For other migrate_pages users such as memory hotplug, MIGRATE_SYNC is
used.

This avoids sync compaction stalling for an excessive length of time,
particularly when copying files to a USB stick where there might be a
large number of dirty pages backed by a filesystem that does not support
-&gt;writepages.

[aarcange@redhat.com: This patch is heavily based on Andrea's work]
[akpm@linux-foundation.org: fix fs/nfs/write.c build]
[akpm@linux-foundation.org: fix fs/btrfs/disk-io.c build]
Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Reviewed-by: Rik van Riel &lt;riel@redhat.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: Minchan Kim &lt;minchan.kim@gmail.com&gt;
Cc: Dave Jones &lt;davej@redhat.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Cc: Andy Isaacson &lt;adi@hexapodia.org&gt;
Cc: Nai Xia &lt;nai.xia@gmail.com&gt;
Cc: Johannes Weiner &lt;jweiner@redhat.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>mm: compaction: determine if dirty pages can be migrated without blocking within -&gt;migratepage</title>
<updated>2012-01-13T04:13:09Z</updated>
<author>
<name>Mel Gorman</name>
</author>
<published>2012-01-13T01:19:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b969c4ab9f182a6e1b2a0848be349f99714947b0'/>
<id>urn:sha1:b969c4ab9f182a6e1b2a0848be349f99714947b0</id>
<content type='text'>
Asynchronous compaction is used when allocating transparent hugepages to
avoid blocking for long periods of time.  Due to reports of stalling,
there was a debate on disabling synchronous compaction but this severely
impacted allocation success rates.  Part of the reason was that many dirty
pages are skipped in asynchronous compaction by the following check;

	if (PageDirty(page) &amp;&amp; !sync &amp;&amp;
		mapping-&gt;a_ops-&gt;migratepage != migrate_page)
			rc = -EBUSY;

This skips over all mapping aops using buffer_migrate_page() even though
it is possible to migrate some of these pages without blocking.  This
patch updates the -&gt;migratepage callback with a "sync" parameter.  It is
the responsibility of the callback to fail gracefully if migration would
block.

Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Reviewed-by: Rik van Riel &lt;riel@redhat.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: Minchan Kim &lt;minchan.kim@gmail.com&gt;
Cc: Dave Jones &lt;davej@redhat.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&gt;
Cc: Andy Isaacson &lt;adi@hexapodia.org&gt;
Cc: Nai Xia &lt;nai.xia@gmail.com&gt;
Cc: Johannes Weiner &lt;jweiner@redhat.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>NFS: Remove pNFS bloat from the generic write path</title>
<updated>2012-01-06T13:57:46Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2012-01-06T13:57:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2fecb215b321db0e4a5b2597349a63c07bec42f'/>
<id>urn:sha1:e2fecb215b321db0e4a5b2597349a63c07bec42f</id>
<content type='text'>
We have no business doing any this in the standard write release path.
Get rid of it, and put it in the pNFS layer.

Also, while we're at it, get rid of the completely bogus unlock/relock
semantics that were present in nfs_writeback_release_full(). It is
not only unnecessary, but actually dangerous to release the write lock
just in order to take it again in nfs_page_async_flush(). Better just
to open code the pgio operations in a pnfs helper.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Revert pnfs ugliness from the generic NFS read code path</title>
<updated>2011-11-10T19:50:26Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-11-10T19:30:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=62e4a76987eab2b7fa952546614bc83e5bfc9d3e'/>
<id>urn:sha1:62e4a76987eab2b7fa952546614bc83e5bfc9d3e</id>
<content type='text'>
pNFS-specific code belongs in the pnfs layer. It should not be
hijacking generic NFS read or write code paths.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Get rid of nfs_restart_rpc()</title>
<updated>2011-10-19T20:58:30Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-10-19T19:17:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d00c5d43866720963a265fa3129f3203cac35b8e'/>
<id>urn:sha1:d00c5d43866720963a265fa3129f3203cac35b8e</id>
<content type='text'>
It can trivially be replaced with rpc_restart_call_prepare.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Clean up - simplify the switch to read/write-through-MDS</title>
<updated>2011-07-15T13:12:22Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-07-13T19:59:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f9453578f059d2651aa6c6b16756627fc9f2a74'/>
<id>urn:sha1:1f9453578f059d2651aa6c6b16756627fc9f2a74</id>
<content type='text'>
Use nfs_pageio_reset_read_mds and nfs_pageio_reset_write_mds instead of
completely reinitialising the struct nfs_pageio_descriptor.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Move the pnfs write code into pnfs.c</title>
<updated>2011-07-15T13:12:22Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-07-13T19:59:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dce81290eed64d24493989bb7a08f9e20495e184'/>
<id>urn:sha1:dce81290eed64d24493989bb7a08f9e20495e184</id>
<content type='text'>
...and ensure that we recoalese to take into account differences in
differences in block sizes when falling back to write through the MDS.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Move the pnfs read code into pnfs.c</title>
<updated>2011-07-15T13:12:21Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-07-13T19:58:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=493292ddc78d18ee2ad2d5c24c2b7dd6a24641d2'/>
<id>urn:sha1:493292ddc78d18ee2ad2d5c24c2b7dd6a24641d2</id>
<content type='text'>
...and ensure that we recoalese to take into account differences in
block sizes when falling back to read through the MDS.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4.1: Fall back to ordinary i/o through the mds if we have no layout segment</title>
<updated>2011-07-12T17:40:28Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2011-06-10T17:30:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e885de1a5bc9f46ef8f934c5a7602c89d2d51e8d'/>
<id>urn:sha1:e885de1a5bc9f46ef8f934c5a7602c89d2d51e8d</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Add SECINFO_NO_NAME procedure</title>
<updated>2011-07-12T17:40:27Z</updated>
<author>
<name>Bryan Schumaker</name>
</author>
<published>2011-06-02T18:59:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fca78d6d2c77f87d7dbee89bbe4836a44da881e2'/>
<id>urn:sha1:fca78d6d2c77f87d7dbee89bbe4836a44da881e2</id>
<content type='text'>
If the client is using NFS v4.1, then we can use SECINFO_NO_NAME to find
the secflavor for the initial mount.  If the server doesn't support
SECINFO_NO_NAME then I fall back on the "guess and check" method used
for v4.0 mounts.

Signed-off-by: Bryan Schumaker &lt;bjschuma@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
