diff --git a/libcfs/include/libcfs/libcfs_prim.h b/libcfs/include/libcfs/libcfs_prim.h
index 64938a52aa4ef6f668ed3d59ffd88a1afd4fb91c..8dca0a917c6a340be0161889948ba8eb39841f1c 100644
--- a/libcfs/include/libcfs/libcfs_prim.h
+++ b/libcfs/include/libcfs/libcfs_prim.h
@@ -48,6 +48,8 @@
 void cfs_schedule_timeout(cfs_task_state_t state, int64_t timeout);
 void cfs_schedule(void);
 void cfs_pause(cfs_duration_t ticks);
+int  cfs_need_resched(void);
+void cfs_cond_resched(void);
 
 /*
  * Wait Queues
diff --git a/libcfs/libcfs/linux/linux-prim.c b/libcfs/libcfs/linux/linux-prim.c
index f8cdf81ced569212afaa1de36361ced5033e57d7..9019b3fd88ef8ee1a27e46aac2f8820c0f90c571 100644
--- a/libcfs/libcfs/linux/linux-prim.c
+++ b/libcfs/libcfs/linux/linux-prim.c
@@ -153,6 +153,18 @@ cfs_pause(cfs_duration_t ticks)
 }
 EXPORT_SYMBOL(cfs_pause);
 
+int cfs_need_resched(void)
+{
+        return need_resched();
+}
+EXPORT_SYMBOL(cfs_need_resched);
+
+void cfs_cond_resched(void)
+{
+        cond_resched();
+}
+EXPORT_SYMBOL(cfs_cond_resched);
+
 void cfs_init_timer(cfs_timer_t *t)
 {
         init_timer(t);
diff --git a/libcfs/libcfs/user-prim.c b/libcfs/libcfs/user-prim.c
index ee381d67a72fd523e65cf8ad2abdc2035fd4ad45..bf57b4c9e84be8c1b797958c4368c27a407eac68 100644
--- a/libcfs/libcfs/user-prim.c
+++ b/libcfs/libcfs/user-prim.c
@@ -143,6 +143,15 @@ cfs_pause(cfs_duration_t d)
         nanosleep(&s, NULL);
 }
 
+int cfs_need_resched(void)
+{
+        return 0;
+}
+
+void cfs_cond_resched(void)
+{
+}
+
 /*
  * Timer
  */
diff --git a/libcfs/libcfs/winnt/winnt-prim.c b/libcfs/libcfs/winnt/winnt-prim.c
index e62a39e4b994384a1472749f13415948af2f6be7..e271e18e8ac0c7064c04a6eecf86d9b83122dc5a 100644
--- a/libcfs/libcfs/winnt/winnt-prim.c
+++ b/libcfs/libcfs/winnt/winnt-prim.c
@@ -741,6 +741,15 @@ errorout:
     return NT_SUCCESS(status);
 }
 
+int cfs_need_resched(void)
+{
+        return 0;
+}
+
+void cfs_cond_resched(void)
+{
+}
+
 /**
  **  Initialize routines 
  **/
diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 66e874bd41195579cd50f883f9bb5718c61a59b8..6d3b6d6ab5e4bb07823d80371af7331a65d46749 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -1718,6 +1718,12 @@ Bugzilla   : 16450
 Description: Liblustre build fixes.
 Details    : Liblustre build fixes.
 
+Severity   : normal
+Bugzilla   : 16450
+Description: libcfs: add cfs_{need,cond}_resched() interface.
+Details    : libcfs: add cfs_{need,cond}_resched() definition and
+	     implementations for Linux, NT, and liblustre.
+
 --------------------------------------------------------------------------------
 
 2007-08-10         Cluster File Systems, Inc. <info@clusterfs.com>