|
@@ -58,7 +58,7 @@ STATIC void xfs_bmbt_log_ptrs(xfs_btree_cur_t *, xfs_buf_t *, int, int);
|
|
|
STATIC int xfs_bmbt_lshift(xfs_btree_cur_t *, int, int *);
|
|
|
STATIC int xfs_bmbt_rshift(xfs_btree_cur_t *, int, int *);
|
|
|
STATIC int xfs_bmbt_split(xfs_btree_cur_t *, int, xfs_fsblock_t *,
|
|
|
- xfs_bmbt_key_t *, xfs_btree_cur_t **, int *);
|
|
|
+ __uint64_t *, xfs_btree_cur_t **, int *);
|
|
|
STATIC int xfs_bmbt_updkey(xfs_btree_cur_t *, xfs_bmbt_key_t *, int);
|
|
|
|
|
|
|
|
@@ -192,16 +192,11 @@ xfs_bmbt_trace_argifk(
|
|
|
xfs_btree_cur_t *cur,
|
|
|
int i,
|
|
|
xfs_fsblock_t f,
|
|
|
- xfs_bmbt_key_t *k,
|
|
|
+ xfs_dfiloff_t o,
|
|
|
int line)
|
|
|
{
|
|
|
- xfs_dfsbno_t d;
|
|
|
- xfs_dfiloff_t o;
|
|
|
-
|
|
|
- d = (xfs_dfsbno_t)f;
|
|
|
- o = INT_GET(k->br_startoff, ARCH_CONVERT);
|
|
|
xfs_bmbt_trace_enter(func, cur, ARGS, XFS_BMBT_KTRACE_ARGIFK, line,
|
|
|
- i, d >> 32, (int)d, o >> 32,
|
|
|
+ i, (xfs_dfsbno_t)f >> 32, (int)f, o >> 32,
|
|
|
(int)o, 0, 0, 0,
|
|
|
0, 0, 0);
|
|
|
}
|
|
@@ -248,7 +243,7 @@ xfs_bmbt_trace_argik(
|
|
|
{
|
|
|
xfs_dfiloff_t o;
|
|
|
|
|
|
- o = INT_GET(k->br_startoff, ARCH_CONVERT);
|
|
|
+ o = be64_to_cpu(k->br_startoff);
|
|
|
xfs_bmbt_trace_enter(func, cur, ARGS, XFS_BMBT_KTRACE_ARGIFK, line,
|
|
|
i, o >> 32, (int)o, 0,
|
|
|
0, 0, 0, 0,
|
|
@@ -286,8 +281,8 @@ xfs_bmbt_trace_cursor(
|
|
|
xfs_bmbt_trace_argfffi(fname, c, o, b, i, j, __LINE__)
|
|
|
#define XFS_BMBT_TRACE_ARGI(c,i) \
|
|
|
xfs_bmbt_trace_argi(fname, c, i, __LINE__)
|
|
|
-#define XFS_BMBT_TRACE_ARGIFK(c,i,f,k) \
|
|
|
- xfs_bmbt_trace_argifk(fname, c, i, f, k, __LINE__)
|
|
|
+#define XFS_BMBT_TRACE_ARGIFK(c,i,f,s) \
|
|
|
+ xfs_bmbt_trace_argifk(fname, c, i, f, s, __LINE__)
|
|
|
#define XFS_BMBT_TRACE_ARGIFR(c,i,f,r) \
|
|
|
xfs_bmbt_trace_argifr(fname, c, i, f, r, __LINE__)
|
|
|
#define XFS_BMBT_TRACE_ARGIK(c,i,k) \
|
|
@@ -299,7 +294,7 @@ xfs_bmbt_trace_cursor(
|
|
|
#define XFS_BMBT_TRACE_ARGBII(c,b,i,j)
|
|
|
#define XFS_BMBT_TRACE_ARGFFFI(c,o,b,i,j)
|
|
|
#define XFS_BMBT_TRACE_ARGI(c,i)
|
|
|
-#define XFS_BMBT_TRACE_ARGIFK(c,i,f,k)
|
|
|
+#define XFS_BMBT_TRACE_ARGIFK(c,i,f,s)
|
|
|
#define XFS_BMBT_TRACE_ARGIFR(c,i,f,r)
|
|
|
#define XFS_BMBT_TRACE_ARGIK(c,i,k)
|
|
|
#define XFS_BMBT_TRACE_CURSOR(c,s)
|
|
@@ -404,7 +399,8 @@ xfs_bmbt_delrec(
|
|
|
xfs_bmbt_log_recs(cur, bp, ptr, numrecs - 1);
|
|
|
}
|
|
|
if (ptr == 1) {
|
|
|
- INT_SET(key.br_startoff, ARCH_CONVERT, xfs_bmbt_disk_get_startoff(rp));
|
|
|
+ key.br_startoff =
|
|
|
+ cpu_to_be64(xfs_bmbt_disk_get_startoff(rp));
|
|
|
kp = &key;
|
|
|
}
|
|
|
}
|
|
@@ -748,7 +744,7 @@ xfs_bmbt_insrec(
|
|
|
int logflags; /* inode logging flags */
|
|
|
xfs_fsblock_t nbno; /* new block number */
|
|
|
struct xfs_btree_cur *ncur; /* new btree cursor */
|
|
|
- xfs_bmbt_key_t nkey; /* new btree key value */
|
|
|
+ __uint64_t startoff; /* new btree key value */
|
|
|
xfs_bmbt_rec_t nrec; /* new record count */
|
|
|
int optr; /* old key/record index */
|
|
|
xfs_bmbt_ptr_t *pp; /* pointer to bmap block addr */
|
|
@@ -760,8 +756,7 @@ xfs_bmbt_insrec(
|
|
|
XFS_BMBT_TRACE_CURSOR(cur, ENTRY);
|
|
|
XFS_BMBT_TRACE_ARGIFR(cur, level, *bnop, recp);
|
|
|
ncur = (xfs_btree_cur_t *)0;
|
|
|
- INT_SET(key.br_startoff, ARCH_CONVERT,
|
|
|
- xfs_bmbt_disk_get_startoff(recp));
|
|
|
+ key.br_startoff = cpu_to_be64(xfs_bmbt_disk_get_startoff(recp));
|
|
|
optr = ptr = cur->bc_ptrs[level];
|
|
|
if (ptr == 0) {
|
|
|
XFS_BMBT_TRACE_CURSOR(cur, EXIT);
|
|
@@ -820,7 +815,7 @@ xfs_bmbt_insrec(
|
|
|
optr = ptr = cur->bc_ptrs[level];
|
|
|
} else {
|
|
|
if ((error = xfs_bmbt_split(cur, level,
|
|
|
- &nbno, &nkey, &ncur,
|
|
|
+ &nbno, &startoff, &ncur,
|
|
|
&i))) {
|
|
|
XFS_BMBT_TRACE_CURSOR(cur,
|
|
|
ERROR);
|
|
@@ -840,7 +835,7 @@ xfs_bmbt_insrec(
|
|
|
#endif
|
|
|
ptr = cur->bc_ptrs[level];
|
|
|
xfs_bmbt_disk_set_allf(&nrec,
|
|
|
- nkey.br_startoff, 0, 0,
|
|
|
+ startoff, 0, 0,
|
|
|
XFS_EXT_NORM);
|
|
|
} else {
|
|
|
XFS_BMBT_TRACE_CURSOR(cur,
|
|
@@ -1169,7 +1164,7 @@ xfs_bmbt_lookup(
|
|
|
keyno = (low + high) >> 1;
|
|
|
if (level > 0) {
|
|
|
kkp = kkbase + keyno - 1;
|
|
|
- startoff = INT_GET(kkp->br_startoff, ARCH_CONVERT);
|
|
|
+ startoff = be64_to_cpu(kkp->br_startoff);
|
|
|
} else {
|
|
|
krp = krbase + keyno - 1;
|
|
|
startoff = xfs_bmbt_disk_get_startoff(krp);
|
|
@@ -1353,8 +1348,7 @@ xfs_bmbt_lshift(
|
|
|
} else {
|
|
|
memmove(rrp, rrp + 1, rrecs * sizeof(*rrp));
|
|
|
xfs_bmbt_log_recs(cur, rbp, 1, rrecs);
|
|
|
- INT_SET(key.br_startoff, ARCH_CONVERT,
|
|
|
- xfs_bmbt_disk_get_startoff(rrp));
|
|
|
+ key.br_startoff = cpu_to_be64(xfs_bmbt_disk_get_startoff(rrp));
|
|
|
rkp = &key;
|
|
|
}
|
|
|
if ((error = xfs_bmbt_updkey(cur, rkp, level + 1))) {
|
|
@@ -1468,8 +1462,7 @@ xfs_bmbt_rshift(
|
|
|
memmove(rrp + 1, rrp, be16_to_cpu(right->bb_numrecs) * sizeof(*rrp));
|
|
|
*rrp = *lrp;
|
|
|
xfs_bmbt_log_recs(cur, rbp, 1, be16_to_cpu(right->bb_numrecs) + 1);
|
|
|
- INT_SET(key.br_startoff, ARCH_CONVERT,
|
|
|
- xfs_bmbt_disk_get_startoff(rrp));
|
|
|
+ key.br_startoff = cpu_to_be64(xfs_bmbt_disk_get_startoff(rrp));
|
|
|
rkp = &key;
|
|
|
}
|
|
|
be16_add(&left->bb_numrecs, -1);
|
|
@@ -1534,7 +1527,7 @@ xfs_bmbt_split(
|
|
|
xfs_btree_cur_t *cur,
|
|
|
int level,
|
|
|
xfs_fsblock_t *bnop,
|
|
|
- xfs_bmbt_key_t *keyp,
|
|
|
+ __uint64_t *startoff,
|
|
|
xfs_btree_cur_t **curp,
|
|
|
int *stat) /* success/failure */
|
|
|
{
|
|
@@ -1559,7 +1552,7 @@ xfs_bmbt_split(
|
|
|
xfs_bmbt_rec_t *rrp; /* right record pointer */
|
|
|
|
|
|
XFS_BMBT_TRACE_CURSOR(cur, ENTRY);
|
|
|
- XFS_BMBT_TRACE_ARGIFK(cur, level, *bnop, keyp);
|
|
|
+ XFS_BMBT_TRACE_ARGIFK(cur, level, *bnop, *startoff);
|
|
|
args.tp = cur->bc_tp;
|
|
|
args.mp = cur->bc_mp;
|
|
|
lbp = cur->bc_bufs[level];
|
|
@@ -1628,13 +1621,13 @@ xfs_bmbt_split(
|
|
|
memcpy(rpp, lpp, be16_to_cpu(right->bb_numrecs) * sizeof(*rpp));
|
|
|
xfs_bmbt_log_keys(cur, rbp, 1, be16_to_cpu(right->bb_numrecs));
|
|
|
xfs_bmbt_log_ptrs(cur, rbp, 1, be16_to_cpu(right->bb_numrecs));
|
|
|
- keyp->br_startoff = INT_GET(rkp->br_startoff, ARCH_CONVERT);
|
|
|
+ *startoff = be64_to_cpu(rkp->br_startoff);
|
|
|
} else {
|
|
|
lrp = XFS_BMAP_REC_IADDR(left, i, cur);
|
|
|
rrp = XFS_BMAP_REC_IADDR(right, 1, cur);
|
|
|
memcpy(rrp, lrp, be16_to_cpu(right->bb_numrecs) * sizeof(*rrp));
|
|
|
xfs_bmbt_log_recs(cur, rbp, 1, be16_to_cpu(right->bb_numrecs));
|
|
|
- keyp->br_startoff = xfs_bmbt_disk_get_startoff(rrp);
|
|
|
+ *startoff = xfs_bmbt_disk_get_startoff(rrp);
|
|
|
}
|
|
|
be16_add(&left->bb_numrecs, -(be16_to_cpu(right->bb_numrecs)));
|
|
|
right->bb_rightsib = left->bb_rightsib;
|
|
@@ -2738,7 +2731,7 @@ xfs_bmbt_update(
|
|
|
XFS_BMBT_TRACE_CURSOR(cur, EXIT);
|
|
|
return 0;
|
|
|
}
|
|
|
- INT_SET(key.br_startoff, ARCH_CONVERT, off);
|
|
|
+ key.br_startoff = cpu_to_be64(off);
|
|
|
if ((error = xfs_bmbt_updkey(cur, &key, 1))) {
|
|
|
XFS_BMBT_TRACE_CURSOR(cur, ERROR);
|
|
|
return error;
|