Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux...
[firefly-linux-kernel-4.4.55.git] / fs / btrfs / ulist.h
index ad85b0e60af276dfe91460f6105c3bf77228f059..21bdc8ec813046ac56e3c7db0739bcdba7ac188a 100644 (file)
  */
 #define ULIST_SIZE 16
 
+struct ulist_iterator {
+       int i;
+};
+
 /*
  * element of the list
  */
@@ -63,6 +67,11 @@ 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_merge(struct ulist *ulist, u64 val, unsigned long aux,
+                   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