summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2026-03-26 12:54:10 +0300
committerChristian Brauner <brauner@kernel.org>2026-03-26 17:03:28 +0300
commit153e5960450a4303ace8f01f5c77f2ff5f38ba32 (patch)
tree20e65b1d3411071f8a40b15d12c08e39763d48ad
parent63f1f4b6c9c805e0eebbf49de5fb19deea1bcdd8 (diff)
downloadlinux-153e5960450a4303ace8f01f5c77f2ff5f38ba32.tar.xz
udf: Sync and invalidate metadata buffers from udf_evict_inode()
There are only very few filesystems using generic metadata buffer head tracking and everybody is paying the overhead. When we remove this tracking for inode reclaim code .evict will start to see inodes with metadata buffers attached so write them out and prune them. Signed-off-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/20260326095354.16340-58-jack@suse.cz Tested-by: syzbot@syzkaller.appspotmail.com Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/udf/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 7fae8002344a..739b190ca4e9 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -154,6 +154,8 @@ void udf_evict_inode(struct inode *inode)
}
}
truncate_inode_pages_final(&inode->i_data);
+ if (!want_delete)
+ sync_mapping_buffers(&inode->i_data);
invalidate_inode_buffers(inode);
clear_inode(inode);
kfree(iinfo->i_data);