From b02f973e67589cf617f229250e2a738ab62ca666 Mon Sep 17 00:00:00 2001 From: Kent Overstreet <kent.overstreet@linux.dev> Date: Mon, 1 Jul 2024 16:23:54 -0400 Subject: [PATCH] bcachefs: Fix bch2_inode_insert() race path for tmpfiles Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> --- fs/bcachefs/fs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index f9c9a95d7d4ca..1768b2678b387 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -194,6 +194,12 @@ static struct bch_inode_info *bch2_inode_insert(struct bch_fs *c, struct bch_ino * discard_new_inode() expects it to be set... */ inode->v.i_flags |= I_NEW; + /* + * We don't want bch2_evict_inode() to delete the inode on disk, + * we just raced and had another inode in cache. Normally new + * inodes don't have nlink == 0 - except tmpfiles do... + */ + set_nlink(&inode->v, 1); discard_new_inode(&inode->v); inode = old; } else { -- GitLab