From 1743e0474e083a215f0bafba7e525efee06af367 Mon Sep 17 00:00:00 2001 From: nikita Date: Sun, 10 Aug 2008 00:24:33 +0000 Subject: [PATCH] libcfs: add spin_lock_nested() function to user level and old linux kernels. --- libcfs/include/libcfs/linux/linux-lock.h | 7 +++++++ libcfs/include/libcfs/user-lock.h | 2 ++ libcfs/libcfs/user-lock.c | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/libcfs/include/libcfs/linux/linux-lock.h b/libcfs/include/libcfs/linux/linux-lock.h index d78e2b5..0ada733 100644 --- a/libcfs/include/libcfs/linux/linux-lock.h +++ b/libcfs/include/libcfs/linux/linux-lock.h @@ -72,6 +72,13 @@ * - spin_unlock_irqrestore(x, f) */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) +static inline void spin_lock_nested(spinlock_t *lock, unsigned subclass) +{ + spin_lock(lock); +} +#endif + /* * rw_semaphore (use Linux kernel's primitives) * diff --git a/libcfs/include/libcfs/user-lock.h b/libcfs/include/libcfs/user-lock.h index b134096..913ba8e 100644 --- a/libcfs/include/libcfs/user-lock.h +++ b/libcfs/include/libcfs/user-lock.h @@ -72,6 +72,7 @@ * * - spin_lock_init(x) * - spin_lock(x) + * - spin_lock_nested(x, subclass) * - spin_unlock(x) * - spin_trylock(x) * @@ -90,6 +91,7 @@ typedef struct spin_lock spinlock_t; void spin_lock_init(spinlock_t *lock); void spin_lock(spinlock_t *lock); +void spin_lock_nested(spinlock_t *lock, unsigned int subclass); void spin_unlock(spinlock_t *lock); int spin_trylock(spinlock_t *lock); void spin_lock_bh_init(spinlock_t *lock); diff --git a/libcfs/libcfs/user-lock.c b/libcfs/libcfs/user-lock.c index 2657dbc..b01319f 100644 --- a/libcfs/libcfs/user-lock.c +++ b/libcfs/libcfs/user-lock.c @@ -61,6 +61,7 @@ * * - spin_lock_init(x) * - spin_lock(x) + * - spin_lock_nested(x, subclass) * - spin_unlock(x) * - spin_trylock(x) * @@ -81,6 +82,12 @@ void spin_lock(spinlock_t *lock) (void)lock; } +void spin_lock_nested(spinlock_t *lock, unsigned int subclass) +{ + (void)lock; + (void)subclass; +} + void spin_unlock(spinlock_t *lock) { (void)lock; -- 1.8.3.1