linux_dsm_epyc7002/fs/nfs
Jeff Layton be7e985804 nfs: fix page dirtying in NFS DIO read codepath
The NFS DIO code will dirty pages that catch read responses in order to
handle the case where someone is doing DIO reads into an mmapped buffer.
The existing code doesn't really do the right thing though since it
doesn't take into account the case where we might be attempting to read
past the EOF.

Fix the logic in that code to only dirty pages that ended up receiving
data from the read. Note too that it really doesn't matter if
NFS_IOHDR_ERROR is set or not. All that matters is if the page was
altered by the read.

Cc: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2012-12-12 12:56:19 -05:00
..
blocklayout NFSv4.1: Move slot table and session struct definitions to nfs4session.h 2012-12-06 00:30:46 +01:00
objlayout NFSv4.1: Remove unused function last_byte_offset 2012-11-04 14:43:38 -05:00
cache_lib.c NFSv4: Get rid of unnecessary BUG_ON()s 2012-11-04 14:43:39 -05:00
cache_lib.h
callback_proc.c NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c 2012-12-06 00:30:45 +01:00
callback_xdr.c NFSv4.1: Move slot table and session struct definitions to nfs4session.h 2012-12-06 00:30:46 +01:00
callback.c NFSv4: Fix the return value for nfs_callback_start_svc 2012-10-16 13:14:42 -04:00
callback.h NFSv4.1: Clean up session draining 2012-12-06 00:30:44 +01:00
client.c NFS: Get rid of unnecessary asserts 2012-11-04 14:43:38 -05:00
delegation.c
delegation.h
dir.c
direct.c nfs: fix page dirtying in NFS DIO read codepath 2012-12-12 12:56:19 -05:00
dns_resolve.c NFS: fix bug in legacy DNS resolver. 2012-10-31 16:25:59 -04:00
dns_resolve.h
file.c
fscache-index.c
fscache.c
fscache.h
getroot.c
idmap.c
inode.c NFS: Remove BUG_ON()s in the fs/nfs/inode.c 2012-11-04 14:43:39 -05:00
internal.h NFSv4: Simplify the NFSv4/v4.1 synchronous call switch 2012-12-06 00:30:49 +01:00
iostat.h
Kconfig
Makefile NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c 2012-12-06 00:30:45 +01:00
mount_clnt.c NFS: Remove the BUG_ON() in the mount code 2012-11-04 14:43:39 -05:00
namespace.c nfs: Show original device name verbatim in /proc/*/mount{s,info} 2012-10-31 16:26:26 -04:00
netns.h
nfs2super.c
nfs2xdr.c NFS: Remove asserts from the NFS XDR code 2012-11-04 14:43:38 -05:00
nfs3acl.c
nfs3client.c
nfs3proc.c
nfs3super.c
nfs3xdr.c NFS: Remove asserts from the NFS XDR code 2012-11-04 14:43:38 -05:00
nfs4_fs.h Merge branch 'bugfixes' into nfs-for-next 2012-12-11 09:16:26 -05:00
nfs4client.c NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c 2012-12-06 00:30:45 +01:00
nfs4file.c NFSv4: Get rid of unnecessary BUG_ON()s 2012-11-04 14:43:39 -05:00
nfs4filelayout.c NFSv4.1: Simplify the sequence setup 2012-12-06 00:30:48 +01:00
nfs4filelayout.h NFSv4.1: Kill nfs4_ds_disconnect() 2012-10-15 10:49:42 -04:00
nfs4filelayoutdev.c NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c 2012-12-06 00:30:45 +01:00
nfs4getroot.c NFSv4: fs/nfs/nfs4getroot.c needs to include "internal.h" 2012-10-16 12:37:59 -04:00
nfs4namespace.c nfs: Show original device name verbatim in /proc/*/mount{s,info} 2012-10-31 16:26:26 -04:00
nfs4proc.c NFSv4.1: Handle NFS4ERR_BADSLOT errors correctly 2012-12-11 10:31:12 -05:00
nfs4renewd.c
nfs4session.c NFSv4.1: Be conservative about the client highest slotid 2012-12-11 12:29:10 -05:00
nfs4session.h NFSv4.1: Try to eliminate outliers when updating target_highest_slotid 2012-12-06 00:30:53 +01:00
nfs4state.c NFSv4.1: Ensure smooth handover of slots from one task to the next waiting 2012-12-06 00:30:52 +01:00
nfs4super.c
nfs4sysctl.c
nfs4xdr.c Merge branch 'bugfixes' into nfs-for-next 2012-12-11 09:16:26 -05:00
nfs.h
nfsroot.c
pagelist.c
pnfs_dev.c
pnfs.c NFSv4.1: Remove assertion BUG_ON()s from the files and generic layout code 2012-11-04 14:43:39 -05:00
pnfs.h NFSv4.1: Do not call pnfs_return_layout() from an rpciod context 2012-10-15 10:49:43 -04:00
proc.c
read.c
super.c NFSv4.1: Move slot table and session struct definitions to nfs4session.h 2012-12-06 00:30:46 +01:00
symlink.c
sysctl.c
unlink.c NFS: add nfs_sb_deactive_async to avoid deadlock 2012-10-31 16:26:26 -04:00
write.c Merge branch 'bugfixes' into nfs-for-next 2012-12-11 09:16:26 -05:00