On Tue, Nov 16, 2021 at 08:45:27PM -0800, Darrick J. Wong wrote: > > +/** > > + * folio_zero_segment() - Zero a byte range in a folio. > > + * @folio: The folio to write to. > > + * @start: The first byte to zero. > > + * @end: One more than the last byte in the first range. > > + */ > > +static inline void folio_zero_segment(struct folio *folio, > > + size_t start, size_t end) > > +{ > > + zero_user_segments(&folio->page, start, end, 0, 0); > > +} > > + > > +/** > > + * folio_zero_range() - Zero a byte range in a folio. > > + * @folio: The folio to write to. > > + * @start: The first byte to zero. > > + * @length: The number of bytes to zero. > > + */ > > +static inline void folio_zero_range(struct folio *folio, > > + size_t start, size_t length) > > +{ > > + zero_user_segments(&folio->page, start, start + length, 0, 0); > > At first I thought "Gee, this is wrong, end should be start+length-1!" > > Then I looked at zero_user_segments and realized that despite the > parameter name "endi1", it really wants you to tell it the next byte. > Not the end byte of the range you want to zero. > > Then I looked at the other two new functions and saw that you documented > this, and now I get why Linus ranted about this some time ago. > > The code looks right, but the "end" names rankle me. Can we please > change them all? Or at least in the new functions, if you all already > fought a flamewar over this that I'm not aware of? Change them to what? I tend to use 'end' to mean 'excluded end' and 'max' to mean 'included end'. What would you call the excluded end?