Commit a86f8671 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: use unsigned ints for non-negative quantities in xfs_attr_remote.c

In the next few patches we're going to refactor the attr remote code so
that we can support headerless remote xattr values for storing merkle
tree blocks.  For now, let's change the code to use unsigned int to
describe quantities of bytes and blocks that cannot be negative.
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarAndrey Albershteyn <aalbersh@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 21255afd
...@@ -47,13 +47,13 @@ ...@@ -47,13 +47,13 @@
* Each contiguous block has a header, so it is not just a simple attribute * Each contiguous block has a header, so it is not just a simple attribute
* length to FSB conversion. * length to FSB conversion.
*/ */
int unsigned int
xfs_attr3_rmt_blocks( xfs_attr3_rmt_blocks(
struct xfs_mount *mp, struct xfs_mount *mp,
int attrlen) unsigned int attrlen)
{ {
if (xfs_has_crc(mp)) { if (xfs_has_crc(mp)) {
int buflen = XFS_ATTR3_RMT_BUF_SPACE(mp, mp->m_sb.sb_blocksize); unsigned int buflen = XFS_ATTR3_RMT_BUF_SPACE(mp, mp->m_sb.sb_blocksize);
return (attrlen + buflen - 1) / buflen; return (attrlen + buflen - 1) / buflen;
} }
return XFS_B_TO_FSB(mp, attrlen); return XFS_B_TO_FSB(mp, attrlen);
...@@ -92,7 +92,6 @@ xfs_attr3_rmt_verify( ...@@ -92,7 +92,6 @@ xfs_attr3_rmt_verify(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_buf *bp, struct xfs_buf *bp,
void *ptr, void *ptr,
int fsbsize,
xfs_daddr_t bno) xfs_daddr_t bno)
{ {
struct xfs_attr3_rmt_hdr *rmt = ptr; struct xfs_attr3_rmt_hdr *rmt = ptr;
...@@ -103,7 +102,7 @@ xfs_attr3_rmt_verify( ...@@ -103,7 +102,7 @@ xfs_attr3_rmt_verify(
return __this_address; return __this_address;
if (be64_to_cpu(rmt->rm_blkno) != bno) if (be64_to_cpu(rmt->rm_blkno) != bno)
return __this_address; return __this_address;
if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt)) if (be32_to_cpu(rmt->rm_bytes) > mp->m_attr_geo->blksize - sizeof(*rmt))
return __this_address; return __this_address;
if (be32_to_cpu(rmt->rm_offset) + if (be32_to_cpu(rmt->rm_offset) +
be32_to_cpu(rmt->rm_bytes) > XFS_XATTR_SIZE_MAX) be32_to_cpu(rmt->rm_bytes) > XFS_XATTR_SIZE_MAX)
...@@ -122,9 +121,9 @@ __xfs_attr3_rmt_read_verify( ...@@ -122,9 +121,9 @@ __xfs_attr3_rmt_read_verify(
{ {
struct xfs_mount *mp = bp->b_mount; struct xfs_mount *mp = bp->b_mount;
char *ptr; char *ptr;
int len; unsigned int len;
xfs_daddr_t bno; xfs_daddr_t bno;
int blksize = mp->m_attr_geo->blksize; unsigned int blksize = mp->m_attr_geo->blksize;
/* no verification of non-crc buffers */ /* no verification of non-crc buffers */
if (!xfs_has_crc(mp)) if (!xfs_has_crc(mp))
...@@ -141,7 +140,7 @@ __xfs_attr3_rmt_read_verify( ...@@ -141,7 +140,7 @@ __xfs_attr3_rmt_read_verify(
*failaddr = __this_address; *failaddr = __this_address;
return -EFSBADCRC; return -EFSBADCRC;
} }
*failaddr = xfs_attr3_rmt_verify(mp, bp, ptr, blksize, bno); *failaddr = xfs_attr3_rmt_verify(mp, bp, ptr, bno);
if (*failaddr) if (*failaddr)
return -EFSCORRUPTED; return -EFSCORRUPTED;
len -= blksize; len -= blksize;
...@@ -186,7 +185,7 @@ xfs_attr3_rmt_write_verify( ...@@ -186,7 +185,7 @@ xfs_attr3_rmt_write_verify(
{ {
struct xfs_mount *mp = bp->b_mount; struct xfs_mount *mp = bp->b_mount;
xfs_failaddr_t fa; xfs_failaddr_t fa;
int blksize = mp->m_attr_geo->blksize; unsigned int blksize = mp->m_attr_geo->blksize;
char *ptr; char *ptr;
int len; int len;
xfs_daddr_t bno; xfs_daddr_t bno;
...@@ -203,7 +202,7 @@ xfs_attr3_rmt_write_verify( ...@@ -203,7 +202,7 @@ xfs_attr3_rmt_write_verify(
while (len > 0) { while (len > 0) {
struct xfs_attr3_rmt_hdr *rmt = (struct xfs_attr3_rmt_hdr *)ptr; struct xfs_attr3_rmt_hdr *rmt = (struct xfs_attr3_rmt_hdr *)ptr;
fa = xfs_attr3_rmt_verify(mp, bp, ptr, blksize, bno); fa = xfs_attr3_rmt_verify(mp, bp, ptr, bno);
if (fa) { if (fa) {
xfs_verifier_error(bp, -EFSCORRUPTED, fa); xfs_verifier_error(bp, -EFSCORRUPTED, fa);
return; return;
...@@ -281,20 +280,20 @@ xfs_attr_rmtval_copyout( ...@@ -281,20 +280,20 @@ xfs_attr_rmtval_copyout(
struct xfs_buf *bp, struct xfs_buf *bp,
struct xfs_inode *dp, struct xfs_inode *dp,
xfs_ino_t owner, xfs_ino_t owner,
int *offset, unsigned int *offset,
int *valuelen, unsigned int *valuelen,
uint8_t **dst) uint8_t **dst)
{ {
char *src = bp->b_addr; char *src = bp->b_addr;
xfs_daddr_t bno = xfs_buf_daddr(bp); xfs_daddr_t bno = xfs_buf_daddr(bp);
int len = BBTOB(bp->b_length); unsigned int len = BBTOB(bp->b_length);
int blksize = mp->m_attr_geo->blksize; unsigned int blksize = mp->m_attr_geo->blksize;
ASSERT(len >= blksize); ASSERT(len >= blksize);
while (len > 0 && *valuelen > 0) { while (len > 0 && *valuelen > 0) {
int hdr_size = 0; unsigned int hdr_size = 0;
int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, blksize); unsigned int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, blksize);
byte_cnt = min(*valuelen, byte_cnt); byte_cnt = min(*valuelen, byte_cnt);
...@@ -330,20 +329,20 @@ xfs_attr_rmtval_copyin( ...@@ -330,20 +329,20 @@ xfs_attr_rmtval_copyin(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_buf *bp, struct xfs_buf *bp,
xfs_ino_t ino, xfs_ino_t ino,
int *offset, unsigned int *offset,
int *valuelen, unsigned int *valuelen,
uint8_t **src) uint8_t **src)
{ {
char *dst = bp->b_addr; char *dst = bp->b_addr;
xfs_daddr_t bno = xfs_buf_daddr(bp); xfs_daddr_t bno = xfs_buf_daddr(bp);
int len = BBTOB(bp->b_length); unsigned int len = BBTOB(bp->b_length);
int blksize = mp->m_attr_geo->blksize; unsigned int blksize = mp->m_attr_geo->blksize;
ASSERT(len >= blksize); ASSERT(len >= blksize);
while (len > 0 && *valuelen > 0) { while (len > 0 && *valuelen > 0) {
int hdr_size; unsigned int hdr_size;
int byte_cnt = XFS_ATTR3_RMT_BUF_SPACE(mp, blksize); unsigned 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,
...@@ -389,12 +388,12 @@ xfs_attr_rmtval_get( ...@@ -389,12 +388,12 @@ xfs_attr_rmtval_get(
struct xfs_buf *bp; struct xfs_buf *bp;
xfs_dablk_t lblkno = args->rmtblkno; xfs_dablk_t lblkno = args->rmtblkno;
uint8_t *dst = args->value; uint8_t *dst = args->value;
int valuelen; unsigned int valuelen;
int nmap; int nmap;
int error; int error;
int blkcnt = args->rmtblkcnt; unsigned int blkcnt = args->rmtblkcnt;
int i; int i;
int offset = 0; unsigned int offset = 0;
trace_xfs_attr_rmtval_get(args); trace_xfs_attr_rmtval_get(args);
...@@ -452,7 +451,7 @@ xfs_attr_rmt_find_hole( ...@@ -452,7 +451,7 @@ xfs_attr_rmt_find_hole(
struct xfs_inode *dp = args->dp; struct xfs_inode *dp = args->dp;
struct xfs_mount *mp = dp->i_mount; struct xfs_mount *mp = dp->i_mount;
int error; int error;
int blkcnt; unsigned int blkcnt;
xfs_fileoff_t lfileoff = 0; xfs_fileoff_t lfileoff = 0;
/* /*
...@@ -481,11 +480,11 @@ xfs_attr_rmtval_set_value( ...@@ -481,11 +480,11 @@ xfs_attr_rmtval_set_value(
struct xfs_bmbt_irec map; struct xfs_bmbt_irec map;
xfs_dablk_t lblkno; xfs_dablk_t lblkno;
uint8_t *src = args->value; uint8_t *src = args->value;
int blkcnt; unsigned int blkcnt;
int valuelen; unsigned int valuelen;
int nmap; int nmap;
int error; int error;
int offset = 0; unsigned int offset = 0;
/* /*
* Roll through the "value", copying the attribute value to the * Roll through the "value", copying the attribute value to the
...@@ -644,7 +643,7 @@ xfs_attr_rmtval_invalidate( ...@@ -644,7 +643,7 @@ xfs_attr_rmtval_invalidate(
struct xfs_da_args *args) struct xfs_da_args *args)
{ {
xfs_dablk_t lblkno; xfs_dablk_t lblkno;
int blkcnt; unsigned int blkcnt;
int error; int error;
/* /*
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#ifndef __XFS_ATTR_REMOTE_H__ #ifndef __XFS_ATTR_REMOTE_H__
#define __XFS_ATTR_REMOTE_H__ #define __XFS_ATTR_REMOTE_H__
int xfs_attr3_rmt_blocks(struct xfs_mount *mp, int attrlen); unsigned int xfs_attr3_rmt_blocks(struct xfs_mount *mp, unsigned int attrlen);
int xfs_attr_rmtval_get(struct xfs_da_args *args); int xfs_attr_rmtval_get(struct xfs_da_args *args);
int xfs_attr_rmtval_stale(struct xfs_inode *ip, struct xfs_bmbt_irec *map, int xfs_attr_rmtval_stale(struct xfs_inode *ip, struct xfs_bmbt_irec *map,
......
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