Re: [PATCH 2/3] afs: Fix afs_write_end() to handle short writes

From: David Howells
Date: Mon Jun 14 2021 - 11:38:38 EST


Matthew Wilcox <willy@xxxxxxxxxxxxx> 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