/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_NOCOW_LOCKING_TYPES_H
#define _BCACHEFS_NOCOW_LOCKING_TYPES_H
#define BUCKET_NOCOW_LOCKS_BITS 10
#define BUCKET_NOCOW_LOCKS (1U << BUCKET_NOCOW_LOCKS_BITS)
struct nocow_lock_bucket {
struct closure_waitlist wait;
spinlock_t lock;
u64 b[4];
atomic_t l[4];
} __aligned(SMP_CACHE_BYTES);
struct bucket_nocow_lock_table {
struct nocow_lock_bucket l[BUCKET_NOCOW_LOCKS];
};
#endif /* _BCACHEFS_NOCOW_LOCKING_TYPES_H */