* that may be shared among all a CLONE_SYSVSEM task group.
  */
 struct sem_undo_list {
-       atomic_t                refcnt;
+       refcount_t              refcnt;
        spinlock_t              lock;
        struct list_head        list_proc;
 };
                if (undo_list == NULL)
                        return -ENOMEM;
                spin_lock_init(&undo_list->lock);
-               atomic_set(&undo_list->refcnt, 1);
+               refcount_set(&undo_list->refcnt, 1);
                INIT_LIST_HEAD(&undo_list->list_proc);
 
                current->sysvsem.undo_list = undo_list;
                error = get_undo_list(&undo_list);
                if (error)
                        return error;
-               atomic_inc(&undo_list->refcnt);
+               refcount_inc(&undo_list->refcnt);
                tsk->sysvsem.undo_list = undo_list;
        } else
                tsk->sysvsem.undo_list = NULL;
                return;
        tsk->sysvsem.undo_list = NULL;
 
-       if (!atomic_dec_and_test(&ulp->refcnt))
+       if (!refcount_dec_and_test(&ulp->refcnt))
                return;
 
        for (;;) {