On 6/17/25 11:57, wangzijie wrote: > To prevent non-section-aligned size pinned file generated from truncation, > add check condition in setattr. > > Signed-off-by: wangzijie <wangzij...@honor.com> > --- > fs/f2fs/file.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index 6bd3de64f..72f7d1b4a 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -1026,6 +1026,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry > *dentry, > { > struct inode *inode = d_inode(dentry); > struct f2fs_inode_info *fi = F2FS_I(inode); > + struct f2fs_sb_info *sbi = F2FS_I_SB(inode); > int err; > > if (unlikely(f2fs_cp_error(F2FS_I_SB(inode)))) > @@ -1047,6 +1048,11 @@ 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; > + if (f2fs_is_pinned_file(inode) && > + attr->ia_size < i_size_read(inode) &&
Do we need to consider attr->ia_size > i_size case? Thanks, > + !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