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;