[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <475131.1623685101@warthog.procyon.org.uk>
Date: Mon, 14 Jun 2021 16:38:21 +0100
From: David Howells <dhowells@...hat.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: dhowells@...hat.com, jlayton@...nel.org,
linux-afs@...ts.infradead.org, ceph-devel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] afs: Fix afs_write_end() to handle short writes
Matthew Wilcox <willy@...radead.org> wrote:
> > - ASSERT(PageUptodate(page));
> > -
> > if (PagePrivate(page)) {
> > priv = page_private(page);
> > f = afs_page_dirty_from(page, priv);
>
> Why are you removing this assertion? Does AFS now support dirty,
> partially-uptodate pages? If so, a subsequent read() to that
> page is going to need to be careful to only read the parts of the page
> from the server that haven't been written ...
Because the previous hunk in the patch:
+ if (!PageUptodate(page)) {
+ if (copied < len) {
+ copied = 0;
+ goto out;
+ }
+
+ SetPageUptodate(page);
+ }
means you can't get there unless PageUptodate() is true by that point.
David
Powered by blists - more mailing lists