xfs: remove the get*keys and update_keys btree ops pointers
[cascardo/linux.git] / fs / xfs / libxfs / xfs_btree.h
index 4ee6c2b..04d0865 100644 (file)
@@ -38,10 +38,11 @@ union xfs_btree_ptr {
 };
 
 union xfs_btree_key {
-       xfs_bmbt_key_t          bmbt;
-       xfs_bmdr_key_t          bmbr;   /* bmbt root block */
-       xfs_alloc_key_t         alloc;
-       xfs_inobt_key_t         inobt;
+       struct xfs_bmbt_key             bmbt;
+       xfs_bmdr_key_t                  bmbr;   /* bmbt root block */
+       xfs_alloc_key_t                 alloc;
+       struct xfs_inobt_key            inobt;
+       struct xfs_rmap_key             rmap;
 };
 
 /*
@@ -56,13 +57,18 @@ union xfs_btree_bigkey {
        xfs_bmdr_key_t                  bmbr;   /* bmbt root block */
        xfs_alloc_key_t                 alloc;
        struct xfs_inobt_key            inobt;
+       struct {
+               struct xfs_rmap_key     rmap;
+               struct xfs_rmap_key     rmap_hi;
+       };
 };
 
 union xfs_btree_rec {
-       xfs_bmbt_rec_t          bmbt;
-       xfs_bmdr_rec_t          bmbr;   /* bmbt root block */
-       xfs_alloc_rec_t         alloc;
-       xfs_inobt_rec_t         inobt;
+       struct xfs_bmbt_rec             bmbt;
+       xfs_bmdr_rec_t                  bmbr;   /* bmbt root block */
+       struct xfs_alloc_rec            alloc;
+       struct xfs_inobt_rec            inobt;
+       struct xfs_rmap_rec             rmap;
 };
 
 /*
@@ -77,6 +83,7 @@ union xfs_btree_rec {
 #define        XFS_BTNUM_BMAP  ((xfs_btnum_t)XFS_BTNUM_BMAPi)
 #define        XFS_BTNUM_INO   ((xfs_btnum_t)XFS_BTNUM_INOi)
 #define        XFS_BTNUM_FINO  ((xfs_btnum_t)XFS_BTNUM_FINOi)
+#define        XFS_BTNUM_RMAP  ((xfs_btnum_t)XFS_BTNUM_RMAPi)
 
 /*
  * For logging record fields.
@@ -109,6 +116,7 @@ do {    \
        case XFS_BTNUM_BMAP: __XFS_BTREE_STATS_INC(__mp, bmbt, stat); break; \
        case XFS_BTNUM_INO: __XFS_BTREE_STATS_INC(__mp, ibt, stat); break; \
        case XFS_BTNUM_FINO: __XFS_BTREE_STATS_INC(__mp, fibt, stat); break; \
+       case XFS_BTNUM_RMAP: __XFS_BTREE_STATS_INC(__mp, rmap, stat); break; \
        case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break;       \
        }       \
 } while (0)
@@ -129,11 +137,13 @@ do {    \
                __XFS_BTREE_STATS_ADD(__mp, ibt, stat, val); break; \
        case XFS_BTNUM_FINO:    \
                __XFS_BTREE_STATS_ADD(__mp, fibt, stat, val); break; \
+       case XFS_BTNUM_RMAP:    \
+               __XFS_BTREE_STATS_ADD(__mp, rmap, stat, val); break; \
        case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \
        }       \
 } while (0)
 
-#define        XFS_BTREE_MAXLEVELS     8       /* max of all btrees */
+#define        XFS_BTREE_MAXLEVELS     9       /* max of all btrees */
 
 struct xfs_btree_ops {
        /* size of the key and record structures */
@@ -204,19 +214,6 @@ struct xfs_btree_ops {
                                union xfs_btree_rec *r1,
                                union xfs_btree_rec *r2);
 #endif
-
-       /* derive the low & high keys from the records in a leaf block */
-       void    (*get_leaf_keys)(struct xfs_btree_cur *cur,
-                                struct xfs_btree_block *block,
-                                union xfs_btree_key *key);
-
-       /* derive the low & high keys from the keys in a node block */
-       void    (*get_node_keys)(struct xfs_btree_cur *cur,
-                                struct xfs_btree_block *block,
-                                union xfs_btree_key *key);
-
-       /* update the parent keys of given btree level */
-       int     (*update_keys)(struct xfs_btree_cur *cur, int level);
 };
 
 /*
@@ -231,6 +228,7 @@ union xfs_btree_irec {
        struct xfs_alloc_rec_incore     a;
        struct xfs_bmbt_irec            b;
        struct xfs_inobt_rec_incore     i;
+       struct xfs_rmap_irec            r;
 };
 
 /*
@@ -255,12 +253,12 @@ typedef struct xfs_btree_cur
        union {
                struct {                        /* needed for BNO, CNT, INO */
                        struct xfs_buf  *agbp;  /* agf/agi buffer pointer */
-                       struct xfs_defer_ops *flist;    /* deferred updates */
+                       struct xfs_defer_ops *dfops;    /* deferred updates */
                        xfs_agnumber_t  agno;   /* ag number */
                } a;
                struct {                        /* needed for BMAP */
                        struct xfs_inode *ip;   /* pointer to our inode */
-                       struct xfs_defer_ops *flist;    /* deferred updates */
+                       struct xfs_defer_ops *dfops;    /* deferred updates */
                        xfs_fsblock_t   firstblock;     /* 1st blk allocated */
                        int             allocated;      /* count of alloced */
                        short           forksize;       /* fork's inode space */
@@ -516,17 +514,6 @@ bool xfs_btree_sblock_verify(struct xfs_buf *bp, unsigned int max_recs);
 uint xfs_btree_compute_maxlevels(struct xfs_mount *mp, uint *limits,
                                 unsigned long len);
 
-void xfs_btree_get_leaf_keys(struct xfs_btree_cur *cur,
-               struct xfs_btree_block *block, union xfs_btree_key *key);
-void xfs_btree_get_node_keys(struct xfs_btree_cur *cur,
-               struct xfs_btree_block *block, union xfs_btree_key *key);
-int xfs_btree_update_keys(struct xfs_btree_cur *cur, int level);
-void xfs_btree_get_leaf_keys_overlapped(struct xfs_btree_cur *cur,
-               struct xfs_btree_block *block, union xfs_btree_key *key);
-void xfs_btree_get_node_keys_overlapped(struct xfs_btree_cur *cur,
-               struct xfs_btree_block *block, union xfs_btree_key *key);
-int xfs_btree_update_keys_overlapped(struct xfs_btree_cur *cur, int level);
-
 /* return codes */
 #define XFS_BTREE_QUERY_RANGE_CONTINUE 0       /* keep iterating */
 #define XFS_BTREE_QUERY_RANGE_ABORT    1       /* stop iterating */