diff options
| author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-05-28 05:06:18 -0400 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:04 -0400 |
| commit | bff796ae6539b50bb3fe595e8db7b72e3255a34d (patch) | |
| tree | 70b274633607982f1d5bdabbd1a84136ea16f3d4 /fs/bcachefs/inode.c | |
| parent | d797ca3d8ed3b493d6558426fb4b4980ff186c37 (diff) | |
bcachefs: Fix pathalogical behaviour with inode sharding by cpu ID
If the transactior restarts on a different CPU, it could end up needing
to read in a different btree node, which makes another transaction
restart more likely...
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/inode.c')
| -rw-r--r-- | fs/bcachefs/inode.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index 0af493c8669d..524da018e9d9 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -472,7 +472,7 @@ static inline u32 bkey_generation(struct bkey_s_c k) struct btree_iter *bch2_inode_create(struct btree_trans *trans, struct bch_inode_unpacked *inode_u, - u32 snapshot) + u32 snapshot, u64 cpu) { struct bch_fs *c = trans->c; struct btree_iter *iter = NULL; @@ -482,8 +482,6 @@ struct btree_iter *bch2_inode_create(struct btree_trans *trans, unsigned bits = (c->opts.inodes_32bit ? 31 : 63); if (c->opts.shard_inode_numbers) { - u64 cpu = raw_smp_processor_id(); - bits -= c->inode_shard_bits; min = (cpu << bits); |
