On 3/18/25 03:08, Daeho Jeong wrote: > From: Daeho Jeong <daehoje...@google.com> > > support a file truncation to zero size for device aliasing files. > > Signed-off-by: Daeho Jeong <daehoje...@google.com> > --- > fs/f2fs/file.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index f92a9fba9991..7ae5a5af5ed9 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -1036,7 +1036,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry > *dentry, > > if ((attr->ia_valid & ATTR_SIZE)) { > if (!f2fs_is_compress_backend_ready(inode) || > - IS_DEVICE_ALIASING(inode)) > + (IS_DEVICE_ALIASING(inode) && attr->ia_size)) > return -EOPNOTSUPP; > if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED) && > !IS_ALIGNED(attr->ia_size, > @@ -1117,6 +1117,9 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry > *dentry, > if (err) > return err;
Daeho, If truncate(, 0) failed due to some reasons, maybe, the file was partially truncated, should we tag it as inconsistent status to avoid its later access? thoughts? Thanks, > > + if (IS_DEVICE_ALIASING(inode)) > + f2fs_destroy_extent_tree(inode); > + > spin_lock(&fi->i_size_lock); > inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); > fi->last_disk_size = i_size_read(inode); _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel