diff --git a/lustre/obdclass/lprocfs_status.c b/lustre/obdclass/lprocfs_status.c
index d34eba053eefc175aed828467977afba8870b70d..29b3c955df5b60347aef01b8a304821e1816ccfc 100644
--- a/lustre/obdclass/lprocfs_status.c
+++ b/lustre/obdclass/lprocfs_status.c
@@ -58,6 +58,7 @@ struct proc_dir_entry *lprocfs_srch(struct proc_dir_entry *head,
 
         if (head == NULL)
                 return NULL;
+        LPROCFS_ENTRY();
 
         temp = head->subdir;
         while (temp != NULL) {
@@ -66,6 +67,7 @@ struct proc_dir_entry *lprocfs_srch(struct proc_dir_entry *head,
 
                 temp = temp->next;
         }
+        LPROCFS_EXIT();
         return NULL;
 }
 
@@ -309,6 +311,7 @@ void lprocfs_remove(struct proc_dir_entry **rooth)
 
         parent = root->parent;
         LASSERT(parent != NULL);
+        LPROCFS_ENTRY(); /* search vs remove race */
 
         while (1) {
                 while (temp->subdir != NULL)
@@ -332,6 +335,7 @@ void lprocfs_remove(struct proc_dir_entry **rooth)
                 if (temp == parent)
                         break;
         }
+        LPROCFS_EXIT();
 }
 
 void lprocfs_remove_proc_entry(const char *name, struct proc_dir_entry *parent)