/* process a request from the blp_list at least every blp_num_threads */
        if (!list_empty(&blp->blp_list) &&
            (list_empty(&blp->blp_prio_list) || num_bl == 0))
-               blwi = list_entry(blp->blp_list.next,
-                                 struct ldlm_bl_work_item, blwi_entry);
+               blwi = list_first_entry(&blp->blp_list,
+                                       struct ldlm_bl_work_item, blwi_entry);
        else
                if (!list_empty(&blp->blp_prio_list))
-                       blwi = list_entry(blp->blp_prio_list.next,
-                                         struct ldlm_bl_work_item,
-                                         blwi_entry);
+                       blwi = list_first_entry(&blp->blp_prio_list,
+                                               struct ldlm_bl_work_item,
+                                               blwi_entry);
 
        if (blwi) {
                if (++num_bl >= num_th)