From: Nathan Scott Date: Mon, 29 Jul 2002 04:02:24 +0000 (+0000) Subject: sync up with recent changes to the corresponding kernel code. X-Git-Tag: v2.2.0~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4542f191955a58efb4ab7f4578f1eb4e4917280d;p=thirdparty%2Fxfsprogs-dev.git sync up with recent changes to the corresponding kernel code. --- diff --git a/include/xfs_da_btree.h b/include/xfs_da_btree.h index ceeccaad0..32bdfafc5 100644 --- a/include/xfs_da_btree.h +++ b/include/xfs_da_btree.h @@ -221,7 +221,7 @@ typedef struct xfs_dabuf { inst_t *ra; /* return address of caller to make */ struct xfs_dabuf *next; /* next in global chain */ struct xfs_dabuf *prev; /* previous in global chain */ - kdev_t dev; /* device for buffer */ + dev_t dev; /* device for buffer */ xfs_daddr_t blkno; /* daddr first in bps[0] */ #endif struct xfs_buf *bps[1]; /* actually nbuf of these */ diff --git a/include/xfs_inode.h b/include/xfs_inode.h index 5fdcb828b..a7555e455 100644 --- a/include/xfs_inode.h +++ b/include/xfs_inode.h @@ -196,9 +196,6 @@ typedef struct xfs_ihash { rwlock_t ih_lock; uint ih_version; } xfs_ihash_t; -#if defined(MP) -#pragma set type attribute xfs_ihash align=128 -#endif /* * Inode hashing and hash bucket locking. diff --git a/include/xfs_mount.h b/include/xfs_mount.h index e6f4f4564..2ad4a05aa 100644 --- a/include/xfs_mount.h +++ b/include/xfs_mount.h @@ -70,7 +70,7 @@ typedef struct xfs_trans_reservations { struct cred; struct vfs; struct vnode; -struct xfs_args; +struct xfs_mount_args; struct xfs_ihash; struct xfs_chash; struct xfs_inode; @@ -117,33 +117,18 @@ typedef xfs_fsize_t (*xfs_setsize_t)(void *, xfs_off_t); typedef xfs_fsize_t (*xfs_lastbyte_t)(void *); typedef struct xfs_ioops { - xfs_dio_write_t xfs_dio_write_func; - xfs_dio_read_t xfs_dio_read_func; - xfs_strat_write_t xfs_strat_write_func; xfs_bmapi_t xfs_bmapi_func; xfs_bmap_eof_t xfs_bmap_eof_func; - xfs_rsync_t xfs_rsync_func; - xfs_lck_map_shared_t xfs_lck_map_shared; xfs_lock_t xfs_ilock; xfs_lock_demote_t xfs_ilock_demote; xfs_lock_nowait_t xfs_ilock_nowait; xfs_unlk_t xfs_unlock; xfs_chgtime_t xfs_chgtime; xfs_size_t xfs_size_func; - xfs_setsize_t xfs_setsize_func; xfs_lastbyte_t xfs_lastbyte; } xfs_ioops_t; -#define XFS_DIO_WRITE(mp, diop) \ - (*(mp)->m_io_ops.xfs_dio_write_func)(diop) - -#define XFS_DIO_READ(mp, diop) \ - (*(mp)->m_io_ops.xfs_dio_read_func)(diop) - -#define XFS_STRAT_WRITE(mp, io, bp) \ - (*(mp)->m_io_ops.xfs_strat_write_func)(io, bp) - #define XFS_BMAPI(mp, trans,io,bno,len,f,first,tot,mval,nmap,flist) \ (*(mp)->m_io_ops.xfs_bmapi_func) \ (trans,(io)->io_obj,bno,len,f,first,tot,mval,nmap,flist) @@ -152,36 +137,18 @@ typedef struct xfs_ioops { (*(mp)->m_io_ops.xfs_bmap_eof_func) \ ((io)->io_obj, endoff, whichfork, eof) -#define XFS_RSYNC(mp, io, ioflag, start, end) \ - (*(mp)->m_io_ops.xfs_rsync_func)((io)->io_obj, ioflag, start, end) - -#define XFS_LCK_MAP_SHARED(mp, io) \ - (*(mp)->m_io_ops.xfs_lck_map_shared)((io)->io_obj) - -#define XFS_UNLK_MAP_SHARED(mp, io, mode) \ - (*(mp)->m_io_ops.xfs_unlock)((io)->io_obj, mode) - #define XFS_ILOCK(mp, io, mode) \ (*(mp)->m_io_ops.xfs_ilock)((io)->io_obj, mode) -#define XFS_ILOCK_NOWAIT(mp, io, mode) \ - (*(mp)->m_io_ops.xfs_ilock_nowait)((io)->io_obj, mode) - #define XFS_IUNLOCK(mp, io, mode) \ (*(mp)->m_io_ops.xfs_unlock)((io)->io_obj, mode) #define XFS_ILOCK_DEMOTE(mp, io, mode) \ (*(mp)->m_io_ops.xfs_ilock_demote)((io)->io_obj, mode) -#define XFS_CHGTIME(mp, io, flags) \ - (*(mp)->m_io_ops.xfs_chgtime)((io)->io_obj, flags) - #define XFS_SIZE(mp, io) \ (*(mp)->m_io_ops.xfs_size_func)((io)->io_obj) -#define XFS_SETSIZE(mp, io, newsize) \ - (*(mp)->m_io_ops.xfs_setsize_func)((io)->io_obj, newsize) - #define XFS_LASTBYTE(mp, io) \ (*(mp)->m_io_ops.xfs_lastbyte)((io)->io_obj) @@ -369,7 +336,7 @@ typedef struct xfs_mount { #define XFS_WSYNC_READIO_LOG 15 /* 32K */ #define XFS_WSYNC_WRITEIO_LOG 14 /* 16K */ -#define xfs_force_shutdown(m,f) _xfs_force_shutdown(m,f,__FILE__,__LINE__); +#define xfs_force_shutdown(m,f) VFS_FORCE_SHUTDOWN(XFS_MTOVFS(m),f) /* * Flags sent to xfs_force_shutdown. */ @@ -377,9 +344,7 @@ typedef struct xfs_mount { #define XFS_LOG_IO_ERROR 0x2 #define XFS_FORCE_UMOUNT 0x4 #define XFS_CORRUPT_INCORE 0x8 /* corrupt in-memory data structures */ -#if CELL_CAPABLE -#define XFS_SHUTDOWN_REMOTE_REQ 0x10 /* shutdown req came from remote cell */ -#endif +#define XFS_SHUTDOWN_REMOTE_REQ 0x10 /* shutdown came from remote cell */ /* * xflags for xfs_syncsub @@ -459,10 +424,10 @@ typedef struct xfs_mod_sb { void xfs_mod_sb(xfs_trans_t *, __int64_t); xfs_mount_t *xfs_mount_init(void); void xfs_mount_free(xfs_mount_t *mp, int remove_bhv); -int xfs_mountfs(struct vfs *, xfs_mount_t *mp, kdev_t, int); +int xfs_mountfs(struct vfs *, xfs_mount_t *mp, dev_t, int); -int xfs_unmountfs(xfs_mount_t *, int, struct cred *); -void xfs_unmountfs_close(xfs_mount_t *, int, struct cred *); +int xfs_unmountfs(xfs_mount_t *, struct cred *); +void xfs_unmountfs_close(xfs_mount_t *, struct cred *); int xfs_unmountfs_writesb(xfs_mount_t *); int xfs_unmount_flush(xfs_mount_t *, int); int xfs_mod_incore_sb(xfs_mount_t *, xfs_sb_field_t, int, int); @@ -470,7 +435,7 @@ int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, uint, int); int xfs_readsb(xfs_mount_t *mp); struct xfs_buf *xfs_getsb(xfs_mount_t *, int); void xfs_freesb(xfs_mount_t *); -void _xfs_force_shutdown(struct xfs_mount *, int, char *, int); +void xfs_do_force_shutdown(bhv_desc_t *, int, char *, int); int xfs_syncsub(xfs_mount_t *, int, int, int *); void xfs_initialize_perag(xfs_mount_t *, int); void xfs_xlatesb(void *, struct xfs_sb *, int, xfs_arch_t, __int64_t); diff --git a/include/xfs_types.h b/include/xfs_types.h index fe2a18804..aa6fe38dd 100644 --- a/include/xfs_types.h +++ b/include/xfs_types.h @@ -32,6 +32,61 @@ #ifndef __XFS_TYPES_H__ #define __XFS_TYPES_H__ +#ifdef __KERNEL__ + +#include + +/* + * POSIX Extensions + */ +typedef unsigned char uchar_t; +typedef unsigned short ushort_t; +typedef unsigned int uint_t; +typedef unsigned long ulong_t; + +/* + * Additional type declarations for XFS + */ +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; +typedef signed long long int __int64_t; +typedef unsigned long long int __uint64_t; + +typedef enum { B_FALSE, B_TRUE } boolean_t; + + +typedef __int64_t prid_t; /* project ID */ +typedef __uint32_t inst_t; /* an instruction */ + +typedef __u64 xfs_off_t; +typedef __u64 xfs_ino_t; /* type */ +typedef __s64 xfs_daddr_t; /* type */ +typedef char * xfs_caddr_t; /* type */ +typedef __u32 xfs_dev_t; + +typedef struct timespec timespec_t; + +typedef struct { + unsigned char __u_bits[16]; +} uuid_t; + +/* __psint_t is the same size as a pointer */ +#if (BITS_PER_LONG == 32) +typedef __int32_t __psint_t; +typedef __uint32_t __psunsigned_t; +#elif (BITS_PER_LONG == 64) +typedef __int64_t __psint_t; +typedef __uint64_t __psunsigned_t; +#else +#error BITS_PER_LONG must be 32 or 64 +#endif + +#endif /* __KERNEL__ */ + /* * Some types are conditional based on the selected configuration. * Set XFS_BIG_FILESYSTEMS=1 or 0 depending on the desired configuration. @@ -140,7 +195,7 @@ typedef enum { } xfs_btnum_t; -#if defined(CONFIG_PROC_FS) && defined(__KERNEL__) +#if defined(CONFIG_PROC_FS) && defined(__KERNEL__) && !defined(XFS_STATS_OFF) /* * XFS global statistics */ @@ -272,18 +327,4 @@ extern struct xfsstats xfsstats; #define IRIX_DEV_TO_KDEVT(dev) MKDEV(IRIX_DEV_MAJOR(dev),IRIX_DEV_MINOR(dev)) -#ifdef __KERNEL__ -/* __psint_t is the same size as a pointer */ -#if (BITS_PER_LONG == 32) -typedef __int32_t __psint_t; -typedef __uint32_t __psunsigned_t; -#elif (BITS_PER_LONG == 64) -typedef __int64_t __psint_t; -typedef __uint64_t __psunsigned_t; -#else -#error BITS_PER_LONG must be 32 or 64 -#endif - -#endif /* __KERNEL__ */ - #endif /* !__XFS_TYPES_H */ diff --git a/libxfs/xfs_bmap_btree.c b/libxfs/xfs_bmap_btree.c index 6e8efeb04..26482b8da 100644 --- a/libxfs/xfs_bmap_btree.c +++ b/libxfs/xfs_bmap_btree.c @@ -74,6 +74,8 @@ xfs_bmbt_delrec( int rrecs=0; /* right record count */ xfs_bmbt_rec_t *rrp; /* right record pointer */ xfs_btree_cur_t *tcur; /* temporary btree cursor */ + int numrecs; /* temporary numrec count */ + int numlrecs, numrrecs; XFS_BMBT_TRACE_CURSOR(cur, ENTRY); XFS_BMBT_TRACE_ARGI(cur, level); @@ -85,13 +87,14 @@ xfs_bmbt_delrec( return 0; } block = xfs_bmbt_get_block(cur, level, &bp); + numrecs = INT_GET(block->bb_numrecs, ARCH_CONVERT); #ifdef DEBUG if ((error = xfs_btree_check_lblock(cur, block, level, bp))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); goto error0; } #endif - if (ptr > INT_GET(block->bb_numrecs, ARCH_CONVERT)) { + if (ptr > numrecs) { XFS_BMBT_TRACE_CURSOR(cur, EXIT); *stat = 0; return 0; @@ -101,34 +104,35 @@ xfs_bmbt_delrec( kp = XFS_BMAP_KEY_IADDR(block, 1, cur); pp = XFS_BMAP_PTR_IADDR(block, 1, cur); #ifdef DEBUG - for (i = ptr; i < INT_GET(block->bb_numrecs, ARCH_CONVERT); i++) { + for (i = ptr; i < numrecs; i++) { if ((error = xfs_btree_check_lptr(cur, INT_GET(pp[i], ARCH_CONVERT), level))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); goto error0; } } #endif - if (ptr < INT_GET(block->bb_numrecs, ARCH_CONVERT)) { + if (ptr < numrecs) { ovbcopy(&kp[ptr], &kp[ptr - 1], - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr) * sizeof(*kp)); + (numrecs - ptr) * sizeof(*kp)); ovbcopy(&pp[ptr], &pp[ptr - 1], /* INT_: direct copy */ - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr) * sizeof(*pp)); - xfs_bmbt_log_ptrs(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT) - 1); - xfs_bmbt_log_keys(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT) - 1); + (numrecs - ptr) * sizeof(*pp)); + xfs_bmbt_log_ptrs(cur, bp, ptr, numrecs - 1); + xfs_bmbt_log_keys(cur, bp, ptr, numrecs - 1); } } else { rp = XFS_BMAP_REC_IADDR(block, 1, cur); - if (ptr < INT_GET(block->bb_numrecs, ARCH_CONVERT)) { + if (ptr < numrecs) { ovbcopy(&rp[ptr], &rp[ptr - 1], - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr) * sizeof(*rp)); - xfs_bmbt_log_recs(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT) - 1); + (numrecs - ptr) * sizeof(*rp)); + xfs_bmbt_log_recs(cur, bp, ptr, numrecs - 1); } if (ptr == 1) { INT_SET(key.br_startoff, ARCH_CONVERT, xfs_bmbt_get_startoff(rp)); kp = &key; } } - INT_MOD(block->bb_numrecs, ARCH_CONVERT, -1); + numrecs--; + INT_SET(block->bb_numrecs, ARCH_CONVERT, numrecs); xfs_bmbt_log_block(cur, bp, XFS_BB_NUMRECS); /* * We're at the root level. @@ -155,7 +159,7 @@ xfs_bmbt_delrec( XFS_BMBT_TRACE_CURSOR(cur, ERROR); goto error0; } - if (INT_GET(block->bb_numrecs, ARCH_CONVERT) >= XFS_BMAP_BLOCK_IMINRECS(level, cur)) { + if (numrecs >= XFS_BMAP_BLOCK_IMINRECS(level, cur)) { if (level > 0 && (error = xfs_bmbt_decrement(cur, level, &j))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); goto error0; @@ -331,33 +335,32 @@ xfs_bmbt_delrec( *stat = 1; return 0; } + numlrecs = INT_GET(left->bb_numrecs, ARCH_CONVERT); + numrrecs = INT_GET(right->bb_numrecs, ARCH_CONVERT); if (level > 0) { - lkp = XFS_BMAP_KEY_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); - lpp = XFS_BMAP_PTR_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); + lkp = XFS_BMAP_KEY_IADDR(left, numlrecs + 1, cur); + lpp = XFS_BMAP_PTR_IADDR(left, numlrecs + 1, cur); rkp = XFS_BMAP_KEY_IADDR(right, 1, cur); rpp = XFS_BMAP_PTR_IADDR(right, 1, cur); #ifdef DEBUG - for (i = 0; i < INT_GET(right->bb_numrecs, ARCH_CONVERT); i++) { + for (i = 0; i < numrrecs; i++) { if ((error = xfs_btree_check_lptr(cur, INT_GET(rpp[i], ARCH_CONVERT), level))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); goto error0; } } #endif - bcopy(rkp, lkp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*lkp)); - bcopy(rpp, lpp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*lpp)); - xfs_bmbt_log_keys(cur, lbp, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, - INT_GET(left->bb_numrecs, ARCH_CONVERT) + INT_GET(right->bb_numrecs, ARCH_CONVERT)); - xfs_bmbt_log_ptrs(cur, lbp, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, - INT_GET(left->bb_numrecs, ARCH_CONVERT) + INT_GET(right->bb_numrecs, ARCH_CONVERT)); + bcopy(rkp, lkp, numrrecs * sizeof(*lkp)); + bcopy(rpp, lpp, numrrecs * sizeof(*lpp)); + xfs_bmbt_log_keys(cur, lbp, numlrecs + 1, numlrecs + numrrecs); + xfs_bmbt_log_ptrs(cur, lbp, numlrecs + 1, numlrecs + numrrecs); } else { - lrp = XFS_BMAP_REC_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); + lrp = XFS_BMAP_REC_IADDR(left, numlrecs + 1, cur); rrp = XFS_BMAP_REC_IADDR(right, 1, cur); - bcopy(rrp, lrp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*lrp)); - xfs_bmbt_log_recs(cur, lbp, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, - INT_GET(left->bb_numrecs, ARCH_CONVERT) + INT_GET(right->bb_numrecs, ARCH_CONVERT)); + bcopy(rrp, lrp, numrrecs * sizeof(*lrp)); + xfs_bmbt_log_recs(cur, lbp, numlrecs + 1, numlrecs + numrrecs); } - INT_MOD(left->bb_numrecs, ARCH_CONVERT, INT_GET(right->bb_numrecs, ARCH_CONVERT)); + INT_MOD(left->bb_numrecs, ARCH_CONVERT, numrrecs); left->bb_rightsib = right->bb_rightsib; /* INT_: direct copy */ xfs_bmbt_log_block(cur, lbp, XFS_BB_RIGHTSIB | XFS_BB_NUMRECS); if (INT_GET(left->bb_rightsib, ARCH_CONVERT) != NULLDFSBNO) { @@ -438,6 +441,7 @@ xfs_bmbt_insrec( xfs_bmbt_ptr_t *pp; /* pointer to bmap block addr */ int ptr; /* key/record index */ xfs_bmbt_rec_t *rp=NULL; /* pointer to bmap btree rec */ + int numrecs; ASSERT(level < cur->bc_nlevels); XFS_BMBT_TRACE_CURSOR(cur, ENTRY); @@ -452,12 +456,13 @@ xfs_bmbt_insrec( } XFS_STATS_INC(xfsstats.xs_bmbt_insrec); block = xfs_bmbt_get_block(cur, level, &bp); + numrecs = INT_GET(block->bb_numrecs, ARCH_CONVERT); #ifdef DEBUG if ((error = xfs_btree_check_lblock(cur, block, level, bp))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); return error; } - if (ptr <= INT_GET(block->bb_numrecs, ARCH_CONVERT)) { + if (ptr <= numrecs) { if (level == 0) { rp = XFS_BMAP_REC_IADDR(block, ptr, cur); xfs_btree_check_rec(XFS_BTNUM_BMAP, recp, rp); @@ -468,8 +473,8 @@ xfs_bmbt_insrec( } #endif nbno = NULLFSBLOCK; - if (INT_GET(block->bb_numrecs, ARCH_CONVERT) == XFS_BMAP_BLOCK_IMAXRECS(level, cur)) { - if (INT_GET(block->bb_numrecs, ARCH_CONVERT) < XFS_BMAP_BLOCK_DMAXRECS(level, cur)) { + if (numrecs == XFS_BMAP_BLOCK_IMAXRECS(level, cur)) { + if (numrecs < XFS_BMAP_BLOCK_DMAXRECS(level, cur)) { /* * A root block, that can be made bigger. */ @@ -533,11 +538,12 @@ xfs_bmbt_insrec( } } } + numrecs = INT_GET(block->bb_numrecs, ARCH_CONVERT); if (level > 0) { kp = XFS_BMAP_KEY_IADDR(block, 1, cur); pp = XFS_BMAP_PTR_IADDR(block, 1, cur); #ifdef DEBUG - for (i = INT_GET(block->bb_numrecs, ARCH_CONVERT); i >= ptr; i--) { + for (i = numrecs; i >= ptr; i--) { if ((error = xfs_btree_check_lptr(cur, INT_GET(pp[i - 1], ARCH_CONVERT), level))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); @@ -546,9 +552,9 @@ xfs_bmbt_insrec( } #endif ovbcopy(&kp[ptr - 1], &kp[ptr], - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr + 1) * sizeof(*kp)); + (numrecs - ptr + 1) * sizeof(*kp)); ovbcopy(&pp[ptr - 1], &pp[ptr], /* INT_: direct copy */ - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr + 1) * sizeof(*pp)); + (numrecs - ptr + 1) * sizeof(*pp)); #ifdef DEBUG if ((error = xfs_btree_check_lptr(cur, (xfs_bmbt_ptr_t)*bnop, level))) { @@ -558,20 +564,22 @@ xfs_bmbt_insrec( #endif kp[ptr - 1] = key; INT_SET(pp[ptr - 1], ARCH_CONVERT, *bnop); - INT_MOD(block->bb_numrecs, ARCH_CONVERT, +1); - xfs_bmbt_log_keys(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT)); - xfs_bmbt_log_ptrs(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT)); + numrecs++; + INT_SET(block->bb_numrecs, ARCH_CONVERT, numrecs); + xfs_bmbt_log_keys(cur, bp, ptr, numrecs); + xfs_bmbt_log_ptrs(cur, bp, ptr, numrecs); } else { rp = XFS_BMAP_REC_IADDR(block, 1, cur); ovbcopy(&rp[ptr - 1], &rp[ptr], - (INT_GET(block->bb_numrecs, ARCH_CONVERT) - ptr + 1) * sizeof(*rp)); + (numrecs - ptr + 1) * sizeof(*rp)); rp[ptr - 1] = *recp; - INT_MOD(block->bb_numrecs, ARCH_CONVERT, +1); - xfs_bmbt_log_recs(cur, bp, ptr, INT_GET(block->bb_numrecs, ARCH_CONVERT)); + numrecs++; + INT_SET(block->bb_numrecs, ARCH_CONVERT, numrecs); + xfs_bmbt_log_recs(cur, bp, ptr, numrecs); } xfs_bmbt_log_block(cur, bp, XFS_BB_NUMRECS); #ifdef DEBUG - if (ptr < INT_GET(block->bb_numrecs, ARCH_CONVERT)) { + if (ptr < numrecs) { if (level == 0) xfs_btree_check_rec(XFS_BTNUM_BMAP, rp + ptr - 1, rp + ptr); @@ -945,6 +953,7 @@ xfs_bmbt_lshift( xfs_bmbt_key_t *rkp=NULL; /* right btree key */ xfs_bmbt_ptr_t *rpp=NULL; /* right address pointer */ xfs_bmbt_rec_t *rrp=NULL; /* right record pointer */ + int rrecs; /* right record count */ XFS_BMBT_TRACE_CURSOR(cur, ENTRY); XFS_BMBT_TRACE_ARGI(cur, level); @@ -989,11 +998,11 @@ xfs_bmbt_lshift( } lrecs = INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1; if (level > 0) { - lkp = XFS_BMAP_KEY_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); + lkp = XFS_BMAP_KEY_IADDR(left, lrecs, cur); rkp = XFS_BMAP_KEY_IADDR(right, 1, cur); *lkp = *rkp; xfs_bmbt_log_keys(cur, lbp, lrecs, lrecs); - lpp = XFS_BMAP_PTR_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); + lpp = XFS_BMAP_PTR_IADDR(left, lrecs, cur); rpp = XFS_BMAP_PTR_IADDR(right, 1, cur); #ifdef DEBUG if ((error = xfs_btree_check_lptr(cur, INT_GET(*rpp, ARCH_CONVERT), level))) { @@ -1004,12 +1013,12 @@ xfs_bmbt_lshift( *lpp = *rpp; /* INT_: direct copy */ xfs_bmbt_log_ptrs(cur, lbp, lrecs, lrecs); } else { - lrp = XFS_BMAP_REC_IADDR(left, INT_GET(left->bb_numrecs, ARCH_CONVERT) + 1, cur); + lrp = XFS_BMAP_REC_IADDR(left, lrecs, cur); rrp = XFS_BMAP_REC_IADDR(right, 1, cur); *lrp = *rrp; xfs_bmbt_log_recs(cur, lbp, lrecs, lrecs); } - INT_MOD(left->bb_numrecs, ARCH_CONVERT, +1); + INT_SET(left->bb_numrecs, ARCH_CONVERT, lrecs); xfs_bmbt_log_block(cur, lbp, XFS_BB_NUMRECS); #ifdef DEBUG if (level > 0) @@ -1017,11 +1026,12 @@ xfs_bmbt_lshift( else xfs_btree_check_rec(XFS_BTNUM_BMAP, lrp - 1, lrp); #endif - INT_MOD(right->bb_numrecs, ARCH_CONVERT, -1); + rrecs = INT_GET(right->bb_numrecs, ARCH_CONVERT) - 1; + INT_SET(right->bb_numrecs, ARCH_CONVERT, rrecs); xfs_bmbt_log_block(cur, rbp, XFS_BB_NUMRECS); if (level > 0) { #ifdef DEBUG - for (i = 0; i < INT_GET(right->bb_numrecs, ARCH_CONVERT); i++) { + for (i = 0; i < rrecs; i++) { if ((error = xfs_btree_check_lptr(cur, INT_GET(rpp[i + 1], ARCH_CONVERT), level))) { XFS_BMBT_TRACE_CURSOR(cur, ERROR); @@ -1029,13 +1039,13 @@ xfs_bmbt_lshift( } } #endif - ovbcopy(rkp + 1, rkp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*rkp)); - ovbcopy(rpp + 1, rpp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*rpp)); - xfs_bmbt_log_keys(cur, rbp, 1, INT_GET(right->bb_numrecs, ARCH_CONVERT)); - xfs_bmbt_log_ptrs(cur, rbp, 1, INT_GET(right->bb_numrecs, ARCH_CONVERT)); + ovbcopy(rkp + 1, rkp, rrecs * sizeof(*rkp)); + ovbcopy(rpp + 1, rpp, rrecs * sizeof(*rpp)); + xfs_bmbt_log_keys(cur, rbp, 1, rrecs); + xfs_bmbt_log_ptrs(cur, rbp, 1, rrecs); } else { - ovbcopy(rrp + 1, rrp, INT_GET(right->bb_numrecs, ARCH_CONVERT) * sizeof(*rrp)); - xfs_bmbt_log_recs(cur, rbp, 1, INT_GET(right->bb_numrecs, ARCH_CONVERT)); + ovbcopy(rrp + 1, rrp, rrecs * sizeof(*rrp)); + xfs_bmbt_log_recs(cur, rbp, 1, rrecs); INT_SET(key.br_startoff, ARCH_CONVERT, xfs_bmbt_get_startoff(rrp)); rkp = &key; } @@ -1555,91 +1565,36 @@ xfs_bmbt_delete( */ void xfs_bmbt_get_all( - xfs_bmbt_rec_t *r, + xfs_bmbt_rec_t *r, xfs_bmbt_irec_t *s) { int ext_flag; xfs_exntst_t st; + __uint64_t l0, l1; -#if BMBT_USE_64 - ext_flag = (int)((INT_GET(r->l0, ARCH_CONVERT)) >> (64 - BMBT_EXNTFLAG_BITLEN)); -#if XFS_BIG_FILES - s->br_startoff = ((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & + l0 = INT_GET(r->l0, ARCH_CONVERT); + l1 = INT_GET(r->l1, ARCH_CONVERT); + ext_flag = (int)(l0 >> (64 - BMBT_EXNTFLAG_BITLEN)); + s->br_startoff = ((xfs_fileoff_t)l0 & XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; -#else /* !XFS_BIG_FILES */ - { - xfs_dfiloff_t o; - - o = ((xfs_dfiloff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; - ASSERT((o >> 32) == 0); - s->br_startoff = (xfs_fileoff_t)o; - } -#endif /* XFS_BIG_FILES */ #if XFS_BIG_FILESYSTEMS - s->br_startblock = (((xfs_fsblock_t)INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK64LO(9)) << 43) | - (((xfs_fsblock_t)INT_GET(r->l1, ARCH_CONVERT)) >> 21); + s->br_startblock = (((xfs_fsblock_t)l0 & XFS_MASK64LO(9)) << 43) | + (((xfs_fsblock_t)l1) >> 21); #else #ifdef DEBUG { xfs_dfsbno_t b; - b = (((xfs_dfsbno_t)INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK64LO(9)) << 43) | - (((xfs_dfsbno_t)INT_GET(r->l1, ARCH_CONVERT)) >> 21); + b = (((xfs_dfsbno_t)l0 & XFS_MASK64LO(9)) << 43) | + (((xfs_dfsbno_t)l1) >> 21); ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); s->br_startblock = (xfs_fsblock_t)b; } #else /* !DEBUG */ - s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)INT_GET(r->l1, ARCH_CONVERT)) >> 21); + s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)l1) >> 21); #endif /* DEBUG */ #endif /* XFS_BIG_FILESYSTEMS */ - s->br_blockcount = (xfs_filblks_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK64LO(21)); -#else /* !BMBT_USE_64 */ - ext_flag = (INT_GET(r->l0, ARCH_CONVERT) >> (32 - BMBT_EXNTFLAG_BITLEN)); -#if XFS_BIG_FILES - s->br_startoff = (((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_fileoff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); -#else /* !XFS_BIG_FILES */ -#ifdef DEBUG - { - xfs_dfiloff_t o; - - o = (((xfs_dfiloff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_dfiloff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); - ASSERT((o >> 32) == 0); - s->br_startoff = (xfs_fileoff_t)o; - } -#else /* !DEBUG */ - s->br_startoff = (((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_fileoff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); -#endif /* DEBUG */ -#endif /* XFS_BIG_FILES */ -#if XFS_BIG_FILESYSTEMS - s->br_startblock = - (((xfs_fsblock_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK32LO(9))) << 43) | - (((xfs_fsblock_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_fsblock_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); -#else -#ifdef DEBUG - { - xfs_dfsbno_t b; - - b = (((xfs_dfsbno_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK32LO(9))) << 43) | - (((xfs_dfsbno_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_dfsbno_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); - ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); - s->br_startblock = (xfs_fsblock_t)b; - } -#else /* !DEBUG */ - s->br_startblock = (((xfs_fsblock_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_fsblock_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); -#endif /* DEBUG */ -#endif /* XFS_BIG_FILESYSTEMS */ - s->br_blockcount = (xfs_filblks_t)(INT_GET(r->l3, ARCH_CONVERT) & XFS_MASK32LO(21)); -#endif /* BMBT_USE_64 */ + s->br_blockcount = (xfs_filblks_t)(l1 & XFS_MASK64LO(21)); /* This is xfs_extent_state() in-line */ if (ext_flag) { ASSERT(s->br_blockcount != 0); /* saved for DMIG */ @@ -1681,11 +1636,7 @@ xfs_filblks_t xfs_bmbt_get_blockcount( xfs_bmbt_rec_t *r) { -#if BMBT_USE_64 return (xfs_filblks_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK64LO(21)); -#else /* !BMBT_USE_64 */ - return (xfs_filblks_t)(INT_GET(r->l3, ARCH_CONVERT) & XFS_MASK32LO(21)); -#endif /* BMBT_USE_64 */ } /* @@ -1695,7 +1646,6 @@ xfs_fsblock_t xfs_bmbt_get_startblock( xfs_bmbt_rec_t *r) { -#if BMBT_USE_64 #if XFS_BIG_FILESYSTEMS return (((xfs_fsblock_t)INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK64LO(9)) << 43) | (((xfs_fsblock_t)INT_GET(r->l1, ARCH_CONVERT)) >> 21); @@ -1711,26 +1661,6 @@ xfs_bmbt_get_startblock( return (xfs_fsblock_t)(((xfs_dfsbno_t)INT_GET(r->l1, ARCH_CONVERT)) >> 21); #endif /* DEBUG */ #endif /* XFS_BIG_FILESYSTEMS */ -#else /* !BMBT_USE_64 */ -#if XFS_BIG_FILESYSTEMS - return (((xfs_fsblock_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK32LO(9))) << 43) | - (((xfs_fsblock_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_fsblock_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); -#else -#ifdef DEBUG - xfs_dfsbno_t b; - - b = (((xfs_dfsbno_t)(INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK32LO(9))) << 43) | - (((xfs_dfsbno_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_dfsbno_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); - ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); - return (xfs_fsblock_t)b; -#else /* !DEBUG */ - return (((xfs_fsblock_t)INT_GET(r->l2, ARCH_CONVERT)) << 11) | - (((xfs_fsblock_t)INT_GET(r->l3, ARCH_CONVERT)) >> 21); -#endif /* DEBUG */ -#endif /* XFS_BIG_FILESYSTEMS */ -#endif /* BMBT_USE_64 */ } /* @@ -1740,39 +1670,8 @@ xfs_fileoff_t xfs_bmbt_get_startoff( xfs_bmbt_rec_t *r) { -#if BMBT_USE_64 -#if XFS_BIG_FILES return ((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; -#else /* !XFS_BIG_FILES */ - xfs_dfiloff_t o; - - o = ((xfs_dfiloff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; - ASSERT((o >> 32) == 0); - return (xfs_fileoff_t)o; -#endif /* XFS_BIG_FILES */ -#else /* !BMBT_USE_64 */ -#if XFS_BIG_FILES - return (((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_fileoff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); -#else /* !XFS_BIG_FILES */ -#ifdef DEBUG - xfs_dfiloff_t o; - - o = (((xfs_dfiloff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_dfiloff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); - ASSERT((o >> 32) == 0); - return (xfs_fileoff_t)o; -#else /* !DEBUG */ - return (((xfs_fileoff_t)INT_GET(r->l0, ARCH_CONVERT) & - XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)) << 23) | - (((xfs_fileoff_t)INT_GET(r->l1, ARCH_CONVERT)) >> 9); -#endif /* DEBUG */ -#endif /* XFS_BIG_FILES */ -#endif /* BMBT_USE_64 */ } xfs_exntst_t @@ -1781,11 +1680,7 @@ xfs_bmbt_get_state( { int ext_flag; -#if BMBT_USE_64 ext_flag = (int)((INT_GET(r->l0, ARCH_CONVERT)) >> (64 - BMBT_EXNTFLAG_BITLEN)); -#else /* !BMBT_USE_64 */ - ext_flag = (INT_GET(r->l0, ARCH_CONVERT) >> (32 - BMBT_EXNTFLAG_BITLEN)); -#endif /* BMBT_USE_64 */ return xfs_extent_state(xfs_bmbt_get_blockcount(r), ext_flag); } @@ -2176,16 +2071,11 @@ xfs_bmbt_set_all( ASSERT((s->br_state == XFS_EXT_NORM) || (s->br_state == XFS_EXT_UNWRITTEN)); extent_flag = (s->br_state == XFS_EXT_NORM) ? 0 : 1; -#if XFS_BIG_FILES ASSERT((s->br_startoff & XFS_MASK64HI(9)) == 0); ASSERT((s->br_blockcount & XFS_MASK64HI(43)) == 0); -#else /* !XFS_BIG_FILES */ - ASSERT((s->br_blockcount & XFS_MASK32HI(11)) == 0); -#endif /* XFS_BIG_FILES */ #if XFS_BIG_FILESYSTEMS ASSERT((s->br_startblock & XFS_MASK64HI(12)) == 0); #endif /* XFS_BIG_FILESYSTEMS */ -#if BMBT_USE_64 #if XFS_BIG_FILESYSTEMS INT_SET(r->l0, ARCH_CONVERT, ((xfs_bmbt_rec_base_t)extent_flag << 63) | ((xfs_bmbt_rec_base_t)s->br_startoff << 9) | @@ -2210,27 +2100,6 @@ xfs_bmbt_set_all( (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); } #endif /* XFS_BIG_FILESYSTEMS */ -#else /* !BMBT_USE_64 */ - INT_SET(r->l0, ARCH_CONVERT, ((xfs_bmbt_rec_base_t)extent_flag << 31) | - ((xfs_bmbt_rec_base_t)(s->br_startoff >> 23))); - INT_SET(r->l3, ARCH_CONVERT, (((xfs_bmbt_rec_base_t)s->br_startblock) << 21) | - ((xfs_bmbt_rec_base_t)(s->br_blockcount & XFS_MASK32LO(21)))); -#if XFS_BIG_FILESYSTEMS - INT_SET(r->l1, ARCH_CONVERT, (((xfs_bmbt_rec_base_t)s->br_startoff) << 9) | - ((xfs_bmbt_rec_base_t)(s->br_startblock >> 43))); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(s->br_startblock >> 11)); -#else /* !XFS_BIG_FILESYSTEMS */ - if (ISNULLSTARTBLOCK(s->br_startblock)) { - INT_SET(r->l1, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(s->br_startoff << 9) | - (xfs_bmbt_rec_base_t)XFS_MASK32LO(9)); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)XFS_MASK32HI(11) | - (xfs_bmbt_rec_base_t)(s->br_startblock >> 11)); - } else { - INT_SET(r->l1, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(s->br_startoff << 9)); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(s->br_startblock >> 11)); - } -#endif /* XFS_BIG_FILESYSTEMS */ -#endif /* BMBT_USE_64 */ } /* @@ -2248,16 +2117,11 @@ xfs_bmbt_set_allf( ASSERT((v == XFS_EXT_NORM) || (v == XFS_EXT_UNWRITTEN)); extent_flag = (v == XFS_EXT_NORM) ? 0 : 1; -#if XFS_BIG_FILES ASSERT((o & XFS_MASK64HI(64-BMBT_STARTOFF_BITLEN)) == 0); ASSERT((c & XFS_MASK64HI(64-BMBT_BLOCKCOUNT_BITLEN)) == 0); -#else /* !XFS_BIG_FILES */ - ASSERT((c & XFS_MASK32HI(11)) == 0); -#endif /* XFS_BIG_FILES */ #if XFS_BIG_FILESYSTEMS ASSERT((b & XFS_MASK64HI(64-BMBT_STARTBLOCK_BITLEN)) == 0); #endif /* XFS_BIG_FILESYSTEMS */ -#if BMBT_USE_64 #if XFS_BIG_FILESYSTEMS INT_SET(r->l0, ARCH_CONVERT, ((xfs_bmbt_rec_base_t)extent_flag << 63) | ((xfs_bmbt_rec_base_t)o << 9) | @@ -2282,27 +2146,6 @@ xfs_bmbt_set_allf( (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); } #endif /* XFS_BIG_FILESYSTEMS */ -#else /* !BMBT_USE_64 */ - INT_SET(r->l0, ARCH_CONVERT, ((xfs_bmbt_rec_base_t)extent_flag << 31) | - ((xfs_bmbt_rec_base_t)(o >> 23))); - INT_SET(r->l3, ARCH_CONVERT, (((xfs_bmbt_rec_base_t)b) << 21) | - ((xfs_bmbt_rec_base_t)(c & XFS_MASK32LO(21)))); -#if XFS_BIG_FILESYSTEMS - INT_SET(r->l1, ARCH_CONVERT, (((xfs_bmbt_rec_base_t)o) << 9) | - ((xfs_bmbt_rec_base_t)(b >> 43))); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(b >> 11)); -#else /* !XFS_BIG_FILESYSTEMS */ - if (ISNULLSTARTBLOCK(b)) { - INT_SET(r->l1, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(o << 9) | - (xfs_bmbt_rec_base_t)XFS_MASK32LO(9)); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)XFS_MASK32HI(11) | - (xfs_bmbt_rec_base_t)(b >> 11)); - } else { - INT_SET(r->l1, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(o << 9)); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(b >> 11)); - } -#endif /* XFS_BIG_FILESYSTEMS */ -#endif /* BMBT_USE_64 */ } /* @@ -2313,18 +2156,9 @@ xfs_bmbt_set_blockcount( xfs_bmbt_rec_t *r, xfs_filblks_t v) { -#if XFS_BIG_FILES ASSERT((v & XFS_MASK64HI(43)) == 0); -#else /* !XFS_BIG_FILES */ - ASSERT((v & XFS_MASK32HI(11)) == 0); -#endif -#if BMBT_USE_64 INT_SET(r->l1, ARCH_CONVERT, (INT_GET(r->l1, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK64HI(43)) | (xfs_bmbt_rec_base_t)(v & XFS_MASK64LO(21))); -#else /* !BMBT_USE_64 */ - INT_SET(r->l3, ARCH_CONVERT, (INT_GET(r->l3, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK32HI(11)) | - ((xfs_bmbt_rec_base_t)v & XFS_MASK32LO(21))); -#endif /* BMBT_USE_64 */ } /* @@ -2338,7 +2172,6 @@ xfs_bmbt_set_startblock( #if XFS_BIG_FILESYSTEMS ASSERT((v & XFS_MASK64HI(12)) == 0); #endif /* XFS_BIG_FILESYSTEMS */ -#if BMBT_USE_64 #if XFS_BIG_FILESYSTEMS INT_SET(r->l0, ARCH_CONVERT, (INT_GET(r->l0, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK64HI(55)) | (xfs_bmbt_rec_base_t)(v >> 43)); @@ -2356,22 +2189,6 @@ xfs_bmbt_set_startblock( (INT_GET(r->l1, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); } #endif /* XFS_BIG_FILESYSTEMS */ -#else /* !BMBT_USE_64 */ -#if XFS_BIG_FILESYSTEMS - INT_SET(r->l1, ARCH_CONVERT, (INT_GET(r->l1, ARCH_CONVERT) & XFS_MASK32HI(23)) | (xfs_bmbt_rec_base_t)(v >> 43)); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(v >> 11)); -#else /* !XFS_BIG_FILESYSTEMS */ - if (ISNULLSTARTBLOCK(v)) { - INT_SET(r->l1, ARCH_CONVERT, (INT_GET(r->l1, ARCH_CONVERT) | XFS_MASK32LO(9))); - INT_SET(r->l2, ARCH_CONVERT, XFS_MASK32HI(11) | (xfs_bmbt_rec_base_t)(v >> 11)); - } else { - INT_SET(r->l1, ARCH_CONVERT, (INT_GET(r->l1, ARCH_CONVERT) & ~XFS_MASK32LO(9))); - INT_SET(r->l2, ARCH_CONVERT, (xfs_bmbt_rec_base_t)(v >> 11)); - } -#endif /* XFS_BIG_FILESYSTEMS */ - INT_SET(r->l3, ARCH_CONVERT, (INT_GET(r->l3, ARCH_CONVERT) & XFS_MASK32LO(21)) | - (((xfs_bmbt_rec_base_t)v) << 21)); -#endif /* BMBT_USE_64 */ } /* @@ -2382,19 +2199,10 @@ xfs_bmbt_set_startoff( xfs_bmbt_rec_t *r, xfs_fileoff_t v) { -#if XFS_BIG_FILES ASSERT((v & XFS_MASK64HI(9)) == 0); -#endif /* XFS_BIG_FILES */ -#if BMBT_USE_64 INT_SET(r->l0, ARCH_CONVERT, (INT_GET(r->l0, ARCH_CONVERT) & (xfs_bmbt_rec_base_t) XFS_MASK64HI(1)) | ((xfs_bmbt_rec_base_t)v << 9) | (INT_GET(r->l0, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK64LO(9))); -#else /* !BMBT_USE_64 */ - INT_SET(r->l0, ARCH_CONVERT, (INT_GET(r->l0, ARCH_CONVERT) & (xfs_bmbt_rec_base_t) XFS_MASK32HI(1)) | - (xfs_bmbt_rec_base_t)(v >> 23)); - INT_SET(r->l1, ARCH_CONVERT, ((xfs_bmbt_rec_base_t)v << 9) | - (INT_GET(r->l1, ARCH_CONVERT) & (xfs_bmbt_rec_base_t)XFS_MASK32LO(9))); -#endif /* BMBT_USE_64 */ } /* @@ -2407,17 +2215,9 @@ xfs_bmbt_set_state( { ASSERT(v == XFS_EXT_NORM || v == XFS_EXT_UNWRITTEN); if (v == XFS_EXT_NORM) -#if BMBT_USE_64 INT_SET(r->l0, ARCH_CONVERT, INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)); -#else /* !BMBT_USE_64 */ - INT_SET(r->l0, ARCH_CONVERT, INT_GET(r->l0, ARCH_CONVERT) & XFS_MASK32LO(32 - BMBT_EXNTFLAG_BITLEN)); -#endif /* BMBT_USE_64 */ else -#if BMBT_USE_64 INT_SET(r->l0, ARCH_CONVERT, INT_GET(r->l0, ARCH_CONVERT) | XFS_MASK64HI(BMBT_EXNTFLAG_BITLEN)); -#else /* !BMBT_USE_64 */ - INT_SET(r->l0, ARCH_CONVERT, INT_GET(r->l0, ARCH_CONVERT) | XFS_MASK32HI(BMBT_EXNTFLAG_BITLEN)); -#endif /* BMBT_USE_64 */ } /* @@ -2513,13 +2313,8 @@ xfs_check_nostate_extents( xfs_extnum_t num) { for (; num > 0; num--, ep++) { - if ( -#if BMBT_USE_64 - ((INT_GET(ep->l0, ARCH_CONVERT)) >> (64 - BMBT_EXNTFLAG_BITLEN)) != 0 -#else /* !BMBT_USE_64 */ - ((INT_GET(ep->l0, ARCH_CONVERT)) >> (32 - BMBT_EXNTFLAG_BITLEN)) != 0 -#endif /* BMBT_USE_64 */ - ) { + if (((INT_GET(ep->l0, ARCH_CONVERT)) >> + (64 - BMBT_EXNTFLAG_BITLEN)) != 0) { ASSERT(0); return 1; } diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c index f77bdbe1e..6537559a1 100644 --- a/libxfs/xfs_da_btree.c +++ b/libxfs/xfs_da_btree.c @@ -2047,16 +2047,13 @@ xfs_da_do_buf( nmap = 1; } } else { - xfs_fsblock_t firstblock; - - firstblock = NULLFSBLOCK; mapp = kmem_alloc(sizeof(*mapp) * nfsb, KM_SLEEP); nmap = nfsb; if ((error = xfs_bmapi(trans, dp, (xfs_fileoff_t)bno, nfsb, XFS_BMAPI_METADATA | XFS_BMAPI_AFLAG(whichfork), - &firstblock, 0, mapp, &nmap, NULL))) + NULL, 0, mapp, &nmap, NULL))) goto exit0; } } else { diff --git a/libxfs/xfs_dir2_sf.c b/libxfs/xfs_dir2_sf.c index ee5378eb6..3e056c131 100644 --- a/libxfs/xfs_dir2_sf.c +++ b/libxfs/xfs_dir2_sf.c @@ -843,6 +843,8 @@ xfs_dir2_sf_replace( int i; /* entry index */ #if XFS_BIG_FILESYSTEMS || defined(DEBUG) xfs_ino_t ino=0; /* entry old inode number */ +#endif +#if XFS_BIG_FILESYSTEMS int i8elevated; /* sf_toino8 set i8count=1 */ #endif xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ @@ -932,7 +934,7 @@ xfs_dir2_sf_replace( */ if (i == sfp->hdr.count) { ASSERT(args->oknoent); -#if XFS_BIG_FILESYSTEMS || defined(DEBUG) +#if XFS_BIG_FILESYSTEMS if (i8elevated) xfs_dir2_sf_toino4(args); #endif diff --git a/libxfs/xfs_rtalloc.c b/libxfs/xfs_rtalloc.c index d3d9fc0ac..4e216f226 100644 --- a/libxfs/xfs_rtalloc.c +++ b/libxfs/xfs_rtalloc.c @@ -803,7 +803,7 @@ xfs_rtmount_init( sbp = &mp->m_sb; if (sbp->sb_rblocks == 0) return 0; - if (kdev_none(mp->m_rtdev)) { + if (mp->m_rtdev != 0) { printk(KERN_WARNING "XFS: This FS has an RT subvol - specify -o rtdev on mount\n"); return XFS_ERROR(ENODEV);