diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-14 08:07:38 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:09:29 +0300 |
commit | 66d90823857ed9196ef52361518ab703e468c53b (patch) | |
tree | acebc578be81944928e7e01b2e3a9fbbdf95732c /fs/bcachefs/buckets_types.h | |
parent | 5735608c14e791c10ebcb6a20fab1c8fa4cf3123 (diff) | |
download | linux-66d90823857ed9196ef52361518ab703e468c53b.tar.xz |
bcachefs: Kill struct bucket_mark
This switches struct bucket to using a lock, instead of cmpxchg. And now
that the protected members no longer need to fit into a u64, we can
expand the sector counts to 32 bits.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/buckets_types.h')
-rw-r--r-- | fs/bcachefs/buckets_types.h | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/fs/bcachefs/buckets_types.h b/fs/bcachefs/buckets_types.h index f7bf5c1d732f..e79a33795bf9 100644 --- a/fs/bcachefs/buckets_types.h +++ b/fs/bcachefs/buckets_types.h @@ -7,29 +7,15 @@ #define BUCKET_JOURNAL_SEQ_BITS 16 -struct bucket_mark { - union { - atomic64_t v; - - struct { - u8 gen; - u8 data_type:3, - stripe:1; - u16 dirty_sectors; - u16 cached_sectors; - }; - }; -}; - struct bucket { - union { - struct bucket_mark _mark; - const struct bucket_mark mark; - }; - - unsigned gen_valid:1; - u8 stripe_redundancy; - u32 stripe; + u8 lock; + u8 gen_valid:1; + u8 data_type:7; + u8 gen; + u8 stripe_redundancy; + u32 stripe; + u32 dirty_sectors; + u32 cached_sectors; }; struct bucket_array { |