Commit c2c4c477 authored by Dave Chinner's avatar Dave Chinner Committed by Dave Chinner

xfs: replace attr LBSIZE with xfs_da_geometry

Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent c59f0ad2
...@@ -863,7 +863,7 @@ xfs_attr_leaf_get(xfs_da_args_t *args) ...@@ -863,7 +863,7 @@ xfs_attr_leaf_get(xfs_da_args_t *args)
} }
/*======================================================================== /*========================================================================
* External routines when attribute list size > XFS_LBSIZE(mp). * External routines when attribute list size > geo->blksize
*========================================================================*/ *========================================================================*/
/* /*
......
This diff is collapsed.
...@@ -125,6 +125,7 @@ xfs_attr3_rmt_read_verify( ...@@ -125,6 +125,7 @@ xfs_attr3_rmt_read_verify(
char *ptr; char *ptr;
int len; int len;
xfs_daddr_t bno; xfs_daddr_t bno;
int blksize = mp->m_attr_geo->blksize;
/* no verification of non-crc buffers */ /* no verification of non-crc buffers */
if (!xfs_sb_version_hascrc(&mp->m_sb)) if (!xfs_sb_version_hascrc(&mp->m_sb))
...@@ -133,21 +134,20 @@ xfs_attr3_rmt_read_verify( ...@@ -133,21 +134,20 @@ xfs_attr3_rmt_read_verify(
ptr = bp->b_addr; ptr = bp->b_addr;
bno = bp->b_bn; bno = bp->b_bn;
len = BBTOB(bp->b_length); len = BBTOB(bp->b_length);
ASSERT(len >= XFS_LBSIZE(mp)); ASSERT(len >= blksize);
while (len > 0) { while (len > 0) {
if (!xfs_verify_cksum(ptr, XFS_LBSIZE(mp), if (!xfs_verify_cksum(ptr, blksize, XFS_ATTR3_RMT_CRC_OFF)) {
XFS_ATTR3_RMT_CRC_OFF)) {
xfs_buf_ioerror(bp, EFSBADCRC); xfs_buf_ioerror(bp, EFSBADCRC);
break; break;
} }
if (!xfs_attr3_rmt_verify(mp, ptr, XFS_LBSIZE(mp), bno)) { if (!xfs_attr3_rmt_verify(mp, ptr, blksize, bno)) {
xfs_buf_ioerror(bp, EFSCORRUPTED); xfs_buf_ioerror(bp, EFSCORRUPTED);
break; break;
} }
len -= XFS_LBSIZE(mp); len -= blksize;
ptr += XFS_LBSIZE(mp); ptr += blksize;
bno += mp->m_bsize; bno += BTOBB(blksize);
} }
if (bp->b_error) if (bp->b_error)
...@@ -165,6 +165,7 @@ xfs_attr3_rmt_write_verify( ...@@ -165,6 +165,7 @@ xfs_attr3_rmt_write_verify(
char *ptr; char *ptr;
int len; int len;
xfs_daddr_t bno; xfs_daddr_t bno;
int blksize = mp->m_attr_geo->blksize;
/* no verification of non-crc buffers */ /* no verification of non-crc buffers */
if (!xfs_sb_version_hascrc(&mp->m_sb)) if (!xfs_sb_version_hascrc(&mp->m_sb))
...@@ -173,10 +174,10 @@ xfs_attr3_rmt_write_verify( ...@@ -173,10 +174,10 @@ xfs_attr3_rmt_write_verify(
ptr = bp->b_addr; ptr = bp->b_addr;
bno = bp->b_bn; bno = bp->b_bn;
len = BBTOB(bp->b_length); len = BBTOB(bp->b_length);
ASSERT(len >= XFS_LBSIZE(mp)); ASSERT(len >= blksize);
while (len > 0) { while (len > 0) {
if (!xfs_attr3_rmt_verify(mp, ptr, XFS_LBSIZE(mp), bno)) { if (!xfs_attr3_rmt_verify(mp, ptr, blksize, bno)) {
xfs_buf_ioerror(bp, EFSCORRUPTED); xfs_buf_ioerror(bp, EFSCORRUPTED);
xfs_verifier_error(bp); xfs_verifier_error(bp);
return; return;
...@@ -187,11 +188,11 @@ xfs_attr3_rmt_write_verify( ...@@ -187,11 +188,11 @@ xfs_attr3_rmt_write_verify(
rmt = (struct xfs_attr3_rmt_hdr *)ptr; rmt = (struct xfs_attr3_rmt_hdr *)ptr;
rmt->rm_lsn = cpu_to_be64(bip->bli_item.li_lsn); rmt->rm_lsn = cpu_to_be64(bip->bli_item.li_lsn);
} }
xfs_update_cksum(ptr, XFS_LBSIZE(mp), XFS_ATTR3_RMT_CRC_OFF); xfs_update_cksum(ptr, blksize, XFS_ATTR3_RMT_CRC_OFF);
len -= XFS_LBSIZE(mp); len -= blksize;
ptr += XFS_LBSIZE(mp); ptr += blksize;
bno += mp->m_bsize; bno += BTOBB(blksize);
} }
ASSERT(len == 0); ASSERT(len == 0);
} }
...@@ -240,12 +241,13 @@ xfs_attr_rmtval_copyout( ...@@ -240,12 +241,13 @@ xfs_attr_rmtval_copyout(
char *src = bp->b_addr; char *src = bp->b_addr;
xfs_daddr_t bno = bp->b_bn; xfs_daddr_t bno = bp->b_bn;
int len = BBTOB(bp->b_length); int len = BBTOB(bp->b_length);
int blksize = mp->m_attr_geo->blksize;
ASSERT(len >= XFS_LBSIZE(mp)); ASSERT(len >= blksize);
while (len > 0 && *valuelen > 0) { while (len > 0 && *valuelen > 0) {
int hdr_size = 0; int hdr_size = 0;
int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, XFS_LBSIZE(mp)); int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, blksize);
byte_cnt = min(*valuelen, byte_cnt); byte_cnt = min(*valuelen, byte_cnt);
...@@ -263,9 +265,9 @@ xfs_attr_rmtval_copyout( ...@@ -263,9 +265,9 @@ xfs_attr_rmtval_copyout(
memcpy(*dst, src + hdr_size, byte_cnt); memcpy(*dst, src + hdr_size, byte_cnt);
/* roll buffer forwards */ /* roll buffer forwards */
len -= XFS_LBSIZE(mp); len -= blksize;
src += XFS_LBSIZE(mp); src += blksize;
bno += mp->m_bsize; bno += BTOBB(blksize);
/* roll attribute data forwards */ /* roll attribute data forwards */
*valuelen -= byte_cnt; *valuelen -= byte_cnt;
...@@ -287,12 +289,13 @@ xfs_attr_rmtval_copyin( ...@@ -287,12 +289,13 @@ xfs_attr_rmtval_copyin(
char *dst = bp->b_addr; char *dst = bp->b_addr;
xfs_daddr_t bno = bp->b_bn; xfs_daddr_t bno = bp->b_bn;
int len = BBTOB(bp->b_length); int len = BBTOB(bp->b_length);
int blksize = mp->m_attr_geo->blksize;
ASSERT(len >= XFS_LBSIZE(mp)); ASSERT(len >= blksize);
while (len > 0 && *valuelen > 0) { while (len > 0 && *valuelen > 0) {
int hdr_size; int hdr_size;
int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, XFS_LBSIZE(mp)); int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, blksize);
byte_cnt = min(*valuelen, byte_cnt); byte_cnt = min(*valuelen, byte_cnt);
hdr_size = xfs_attr3_rmt_hdr_set(mp, dst, ino, *offset, hdr_size = xfs_attr3_rmt_hdr_set(mp, dst, ino, *offset,
...@@ -304,17 +307,17 @@ xfs_attr_rmtval_copyin( ...@@ -304,17 +307,17 @@ xfs_attr_rmtval_copyin(
* If this is the last block, zero the remainder of it. * If this is the last block, zero the remainder of it.
* Check that we are actually the last block, too. * Check that we are actually the last block, too.
*/ */
if (byte_cnt + hdr_size < XFS_LBSIZE(mp)) { if (byte_cnt + hdr_size < blksize) {
ASSERT(*valuelen - byte_cnt == 0); ASSERT(*valuelen - byte_cnt == 0);
ASSERT(len == XFS_LBSIZE(mp)); ASSERT(len == blksize);
memset(dst + hdr_size + byte_cnt, 0, memset(dst + hdr_size + byte_cnt, 0,
XFS_LBSIZE(mp) - hdr_size - byte_cnt); blksize - hdr_size - byte_cnt);
} }
/* roll buffer forwards */ /* roll buffer forwards */
len -= XFS_LBSIZE(mp); len -= blksize;
dst += XFS_LBSIZE(mp); dst += blksize;
bno += mp->m_bsize; bno += BTOBB(blksize);
/* roll attribute data forwards */ /* roll attribute data forwards */
*valuelen -= byte_cnt; *valuelen -= byte_cnt;
......
...@@ -19,10 +19,6 @@ ...@@ -19,10 +19,6 @@
#ifndef __XFS_DA_FORMAT_H__ #ifndef __XFS_DA_FORMAT_H__
#define __XFS_DA_FORMAT_H__ #define __XFS_DA_FORMAT_H__
/*========================================================================
* Directory Structure when greater than XFS_LBSIZE(mp) bytes.
*========================================================================*/
/* /*
* This structure is common to both leaf nodes and non-leaf nodes in the Btree. * This structure is common to both leaf nodes and non-leaf nodes in the Btree.
* *
...@@ -122,8 +118,6 @@ struct xfs_da3_icnode_hdr { ...@@ -122,8 +118,6 @@ struct xfs_da3_icnode_hdr {
__uint16_t level; __uint16_t level;
}; };
#define XFS_LBSIZE(mp) (mp)->m_sb.sb_blocksize
/* /*
* Directory version 2. * Directory version 2.
* *
...@@ -620,10 +614,6 @@ xfs_dir2_block_leaf_p(struct xfs_dir2_block_tail *btp) ...@@ -620,10 +614,6 @@ xfs_dir2_block_leaf_p(struct xfs_dir2_block_tail *btp)
* of an attribute name may not be unique, we may have duplicate keys. The * of an attribute name may not be unique, we may have duplicate keys. The
* internal links in the Btree are logical block offsets into the file. * internal links in the Btree are logical block offsets into the file.
* *
*========================================================================
* Attribute structure when equal to XFS_LBSIZE(mp) bytes.
*========================================================================
*
* Struct leaf_entry's are packed from the top. Name/values grow from the * Struct leaf_entry's are packed from the top. Name/values grow from the
* bottom but are not packed. The freemap contains run-length-encoded entries * bottom but are not packed. The freemap contains run-length-encoded entries
* for the free bytes after the leaf_entry's, but only the N largest such, * for the free bytes after the leaf_entry's, but only the N largest such,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment