diff --git a/libcfs/include/libcfs/linux/linux-lock.h b/libcfs/include/libcfs/linux/linux-lock.h index d78e2b5705c25d2e356b2baff7017f712aa01041..0ada733bc7bae43b4d5d49d465ffa86133ae8267 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 b134096dbc23c7c7a8f91a54c5273ee44ba2e0ea..913ba8e16acdadcf20ce7bd7330c7acc5b50655b 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 2657dbc545546e195fa8cc46ced572d23fb17f41..b01319f86177383ebaca631744e2127504a645a5 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;