lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <a123946e-1df2-48da-b120-67b50c3aa9f5@oracle.com> Date: Thu, 13 Jun 2024 08:35:53 +0100 From: John Garry <john.g.garry@...cle.com> To: "Darrick J. Wong" <djwong@...nel.org> Cc: axboe@...nel.dk, tytso@....edu, dchinner@...hat.com, viro@...iv.linux.org.uk, brauner@...nel.org, jack@...e.com, chandan.babu@...cle.com, hch@....de, linux-block@...r.kernel.org, linux-kernel@...r.kernel.org, linux-btrfs@...r.kernel.org, linux-erofs@...ts.ozlabs.org, linux-ext4@...r.kernel.org, linux-f2fs-devel@...ts.sourceforge.net, linux-fsdevel@...r.kernel.org, gfs2@...ts.linux.dev, linux-xfs@...r.kernel.org, catherine.hoang@...cle.com, ritesh.list@...il.com, mcgrof@...nel.org, mikulas@...ax.karlin.mff.cuni.cz, agruenba@...hat.com, miklos@...redi.hu, martin.petersen@...cle.com Subject: Re: [PATCH v4 01/22] fs: Add generic_atomic_write_valid_size() On 12/06/2024 22:10, Darrick J. Wong wrote: > 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@...cle.com> >> --- >> 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? The original user of generic_atomic_write_valid() [blkdev_dio_unaligned() or blkdev_dio_invalid() with the rename] used these same args, so I just went with that. > And can these be collapsed into a single generic_atomic_write_checks() > function? bdev file operations would then need to use generic_atomic_write_valid_size(), and there is no unit_min and unit_max size there, apart from bdev awu min and max. And if I checked them, we would be duplicating checks (of awu min and max) in the block layer. Cheers, John
Powered by blists - more mailing lists