- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / fs / nilfs2 / btree.h
index 4b82d84..43c8c5b 100644 (file)
@@ -30,9 +30,6 @@
 #include "btnode.h"
 #include "bmap.h"
 
-struct nilfs_btree;
-struct nilfs_btree_path;
-
 /**
  * struct nilfs_btree - B-tree structure
  * @bt_bmap: bmap base structure
@@ -41,6 +38,25 @@ struct nilfs_btree {
        struct nilfs_bmap bt_bmap;
 };
 
+/**
+ * struct nilfs_btree_path - A path on which B-tree operations are executed
+ * @bp_bh: buffer head of node block
+ * @bp_sib_bh: buffer head of sibling node block
+ * @bp_index: index of child node
+ * @bp_oldreq: ptr end request for old ptr
+ * @bp_newreq: ptr alloc request for new ptr
+ * @bp_op: rebalance operation
+ */
+struct nilfs_btree_path {
+       struct buffer_head *bp_bh;
+       struct buffer_head *bp_sib_bh;
+       int bp_index;
+       union nilfs_bmap_ptr_req bp_oldreq;
+       union nilfs_bmap_ptr_req bp_newreq;
+       struct nilfs_btnode_chkey_ctxt bp_ctxt;
+       void (*bp_op)(struct nilfs_btree *, struct nilfs_btree_path *,
+                     int, __u64 *, __u64 *);
+};
 
 #define NILFS_BTREE_ROOT_SIZE          NILFS_BMAP_SIZE
 #define NILFS_BTREE_ROOT_NCHILDREN_MAX                                 \
@@ -57,9 +73,8 @@ struct nilfs_btree {
 #define NILFS_BTREE_KEY_MIN    ((__u64)0)
 #define NILFS_BTREE_KEY_MAX    (~(__u64)0)
 
+extern struct kmem_cache *nilfs_btree_path_cache;
 
-int nilfs_btree_path_cache_init(void);
-void nilfs_btree_path_cache_destroy(void);
 int nilfs_btree_init(struct nilfs_bmap *);
 int nilfs_btree_convert_and_insert(struct nilfs_bmap *, __u64, __u64,
                                   const __u64 *, const __u64 *, int);