On Mon, Mar 17, 2025 at 8:45 PM Chao Yu <c...@kernel.org> wrote: > > 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?
Hmm, looks like I did it wrong. Instead of invoking f2fs_destroy_extent_tree(), I need to make the length of the extent to zero when truncating the file. Is it okay with you? > > 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