On 6/24/25 11:59, wangzijie wrote: > To prevent scattered pin block generation, don't allow non-section aligned > truncation > to smaller or equal size on pinned file. But for truncation to larger size, > after > commit 3fdd89b452c2("f2fs: prevent writing without fallocate() for pinned > files"), > we only support overwrite IO to pinned file, so we don't need to consider > attr->ia_size > i_size case.
Zijie, can you take a look generic/494? suspect that it is caused by this change. generic/494 3s ... - output mismatch (see /share/git/fstests/results//generic/494.out.bad) --- tests/generic/494.out 2025-01-12 21:57:40.279440664 +0800 +++ /share/git/fstests/results//generic/494.out.bad 2025-06-30 10:01:37.000000000 +0800 @@ -2,7 +2,7 @@ Format and mount Initialize file Try to truncate -ftruncate: Text file busy +ftruncate: Invalid argument Try to punch hole fallocate: Text file busy ... (Run 'diff -u /share/git/fstests/tests/generic/494.out /share/git/fstests/results//generic/494.out.bad' to see the entire diff) Ran: generic/494 Failures: generic/494 Failed 1 of 1 tests Thanks, > > Signed-off-by: wangzijie <wangzij...@honor.com> > --- > v4: > - convert sbi first and apply change > --- > fs/f2fs/file.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index 209f43653..4809f0fd6 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -1048,6 +1048,17 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct > dentry *dentry, > !IS_ALIGNED(attr->ia_size, > F2FS_BLK_TO_BYTES(fi->i_cluster_size))) > return -EINVAL; > + /* > + * To prevent scattered pin block generation, we don't allow > + * smaller/equal size unaligned truncation for pinned file. > + * We only support overwrite IO to pinned file, so don't > + * care about larger size truncation. > + */ > + if (f2fs_is_pinned_file(inode) && > + attr->ia_size <= i_size_read(inode) && > + !IS_ALIGNED(attr->ia_size, > + F2FS_BLK_TO_BYTES(CAP_BLKS_PER_SEC(sbi)))) > + return -EINVAL; > } > > err = setattr_prepare(idmap, dentry, attr); _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel