* unaltered.
   */
  int ulist_add(struct ulist *ulist, u64 val, unsigned long aux,
 -            unsigned long gfp_mask)
 +            gfp_t gfp_mask)
+ {
+       return ulist_add_merge(ulist, val, aux, NULL, gfp_mask);
+ }
+ 
+ int ulist_add_merge(struct ulist *ulist, u64 val, unsigned long aux,
 -                  unsigned long *old_aux, unsigned long gfp_mask)
++                  unsigned long *old_aux, gfp_t gfp_mask)
  {
        int i;
  
 
  void ulist_init(struct ulist *ulist);
  void ulist_fini(struct ulist *ulist);
  void ulist_reinit(struct ulist *ulist);
 -struct ulist *ulist_alloc(unsigned long gfp_mask);
 +struct ulist *ulist_alloc(gfp_t gfp_mask);
  void ulist_free(struct ulist *ulist);
- int ulist_add(struct ulist *ulist, u64 val, unsigned long aux, gfp_t gfp_mask);
- struct ulist_node *ulist_next(struct ulist *ulist, struct ulist_node *prev);
+ int ulist_add(struct ulist *ulist, u64 val, unsigned long aux,
 -            unsigned long gfp_mask);
++            gfp_t gfp_mask);
+ int ulist_add_merge(struct ulist *ulist, u64 val, unsigned long aux,
 -                  unsigned long *old_aux, unsigned long gfp_mask);
++                  unsigned long *old_aux, gfp_t gfp_mask);
+ struct ulist_node *ulist_next(struct ulist *ulist,
+                             struct ulist_iterator *uiter);
+ 
+ #define ULIST_ITER_INIT(uiter) ((uiter)->i = 0)
  
  #endif