On Thu, 25 Apr 2019 at 17:29, Matthew Wilcox <[email protected]> wrote:
>
> On Thu, Apr 25, 2019 at 05:26:30PM +0200, Andreas Gruenbacher wrote:
>
> This seems to be corrupted; there's no declaration of a page_ops in
> iomap_write_begin ... unless you're basing on a patch I don't have?
Oops, this has slipped into the 2nd patch, sorry.
> > diff --git a/fs/iomap.c b/fs/iomap.c
> > index 97cb9d486a7d..967c985c5310 100644
> > --- a/fs/iomap.c
> > +++ b/fs/iomap.c
> > @@ -674,9 +674,17 @@ iomap_write_begin(struct inode *inode, loff_t pos,
> > unsigned len, unsigned flags,
> > if (fatal_signal_pending(current))
> > return -EINTR;
> >
> > + if (page_ops) {
> > + status = page_ops->page_prepare(inode, pos, len, iomap);
> > + if (status)
> > + return status;
> > + }
> > +
> > page = grab_cache_page_write_begin(inode->i_mapping, index, flags);
> > - if (!page)
> > - return -ENOMEM;
> > + if (!page) {
> > + status = -ENOMEM;
> > + goto no_page;
> > + }
> >
> > if (iomap->type == IOMAP_INLINE)
> > iomap_read_inline_data(inode, page, iomap);
Andreas