On Sun, Jun 13, 2021 at 08:02:12AM -0400, Jeff Layton wrote:
> > +   /* clamp length to end of the current page */
> > +   if (len > PAGE_SIZE)
> > +           len = PAGE_SIZE - offset;
> 
> Actually, I think this should be:
> 
>       len = min(len, PAGE_SIZE - offset);
> 
> Otherwise, len could still go beyond the end of the page.

I don't understand why you want to clamp length instead of just coping
with len being > PAGE_SIZE.

> > +
> > +   /* full page write */
> > +   if (offset == 0 && len == PAGE_SIZE)
> > +           goto zero_out;

That becomes >=.

> > +   /* zero-length file */
> > +   if (i_size == 0)
> > +           goto zero_out;
> > +
> > +   /* position beyond last page in the file */
> > +   if (index > ((i_size - 1) / PAGE_SIZE))
> > +           goto zero_out;
> > +
> > +   /* write that covers the the page from start to EOF or beyond it */
> > +   if (offset == 0 && (pos + len) >= i_size)
> > +           goto zero_out;

That doesn't need any change.

> > +   return false;
> > +zero_out:
> > +   zero_user_segments(page, 0, offset, offset + len, PAGE_SIZE);

That also doesn't need any change.

--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to