From: Jan Kara Date: Mon, 27 Jul 2026 10:49:29 +0000 (+0200) Subject: udf: Use sync_inode_metadata() to writeout IS_SYNC inode X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=061d83911da5c662d7b40595d3614e5bcd18d055;p=thirdparty%2Fkernel%2Flinux.git udf: Use sync_inode_metadata() to writeout IS_SYNC inode When setting inode size we directly writeout inode in udf_setsize(). This misses proper writeout of other inode related metadata. Use sync_inode_metadata() instead and move the flushing to udf_setattr() to avoid it for udf_evict_inode() where it would be pointless. Signed-off-by: Jan Kara Link: https://patch.msgid.link/20260727104923.3828017-31-jack@suse.cz Signed-off-by: Christian Brauner (Amutable) --- diff --git a/fs/udf/file.c b/fs/udf/file.c index 0748cc965117..57d11606a2a7 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -246,6 +246,8 @@ static int udf_setattr(struct mnt_idmap *idmap, struct dentry *dentry, setattr_copy(&nop_mnt_idmap, inode, attr); mark_inode_dirty(inode); + if (IS_SYNC(inode)) + sync_inode_metadata(inode, 1); return 0; } diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 05e61a65478c..600705f5edf9 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -1328,10 +1328,7 @@ set_size: } update_time: inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); - if (IS_SYNC(inode)) - udf_sync_inode(inode); - else - mark_inode_dirty(inode); + mark_inode_dirty(inode); return err; }