[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YMd5BqIKucO6rW4R@casper.infradead.org>
Date: Mon, 14 Jun 2021 16:43:02 +0100
From: Matthew Wilcox <willy@...radead.org>
To: David Howells <dhowells@...hat.com>
Cc: 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
On Mon, Jun 14, 2021 at 04:38:21PM +0100, David Howells wrote:
> 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.
Isn't the point of an assertion to check that this is true?
Powered by blists - more mailing lists