From: Kent Overstreet Date: Mon, 1 Jul 2024 20:23:54 +0000 (-0400) Subject: bcachefs: Fix bch2_inode_insert() race path for tmpfiles X-Git-Tag: v6.10~16^2~13 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b02f973e67589cf617f229250e2a738ab62ca666;p=linux-block.git bcachefs: Fix bch2_inode_insert() race path for tmpfiles Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index f9c9a95d7d4c..1768b2678b38 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 {