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@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/linux-cachefs