Source kernel commit:
8b972158afcaa66c538c3ee1d394f096fcd238a8
We've been (ab)using XFS_REFC_COW_START as both an integer quantity and
a bit flag, even though it's *only* a bit flag. Rename the variable to
reflect its nature and update the cast target since we're not supposed
to be comparing it to xfs_agblock_t now.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
char *msg;
agbno = be32_to_cpu(rp[i].rc_startblock);
- if (agbno >= XFS_REFC_COW_START) {
- agbno -= XFS_REFC_COW_START;
+ if (agbno >= XFS_REFC_COWFLAG) {
+ agbno -= XFS_REFC_COWFLAG;
msg = _(
"leftover CoW extent (%u/%u) len %u\n");
} else {
* on the startblock. This speeds up mount time deletion of stale
* staging extents because they're all at the right side of the tree.
*/
-#define XFS_REFC_COW_START ((xfs_agblock_t)(1U << 31))
+#define XFS_REFC_COWFLAG (1U << 31)
#define REFCNTBT_COWFLAG_BITLEN 1
#define REFCNTBT_AGBLOCK_BITLEN 31
uint32_t start;
start = be32_to_cpu(rec->refc.rc_startblock);
- if (start & XFS_REFC_COW_START) {
- start &= ~XFS_REFC_COW_START;
+ if (start & XFS_REFC_COWFLAG) {
+ start &= ~XFS_REFC_COWFLAG;
irec->rc_domain = XFS_REFC_DOMAIN_COW;
} else {
irec->rc_domain = XFS_REFC_DOMAIN_SHARED;
int error;
/* reflink filesystems mustn't have AGs larger than 2^31-1 blocks */
- BUILD_BUG_ON(XFS_MAX_CRC_AG_BLOCKS >= XFS_REFC_COW_START);
+ BUILD_BUG_ON(XFS_MAX_CRC_AG_BLOCKS >= XFS_REFC_COWFLAG);
if (mp->m_sb.sb_agblocks > XFS_MAX_CRC_AG_BLOCKS)
return -EOPNOTSUPP;
* query functions (which set rc_domain == -1U), so we check that the
* domain is /not/ shared.
*/
- start = startblock & ~XFS_REFC_COW_START;
+ start = startblock & ~XFS_REFC_COWFLAG;
if (domain != XFS_REFC_DOMAIN_SHARED)
- start |= XFS_REFC_COW_START;
+ start |= XFS_REFC_COWFLAG;
return start;
}
b = agb = be32_to_cpu(rp[i].rc_startblock);
len = be32_to_cpu(rp[i].rc_blockcount);
nr = be32_to_cpu(rp[i].rc_refcount);
- if (b >= XFS_REFC_COW_START && nr != 1)
+ if (b >= XFS_REFC_COWFLAG && nr != 1)
do_warn(
_("leftover CoW extent has incorrect refcount in record %u of %s btree block %u/%u\n"),
i, name, agno, bno);
if (nr == 1) {
- if (agb < XFS_REFC_COW_START)
+ if (agb < XFS_REFC_COWFLAG)
do_warn(
_("leftover CoW extent has invalid startblock in record %u of %s btree block %u/%u\n"),
i, name, agno, bno);
- agb -= XFS_REFC_COW_START;
+ agb -= XFS_REFC_COWFLAG;
}
end = agb + len;