<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/read.c, branch linux-5.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-07-20T14:02:21Z</updated>
<entry>
<title>NFS: Fix fscache read from NFS after cache error</title>
<updated>2021-07-20T14:02:21Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-06-29T17:13:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a85411bbc2a9d7cc56c8fd5157005bb84fa74c70'/>
<id>urn:sha1:a85411bbc2a9d7cc56c8fd5157005bb84fa74c70</id>
<content type='text'>
[ Upstream commit ba512c1bc3232124567a59a3995c773dc79716e8 ]

Earlier commits refactored some NFS read code and removed
nfs_readpage_async(), but neglected to properly fixup
nfs_readpage_from_fscache_complete().  The code path is
only hit when something unusual occurs with the cachefiles
backing filesystem, such as an IO error or while a cookie
is being invalidated.

Mark page with PG_checked if fscache IO completes in error,
unlock the page, and let the VM decide to re-issue based on
PG_uptodate.  When the VM reissues the readpage, PG_checked
allows us to skip over fscache and read from the server.

Link: https://marc.info/?l=linux-nfs&amp;m=162498209518739
Fixes: 1e83b173b266 ("NFS: Add nfs_pageio_complete_read() and remove nfs_readpage_async()")
Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: Ensure nfs_readpage returns promptly when internal error occurs</title>
<updated>2021-07-20T14:02:21Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-06-29T09:11:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2218384435783e5d53c6401c7b5886d49a3a904'/>
<id>urn:sha1:e2218384435783e5d53c6401c7b5886d49a3a904</id>
<content type='text'>
commit e0340f16a08d031de54ed91d26f57c9a966a776a upstream.

A previous refactoring of nfs_readpage() might end up calling
wait_on_page_locked_killable() even if readpage_async_filler() failed
with an internal error and pg_error was non-zero (for example, if
nfs_create_request() failed).  In the case of an internal error,
skip over wait_on_page_locked_killable() as this is only needed
when the read is sent and an error occurs during completion handling.

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: Add nfs_pageio_complete_read() and remove nfs_readpage_async()</title>
<updated>2021-02-01T18:32:48Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-01-28T14:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e83b173b2663b7d357309584678cf24787f0713'/>
<id>urn:sha1:1e83b173b2663b7d357309584678cf24787f0713</id>
<content type='text'>
Add nfs_pageio_complete_read() and call this from both nfs_readpage()
and nfs_readpages(), since the submission and accounting is the same
for both functions.

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Call readpage_async_filler() from nfs_readpage_async()</title>
<updated>2021-02-01T18:32:48Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-01-28T14:55:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c119e3a18f994251c74c751e1657e4ef8da0c00'/>
<id>urn:sha1:0c119e3a18f994251c74c751e1657e4ef8da0c00</id>
<content type='text'>
Refactor slightly so nfs_readpage_async() calls into
readpage_async_filler().

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Refactor nfs_readpage() and nfs_readpage_async() to use nfs_readdesc</title>
<updated>2021-02-01T18:32:48Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-01-28T14:55:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1af7e7f8c12f521c111bd7cf0d138be7e15b51a5'/>
<id>urn:sha1:1af7e7f8c12f521c111bd7cf0d138be7e15b51a5</id>
<content type='text'>
Both nfs_readpage() and nfs_readpages() use similar code.
This patch should be no functional change, and refactors
nfs_readpage_async() to use nfs_readdesc to enable future
merging of nfs_readpage_async() and nfs_readpage_async_filler().

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: In nfs_readpage() only increment NFSIOS_READPAGES when read succeeds</title>
<updated>2021-02-01T18:32:48Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-01-28T14:55:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ddfd213f4ea22ac955bcd82100c57cd294494d2'/>
<id>urn:sha1:6ddfd213f4ea22ac955bcd82100c57cd294494d2</id>
<content type='text'>
There is a small inconsistency with nfs_readpage() vs nfs_readpages() with
regards to NFSIOS_READPAGES.  In readpage we unconditionally increment
NFSIOS_READPAGES at the top, which means even if the read fails.  In
readpages, we increment NFSIOS_READPAGES at the bottom based on how
many pages were successfully read.  Change readpage to be consistent with
readpages and so NFSIOS_READPAGES only reflects successful, non-fscache
reads.

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Clean up nfs_readpage() and nfs_readpages()</title>
<updated>2021-02-01T18:32:48Z</updated>
<author>
<name>Dave Wysochanski</name>
</author>
<published>2021-01-28T14:54:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49dee70052b89498cc0fc61e0e193cefeee40989'/>
<id>urn:sha1:49dee70052b89498cc0fc61e0e193cefeee40989</id>
<content type='text'>
In prep for the new fscache netfs API, refactor nfs_readpage()
and nfs_readpages() for future patches.  No functional change.

Signed-off-by: Dave Wysochanski &lt;dwysocha@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Trace short NFS READs</title>
<updated>2020-06-11T17:33:48Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2020-05-12T21:14:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd2b6121415539c394f7c610da5ffa6df919db46'/>
<id>urn:sha1:fd2b6121415539c394f7c610da5ffa6df919db46</id>
<content type='text'>
A short read can generate an -EIO error without there being an error
on the wire. This tracepoint acts as an eyecatcher when there is no
obvious I/O error.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Clean up process of marking inode stale.</title>
<updated>2020-04-06T17:56:33Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2020-04-06T17:39:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93ce4af774bc3d8a72ce2271d03241c96383629d'/>
<id>urn:sha1:93ce4af774bc3d8a72ce2271d03241c96383629d</id>
<content type='text'>
Instead of the various open coded calls to set the NFS_INO_STALE bit
and call nfs_zap_caches(), consolidate them into a single function
nfs_set_inode_stale().

Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
</content>
</entry>
<entry>
<title>NFS: When resending after a short write, reset the reply count to zero</title>
<updated>2020-01-15T15:54:33Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2020-01-06T20:25:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c9cb71491e7fd3ebee90d9799c9ca5b769bd0f4'/>
<id>urn:sha1:8c9cb71491e7fd3ebee90d9799c9ca5b769bd0f4</id>
<content type='text'>
If we're resending a write due to a short read or write, ensure we
reset the reply count to zero.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
</feed>
