static int posix_locks_deadlock(struct file_lock *caller_fl,
                                struct file_lock *block_fl)
 {
-       struct list_head *tmp;
+       struct file_lock *fl;
 
 next_task:
        if (posix_same_owner(caller_fl, block_fl))
                return 1;
-       list_for_each(tmp, &blocked_list) {
-               struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
+       list_for_each_entry(fl, &blocked_list, fl_link) {
                if (posix_same_owner(fl, block_fl)) {
                        fl = fl->fl_next;
                        block_fl = fl;
 
 int get_locks_status(char *buffer, char **start, off_t offset, int length)
 {
-       struct list_head *tmp;
+       struct file_lock *fl;
        char *q = buffer;
        off_t pos = 0;
        int i = 0;
 
        lock_kernel();
-       list_for_each(tmp, &file_lock_list) {
-               struct list_head *btmp;
-               struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
+       list_for_each_entry(fl, &file_lock_list, fl_link) {
+               struct file_lock *bfl;
+
                lock_get_status(q, fl, ++i, "");
                move_lock_status(&q, &pos, offset);
 
                if(pos >= offset+length)
                        goto done;
 
-               list_for_each(btmp, &fl->fl_block) {
-                       struct file_lock *bfl = list_entry(btmp,
-                                       struct file_lock, fl_block);
+               list_for_each_entry(bfl, &fl->fl_block, fl_block) {
                        lock_get_status(q, bfl, i, " ->");
                        move_lock_status(&q, &pos, offset);