nfs: fix page dirtying in NFS DIO read codepath
authorJeff Layton <jlayton@redhat.com>
Wed, 12 Dec 2012 17:36:31 +0000 (12:36 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 12 Dec 2012 17:56:19 +0000 (12:56 -0500)
commitbe7e985804c610fcdcee8730cf42718b8a4e1c41
tree37facb834c1269ca07d39f59ed4db603a02222ea
parent67fad106a219e083c91c79695bd1807dde1bf7b9
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>
fs/nfs/direct.c