/* 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 */ | |