From: Dave Chinner Date: Wed, 4 Sep 2013 22:05:17 +0000 (+0000) Subject: libxfs: fix compile warnings X-Git-Tag: v3.2.0-alpha1~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6bddecbc4d2f6015151ca4568cfcb7ee9fb4683a;p=thirdparty%2Fxfsprogs-dev.git libxfs: fix compile warnings Some of the code shared with userspace causes compilation warnings from things turned off in the kernel code, such as differences in variable signedness. Fix those issues. Signed-off-by: Dave Chinner Review-by: Mark Tinguely Signed-off-by: Rich Johnston --- diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c index 39517da73..bb37279a6 100644 --- a/copy/xfs_copy.c +++ b/copy/xfs_copy.c @@ -434,6 +434,10 @@ read_ag_header(int fd, xfs_agnumber_t agno, wbuf *buf, ag_header_t *ag, off = XFS_AG_DADDR(mp, agno, XFS_SB_DADDR); buf->position = (xfs_off_t) off * (xfs_off_t) BBSIZE; length = buf->length = first_agbno * blocksize; + if (length == 0) { + do_log(_("ag header buffer invalid!\n")); + exit(1); + } /* handle alignment stuff */ @@ -449,7 +453,6 @@ read_ag_header(int fd, xfs_agnumber_t agno, wbuf *buf, ag_header_t *ag, if (buf->length % buf->min_io_size != 0) buf->length = roundup(buf->length, buf->min_io_size); - ASSERT(length != 0); read_wbuf(fd, buf, mp); ASSERT(buf->length >= length); @@ -936,7 +939,12 @@ main(int argc, char **argv) for (;;) { /* none of this touches the w_buf buffer */ - ASSERT(current_level < btree_levels); + if (current_level >= btree_levels) { + do_log( + _("Error: current level %d >= btree levels %d\n"), + current_level, btree_levels); + exit(1); + } current_level++; diff --git a/db/bmroot.c b/db/bmroot.c index 3e18917a6..12b129ebb 100644 --- a/db/bmroot.c +++ b/db/bmroot.c @@ -91,13 +91,13 @@ bmroota_key_offset( int idx) { xfs_bmdr_block_t *block; - /* REFERENCED */ - xfs_dinode_t *dip; +#ifdef DEBUG + xfs_dinode_t *dip = obj; +#endif xfs_bmdr_key_t *kp; ASSERT(bitoffs(startoff) == 0); ASSERT(obj == iocur_top->data); - dip = obj; block = (xfs_bmdr_block_t *)((char *)obj + byteize(startoff)); ASSERT(XFS_DFORK_Q(dip) && (char *)block == XFS_DFORK_APTR(dip)); ASSERT(be16_to_cpu(block->bb_level) > 0); diff --git a/libxfs/xfs.h b/libxfs/xfs.h index 3fd226c4b..c9d6a6da7 100644 --- a/libxfs/xfs.h +++ b/libxfs/xfs.h @@ -189,7 +189,9 @@ roundup_pow_of_two(uint v) /* avoid gcc warning */ #define xfs_incore(bt,blkno,len,lockit) ({ \ typeof(blkno) __foo = (blkno); \ + typeof(len) __bar = (len); \ (blkno) = __foo; \ + (len) = __bar; /* no set-but-unused warning */ \ NULL; \ }) #define xfs_buf_relse(bp) libxfs_putbuf(bp) @@ -259,7 +261,11 @@ roundup_pow_of_two(uint v) #define xfs_trans_agblocks_delta(tp, d) #define xfs_trans_agflist_delta(tp, d) #define xfs_trans_agbtree_delta(tp, d) -#define xfs_trans_buf_set_type(tp, bp, t) +#define xfs_trans_buf_set_type(tp, bp, t) ({ \ + int __t = (t); \ + __t = __t; /* no set-but-unused warning */ \ +}) + #define xfs_trans_buf_copy_type(dbp, sbp) #define xfs_buf_readahead(a,b,c,ops) ((void) 0) /* no readahead */ diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index 0b2ca8c40..59bb12d9f 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -214,7 +214,7 @@ xfs_attr_rmtval_copyout( xfs_ino_t ino, int *offset, int *valuelen, - char **dst) + __uint8_t **dst) { char *src = bp->b_addr; xfs_daddr_t bno = bp->b_bn; @@ -261,7 +261,7 @@ xfs_attr_rmtval_copyin( xfs_ino_t ino, int *offset, int *valuelen, - char **src) + __uint8_t **src) { char *dst = bp->b_addr; xfs_daddr_t bno = bp->b_bn; @@ -314,7 +314,7 @@ xfs_attr_rmtval_get( struct xfs_mount *mp = args->dp->i_mount; struct xfs_buf *bp; xfs_dablk_t lblkno = args->rmtblkno; - char *dst = args->value; + __uint8_t *dst = args->value; int valuelen = args->valuelen; int nmap; int error; @@ -378,7 +378,7 @@ xfs_attr_rmtval_set( struct xfs_bmbt_irec map; xfs_dablk_t lblkno; xfs_fileoff_t lfileoff = 0; - char *src = args->value; + __uint8_t *src = args->value; int blkcnt; int valuelen; int nmap; diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c index 6664265b3..b7f798b59 100644 --- a/libxfs/xfs_bmap.c +++ b/libxfs/xfs_bmap.c @@ -4437,12 +4437,9 @@ xfs_bmapi_allocate( struct xfs_ifork *ifp = XFS_IFORK_PTR(bma->ip, whichfork); int tmp_logflags = 0; int error; - int rt; ASSERT(bma->length > 0); - rt = (whichfork == XFS_DATA_FORK) && XFS_IS_REALTIME_INODE(bma->ip); - /* * For the wasdelay case, we could also just allocate the stuff asked * for in this bmap call but that wouldn't be as good. diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c index d7798af08..b7b670509 100644 --- a/libxfs/xfs_da_btree.c +++ b/libxfs/xfs_da_btree.c @@ -376,7 +376,7 @@ xfs_da3_split( struct xfs_da_intnode *node; struct xfs_buf *bp; int max; - int action; + int action = 0; int error; int i; @@ -2431,9 +2431,9 @@ static int xfs_buf_map_from_irec( struct xfs_mount *mp, struct xfs_buf_map **mapp, - unsigned int *nmaps, + int *nmaps, struct xfs_bmbt_irec *irecs, - unsigned int nirecs) + int nirecs) { struct xfs_buf_map *map; int i; diff --git a/libxfs/xfs_dir2_node.c b/libxfs/xfs_dir2_node.c index fea0131c3..030f6207e 100644 --- a/libxfs/xfs_dir2_node.c +++ b/libxfs/xfs_dir2_node.c @@ -295,11 +295,13 @@ xfs_dir2_free_log_header( struct xfs_trans *tp, struct xfs_buf *bp) { +#ifdef DEBUG xfs_dir2_free_t *free; /* freespace structure */ free = bp->b_addr; ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC) || free->hdr.magic == cpu_to_be32(XFS_DIR3_FREE_MAGIC)); +#endif xfs_trans_log_buf(tp, bp, 0, xfs_dir3_free_hdr_size(tp->t_mountp) - 1); } diff --git a/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c index 98513fdf9..4683287b4 100644 --- a/libxfs/xfs_ialloc.c +++ b/libxfs/xfs_ialloc.c @@ -1319,7 +1319,7 @@ xfs_imap( xfs_agblock_t cluster_agbno; /* first block in inode cluster */ int error; /* error code */ int offset; /* index of inode in its buffer */ - int offset_agbno; /* blks from chunk start to inode */ + xfs_agblock_t offset_agbno; /* blks from chunk start to inode */ ASSERT(ino != NULLFSINO); diff --git a/libxfs/xfs_rtalloc.c b/libxfs/xfs_rtalloc.c index 1de85fd2c..9797db7fa 100644 --- a/libxfs/xfs_rtalloc.c +++ b/libxfs/xfs_rtalloc.c @@ -431,8 +431,8 @@ xfs_rtfree_range( { xfs_rtblock_t end; /* end of the freed extent */ int error; /* error value */ - xfs_rtblock_t postblock; /* first block freed > end */ - xfs_rtblock_t preblock; /* first block freed < start */ + xfs_rtblock_t postblock = 0; /* first block freed > end */ + xfs_rtblock_t preblock = 0; /* first block freed < start */ end = start + len - 1; /* diff --git a/repair/attr_repair.c b/repair/attr_repair.c index d42b85f08..ba85fd9a4 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -1631,9 +1631,11 @@ process_attributes( { int err; __u8 aformat = dip->di_aformat; +#ifdef DEBUG xfs_attr_shortform_t *asf; asf = (xfs_attr_shortform_t *) XFS_DFORK_APTR(dip); +#endif if (aformat == XFS_DINODE_FMT_LOCAL) { ASSERT(be16_to_cpu(asf->hdr.totsize) <= diff --git a/repair/incore_ino.c b/repair/incore_ino.c index efffe7538..735737a06 100644 --- a/repair/incore_ino.c +++ b/repair/incore_ino.c @@ -167,6 +167,7 @@ __uint32_t num_inode_references(struct ino_tree_node *irec, int ino_offset) default: ASSERT(0); } + return 0; } void set_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset, @@ -207,6 +208,7 @@ __uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset) default: ASSERT(0); } + return 0; } /* diff --git a/repair/scan.c b/repair/scan.c index 07880e45d..4f8bbef74 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -520,6 +520,7 @@ scan_allocbt( name = "cnt"; break; default: + name = "(unknown)"; assert(0); break; }