On Fri, Jun 07, 2024 at 02:38:58PM +0000, John Garry wrote: > Add a generic helper for FSes to validate that an atomic write is > appropriately sized (along with the other checks). > > Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> > --- > include/linux/fs.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 069cbab62700..e13d34f8c24e 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -3645,4 +3645,16 @@ bool generic_atomic_write_valid(loff_t pos, struct iov_iter *iter) > return true; > } > > +static inline > +bool generic_atomic_write_valid_size(loff_t pos, struct iov_iter *iter, > + unsigned int unit_min, unsigned int unit_max) > +{ > + size_t len = iov_iter_count(iter); > + > + if (len < unit_min || len > unit_max) > + return false; > + > + return generic_atomic_write_valid(pos, iter); > +} Now that I look back at "fs: Initial atomic write support" I wonder why not pass the iocb and the iov_iter instead of pos and the iov_iter? And can these be collapsed into a single generic_atomic_write_checks() function? --D > + > #endif /* _LINUX_FS_H */ > -- > 2.31.1 > >