|
@@ -70,11 +70,11 @@ xfs_dir2_data_check(
|
|
|
|
|
|
mp = dp->i_mount;
|
|
|
d = bp->data;
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
bf = d->hdr.bestfree;
|
|
|
p = (char *)d->u;
|
|
|
- if (INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
+ if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
btp = XFS_DIR2_BLOCK_TAIL_P(mp, (xfs_dir2_block_t *)d);
|
|
|
lep = XFS_DIR2_BLOCK_LEAF_P(btp);
|
|
|
endp = (char *)lep;
|
|
@@ -96,8 +96,8 @@ xfs_dir2_data_check(
|
|
|
ASSERT(!bf[2].offset);
|
|
|
freeseen |= 1 << 2;
|
|
|
}
|
|
|
- ASSERT(INT_GET(bf[0].length, ARCH_CONVERT) >= INT_GET(bf[1].length, ARCH_CONVERT));
|
|
|
- ASSERT(INT_GET(bf[1].length, ARCH_CONVERT) >= INT_GET(bf[2].length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(bf[0].length) >= be16_to_cpu(bf[1].length));
|
|
|
+ ASSERT(be16_to_cpu(bf[1].length) >= be16_to_cpu(bf[2].length));
|
|
|
/*
|
|
|
* Loop over the data/unused entries.
|
|
|
*/
|
|
@@ -117,8 +117,10 @@ xfs_dir2_data_check(
|
|
|
i = (int)(dfp - bf);
|
|
|
ASSERT((freeseen & (1 << i)) == 0);
|
|
|
freeseen |= 1 << i;
|
|
|
- } else
|
|
|
- ASSERT(INT_GET(dup->length, ARCH_CONVERT) <= INT_GET(bf[2].length, ARCH_CONVERT));
|
|
|
+ } else {
|
|
|
+ ASSERT(INT_GET(dup->length, ARCH_CONVERT) <=
|
|
|
+ be16_to_cpu(bf[2].length));
|
|
|
+ }
|
|
|
p += INT_GET(dup->length, ARCH_CONVERT);
|
|
|
lastfree = 1;
|
|
|
continue;
|
|
@@ -136,7 +138,7 @@ xfs_dir2_data_check(
|
|
|
(char *)dep - (char *)d);
|
|
|
count++;
|
|
|
lastfree = 0;
|
|
|
- if (INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
+ if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
addr = XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk,
|
|
|
(xfs_dir2_data_aoff_t)
|
|
|
((char *)dep - (char *)d));
|
|
@@ -154,7 +156,7 @@ xfs_dir2_data_check(
|
|
|
* Need to have seen all the entries and all the bestfree slots.
|
|
|
*/
|
|
|
ASSERT(freeseen == 7);
|
|
|
- if (INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
+ if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
for (i = stale = 0; i < INT_GET(btp->count, ARCH_CONVERT); i++) {
|
|
|
if (INT_GET(lep[i].address, ARCH_CONVERT) == XFS_DIR2_NULL_DATAPTR)
|
|
|
stale++;
|
|
@@ -190,8 +192,8 @@ xfs_dir2_data_freefind(
|
|
|
* Check order, non-overlapping entries, and if we find the
|
|
|
* one we're looking for it has to be exact.
|
|
|
*/
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
for (dfp = &d->hdr.bestfree[0], seenzero = matched = 0;
|
|
|
dfp < &d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT];
|
|
|
dfp++) {
|
|
@@ -201,23 +203,24 @@ xfs_dir2_data_freefind(
|
|
|
continue;
|
|
|
}
|
|
|
ASSERT(seenzero == 0);
|
|
|
- if (INT_GET(dfp->offset, ARCH_CONVERT) == off) {
|
|
|
+ if (be16_to_cpu(dfp->offset) == off) {
|
|
|
matched = 1;
|
|
|
- ASSERT(INT_GET(dfp->length, ARCH_CONVERT) == INT_GET(dup->length, ARCH_CONVERT));
|
|
|
- } else if (off < INT_GET(dfp->offset, ARCH_CONVERT))
|
|
|
- ASSERT(off + INT_GET(dup->length, ARCH_CONVERT) <= INT_GET(dfp->offset, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp->length) == INT_GET(dup->length, ARCH_CONVERT));
|
|
|
+ } else if (off < be16_to_cpu(dfp->offset))
|
|
|
+ ASSERT(off + INT_GET(dup->length, ARCH_CONVERT) <= be16_to_cpu(dfp->offset));
|
|
|
else
|
|
|
- ASSERT(INT_GET(dfp->offset, ARCH_CONVERT) + INT_GET(dfp->length, ARCH_CONVERT) <= off);
|
|
|
- ASSERT(matched || INT_GET(dfp->length, ARCH_CONVERT) >= INT_GET(dup->length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp->offset) + be16_to_cpu(dfp->length) <= off);
|
|
|
+ ASSERT(matched || be16_to_cpu(dfp->length) >= INT_GET(dup->length, ARCH_CONVERT));
|
|
|
if (dfp > &d->hdr.bestfree[0])
|
|
|
- ASSERT(INT_GET(dfp[-1].length, ARCH_CONVERT) >= INT_GET(dfp[0].length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp[-1].length) >= be16_to_cpu(dfp[0].length));
|
|
|
}
|
|
|
#endif
|
|
|
/*
|
|
|
* If this is smaller than the smallest bestfree entry,
|
|
|
* it can't be there since they're sorted.
|
|
|
*/
|
|
|
- if (INT_GET(dup->length, ARCH_CONVERT) < INT_GET(d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length, ARCH_CONVERT))
|
|
|
+ if (INT_GET(dup->length, ARCH_CONVERT) <
|
|
|
+ be16_to_cpu(d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length))
|
|
|
return NULL;
|
|
|
/*
|
|
|
* Look at the three bestfree entries for our guy.
|
|
@@ -227,7 +230,7 @@ xfs_dir2_data_freefind(
|
|
|
dfp++) {
|
|
|
if (!dfp->offset)
|
|
|
return NULL;
|
|
|
- if (INT_GET(dfp->offset, ARCH_CONVERT) == off)
|
|
|
+ if (be16_to_cpu(dfp->offset) == off)
|
|
|
return dfp;
|
|
|
}
|
|
|
/*
|
|
@@ -249,29 +252,29 @@ xfs_dir2_data_freeinsert(
|
|
|
xfs_dir2_data_free_t new; /* new bestfree entry */
|
|
|
|
|
|
#ifdef __KERNEL__
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
#endif
|
|
|
dfp = d->hdr.bestfree;
|
|
|
- INT_COPY(new.length, dup->length, ARCH_CONVERT);
|
|
|
- INT_SET(new.offset, ARCH_CONVERT, (xfs_dir2_data_off_t)((char *)dup - (char *)d));
|
|
|
+ new.length = dup->length;
|
|
|
+ new.offset = cpu_to_be16((char *)dup - (char *)d);
|
|
|
/*
|
|
|
* Insert at position 0, 1, or 2; or not at all.
|
|
|
*/
|
|
|
- if (INT_GET(new.length, ARCH_CONVERT) > INT_GET(dfp[0].length, ARCH_CONVERT)) {
|
|
|
+ if (be16_to_cpu(new.length) > be16_to_cpu(dfp[0].length)) {
|
|
|
dfp[2] = dfp[1];
|
|
|
dfp[1] = dfp[0];
|
|
|
dfp[0] = new;
|
|
|
*loghead = 1;
|
|
|
return &dfp[0];
|
|
|
}
|
|
|
- if (INT_GET(new.length, ARCH_CONVERT) > INT_GET(dfp[1].length, ARCH_CONVERT)) {
|
|
|
+ if (be16_to_cpu(new.length) > be16_to_cpu(dfp[1].length)) {
|
|
|
dfp[2] = dfp[1];
|
|
|
dfp[1] = new;
|
|
|
*loghead = 1;
|
|
|
return &dfp[1];
|
|
|
}
|
|
|
- if (INT_GET(new.length, ARCH_CONVERT) > INT_GET(dfp[2].length, ARCH_CONVERT)) {
|
|
|
+ if (be16_to_cpu(new.length) > be16_to_cpu(dfp[2].length)) {
|
|
|
dfp[2] = new;
|
|
|
*loghead = 1;
|
|
|
return &dfp[2];
|
|
@@ -289,8 +292,8 @@ xfs_dir2_data_freeremove(
|
|
|
int *loghead) /* out: log data header */
|
|
|
{
|
|
|
#ifdef __KERNEL__
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
#endif
|
|
|
/*
|
|
|
* It's the first entry, slide the next 2 up.
|
|
@@ -334,8 +337,8 @@ xfs_dir2_data_freescan(
|
|
|
char *p; /* current entry pointer */
|
|
|
|
|
|
#ifdef __KERNEL__
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
#endif
|
|
|
/*
|
|
|
* Start by clearing the table.
|
|
@@ -348,7 +351,7 @@ xfs_dir2_data_freescan(
|
|
|
p = (char *)d->u;
|
|
|
if (aendp)
|
|
|
endp = aendp;
|
|
|
- else if (INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
+ else if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) {
|
|
|
btp = XFS_DIR2_BLOCK_TAIL_P(mp, (xfs_dir2_block_t *)d);
|
|
|
endp = (char *)XFS_DIR2_BLOCK_LEAF_P(btp);
|
|
|
} else
|
|
@@ -415,8 +418,8 @@ xfs_dir2_data_init(
|
|
|
* Initialize the header.
|
|
|
*/
|
|
|
d = bp->data;
|
|
|
- INT_SET(d->hdr.magic, ARCH_CONVERT, XFS_DIR2_DATA_MAGIC);
|
|
|
- INT_SET(d->hdr.bestfree[0].offset, ARCH_CONVERT, (xfs_dir2_data_off_t)sizeof(d->hdr));
|
|
|
+ d->hdr.magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC);
|
|
|
+ d->hdr.bestfree[0].offset = cpu_to_be16(sizeof(d->hdr));
|
|
|
for (i = 1; i < XFS_DIR2_DATA_FD_COUNT; i++) {
|
|
|
d->hdr.bestfree[i].length = 0;
|
|
|
d->hdr.bestfree[i].offset = 0;
|
|
@@ -428,7 +431,7 @@ xfs_dir2_data_init(
|
|
|
INT_SET(dup->freetag, ARCH_CONVERT, XFS_DIR2_DATA_FREE_TAG);
|
|
|
|
|
|
t=mp->m_dirblksize - (uint)sizeof(d->hdr);
|
|
|
- INT_SET(d->hdr.bestfree[0].length, ARCH_CONVERT, t);
|
|
|
+ d->hdr.bestfree[0].length = cpu_to_be16(t);
|
|
|
INT_SET(dup->length, ARCH_CONVERT, t);
|
|
|
INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(dup), ARCH_CONVERT,
|
|
|
(xfs_dir2_data_off_t)((char *)dup - (char *)d));
|
|
@@ -453,8 +456,8 @@ xfs_dir2_data_log_entry(
|
|
|
xfs_dir2_data_t *d; /* data block pointer */
|
|
|
|
|
|
d = bp->data;
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)d),
|
|
|
(uint)((char *)(XFS_DIR2_DATA_ENTRY_TAG_P(dep) + 1) -
|
|
|
(char *)d - 1));
|
|
@@ -471,8 +474,8 @@ xfs_dir2_data_log_header(
|
|
|
xfs_dir2_data_t *d; /* data block pointer */
|
|
|
|
|
|
d = bp->data;
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
xfs_da_log_buf(tp, bp, (uint)((char *)&d->hdr - (char *)d),
|
|
|
(uint)(sizeof(d->hdr) - 1));
|
|
|
}
|
|
@@ -489,8 +492,8 @@ xfs_dir2_data_log_unused(
|
|
|
xfs_dir2_data_t *d; /* data block pointer */
|
|
|
|
|
|
d = bp->data;
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
/*
|
|
|
* Log the first part of the unused entry.
|
|
|
*/
|
|
@@ -533,12 +536,12 @@ xfs_dir2_data_make_free(
|
|
|
/*
|
|
|
* Figure out where the end of the data area is.
|
|
|
*/
|
|
|
- if (INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC)
|
|
|
+ if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC)
|
|
|
endptr = (char *)d + mp->m_dirblksize;
|
|
|
else {
|
|
|
xfs_dir2_block_tail_t *btp; /* block tail */
|
|
|
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
btp = XFS_DIR2_BLOCK_TAIL_P(mp, (xfs_dir2_block_t *)d);
|
|
|
endptr = (char *)XFS_DIR2_BLOCK_LEAF_P(btp);
|
|
|
}
|
|
@@ -586,7 +589,7 @@ xfs_dir2_data_make_free(
|
|
|
* since the third bestfree is there, there might be more
|
|
|
* entries.
|
|
|
*/
|
|
|
- needscan = d->hdr.bestfree[2].length;
|
|
|
+ needscan = (d->hdr.bestfree[2].length != 0);
|
|
|
/*
|
|
|
* Fix up the new big freespace.
|
|
|
*/
|
|
@@ -614,7 +617,7 @@ xfs_dir2_data_make_free(
|
|
|
*/
|
|
|
dfp = xfs_dir2_data_freeinsert(d, prevdup, needlogp);
|
|
|
ASSERT(dfp == &d->hdr.bestfree[0]);
|
|
|
- ASSERT(INT_GET(dfp->length, ARCH_CONVERT) == INT_GET(prevdup->length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp->length) == INT_GET(prevdup->length, ARCH_CONVERT));
|
|
|
ASSERT(!dfp[1].length);
|
|
|
ASSERT(!dfp[2].length);
|
|
|
}
|
|
@@ -640,8 +643,10 @@ xfs_dir2_data_make_free(
|
|
|
/*
|
|
|
* Otherwise we need a scan if the new entry is big enough.
|
|
|
*/
|
|
|
- else
|
|
|
- needscan = INT_GET(prevdup->length, ARCH_CONVERT) > INT_GET(d->hdr.bestfree[2].length, ARCH_CONVERT);
|
|
|
+ else {
|
|
|
+ needscan = INT_GET(prevdup->length, ARCH_CONVERT) >
|
|
|
+ be16_to_cpu(d->hdr.bestfree[2].length);
|
|
|
+ }
|
|
|
}
|
|
|
/*
|
|
|
* The following entry is free, merge with it.
|
|
@@ -666,8 +671,10 @@ xfs_dir2_data_make_free(
|
|
|
/*
|
|
|
* Otherwise we need a scan if the new entry is big enough.
|
|
|
*/
|
|
|
- else
|
|
|
- needscan = INT_GET(newdup->length, ARCH_CONVERT) > INT_GET(d->hdr.bestfree[2].length, ARCH_CONVERT);
|
|
|
+ else {
|
|
|
+ needscan = INT_GET(newdup->length, ARCH_CONVERT) >
|
|
|
+ be16_to_cpu(d->hdr.bestfree[2].length);
|
|
|
+ }
|
|
|
}
|
|
|
/*
|
|
|
* Neither neighbor is free. Make a new entry.
|
|
@@ -707,8 +714,8 @@ xfs_dir2_data_use_free(
|
|
|
int oldlen; /* old unused entry's length */
|
|
|
|
|
|
d = bp->data;
|
|
|
- ASSERT(INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_DATA_MAGIC ||
|
|
|
- INT_GET(d->hdr.magic, ARCH_CONVERT) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
+ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC ||
|
|
|
+ be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC);
|
|
|
ASSERT(INT_GET(dup->freetag, ARCH_CONVERT) == XFS_DIR2_DATA_FREE_TAG);
|
|
|
ASSERT(offset >= (char *)dup - (char *)d);
|
|
|
ASSERT(offset + len <= (char *)dup + INT_GET(dup->length, ARCH_CONVERT) - (char *)d);
|
|
@@ -718,7 +725,7 @@ xfs_dir2_data_use_free(
|
|
|
*/
|
|
|
dfp = xfs_dir2_data_freefind(d, dup);
|
|
|
oldlen = INT_GET(dup->length, ARCH_CONVERT);
|
|
|
- ASSERT(dfp || oldlen <= INT_GET(d->hdr.bestfree[2].length, ARCH_CONVERT));
|
|
|
+ ASSERT(dfp || oldlen <= be16_to_cpu(d->hdr.bestfree[2].length));
|
|
|
/*
|
|
|
* Check for alignment with front and back of the entry.
|
|
|
*/
|
|
@@ -732,7 +739,7 @@ xfs_dir2_data_use_free(
|
|
|
*/
|
|
|
if (matchfront && matchback) {
|
|
|
if (dfp) {
|
|
|
- needscan = d->hdr.bestfree[2].offset;
|
|
|
+ needscan = (d->hdr.bestfree[2].offset != 0);
|
|
|
if (!needscan)
|
|
|
xfs_dir2_data_freeremove(d, dfp, needlogp);
|
|
|
}
|
|
@@ -755,8 +762,8 @@ xfs_dir2_data_use_free(
|
|
|
xfs_dir2_data_freeremove(d, dfp, needlogp);
|
|
|
dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp);
|
|
|
ASSERT(dfp != NULL);
|
|
|
- ASSERT(INT_GET(dfp->length, ARCH_CONVERT) == INT_GET(newdup->length, ARCH_CONVERT));
|
|
|
- ASSERT(INT_GET(dfp->offset, ARCH_CONVERT) == (char *)newdup - (char *)d);
|
|
|
+ ASSERT(be16_to_cpu(dfp->length) == INT_GET(newdup->length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d);
|
|
|
/*
|
|
|
* If we got inserted at the last slot,
|
|
|
* that means we don't know if there was a better
|
|
@@ -783,8 +790,8 @@ xfs_dir2_data_use_free(
|
|
|
xfs_dir2_data_freeremove(d, dfp, needlogp);
|
|
|
dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp);
|
|
|
ASSERT(dfp != NULL);
|
|
|
- ASSERT(INT_GET(dfp->length, ARCH_CONVERT) == INT_GET(newdup->length, ARCH_CONVERT));
|
|
|
- ASSERT(INT_GET(dfp->offset, ARCH_CONVERT) == (char *)newdup - (char *)d);
|
|
|
+ ASSERT(be16_to_cpu(dfp->length) == INT_GET(newdup->length, ARCH_CONVERT));
|
|
|
+ ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d);
|
|
|
/*
|
|
|
* If we got inserted at the last slot,
|
|
|
* that means we don't know if there was a better
|
|
@@ -819,7 +826,7 @@ xfs_dir2_data_use_free(
|
|
|
* the 2 new will work.
|
|
|
*/
|
|
|
if (dfp) {
|
|
|
- needscan = d->hdr.bestfree[2].length;
|
|
|
+ needscan = (d->hdr.bestfree[2].length != 0);
|
|
|
if (!needscan) {
|
|
|
xfs_dir2_data_freeremove(d, dfp, needlogp);
|
|
|
(void)xfs_dir2_data_freeinsert(d, newdup,
|