Messages in this thread | | | Date | Mon, 21 Jun 2021 15:50:49 +0100 | From | Matthew Wilcox <> | Subject | Re: [PATCH v2 3/3] netfs: fix test for whether we can skip read when writing beyond EOF |
| |
On Thu, Jun 17, 2021 at 09:24:27AM +0100, David Howells wrote: > From: Jeff Layton <jlayton@kernel.org> > > It's not sufficient to skip reading when the pos is beyond the EOF. > There may be data at the head of the page that we need to fill in > before the write. > > Add a new helper function that corrects and clarifies the logic of > when we can skip reads, and have it only zero out the part of the page > that won't have data copied in for the write. > > Finally, don't set the page Uptodate after zeroing. It's not up to date > since the write data won't have been copied in yet. > > [DH made the following changes: > > - Prefixed the new function with "netfs_". > > - Don't call zero_user_segments() for a full-page write. > > - Altered the beyond-last-page check to avoid a DIV instruction and got > rid of then-redundant zero-length file check. > ] > > Fixes: e1b1240c1ff5f ("netfs: Add write_begin helper") > Reported-by: Andrew W Elble <aweits@rit.edu> > Signed-off-by: Jeff Layton <jlayton@kernel.org> > Signed-off-by: David Howells <dhowells@redhat.com> > cc: ceph-devel@vger.kernel.org > Link: https://lore.kernel.org/r/20210613233345.113565-1-jlayton@kernel.org/ > Link: https://lore.kernel.org/r/162367683365.460125.4467036947364047314.stgit@warthog.procyon.org.uk/ # v1
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
| |