* [PATCH 0/15] xfsprogs: sparse fixes
@ 2018-10-05 4:03 Eric Sandeen
2018-10-05 4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
` (15 more replies)
0 siblings, 16 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
A handful of sparse fixes, more or less one patch per issue.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
* [PATCH 01/15] xfsprogs: minor sparse fixes
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:07 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions Eric Sandeen
` (14 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Remove stray semicolon, add missing return.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
io/init.c | 1 +
repair/agheader.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/io/init.c b/io/init.c
index 82774c7..e9449a2 100644
--- a/io/init.c
+++ b/io/init.c
@@ -240,6 +240,7 @@ idle_loop(void *arg)
{
for (;;)
pause();
+ return NULL;
}
void
diff --git a/repair/agheader.c b/repair/agheader.c
index 77e04f6..218ee25 100644
--- a/repair/agheader.c
+++ b/repair/agheader.c
@@ -245,7 +245,7 @@ secondary_sb_whack(
int do_bzero = 0;
int size;
char *ip;
- int rval = 0;;
+ int rval = 0;
uuid_t tmpuuid;
rval = do_bzero = 0;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
2018-10-05 4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:07 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition Eric Sandeen
` (13 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
db/io.h | 2 +-
io/init.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/db/io.h b/db/io.h
index a60aaaa..8d5720b 100644
--- a/db/io.h
+++ b/db/io.h
@@ -59,7 +59,7 @@ extern void xfs_verify_recalc_crc(struct xfs_buf *bp);
* returns -1 for unchecked, 0 for bad and 1 for good
*/
static inline int
-iocur_crc_valid()
+iocur_crc_valid(void)
{
if (!iocur_top->bp)
return -1;
diff --git a/io/init.c b/io/init.c
index e9449a2..29afe09 100644
--- a/io/init.c
+++ b/io/init.c
@@ -244,7 +244,7 @@ idle_loop(void *arg)
}
void
-start_idle_thread()
+start_idle_thread(void)
{
pthread_t t;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
2018-10-05 4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
2018-10-05 4:03 ` [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 04/15] xfs_db: single-bit bitfields are unsigned Eric Sandeen
` (12 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
mkfs/xfs_mkfs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 7c05c6f..2eec005 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -1661,7 +1661,10 @@ sector_opts_parser(
struct subopts {
char opt;
struct opt_params *opts;
- int (*parser)();
+ int (*parser)(struct opt_params *opts,
+ int subopt,
+ char *value,
+ struct cli_params *cli);
} subopt_tab[] = {
{ 'b', &bopts, block_opts_parser },
{ 'd', &dopts, data_opts_parser },
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 04/15] xfs_db: single-bit bitfields are unsigned
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (2 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 05/15] xfsprogs: don't use 0 as pointer Eric Sandeen
` (11 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
db/check.c | 4 ++--
db/io.h | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/db/check.c b/db/check.c
index e85afb9..76a833a 100644
--- a/db/check.c
+++ b/db/check.c
@@ -41,8 +41,8 @@ typedef struct inodata {
struct inodata *next;
nlink_t link_set;
nlink_t link_add;
- char isdir:1;
- char isreflink:1;
+ unsigned char isdir:1;
+ unsigned char isreflink:1;
char security;
char ilist;
xfs_ino_t ino;
diff --git a/db/io.h b/db/io.h
index 8d5720b..9fd2651 100644
--- a/db/io.h
+++ b/db/io.h
@@ -26,10 +26,10 @@ typedef struct iocur {
const struct typ *typ; /* type of "data" */
bbmap_t *bbmap; /* map daddr if fragmented */
struct xfs_buf *bp; /* underlying buffer */
- int ino_crc_ok:1;
- int ino_buf:1;
- int dquot_buf:1;
- int need_crc:1;
+ unsigned int ino_crc_ok:1;
+ unsigned int ino_buf:1;
+ unsigned int dquot_buf:1;
+ unsigned int need_crc:1;
} iocur_t;
#define DB_RING_ADD 1 /* add to ring on set_cur */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 05/15] xfsprogs: don't use 0 as pointer
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (3 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 04/15] xfs_db: single-bit bitfields are unsigned Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 06/15] xfsprogs: minor endian annotation fixes Eric Sandeen
` (10 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Use NULL as appropriate.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
db/dir2sf.c | 4 ++--
fsr/xfs_fsr.c | 10 +++++-----
libxfs/libxfs_priv.h | 2 +-
libxfs/rdwr.c | 6 +++---
mkfs/proto.c | 4 ++--
scrub/fscounters.c | 2 +-
scrub/inodes.c | 6 +++---
7 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/db/dir2sf.c b/db/dir2sf.c
index 977a932..5737f2a 100644
--- a/db/dir2sf.c
+++ b/db/dir2sf.c
@@ -30,8 +30,8 @@ const field_t dir2sf_flds[] = {
};
const field_t dir2_inou_flds[] = {
- { "i8", FLDT_DIR2_INO8, 0, dir2_inou_i8_count, FLD_COUNT, TYP_INODE },
- { "i4", FLDT_DIR2_INO4, 0, dir2_inou_i4_count, FLD_COUNT, TYP_INODE },
+ { "i8", FLDT_DIR2_INO8, NULL, dir2_inou_i8_count, FLD_COUNT, TYP_INODE},
+ { "i4", FLDT_DIR2_INO4, NULL, dir2_inou_i4_count, FLD_COUNT, TYP_INODE},
{ NULL }
};
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index e21643a..c8aea98 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -241,7 +241,7 @@ main(int argc, char **argv)
if (vflag)
setbuf(stdout, NULL);
- starttime = time(0);
+ starttime = time(NULL);
/* Save the caller's real uid */
RealUid = getuid();
@@ -525,7 +525,7 @@ fsrallfs(char *mtab, int howlong, char *leftofffile)
signal(SIGTERM, aborter);
/* reorg for 'howlong' -- checked in 'fsrfs' */
- while (endtime > time(0)) {
+ while (endtime > time(NULL)) {
pid_t pid;
if (npasses > 1 && !fs->npass)
@@ -560,7 +560,7 @@ fsrallfs(char *mtab, int howlong, char *leftofffile)
break;
}
}
- fsrall_cleanup(endtime <= time(0));
+ fsrall_cleanup(endtime <= time(NULL));
}
/*
@@ -578,7 +578,7 @@ fsrall_cleanup(int timeout)
if (timeout) {
fsrprintf(_("%s startpass %d, endpass %d, time %d seconds\n"),
progname, startpass, fs->npass,
- time(0) - endtime + howlong);
+ time(NULL) - endtime + howlong);
/* record where we left off */
fd = open(leftofffile, O_WRONLY|O_CREAT|O_EXCL, 0644);
@@ -688,7 +688,7 @@ fsrfs(char *mntdir, xfs_ino_t startino, int targetrange)
break;
}
}
- if (endtime && endtime < time(0)) {
+ if (endtime && endtime < time(NULL)) {
tmp_close(mntdir);
close(fsfd);
fsrall_cleanup(1);
diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
index a2fbeac..b4bdc64 100644
--- a/libxfs/libxfs_priv.h
+++ b/libxfs/libxfs_priv.h
@@ -391,7 +391,7 @@ roundup_64(uint64_t x, uint32_t y)
#define XBRW_READ LIBXFS_BREAD
#define XBRW_WRITE LIBXFS_BWRITE
#define xfs_buf_iomove(bp,off,len,data,f) libxfs_iomove(bp,off,len,data,f)
-#define xfs_buf_zero(bp,off,len) libxfs_iomove(bp,off,len,0,LIBXFS_BZERO)
+#define xfs_buf_zero(bp,off,len) libxfs_iomove(bp,off,len,NULL,LIBXFS_BZERO)
/* mount stuff */
#define XFS_MOUNT_32BITINODES LIBXFS_MOUNT_32BITINODES
diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c
index 0ee3ba8..c160e20 100644
--- a/libxfs/rdwr.c
+++ b/libxfs/rdwr.c
@@ -779,7 +779,7 @@ struct xfs_buf *
libxfs_getbuf_flags(struct xfs_buftarg *btp, xfs_daddr_t blkno, int len,
unsigned int flags)
{
- struct xfs_bufkey key = {0};
+ struct xfs_bufkey key = {NULL};
key.buftarg = btp;
key.blkno = blkno;
@@ -822,7 +822,7 @@ static struct xfs_buf *
__libxfs_getbuf_map(struct xfs_buftarg *btp, struct xfs_buf_map *map,
int nmaps, int flags)
{
- struct xfs_bufkey key = {0};
+ struct xfs_bufkey key = {NULL};
int i;
if (nmaps == 1)
@@ -882,7 +882,7 @@ libxfs_putbuf(xfs_buf_t *bp)
void
libxfs_purgebuf(xfs_buf_t *bp)
{
- struct xfs_bufkey key = {0};
+ struct xfs_bufkey key = {NULL};
key.buftarg = bp->b_target;
key.blkno = bp->b_bn;
diff --git a/mkfs/proto.c b/mkfs/proto.c
index 687c53a..1cd5436 100644
--- a/mkfs/proto.c
+++ b/mkfs/proto.c
@@ -259,7 +259,7 @@ newfile(
exit(1);
}
d = XFS_FSB_TO_DADDR(mp, map.br_startblock);
- bp = libxfs_trans_get_buf(logit ? tp : 0, mp->m_dev, d,
+ bp = libxfs_trans_get_buf(logit ? tp : NULL, mp->m_dev, d,
nb << mp->m_blkbb_log, 0);
memmove(bp->b_addr, buf, len);
if (len < bp->b_bcount)
@@ -297,7 +297,7 @@ newregfile(
exit(1);
}
} else
- buf = 0;
+ buf = NULL;
close(fd);
return buf;
}
diff --git a/scrub/fscounters.c b/scrub/fscounters.c
index 6e9bd05..9e93e2a 100644
--- a/scrub/fscounters.c
+++ b/scrub/fscounters.c
@@ -41,7 +41,7 @@ xfs_count_inodes_range(
uint64_t last_ino,
uint64_t *count)
{
- struct xfs_fsop_bulkreq igrpreq = {0};
+ struct xfs_fsop_bulkreq igrpreq = {NULL};
struct xfs_inogrp inogrp;
__u64 igrp_ino;
uint64_t nr = 0;
diff --git a/scrub/inodes.c b/scrub/inodes.c
index add6876..693f21e 100644
--- a/scrub/inodes.c
+++ b/scrub/inodes.c
@@ -50,7 +50,7 @@ xfs_iterate_inodes_range_check(
struct xfs_inogrp *inogrp,
struct xfs_bstat *bstat)
{
- struct xfs_fsop_bulkreq onereq = {0};
+ struct xfs_fsop_bulkreq onereq = {NULL};
struct xfs_bstat *bs;
__u64 oneino;
__s32 onelen = 0;
@@ -98,8 +98,8 @@ xfs_iterate_inodes_range(
xfs_inode_iter_fn fn,
void *arg)
{
- struct xfs_fsop_bulkreq igrpreq = {0};
- struct xfs_fsop_bulkreq bulkreq = {0};
+ struct xfs_fsop_bulkreq igrpreq = {NULL};
+ struct xfs_fsop_bulkreq bulkreq = {NULL};
struct xfs_handle handle;
struct xfs_inogrp inogrp;
struct xfs_bstat bstat[XFS_INODES_PER_CHUNK];
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 06/15] xfsprogs: minor endian annotation fixes
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (4 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 05/15] xfsprogs: don't use 0 as pointer Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:11 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h Eric Sandeen
` (9 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
No actual bugs, just quiet the sparse checker.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
copy/xfs_copy.c | 2 +-
db/crc.c | 4 ++--
db/write.c | 4 ++--
logprint/log_misc.c | 5 +++--
repair/rmap.c | 3 ++-
5 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index a7b4656..1d04780 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -507,7 +507,7 @@ sb_update_uuid(
*/
if (xfs_sb_version_hascrc(sb) && !xfs_sb_version_hasmetauuid(sb) &&
!uuid_equal(&tcarg->uuid, &sb->sb_uuid)) {
- __be32 feat;
+ __u32 feat;
feat = be32_to_cpu(ag_hdr->xfs_sb->sb_features_incompat);
feat |= XFS_SB_FEAT_INCOMPAT_META_UUID;
diff --git a/db/crc.c b/db/crc.c
index b6775bc..c4136a4 100644
--- a/db/crc.c
+++ b/db/crc.c
@@ -144,8 +144,8 @@ crc_f(
bit_length *= fcount(sfl->fld, iocur_top->data, parentoffset);
crc = getbitval(iocur_top->data, sfl->offset, bit_length,
BVUNSIGNED);
- /* Off by one.. */
- crc = cpu_to_be32(crc + 1);
+ /* Off by one, ignore endianness - we're just corrupting it. */
+ crc++;
setbitval(iocur_top->data, sfl->offset, bit_length, &crc);
/* Temporarily remove write verifier to write a bad CRC */
diff --git a/db/write.c b/db/write.c
index a48576b..e25d6ea 100644
--- a/db/write.c
+++ b/db/write.c
@@ -525,7 +525,7 @@ convert_arg(
char *endp;
char *rbuf;
char *ostr;
- __u64 *value;
+ __be64 *value;
__u64 val = 0;
if (bit_length <= 64)
@@ -535,7 +535,7 @@ convert_arg(
buf = xrealloc(buf, alloc_size);
memset(buf, 0, alloc_size);
- value = (__u64 *)buf;
+ value = (__be64 *)buf;
rbuf = buf;
if (*arg == '\"') {
diff --git a/logprint/log_misc.c b/logprint/log_misc.c
index 640c00e..c5dba30 100644
--- a/logprint/log_misc.c
+++ b/logprint/log_misc.c
@@ -467,6 +467,7 @@ xlog_print_dir2_sf(
xfs_dir2_sf_hdr_t *sfp,
int size)
{
+ __be64 pino; /* parent inode nr */
xfs_ino_t ino;
int count;
int i;
@@ -481,8 +482,8 @@ xlog_print_dir2_sf(
printf(_("SHORTFORM DIRECTORY size %d count %d\n"),
size, sfp->count);
- memmove(&ino, &(sfp->parent), sizeof(ino));
- printf(_(".. ino 0x%llx\n"), (unsigned long long) be64_to_cpu(ino));
+ memmove(&pino, &(sfp->parent), sizeof(pino));
+ printf(_(".. ino 0x%llx\n"), (unsigned long long) be64_to_cpu(pino));
count = sfp->count;
sfep = xfs_dir2_sf_firstentry(sfp);
diff --git a/repair/rmap.c b/repair/rmap.c
index 6de4a10..ebb5a3a 100644
--- a/repair/rmap.c
+++ b/repair/rmap.c
@@ -482,7 +482,8 @@ rmap_store_ag_btree_rec(
*/
agfl_bno = XFS_BUF_TO_AGFL_BNO(mp, agflbp);
b = agfl_bno + ag_rmaps[agno].ar_flcount;
- while (*b != NULLAGBLOCK && b - agfl_bno < libxfs_agfl_size(mp)) {
+ while (*b != cpu_to_be32(NULLAGBLOCK) &&
+ b - agfl_bno < libxfs_agfl_size(mp)) {
error = rmap_add_ag_rec(mp, agno, be32_to_cpu(*b), 1,
XFS_RMAP_OWN_AG);
if (error)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (5 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 06/15] xfsprogs: minor endian annotation fixes Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:12 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 08/15] xfsprogs: avoid redefinition of NBBY Eric Sandeen
` (8 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
MS_* (MS_NOSUID ... etc) get redefined. Fix this by
simply removing the inclusion of mount.h, which isn't needed.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
io/label.c | 1 -
libfrog/linux.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/io/label.c b/io/label.c
index df6ac36..602ece8 100644
--- a/io/label.c
+++ b/io/label.c
@@ -4,7 +4,6 @@
*/
#include <sys/ioctl.h>
-#include <sys/mount.h>
#include "platform_defs.h"
#include "libxfs.h"
#include "path.h"
diff --git a/libfrog/linux.c b/libfrog/linux.c
index 2af2675..46f15d6 100644
--- a/libfrog/linux.c
+++ b/libfrog/linux.c
@@ -6,7 +6,6 @@
#include <mntent.h>
#include <sys/stat.h>
-#include <sys/mount.h>
#include <sys/ioctl.h>
#include <sys/sysinfo.h>
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 08/15] xfsprogs: avoid redefinition of NBBY
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (6 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:12 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 09/15] xfsprogs: remove write-only variables Eric Sandeen
` (7 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
sys/param.h (re)defines NBBY so just include it first.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
include/platform_defs.h.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/platform_defs.h.in b/include/platform_defs.h.in
index c4f0e8b..411a9bf 100644
--- a/include/platform_defs.h.in
+++ b/include/platform_defs.h.in
@@ -19,6 +19,7 @@
#include <pthread.h>
#include <ctype.h>
#include <sys/types.h>
+#include <sys/param.h>
#include <limits.h>
#include <stdbool.h>
#include <libgen.h>
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 09/15] xfsprogs: remove write-only variables
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (7 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 08/15] xfsprogs: avoid redefinition of NBBY Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:13 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 10/15] xfsprogs: make static things static Eric Sandeen
` (6 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
copy/xfs_copy.c | 3 ---
libfrog/linux.c | 1 -
libxfs/init.h | 1 -
3 files changed, 5 deletions(-)
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 1d04780..5fbc0f3 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -39,7 +39,6 @@ target_control *target;
wbuf w_buf;
wbuf btree_buf;
-pid_t parent_pid;
unsigned int kids;
thread_control glob_masks;
@@ -631,8 +630,6 @@ main(int argc, char **argv)
target[i].err_type = 0;
}
- parent_pid = getpid();
-
/* open up source -- is it a file? */
open_flags = O_RDONLY;
diff --git a/libfrog/linux.c b/libfrog/linux.c
index 46f15d6..fc9f3ac 100644
--- a/libfrog/linux.c
+++ b/libfrog/linux.c
@@ -12,7 +12,6 @@
#include "libxfs_priv.h"
#include "xfs_fs.h"
-int platform_has_uuid = 1;
extern char *progname;
static int max_block_alignment;
diff --git a/libxfs/init.h b/libxfs/init.h
index 2c3cd91..e0b5091 100644
--- a/libxfs/init.h
+++ b/libxfs/init.h
@@ -19,6 +19,5 @@ extern char *platform_findblockpath (char *path);
extern int platform_direct_blockdev (void);
extern int platform_align_blockdev (void);
extern unsigned long platform_physmem(void); /* in kilobytes */
-extern int platform_has_uuid;
#endif /* LIBXFS_INIT_H */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 10/15] xfsprogs: make static things static
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (8 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 09/15] xfsprogs: remove write-only variables Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:13 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 11/15] xfsprogs: include headers for extern variables Eric Sandeen
` (5 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
There are tons of functions which can be static, make them so.
Fixes many sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
copy/xfs_copy.c | 66 +++++++++++++++++++++++------------------------
db/btblock.c | 2 +-
db/check.c | 4 +--
db/fsmap.c | 2 +-
db/init.c | 8 +++---
db/input.c | 6 ++---
db/io.c | 2 +-
db/logformat.c | 2 +-
estimate/xfs_estimate.c | 34 ++++++++++++------------
fsr/xfs_fsr.c | 40 ++++++++++++++--------------
io/bmap.c | 2 +-
io/fiemap.c | 2 +-
io/freeze.c | 4 +--
io/fsmap.c | 2 +-
io/imap.c | 2 +-
io/init.c | 10 +++----
io/madvise.c | 2 +-
io/mincore.c | 2 +-
io/mmap.c | 10 +++----
io/parent.c | 2 +-
io/readdir.c | 2 +-
io/seek.c | 4 +--
io/stat.c | 8 +++---
libxcmd/command.c | 4 +--
libxfs/cache.c | 2 +-
libxfs/init.c | 2 +-
libxfs/rdwr.c | 6 ++---
libxfs/util.c | 6 ++---
logprint/log_misc.c | 34 ++++++++++++------------
logprint/log_print_all.c | 2 +-
logprint/logprint.c | 6 ++---
mdrestore/xfs_mdrestore.c | 6 ++---
mkfs/xfs_mkfs.c | 26 +++++++++----------
repair/btree.c | 2 +-
repair/incore_ext.c | 10 +++----
repair/incore_ino.c | 4 +--
repair/phase6.c | 2 +-
repair/progress.c | 2 +-
repair/sb.c | 2 +-
repair/scan.c | 2 +-
rtcp/xfs_rtcp.c | 4 +--
scrub/scrub.c | 2 +-
spaceman/init.c | 4 +--
43 files changed, 174 insertions(+), 172 deletions(-)
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 5fbc0f3..3f6535c 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -18,33 +18,32 @@
extern int platform_check_ismounted(char *, char *, struct stat *, int);
-int logfd;
-char *logfile_name;
-FILE *logerr;
-char LOGFILE_NAME[] = "/var/tmp/xfs_copy.log.XXXXXX";
+static char *logfile_name;
+static FILE *logerr;
+static char LOGFILE_NAME[] = "/var/tmp/xfs_copy.log.XXXXXX";
-char *source_name;
-int source_fd;
+static char *source_name;
+static int source_fd;
-unsigned int source_blocksize; /* source filesystem blocksize */
-unsigned int source_sectorsize; /* source disk sectorsize */
+static unsigned int source_blocksize; /* source filesystem blocksize */
+static unsigned int source_sectorsize; /* source disk sectorsize */
-xfs_agblock_t first_agbno;
+static xfs_agblock_t first_agbno;
-uint64_t barcount[11];
+static uint64_t barcount[11];
-unsigned int num_targets;
-target_control *target;
+static unsigned int num_targets;
+static target_control *target;
-wbuf w_buf;
-wbuf btree_buf;
+static wbuf w_buf;
+static wbuf btree_buf;
-unsigned int kids;
+static unsigned int kids;
-thread_control glob_masks;
-thread_args *targ;
+static thread_control glob_masks;
+static thread_args *targ;
-pthread_mutex_t mainwait;
+static pthread_mutex_t mainwait;
#define ACTIVE 1
#define INACTIVE 2
@@ -61,7 +60,7 @@ static int format_logs(struct xfs_mount *);
#define PRE 0x08 /* append strerror string */
#define LAST 0x10 /* final message we print */
-void
+static void
signal_maskfunc(int addset, int newset)
{
sigset_t set;
@@ -71,7 +70,7 @@ signal_maskfunc(int addset, int newset)
sigprocmask(newset, &set, NULL);
}
-void
+static void
do_message(int flags, int code, const char *fmt, ...)
{
va_list ap;
@@ -133,7 +132,7 @@ int xlog_recover_do_trans(struct xlog *log, struct xlog_recover *t, int p)
return 0;
}
-void
+static void
check_errors(void)
{
int i, first_error = 0;
@@ -167,7 +166,7 @@ check_errors(void)
* don't have to worry about alignment and mins because those
* are taken care of when the buffer's read in
*/
-int
+static int
do_write(
thread_args *args,
wbuf *buf)
@@ -200,7 +199,7 @@ do_write(
return error;
}
-void *
+static void *
begin_reader(void *arg)
{
thread_args *args = arg;
@@ -228,7 +227,7 @@ handle_error:
return NULL;
}
-void
+static void
handler(int sig)
{
pid_t pid;
@@ -290,7 +289,7 @@ handler(int sig)
signal(SIGCHLD, handler);
}
-void
+static void
usage(void)
{
fprintf(stderr,
@@ -299,7 +298,7 @@ usage(void)
exit(1);
}
-void
+static void
init_bar(uint64_t source_blocks)
{
int i;
@@ -308,7 +307,7 @@ init_bar(uint64_t source_blocks)
barcount[i] = (source_blocks/10)*i;
}
-int
+static int
bump_bar(int tenths, uint64_t numblocks)
{
static char *bar[11] = {
@@ -340,7 +339,7 @@ bump_bar(int tenths, uint64_t numblocks)
static xfs_off_t source_position = -1;
-wbuf *
+static wbuf *
wbuf_init(wbuf *buf, int data_size, int data_align, int min_io_size, int id)
{
ASSERT(data_size % BBSIZE == 0);
@@ -357,7 +356,7 @@ wbuf_init(wbuf *buf, int data_size, int data_align, int min_io_size, int id)
return buf;
}
-void
+static void
read_wbuf(int fd, wbuf *buf, xfs_mount_t *mp)
{
int res = 0;
@@ -412,7 +411,7 @@ read_wbuf(int fd, wbuf *buf, xfs_mount_t *mp)
buf->length = res;
}
-void
+static void
read_ag_header(int fd, xfs_agnumber_t agno, wbuf *buf, ag_header_t *ag,
xfs_mount_t *mp, int blocksize, int sectorsize)
{
@@ -459,7 +458,7 @@ read_ag_header(int fd, xfs_agnumber_t agno, wbuf *buf, ag_header_t *ag,
}
-void
+static void
write_wbuf(void)
{
int i;
@@ -491,7 +490,7 @@ write_wbuf(void)
signal_maskfunc(SIGCHLD, SIG_BLOCK);
}
-void
+static void
sb_update_uuid(
xfs_sb_t *sb, /* Original fs superblock */
ag_header_t *ag_hdr, /* AG hdr to update for this copy */
@@ -528,6 +527,7 @@ int
main(int argc, char **argv)
{
int i, j;
+ int logfd;
int howfar = 0;
int open_flags;
xfs_off_t pos;
@@ -1205,7 +1205,7 @@ main(int argc, char **argv)
return 0;
}
-char *
+static char *
next_log_chunk(char *p, int offset, void *private)
{
wbuf *buf = (wbuf *)private;
diff --git a/db/btblock.c b/db/btblock.c
index cbd2990..af42bf7 100644
--- a/db/btblock.c
+++ b/db/btblock.c
@@ -19,7 +19,7 @@
/*
* Definition of the possible btree block layouts.
*/
-struct xfs_db_btree {
+static struct xfs_db_btree {
uint32_t magic;
size_t block_len;
size_t key_len;
diff --git a/db/check.c b/db/check.c
index 76a833a..754441c 100644
--- a/db/check.c
+++ b/db/check.c
@@ -996,7 +996,7 @@ blocktrash_b(
bit_offset / NBBY, bit_offset % NBBY, modestr[mode]);
}
-int
+static int
blocktrash_f(
int argc,
char **argv)
@@ -1204,7 +1204,7 @@ out:
return 0;
}
-int
+static int
blockuse_f(
int argc,
char **argv)
diff --git a/db/fsmap.c b/db/fsmap.c
index 4836381..29f3827 100644
--- a/db/fsmap.c
+++ b/db/fsmap.c
@@ -99,7 +99,7 @@ fsmap(
}
}
-int
+static int
fsmap_f(
int argc,
char **argv)
diff --git a/db/init.c b/db/init.c
index a70b02b..455220a 100644
--- a/db/init.c
+++ b/db/init.c
@@ -23,10 +23,10 @@ char *fsdevice;
int blkbb;
int exitcode;
int expert_mode;
-int force;
-struct xfs_mount xmount;
+static int force;
+static struct xfs_mount xmount;
struct xfs_mount *mp;
-struct xlog xlog;
+static struct xlog xlog;
libxfs_init_t x;
xfs_agnumber_t cur_agno = NULLAGNUMBER;
@@ -39,7 +39,7 @@ usage(void)
exit(1);
}
-void
+static void
init(
int argc,
char **argv)
diff --git a/db/input.c b/db/input.c
index 9c59a56..4d6c737 100644
--- a/db/input.c
+++ b/db/input.c
@@ -20,9 +20,9 @@
# include <histedit.h>
#endif
-int inputstacksize;
-FILE **inputstack;
-FILE *curinput;
+static int inputstacksize;
+static FILE **inputstack;
+static FILE *curinput;
static void popfile(void);
static int source_f(int argc, char **argv);
diff --git a/db/io.c b/db/io.c
index 8c51b4d..0486ae2 100644
--- a/db/io.c
+++ b/db/io.c
@@ -155,7 +155,7 @@ print_iocur(
ioc->dirino, ioc->typ == NULL ? _("none") : ioc->typ->name);
}
-void
+static void
print_ring(void)
{
int i;
diff --git a/db/logformat.c b/db/logformat.c
index 4bbab2a..42ce245 100644
--- a/db/logformat.c
+++ b/db/logformat.c
@@ -145,7 +145,7 @@ print_logres(
i, res->tr_logres, res->tr_logcount, res->tr_logflags);
}
-int
+static int
logres_f(
int argc,
char **argv)
diff --git a/estimate/xfs_estimate.c b/estimate/xfs_estimate.c
index eaa2cba..9e01cce 100644
--- a/estimate/xfs_estimate.c
+++ b/estimate/xfs_estimate.c
@@ -13,7 +13,7 @@
#include <sys/stat.h>
#include <ftw.h>
-unsigned long long
+static unsigned long long
cvtnum(char *s)
{
unsigned long long i;
@@ -43,22 +43,22 @@ int ffn(const char *, const struct stat *, int, struct FTW *);
#define FBLOCKS(n) ((n)/blocksize)
-unsigned long long dirsize=0; /* bytes */
-unsigned long long logsize=LOGSIZE*BLOCKSIZE; /* bytes */
-unsigned long long fullblocks=0; /* FS blocks */
-unsigned long long isize=0; /* inodes bytes */
-unsigned long long blocksize=BLOCKSIZE;
-unsigned long long nslinks=0; /* number of symbolic links */
-unsigned long long nfiles=0; /* number of regular files */
-unsigned long long ndirs=0; /* number of directories */
-unsigned long long nspecial=0; /* number of special files */
-unsigned long long verbose=0; /* verbose mode TRUE/FALSE */
-
-int __debug = 0;
-int ilog = 0;
-int elog = 0;
-
-void
+static unsigned long long dirsize=0; /* bytes */
+static unsigned long long logsize=LOGSIZE*BLOCKSIZE; /* bytes */
+static unsigned long long fullblocks=0; /* FS blocks */
+static unsigned long long isize=0; /* inodes bytes */
+static unsigned long long blocksize=BLOCKSIZE;
+static unsigned long long nslinks=0; /* number of symbolic links */
+static unsigned long long nfiles=0; /* number of regular files */
+static unsigned long long ndirs=0; /* number of directories */
+static unsigned long long nspecial=0; /* number of special files */
+static unsigned long long verbose=0; /* verbose mode TRUE/FALSE */
+
+static int __debug = 0;
+static int ilog = 0;
+static int elog = 0;
+
+static void
usage(char *progname)
{
fprintf(stderr,
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index c8aea98..fef6262 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -28,21 +28,21 @@
char *progname;
-int vflag;
-int gflag;
+static int vflag;
+static int gflag;
static int Mflag;
/* static int nflag; */
-int dflag = 0;
+static int dflag = 0;
/* static int sflag; */
-int argv_blksz_dio;
+static int argv_blksz_dio;
extern int max_ext_size;
static int npasses = 10;
static int startpass = 0;
-struct getbmap *outmap = NULL;
-int outmap_size = 0;
-int RealUid;
-int tmp_agi;
+static struct getbmap *outmap = NULL;
+static int outmap_size = 0;
+static int RealUid;
+static int tmp_agi;
static int64_t minimumfree = 2048;
#define MNTTYPE_XFS "xfs"
@@ -85,7 +85,7 @@ static char * tmp_next(char *mnt);
static void tmp_close(char *mnt);
int xfs_getgeom(int , xfs_fsop_geom_v1_t * );
-xfs_fsop_geom_v1_t fsgeom; /* geometry of active mounted system */
+static xfs_fsop_geom_v1_t fsgeom; /* geometry of active mounted system */
#define NMOUNT 64
static int numfs;
@@ -96,19 +96,19 @@ typedef struct fsdesc {
int npass;
} fsdesc_t;
-fsdesc_t *fs, *fsbase, *fsend;
-int fsbufsize = 10; /* A starting value */
-int nfrags = 0; /* Debug option: Coerse into specific number
+static fsdesc_t *fs, *fsbase, *fsend;
+static int fsbufsize = 10; /* A starting value */
+static int nfrags = 0; /* Debug option: Coerse into specific number
* of extents */
-int openopts = O_CREAT|O_EXCL|O_RDWR|O_DIRECT;
+static int openopts = O_CREAT|O_EXCL|O_RDWR|O_DIRECT;
-int
+static int
xfs_fsgeometry(int fd, xfs_fsop_geom_v1_t *geom)
{
return ioctl(fd, XFS_IOC_FSGEOMETRY_V1, geom);
}
-int
+static int
xfs_bulkstat_single(int fd, xfs_ino_t *lastip, xfs_bstat_t *ubuffer)
{
xfs_fsop_bulkreq_t bulkreq;
@@ -120,7 +120,7 @@ xfs_bulkstat_single(int fd, xfs_ino_t *lastip, xfs_bstat_t *ubuffer)
return ioctl(fd, XFS_IOC_FSBULKSTAT_SINGLE, &bulkreq);
}
-int
+static int
xfs_bulkstat(int fd, xfs_ino_t *lastip, int icount,
xfs_bstat_t *ubuffer, __s32 *ocount)
{
@@ -133,19 +133,19 @@ xfs_bulkstat(int fd, xfs_ino_t *lastip, int icount,
return ioctl(fd, XFS_IOC_FSBULKSTAT, &bulkreq);
}
-int
+static int
xfs_swapext(int fd, xfs_swapext_t *sx)
{
return ioctl(fd, XFS_IOC_SWAPEXT, sx);
}
-int
+static int
xfs_fscounts(int fd, xfs_fsop_counts_t *counts)
{
return ioctl(fd, XFS_IOC_FSCOUNTS, counts);
}
-void
+static void
aborter(int unused)
{
fsrall_cleanup(1);
@@ -1586,7 +1586,7 @@ int read_fd_bmap(int fd, xfs_bstat_t *sin, int *cur_nextents)
/*
* Read the block map and return the number of extents.
*/
-int
+static int
getnextents(int fd)
{
int nextents;
diff --git a/io/bmap.c b/io/bmap.c
index f917831..d408826 100644
--- a/io/bmap.c
+++ b/io/bmap.c
@@ -43,7 +43,7 @@ bmap_help(void)
"\n"));
}
-int
+static int
bmap_f(
int argc,
char **argv)
diff --git a/io/fiemap.c b/io/fiemap.c
index 8090dc4..485bae1 100644
--- a/io/fiemap.c
+++ b/io/fiemap.c
@@ -214,7 +214,7 @@ calc_print_format(
}
}
-int
+static int
fiemap_f(
int argc,
char **argv)
diff --git a/io/freeze.c b/io/freeze.c
index b52df91..3333b08 100644
--- a/io/freeze.c
+++ b/io/freeze.c
@@ -12,7 +12,7 @@
static cmdinfo_t freeze_cmd;
static cmdinfo_t thaw_cmd;
-int
+static int
freeze_f(
int argc,
char **argv)
@@ -29,7 +29,7 @@ freeze_f(
return 0;
}
-int
+static int
thaw_f(
int argc,
char **argv)
diff --git a/io/fsmap.c b/io/fsmap.c
index 0bc8ae6..477c36f 100644
--- a/io/fsmap.c
+++ b/io/fsmap.c
@@ -364,7 +364,7 @@ dump_verbose_key(void)
NFLG+1, NFLG+1, FLG_ESW);
}
-int
+static int
fsmap_f(
int argc,
char **argv)
diff --git a/io/imap.c b/io/imap.c
index 048d1a4..fbc8e9e 100644
--- a/io/imap.c
+++ b/io/imap.c
@@ -11,7 +11,7 @@
static cmdinfo_t imap_cmd;
-int
+static int
imap_f(int argc, char **argv)
{
int count;
diff --git a/io/init.c b/io/init.c
index 29afe09..b5eade3 100644
--- a/io/init.c
+++ b/io/init.c
@@ -14,11 +14,11 @@
char *progname;
int exitcode;
int expert;
-int idlethread;
+static int idlethread;
size_t pagesize;
struct timeval stopwatch;
-void
+static void
usage(void)
{
fprintf(stderr,
@@ -124,7 +124,7 @@ init_check_command(
return 1;
}
-void
+static void
init(
int argc,
char **argv)
@@ -235,7 +235,7 @@ init(
* are not reference counted. Spawning an idle thread can help detecting file
* struct reference leaks.
*/
-void *
+static void *
idle_loop(void *arg)
{
for (;;)
@@ -243,7 +243,7 @@ idle_loop(void *arg)
return NULL;
}
-void
+static void
start_idle_thread(void)
{
pthread_t t;
diff --git a/io/madvise.c b/io/madvise.c
index c001a2f..9f6c010 100644
--- a/io/madvise.c
+++ b/io/madvise.c
@@ -34,7 +34,7 @@ madvise_help(void)
"\n"));
}
-int
+static int
madvise_f(
int argc,
char **argv)
diff --git a/io/mincore.c b/io/mincore.c
index c4f354c..239134f 100644
--- a/io/mincore.c
+++ b/io/mincore.c
@@ -12,7 +12,7 @@
static cmdinfo_t mincore_cmd;
-int
+static int
mincore_f(
int argc,
char **argv)
diff --git a/io/mmap.c b/io/mmap.c
index dbfcca5..44749bb 100644
--- a/io/mmap.c
+++ b/io/mmap.c
@@ -290,7 +290,7 @@ msync_help(void)
"\n"));
}
-int
+static int
msync_f(
int argc,
char **argv)
@@ -374,7 +374,7 @@ mread_help(void)
"\n"));
}
-int
+static int
mread_f(
int argc,
char **argv)
@@ -477,7 +477,7 @@ mread_f(
return 0;
}
-int
+static int
munmap_f(
int argc,
char **argv)
@@ -531,7 +531,7 @@ mwrite_help(void)
"\n"));
}
-int
+static int
mwrite_f(
int argc,
char **argv)
@@ -618,7 +618,7 @@ mremap_help(void)
"\n"));
}
-int
+static int
mremap_f(
int argc,
char **argv)
diff --git a/io/parent.c b/io/parent.c
index 53ac659..ffa55f6 100644
--- a/io/parent.c
+++ b/io/parent.c
@@ -358,7 +358,7 @@ error:
return retval;
}
-int
+static int
parent_f(int argc, char **argv)
{
int c;
diff --git a/io/readdir.c b/io/readdir.c
index 4321bde..2cb8977 100644
--- a/io/readdir.c
+++ b/io/readdir.c
@@ -18,7 +18,7 @@
static struct cmdinfo readdir_cmd;
-const char *d_type_str(unsigned int type)
+static const char *d_type_str(unsigned int type)
{
const char *str;
diff --git a/io/seek.c b/io/seek.c
index ae6e9f5..59ba1cf 100644
--- a/io/seek.c
+++ b/io/seek.c
@@ -49,7 +49,7 @@ seek_help(void)
#define DATA 0
#define HOLE 1
-struct seekinfo {
+static struct seekinfo {
char *name; /* display item name */
int seektype; /* data or hole */
int mask; /* compared for print and looping */
@@ -59,7 +59,7 @@ struct seekinfo {
};
/* print item type and offset. catch special cases of eof and error */
-void
+static void
seek_output(
int startflag,
char *type,
diff --git a/io/stat.c b/io/stat.c
index cde7780..64662b4 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -77,7 +77,8 @@ dump_raw_stat(struct stat *st)
return 0;
}
-void print_file_info(void)
+static void
+print_file_info(void)
{
printf(_("fd.path = \"%s\"\n"), file->name);
printf(_("fd.flags = %s,%s,%s%s%s%s%s\n"),
@@ -90,7 +91,8 @@ void print_file_info(void)
file->flags & IO_TMPFILE ? _(",tmpfile") : "");
}
-void print_xfs_info(int verbose)
+static void
+print_xfs_info(int verbose)
{
struct dioattr dio;
struct fsxattr fsx, fsxa;
@@ -291,7 +293,7 @@ dump_raw_statx(struct statx *stx)
* - output style for flags (and all else?) (chars vs. hex?)
* - output - mask out incidental flag or not?
*/
-int
+static int
statx_f(
int argc,
char **argv)
diff --git a/libxcmd/command.c b/libxcmd/command.c
index ceb359d..a76d151 100644
--- a/libxcmd/command.c
+++ b/libxcmd/command.c
@@ -19,8 +19,8 @@ struct cmdline {
bool iterate;
};
-static int ncmdline;
-struct cmdline *cmdline;
+static int ncmdline;
+static struct cmdline *cmdline;
static int
compare(const void *a, const void *b)
diff --git a/libxfs/cache.c b/libxfs/cache.c
index 77866bc..139c7c1 100644
--- a/libxfs/cache.c
+++ b/libxfs/cache.c
@@ -77,7 +77,7 @@ cache_init(
return cache;
}
-void
+static void
cache_expand(
struct cache * cache)
{
diff --git a/libxfs/init.c b/libxfs/init.c
index d7543d4..10dcbf3 100644
--- a/libxfs/init.c
+++ b/libxfs/init.c
@@ -37,7 +37,7 @@ static int manage_zones(int); /* setup/teardown global zones */
* dev_map - map open devices to fd.
*/
#define MAX_DEVS 10 /* arbitary maximum */
-int nextfakedev = -1; /* device number to give to next fake device */
+static int nextfakedev = -1; /* device number to give to next fake device */
static struct dev_to_fd {
dev_t dev;
int fd;
diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c
index c160e20..753b939 100644
--- a/libxfs/rdwr.c
+++ b/libxfs/rdwr.c
@@ -544,7 +544,7 @@ libxfs_bcompare(struct cache_node *node, cache_key_t key)
return CACHE_MISS;
}
-void
+static void
libxfs_bprint(xfs_buf_t *bp)
{
fprintf(stderr, "Buffer %p blkno=%llu bytes=%u flags=0x%x count=%u\n",
@@ -624,7 +624,7 @@ libxfs_initbuf_map(xfs_buf_t *bp, struct xfs_buftarg *btp,
bp->b_flags |= LIBXFS_B_DISCONTIG;
}
-xfs_buf_t *
+static xfs_buf_t *
__libxfs_getbufr(int blen)
{
xfs_buf_t *bp;
@@ -681,7 +681,7 @@ libxfs_getbufr(struct xfs_buftarg *btp, xfs_daddr_t blkno, int bblen)
return bp;
}
-xfs_buf_t *
+static xfs_buf_t *
libxfs_getbufr_map(struct xfs_buftarg *btp, xfs_daddr_t blkno, int bblen,
struct xfs_buf_map *map, int nmaps)
{
diff --git a/libxfs/util.c b/libxfs/util.c
index eb99ef7..9932186 100644
--- a/libxfs/util.c
+++ b/libxfs/util.c
@@ -230,7 +230,7 @@ xfs_flags2diflags2(
* This was once shared with the kernel, but has diverged to the point
* where it's no longer worth the hassle of maintaining common code.
*/
-int
+static int
libxfs_ialloc(
xfs_trans_t *tp,
xfs_inode_t *pip,
@@ -380,7 +380,7 @@ libxfs_ialloc(
return 0;
}
-void
+static void
libxfs_iprint(
xfs_inode_t *ip)
{
@@ -753,7 +753,7 @@ xfs_inode_verifier_error(
* repair can validate it against the state of the log.
*/
xfs_lsn_t libxfs_max_lsn = 0;
-pthread_mutex_t libxfs_max_lsn_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t libxfs_max_lsn_lock = PTHREAD_MUTEX_INITIALIZER;
bool
xfs_log_check_lsn(
diff --git a/logprint/log_misc.c b/logprint/log_misc.c
index c5dba30..e29366a 100644
--- a/logprint/log_misc.c
+++ b/logprint/log_misc.c
@@ -24,7 +24,7 @@ typedef struct xlog_split_item {
int si_skip;
} xlog_split_item_t;
-xlog_split_item_t *split_list = NULL;
+static xlog_split_item_t *split_list = NULL;
void
print_xlog_op_line(void)
@@ -33,7 +33,7 @@ print_xlog_op_line(void)
"--------------------------------------\n");
} /* print_xlog_op_line */
-void
+static void
print_xlog_xhdr_line(void)
{
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
@@ -58,7 +58,7 @@ print_stars(void)
* Given a pointer to a data segment, print out the data as if it were
* a log operation header.
*/
-void
+static void
xlog_print_op_header(xlog_op_header_t *op_head,
int i,
char **ptr)
@@ -98,7 +98,7 @@ xlog_print_op_header(xlog_op_header_t *op_head,
} /* xlog_print_op_header */
-void
+static void
xlog_print_add_to_trans(xlog_tid_t tid,
int skip)
{
@@ -115,7 +115,7 @@ xlog_print_add_to_trans(xlog_tid_t tid,
} /* xlog_print_add_to_trans */
-int
+static int
xlog_print_find_tid(xlog_tid_t tid, uint was_cont)
{
xlog_split_item_t *listp = split_list;
@@ -149,7 +149,7 @@ xlog_print_find_tid(xlog_tid_t tid, uint was_cont)
return 1;
} /* xlog_print_find_tid */
-int
+static int
xlog_print_trans_header(char **ptr, int len)
{
xfs_trans_header_t *h;
@@ -181,7 +181,7 @@ xlog_print_trans_header(char **ptr, int len)
} /* xlog_print_trans_header */
-int
+static int
xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops)
{
xfs_buf_log_format_t *f;
@@ -416,7 +416,7 @@ xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops)
} /* xlog_print_trans_buffer */
-int
+static int
xlog_print_trans_qoff(char **ptr, uint len)
{
xfs_qoff_logformat_t *f;
@@ -435,7 +435,7 @@ xlog_print_trans_qoff(char **ptr, uint len)
} /* xlog_print_trans_qoff */
-void
+static void
xlog_print_trans_inode_core(
struct xfs_log_dinode *ip)
{
@@ -461,7 +461,7 @@ xlog_print_trans_inode_core(
}
}
-void
+static void
xlog_print_dir2_sf(
struct xlog *log,
xfs_dir2_sf_hdr_t *sfp,
@@ -497,7 +497,7 @@ xlog_print_dir2_sf(
}
}
-int
+static int
xlog_print_trans_inode(
struct xlog *log,
char **ptr,
@@ -648,7 +648,7 @@ xlog_print_trans_inode(
} /* xlog_print_trans_inode */
-int
+static int
xlog_print_trans_dquot(char **ptr, int len, int *i, int num_ops)
{
xfs_dq_logformat_t *f;
@@ -756,7 +756,7 @@ xlog_print_lseek(struct xlog *log, int fd, xfs_daddr_t blkno, int whence)
} /* xlog_print_lseek */
-void
+static void
print_lsn(char *string,
__be64 *lsn)
{
@@ -765,7 +765,7 @@ print_lsn(char *string,
}
-int
+static int
xlog_print_record(
struct xlog *log,
int fd,
@@ -1020,7 +1020,7 @@ xlog_print_record(
} /* xlog_print_record */
-int
+static int
xlog_print_rec_head(xlog_rec_header_t *head, int *len, int bad_hdr_warn)
{
int i;
@@ -1094,7 +1094,7 @@ xlog_print_rec_head(xlog_rec_header_t *head, int *len, int bad_hdr_warn)
return(be32_to_cpu(head->h_num_logops));
} /* xlog_print_rec_head */
-void
+static void
xlog_print_rec_xhead(xlog_rec_ext_header_t *head, int coverage)
{
int i;
@@ -1134,7 +1134,7 @@ print_xlog_bad_header(xfs_daddr_t blkno, char *buf)
xlog_exit("Bad log record header");
} /* print_xlog_bad_header */
-void
+static void
print_xlog_bad_data(xfs_daddr_t blkno)
{
print_stars();
diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c
index cd47313..eafffe2 100644
--- a/logprint/log_print_all.c
+++ b/logprint/log_print_all.c
@@ -430,7 +430,7 @@ xlog_recover_print_logitem(
}
}
-void
+static void
xlog_recover_print_item(
xlog_recover_item_t *item)
{
diff --git a/logprint/logprint.c b/logprint/logprint.c
index 5aaa30c..7754a2a 100644
--- a/logprint/logprint.c
+++ b/logprint/logprint.c
@@ -25,9 +25,9 @@ int print_overwrite;
int print_no_data;
int print_no_print;
int print_exit = 1; /* -e is now default. specify -c to override */
-int print_operation = OP_PRINT;
+static int print_operation = OP_PRINT;
-void
+static void
usage(void)
{
fprintf(stderr, _("Usage: %s [options...] <device>\n\n\
@@ -52,7 +52,7 @@ Options:\n\
exit(1);
}
-int
+static int
logstat(xfs_mount_t *mp)
{
int fd;
diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
index bb4246f..3375e08 100644
--- a/mdrestore/xfs_mdrestore.c
+++ b/mdrestore/xfs_mdrestore.c
@@ -8,9 +8,9 @@
#include "xfs_metadump.h"
char *progname;
-int show_progress = 0;
-int show_info = 0;
-int progress_since_warning = 0;
+static int show_progress = 0;
+static int show_info = 0;
+static int progress_since_warning = 0;
static void
fatal(const char *msg, ...)
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 2eec005..9877959 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -31,8 +31,8 @@
* XXX: The configured block and sector sizes are defined as global variables so
* that they don't need to be passed to getnum/cvtnum().
*/
-unsigned int blocksize;
-unsigned int sectorsize;
+static unsigned int blocksize;
+static unsigned int sectorsize;
/*
* Enums for each CLI parameter type are declared first so we can calculate the
@@ -216,9 +216,9 @@ struct opt_params {
* about tables that haven't yet been defined. Work around this ordering
* issue with extern definitions here.
*/
-extern struct opt_params sopts;
+static struct opt_params sopts;
-struct opt_params bopts = {
+static struct opt_params bopts = {
.name = 'b',
.subopts = {
[B_SIZE] = "size",
@@ -235,7 +235,7 @@ struct opt_params bopts = {
},
};
-struct opt_params dopts = {
+static struct opt_params dopts = {
.name = 'd',
.subopts = {
[D_AGCOUNT] = "agcount",
@@ -372,7 +372,7 @@ struct opt_params dopts = {
};
-struct opt_params iopts = {
+static struct opt_params iopts = {
.name = 'i',
.subopts = {
[I_ALIGN] = "align",
@@ -433,7 +433,7 @@ struct opt_params iopts = {
},
};
-struct opt_params lopts = {
+static struct opt_params lopts = {
.name = 'l',
.subopts = {
[L_AGNUM] = "agnum",
@@ -532,7 +532,7 @@ struct opt_params lopts = {
},
};
-struct opt_params nopts = {
+static struct opt_params nopts = {
.name = 'n',
.subopts = {
[N_SIZE] = "size",
@@ -563,7 +563,7 @@ struct opt_params nopts = {
},
};
-struct opt_params ropts = {
+static struct opt_params ropts = {
.name = 'r',
.subopts = {
[R_EXTSIZE] = "extsize",
@@ -613,7 +613,7 @@ struct opt_params ropts = {
},
};
-struct opt_params sopts = {
+static struct opt_params sopts = {
.name = 's',
.subopts = {
[S_SIZE] = "size",
@@ -643,7 +643,7 @@ struct opt_params sopts = {
},
};
-struct opt_params mopts = {
+static struct opt_params mopts = {
.name = 'm',
.subopts = {
[M_CRC] = "crc",
@@ -1658,7 +1658,7 @@ sector_opts_parser(
return 0;
}
-struct subopts {
+static struct subopts {
char opt;
struct opt_params *opts;
int (*parser)(struct opt_params *opts,
@@ -2964,7 +2964,7 @@ _("Due to stripe alignment, the internal log size (%lld) is too large.\n"
}
}
-void
+static void
validate_log_size(uint64_t logblocks, int blocklog, int min_logblocks)
{
if (logblocks < min_logblocks) {
diff --git a/repair/btree.c b/repair/btree.c
index dd7717b..a402d0a 100644
--- a/repair/btree.c
+++ b/repair/btree.c
@@ -444,7 +444,7 @@ btree_lookup_prev(
return value;
}
-void *
+static void *
btree_uncached_lookup(
struct btree_root *root,
unsigned long key)
diff --git a/repair/incore_ext.c b/repair/incore_ext.c
index 0624d6d..e7ef9eb 100644
--- a/repair/incore_ext.c
+++ b/repair/incore_ext.c
@@ -144,7 +144,7 @@ release_extent_tree_node(extent_tree_node_t *node)
* reused. the duplicate and bno/bcnt extent trees for each AG
* are recycled after they're no longer needed to save memory
*/
-void
+static void
release_extent_tree(avltree_desc_t *tree)
{
extent_tree_node_t *ext;
@@ -517,12 +517,12 @@ avl_ext_bcnt_end(avlnode_t *node)
return((uintptr_t) ((extent_tree_node_t *)node)->ex_blockcount);
}
-avlops_t avl_extent_bcnt_tree_ops = {
+static avlops_t avl_extent_bcnt_tree_ops = {
avl_ext_bcnt_start,
avl_ext_bcnt_end
};
-avlops_t avl_extent_tree_ops = {
+static avlops_t avl_extent_tree_ops = {
avl_ext_start,
avl_ext_end
};
@@ -714,7 +714,7 @@ avl64_ext_end(avl64node_t *node)
((rt_extent_tree_node_t *) node)->rt_blockcount);
}
-avl64ops_t avl64_extent_tree_ops = {
+static avl64ops_t avl64_extent_tree_ops = {
avl64_rt_ext_start,
avl64_ext_end
};
@@ -792,7 +792,7 @@ incore_ext_teardown(xfs_mount_t *mp)
extent_bno_ptrs = NULL;
}
-int
+static int
count_extents(xfs_agnumber_t agno, avltree_desc_t *tree, int whichtree)
{
extent_tree_node_t *node;
diff --git a/repair/incore_ino.c b/repair/incore_ino.c
index ed10d06..82956ae 100644
--- a/repair/incore_ino.c
+++ b/repair/incore_ino.c
@@ -535,7 +535,7 @@ set_inode_free_alloc(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agino_t ino)
return(ino_rec);
}
-void
+static void
print_inode_list_int(xfs_agnumber_t agno, int uncertain)
{
ino_tree_node_t *ino_rec;
@@ -776,7 +776,7 @@ avl_ino_end(avlnode_t *node)
XFS_INODES_PER_CHUNK));
}
-avlops_t avl_ino_tree_ops = {
+static avlops_t avl_ino_tree_ops = {
avl_ino_start,
avl_ino_end
};
diff --git a/repair/phase6.c b/repair/phase6.c
index e2e4446..e017326 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -513,7 +513,7 @@ res_failed(
do_error(_("xfs_trans_reserve returned %d\n"), err);
}
-void
+static void
mk_rbmino(xfs_mount_t *mp)
{
xfs_trans_t *tp;
diff --git a/repair/progress.c b/repair/progress.c
index b049fd1..5ee0822 100644
--- a/repair/progress.c
+++ b/repair/progress.c
@@ -81,7 +81,7 @@ progress_rpt_t progress_rpt_reports[] = {
&rpt_fmts[FMT1], &rpt_types[TYPE_AG]}
};
-pthread_t report_thread;
+static pthread_t report_thread;
typedef struct msg_block_s {
pthread_mutex_t mutex;
diff --git a/repair/sb.c b/repair/sb.c
index 94a4726..059422c 100644
--- a/repair/sb.c
+++ b/repair/sb.c
@@ -71,7 +71,7 @@ copy_sb(xfs_sb_t *source, xfs_sb_t *dest)
memset(source->sb_fname, 0, 12);
}
-int
+static int
verify_sb_blocksize(xfs_sb_t *sb)
{
/* check to make sure blocksize is legal 2^N, 9 <= N <= 16 */
diff --git a/repair/scan.c b/repair/scan.c
index 4bcc626..65a76e2 100644
--- a/repair/scan.c
+++ b/repair/scan.c
@@ -1449,7 +1449,7 @@ enum inobt_type {
INOBT,
FINOBT
};
-const char *inobt_names[] = {
+static const char *inobt_names[] = {
"inobt",
"finobt"
};
diff --git a/rtcp/xfs_rtcp.c b/rtcp/xfs_rtcp.c
index a77561d..f928a86 100644
--- a/rtcp/xfs_rtcp.c
+++ b/rtcp/xfs_rtcp.c
@@ -9,10 +9,10 @@
int rtcp(char *, char *, int);
int xfsrtextsize(char *path);
-int pflag;
+static int pflag;
char *progname;
-void
+static void
usage(void)
{
fprintf(stderr, _("%s [-e extsize] [-p] [-V] source target\n"), progname);
diff --git a/scrub/scrub.c b/scrub/scrub.c
index 0059adb..0f0c963 100644
--- a/scrub/scrub.c
+++ b/scrub/scrub.c
@@ -305,7 +305,7 @@ _("Optimizations of %s are possible."), scrubbers[i].name);
}
/* Save a scrub context for later repairs. */
-bool
+static bool
xfs_scrub_save_repair(
struct scrub_ctx *ctx,
struct xfs_action_list *alist,
diff --git a/spaceman/init.c b/spaceman/init.c
index 68bd8a0..181a344 100644
--- a/spaceman/init.c
+++ b/spaceman/init.c
@@ -14,7 +14,7 @@
char *progname;
int exitcode;
-void
+static void
usage(void)
{
fprintf(stderr,
@@ -54,7 +54,7 @@ init_check_command(
return 1;
}
-void
+static void
init(
int argc,
char **argv)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 11/15] xfsprogs: include headers for extern variables
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (9 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 10/15] xfsprogs: make static things static Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:14 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 12/15] xfsprogs: kill EXTERN macro Eric Sandeen
` (4 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
Include headers which export functions so that they don't appear to be
static to the sparse checker.
Remove redundant extern declarations in c code which are no longer needed.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
copy/xfs_copy.c | 3 +--
db/crc.c | 1 +
db/fuzz.c | 1 +
db/hash.c | 1 +
db/logformat.c | 1 +
db/symlink.c | 2 +-
db/text.c | 1 +
include/avl64.h | 6 ++++++
include/kmem.h | 2 ++
include/libxfs.h | 2 --
io/getrusage.c | 1 +
io/log_writes.c | 1 +
libfrog/crc32.c | 1 +
libfrog/linux.c | 1 +
libfrog/topology.c | 1 +
libxfs/init.c | 9 ---------
libxfs/init.h | 11 +++++++++++
libxfs/logitem.c | 1 +
libxfs/trans.c | 1 +
libxfs/util.c | 1 +
mdrestore/xfs_mdrestore.c | 3 +--
repair/phase2.c | 2 --
repair/scan.h | 1 +
repair/xfs_repair.c | 1 +
scrub/xfs_scrub.c | 1 +
25 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 3f6535c..862573f 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -5,6 +5,7 @@
*/
#include "libxfs.h"
+#include "init.h"
#include <sys/stat.h>
#include <sys/wait.h>
#include <pthread.h>
@@ -16,8 +17,6 @@
#define rounddown(x, y) (((x)/(y))*(y))
#define uuid_equal(s,d) (platform_uuid_compare((s),(d)) == 0)
-extern int platform_check_ismounted(char *, char *, struct stat *, int);
-
static char *logfile_name;
static FILE *logerr;
static char LOGFILE_NAME[] = "/var/tmp/xfs_copy.log.XXXXXX";
diff --git a/db/crc.c b/db/crc.c
index c4136a4..23702cc 100644
--- a/db/crc.c
+++ b/db/crc.c
@@ -17,6 +17,7 @@
#include "output.h"
#include "bit.h"
#include "print.h"
+#include "crc.h"
static int crc_f(int argc, char **argv);
static void crc_help(void);
diff --git a/db/fuzz.c b/db/fuzz.c
index 5d5d54f..65157bd 100644
--- a/db/fuzz.c
+++ b/db/fuzz.c
@@ -21,6 +21,7 @@
#include "print.h"
#include "write.h"
#include "malloc.h"
+#include "fuzz.h"
static int fuzz_f(int argc, char **argv);
static void fuzz_help(void);
diff --git a/db/hash.c b/db/hash.c
index bda3316..68c53e7 100644
--- a/db/hash.c
+++ b/db/hash.c
@@ -10,6 +10,7 @@
#include "type.h"
#include "io.h"
#include "output.h"
+#include "hash.h"
static int hash_f(int argc, char **argv);
static void hash_help(void);
diff --git a/db/logformat.c b/db/logformat.c
index 42ce245..3374c29 100644
--- a/db/logformat.c
+++ b/db/logformat.c
@@ -9,6 +9,7 @@
#include "init.h"
#include "output.h"
#include "libxlog.h"
+#include "logformat.h"
#define MAX_LSUNIT 256 * 1024 /* max log buf. size */
diff --git a/db/symlink.c b/db/symlink.c
index ebf6637..752cae4 100644
--- a/db/symlink.c
+++ b/db/symlink.c
@@ -11,7 +11,7 @@
#include "field.h"
#include "bit.h"
#include "init.h"
-
+#include "symlink.h"
/*
* XXX: no idea how to handle multiple contiguous block symlinks here.
diff --git a/db/text.c b/db/text.c
index 3a279d1..adf33a7 100644
--- a/db/text.c
+++ b/db/text.c
@@ -17,6 +17,7 @@
#include "io.h"
#include "output.h"
#include "init.h"
+#include "text.h"
static void print_rawtext(void *data, int len);
diff --git a/include/avl64.h b/include/avl64.h
index 7a66883..4042f6c 100644
--- a/include/avl64.h
+++ b/include/avl64.h
@@ -69,6 +69,12 @@ avl64_insert_immediate(
avl64node_t *afterp,
avl64node_t *newnode);
+avl64node_t *
+avl64_firstino(avl64node_t *root);
+
+avl64node_t *
+avl64_lastino(avl64node_t *root);
+
void
avl64_init_tree(
avl64tree_desc_t *tree,
diff --git a/include/kmem.h b/include/kmem.h
index 03475c6..ec19ee7 100644
--- a/include/kmem.h
+++ b/include/kmem.h
@@ -6,6 +6,8 @@
#ifndef __KMEM_H__
#define __KMEM_H__
+#include <stdlib.h>
+
#define KM_SLEEP 0x0001u
#define KM_NOSLEEP 0x0002u
#define KM_NOFS 0x0004u
diff --git a/include/libxfs.h b/include/libxfs.h
index 2bdef70..a690008 100644
--- a/include/libxfs.h
+++ b/include/libxfs.h
@@ -133,8 +133,6 @@ extern dev_t libxfs_device_open (char *, int, int, int);
extern void libxfs_device_close (dev_t);
extern int libxfs_device_alignment (void);
extern void libxfs_report(FILE *);
-extern void platform_findsizes(char *path, int fd, long long *sz, int *bsz);
-extern int platform_nproc(void);
/* check or write log footer: specify device, log size in blocks & uuid */
typedef char *(libxfs_get_block_t)(char *, int, void *);
diff --git a/io/getrusage.c b/io/getrusage.c
index ba704b7..6962913 100644
--- a/io/getrusage.c
+++ b/io/getrusage.c
@@ -9,6 +9,7 @@
#include <sys/time.h>
#include <sys/resource.h>
#include "init.h"
+#include "io.h"
static cmdinfo_t getrusage_cmd;
diff --git a/io/log_writes.c b/io/log_writes.c
index 114f818..9c2285f 100644
--- a/io/log_writes.c
+++ b/io/log_writes.c
@@ -8,6 +8,7 @@
#include <libdevmapper.h>
#include "command.h"
#include "init.h"
+#include "io.h"
static cmdinfo_t log_writes_cmd;
diff --git a/libfrog/crc32.c b/libfrog/crc32.c
index 1d52f68..e3f3fd1 100644
--- a/libfrog/crc32.c
+++ b/libfrog/crc32.c
@@ -33,6 +33,7 @@
#include "xfs.h"
#include "xfs_arch.h"
#include "crc32defs.h"
+#include "crc32c.h"
/* types specifc to this file */
typedef __u8 u8;
diff --git a/libfrog/linux.c b/libfrog/linux.c
index fc9f3ac..baf75ab 100644
--- a/libfrog/linux.c
+++ b/libfrog/linux.c
@@ -10,6 +10,7 @@
#include <sys/sysinfo.h>
#include "libxfs_priv.h"
+#include "init.h"
#include "xfs_fs.h"
extern char *progname;
diff --git a/libfrog/topology.c b/libfrog/topology.c
index cac164f..2453b84 100644
--- a/libfrog/topology.c
+++ b/libfrog/topology.c
@@ -10,6 +10,7 @@
# include <blkid/blkid.h>
#endif /* ENABLE_BLKID */
#include "xfs_multidisk.h"
+#include "init.h"
#define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog)))
#define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog)))
diff --git a/libxfs/init.c b/libxfs/init.c
index 10dcbf3..80fbe6a 100644
--- a/libxfs/init.c
+++ b/libxfs/init.c
@@ -363,15 +363,6 @@ done:
static int
manage_zones(int release)
{
- extern kmem_zone_t *xfs_buf_zone;
- extern kmem_zone_t *xfs_ili_zone;
- extern kmem_zone_t *xfs_inode_zone;
- extern kmem_zone_t *xfs_ifork_zone;
- extern kmem_zone_t *xfs_buf_item_zone;
- extern kmem_zone_t *xfs_da_state_zone;
- extern kmem_zone_t *xfs_btree_cur_zone;
- extern kmem_zone_t *xfs_bmap_free_item_zone;
- extern kmem_zone_t *xfs_trans_zone;
extern void xfs_dir_startup();
if (release) { /* free zone allocation */
diff --git a/libxfs/init.h b/libxfs/init.h
index e0b5091..227c768 100644
--- a/libxfs/init.h
+++ b/libxfs/init.h
@@ -6,7 +6,10 @@
#ifndef LIBXFS_INIT_H
#define LIBXFS_INIT_H
+#include "kmem.h"
+
struct stat;
+extern int use_xfs_buf_lock;
extern int platform_check_ismounted (char *path, char *block,
struct stat *sptr, int verbose);
@@ -19,5 +22,13 @@ extern char *platform_findblockpath (char *path);
extern int platform_direct_blockdev (void);
extern int platform_align_blockdev (void);
extern unsigned long platform_physmem(void); /* in kilobytes */
+extern void platform_findsizes(char *path, int fd, long long *sz, int *bsz);
+extern int platform_nproc(void);
+
+extern kmem_zone_t *xfs_buf_item_zone;
+extern kmem_zone_t *xfs_ili_zone;
+extern kmem_zone_t *xfs_buf_zone;
+extern kmem_zone_t *xfs_inode_zone;
+extern kmem_zone_t *xfs_trans_zone;
#endif /* LIBXFS_INIT_H */
diff --git a/libxfs/logitem.c b/libxfs/logitem.c
index 4da9bc1..e850680 100644
--- a/libxfs/logitem.c
+++ b/libxfs/logitem.c
@@ -15,6 +15,7 @@
#include "xfs_inode_fork.h"
#include "xfs_inode.h"
#include "xfs_trans.h"
+#include "init.h"
kmem_zone_t *xfs_buf_item_zone;
kmem_zone_t *xfs_ili_zone; /* inode log item zone */
diff --git a/libxfs/trans.c b/libxfs/trans.c
index 46ff8b4..eb1e390 100644
--- a/libxfs/trans.c
+++ b/libxfs/trans.c
@@ -18,6 +18,7 @@
#include "xfs_trans.h"
#include "xfs_sb.h"
#include "xfs_defer.h"
+#include "init.h"
static void xfs_trans_free_items(struct xfs_trans *tp);
STATIC struct xfs_trans *xfs_trans_dup(struct xfs_trans *tp);
diff --git a/libxfs/util.c b/libxfs/util.c
index 9932186..0a9a08e 100644
--- a/libxfs/util.c
+++ b/libxfs/util.c
@@ -5,6 +5,7 @@
*/
#include "libxfs_priv.h"
+#include "libxfs.h"
#include "libxfs_io.h"
#include "init.h"
#include "xfs_fs.h"
diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
index 3375e08..b48c5d4 100644
--- a/mdrestore/xfs_mdrestore.c
+++ b/mdrestore/xfs_mdrestore.c
@@ -5,6 +5,7 @@
*/
#include "libxfs.h"
+#include "init.h"
#include "xfs_metadump.h"
char *progname;
@@ -183,8 +184,6 @@ usage(void)
exit(1);
}
-extern int platform_check_ismounted(char *, char *, struct stat *, int);
-
int
main(
int argc,
diff --git a/repair/phase2.c b/repair/phase2.c
index b92ceb8..4bd6c63 100644
--- a/repair/phase2.c
+++ b/repair/phase2.c
@@ -15,8 +15,6 @@
#include "progress.h"
#include "scan.h"
-void set_mp(xfs_mount_t *mpp);
-
/* workaround craziness in the xlog routines */
int xlog_recover_do_trans(struct xlog *log, xlog_recover_t *t, int p)
{
diff --git a/repair/scan.h b/repair/scan.h
index aa7c38d..cf4d563 100644
--- a/repair/scan.h
+++ b/repair/scan.h
@@ -58,4 +58,5 @@ scan_ags(
struct xfs_mount *mp,
int scan_threads);
+extern void set_mp(xfs_mount_t *mpp);
#endif /* _XR_SCAN_H */
diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
index 41ab301..b73e611 100644
--- a/repair/xfs_repair.c
+++ b/repair/xfs_repair.c
@@ -22,6 +22,7 @@
#include "dinode.h"
#include "slab.h"
#include "rmap.h"
+#include "init.h"
/*
* option tables for getsubopt calls
diff --git a/scrub/xfs_scrub.c b/scrub/xfs_scrub.c
index 076a86a..c611f1f 100644
--- a/scrub/xfs_scrub.c
+++ b/scrub/xfs_scrub.c
@@ -10,6 +10,7 @@
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/statvfs.h>
+#include "libxfs.h"
#include "platform_defs.h"
#include "input.h"
#include "path.h"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 12/15] xfsprogs: kill EXTERN macro
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (10 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 11/15] xfsprogs: include headers for extern variables Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:15 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers Eric Sandeen
` (3 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
The EXTERN macro was a too-clever hack to allow a header file to both
declare global variables and export them. Get rid of the hack and do
things the predictable way.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
repair/globals.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++--
repair/globals.h | 136 +++++++++++++++++++++++++++---------------------------
repair/versions.c | 23 +++++++--
repair/versions.h | 16 +++----
4 files changed, 214 insertions(+), 84 deletions(-)
diff --git a/repair/globals.c b/repair/globals.c
index d00e964..e963edb 100644
--- a/repair/globals.c
+++ b/repair/globals.c
@@ -1,10 +1,125 @@
// SPDX-License-Identifier: GPL-2.0
/*
- * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
+ * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc.
* All Rights Reserved.
*/
-#include "libxfs.h"
-
-#define EXTERN
#include "globals.h"
+
+/* global variables for xfs_repair */
+
+/* arguments and argument flag variables */
+
+char *fs_name; /* name of filesystem */
+int verbose; /* verbose flag, mostly for debugging */
+
+
+/* for reading stuff in manually (bypassing libsim) */
+
+char *iobuf; /* large buffer */
+int iobuf_size;
+char *smallbuf; /* small (1-4 page) buffer */
+int smallbuf_size;
+int sbbuf_size;
+
+/* direct I/O info */
+
+int minio_align; /* min I/O size and alignment */
+int mem_align; /* memory alignment */
+int max_iosize; /* max I/O size */
+
+/* file descriptors */
+
+int fs_fd; /* filesystem fd */
+
+/* command-line flags */
+
+int verbose;
+int no_modify;
+int dangerously; /* live dangerously ... fix ro mount */
+int isa_file;
+int zap_log;
+int dumpcore; /* abort, not exit on fatal errs */
+int force_geo; /* can set geo on low confidence info */
+int assume_xfs; /* assume we have an xfs fs */
+char *log_name; /* Name of log device */
+int log_spec; /* Log dev specified as option */
+char *rt_name; /* Name of realtime device */
+int rt_spec; /* Realtime dev specified as option */
+int convert_lazy_count; /* Convert lazy-count mode on/off */
+int lazy_count; /* What to set if to if converting */
+
+/* misc status variables */
+
+int primary_sb_modified;
+int bad_ino_btree;
+int copied_sunit;
+int fs_is_dirty;
+
+/* for hunting down the root inode */
+
+int need_root_inode;
+int need_root_dotdot;
+
+int need_rbmino;
+int need_rsumino;
+
+int lost_quotas;
+int have_uquotino;
+int have_gquotino;
+int have_pquotino;
+int lost_uquotino;
+int lost_gquotino;
+int lost_pquotino;
+
+xfs_agino_t first_prealloc_ino;
+xfs_agino_t last_prealloc_ino;
+xfs_agblock_t bnobt_root;
+xfs_agblock_t bcntbt_root;
+xfs_agblock_t inobt_root;
+
+/* configuration vars -- fs geometry dependent */
+
+int inodes_per_block;
+int inodes_per_cluster;
+unsigned int glob_agcount;
+int chunks_pblock; /* # of 64-ino chunks per allocation */
+int max_symlink_blocks;
+int64_t fs_max_file_offset;
+
+/* realtime info */
+
+xfs_rtword_t *btmcompute;
+xfs_suminfo_t *sumcompute;
+
+/* inode tree records have full or partial backptr fields ? */
+
+int full_ino_ex_data; /*
+ * if 1, use ino_ex_data_t component
+ * of ino_un union, if 0, use
+ * parent_list_t component. see
+ * incore.h for more details
+ */
+
+#define ORPHANAGE "lost+found"
+
+/* superblock counters */
+
+uint64_t sb_icount; /* allocated (made) inodes */
+uint64_t sb_ifree; /* free inodes */
+uint64_t sb_fdblocks; /* free data blocks */
+uint64_t sb_frextents; /* free realtime extents */
+
+/* superblock geometry info */
+
+xfs_extlen_t sb_inoalignmt;
+uint32_t sb_unit;
+uint32_t sb_width;
+
+struct aglock *ag_locks;
+
+int report_interval;
+uint64_t *prog_rpt_done;
+
+int ag_stride;
+int thread_count;
diff --git a/repair/globals.h b/repair/globals.h
index 9a9465f..05121d4 100644
--- a/repair/globals.h
+++ b/repair/globals.h
@@ -7,9 +7,7 @@
#ifndef _XFS_REPAIR_GLOBAL_H
#define _XFS_REPAIR_GLOBAL_H
-#ifndef EXTERN
-#define EXTERN extern
-#endif
+#include "libxfs.h"
/* useful macros */
@@ -53,91 +51,91 @@
/* arguments and argument flag variables */
-EXTERN char *fs_name; /* name of filesystem */
-EXTERN int verbose; /* verbose flag, mostly for debugging */
+extern char *fs_name; /* name of filesystem */
+extern int verbose; /* verbose flag, mostly for debugging */
/* for reading stuff in manually (bypassing libsim) */
-EXTERN char *iobuf; /* large buffer */
-EXTERN int iobuf_size;
-EXTERN char *smallbuf; /* small (1-4 page) buffer */
-EXTERN int smallbuf_size;
-EXTERN int sbbuf_size;
+extern char *iobuf; /* large buffer */
+extern int iobuf_size;
+extern char *smallbuf; /* small (1-4 page) buffer */
+extern int smallbuf_size;
+extern int sbbuf_size;
/* direct I/O info */
-EXTERN int minio_align; /* min I/O size and alignment */
-EXTERN int mem_align; /* memory alignment */
-EXTERN int max_iosize; /* max I/O size */
+extern int minio_align; /* min I/O size and alignment */
+extern int mem_align; /* memory alignment */
+extern int max_iosize; /* max I/O size */
/* file descriptors */
-EXTERN int fs_fd; /* filesystem fd */
+extern int fs_fd; /* filesystem fd */
/* command-line flags */
-EXTERN int verbose;
-EXTERN int no_modify;
-EXTERN int dangerously; /* live dangerously ... fix ro mount */
-EXTERN int isa_file;
-EXTERN int zap_log;
-EXTERN int dumpcore; /* abort, not exit on fatal errs */
-EXTERN int force_geo; /* can set geo on low confidence info */
-EXTERN int assume_xfs; /* assume we have an xfs fs */
-EXTERN char *log_name; /* Name of log device */
-EXTERN int log_spec; /* Log dev specified as option */
-EXTERN char *rt_name; /* Name of realtime device */
-EXTERN int rt_spec; /* Realtime dev specified as option */
-EXTERN int convert_lazy_count; /* Convert lazy-count mode on/off */
-EXTERN int lazy_count; /* What to set if to if converting */
+extern int verbose;
+extern int no_modify;
+extern int dangerously; /* live dangerously ... fix ro mount */
+extern int isa_file;
+extern int zap_log;
+extern int dumpcore; /* abort, not exit on fatal errs */
+extern int force_geo; /* can set geo on low confidence info */
+extern int assume_xfs; /* assume we have an xfs fs */
+extern char *log_name; /* Name of log device */
+extern int log_spec; /* Log dev specified as option */
+extern char *rt_name; /* Name of realtime device */
+extern int rt_spec; /* Realtime dev specified as option */
+extern int convert_lazy_count; /* Convert lazy-count mode on/off */
+extern int lazy_count; /* What to set if to if converting */
/* misc status variables */
-EXTERN int primary_sb_modified;
-EXTERN int bad_ino_btree;
-EXTERN int copied_sunit;
-EXTERN int fs_is_dirty;
+extern int primary_sb_modified;
+extern int bad_ino_btree;
+extern int copied_sunit;
+extern int fs_is_dirty;
/* for hunting down the root inode */
-EXTERN int need_root_inode;
-EXTERN int need_root_dotdot;
+extern int need_root_inode;
+extern int need_root_dotdot;
-EXTERN int need_rbmino;
-EXTERN int need_rsumino;
+extern int need_rbmino;
+extern int need_rsumino;
-EXTERN int lost_quotas;
-EXTERN int have_uquotino;
-EXTERN int have_gquotino;
-EXTERN int have_pquotino;
-EXTERN int lost_uquotino;
-EXTERN int lost_gquotino;
-EXTERN int lost_pquotino;
+extern int lost_quotas;
+extern int have_uquotino;
+extern int have_gquotino;
+extern int have_pquotino;
+extern int lost_uquotino;
+extern int lost_gquotino;
+extern int lost_pquotino;
-EXTERN xfs_agino_t first_prealloc_ino;
-EXTERN xfs_agino_t last_prealloc_ino;
-EXTERN xfs_agblock_t bnobt_root;
-EXTERN xfs_agblock_t bcntbt_root;
-EXTERN xfs_agblock_t inobt_root;
+extern xfs_agino_t first_prealloc_ino;
+extern xfs_agino_t last_prealloc_ino;
+extern xfs_agblock_t bnobt_root;
+extern xfs_agblock_t bcntbt_root;
+extern xfs_agblock_t inobt_root;
/* configuration vars -- fs geometry dependent */
-EXTERN int inodes_per_block;
-EXTERN int inodes_per_cluster;
-EXTERN unsigned int glob_agcount;
-EXTERN int chunks_pblock; /* # of 64-ino chunks per allocation */
-EXTERN int max_symlink_blocks;
-EXTERN int64_t fs_max_file_offset;
+extern int inodes_per_block;
+extern int inodes_per_cluster;
+extern unsigned int glob_agcount;
+extern int chunks_pblock; /* # of 64-ino chunks per allocation */
+extern int max_symlink_blocks;
+extern int64_t fs_max_file_offset;
/* realtime info */
-EXTERN xfs_rtword_t *btmcompute;
-EXTERN xfs_suminfo_t *sumcompute;
+extern xfs_rtword_t *btmcompute;
+extern xfs_suminfo_t *sumcompute;
/* inode tree records have full or partial backptr fields ? */
-EXTERN int full_ino_ex_data;/*
+extern int full_ino_ex_data;/*
* if 1, use ino_ex_data_t component
* of ino_un union, if 0, use
* parent_list_t component. see
@@ -148,26 +146,26 @@ EXTERN int full_ino_ex_data;/*
/* superblock counters */
-EXTERN uint64_t sb_icount; /* allocated (made) inodes */
-EXTERN uint64_t sb_ifree; /* free inodes */
-EXTERN uint64_t sb_fdblocks; /* free data blocks */
-EXTERN uint64_t sb_frextents; /* free realtime extents */
+extern uint64_t sb_icount; /* allocated (made) inodes */
+extern uint64_t sb_ifree; /* free inodes */
+extern uint64_t sb_fdblocks; /* free data blocks */
+extern uint64_t sb_frextents; /* free realtime extents */
/* superblock geometry info */
-EXTERN xfs_extlen_t sb_inoalignmt;
-EXTERN uint32_t sb_unit;
-EXTERN uint32_t sb_width;
+extern xfs_extlen_t sb_inoalignmt;
+extern uint32_t sb_unit;
+extern uint32_t sb_width;
struct aglock {
pthread_mutex_t lock __attribute__((__aligned__(64)));
};
-EXTERN struct aglock *ag_locks;
+extern struct aglock *ag_locks;
-EXTERN int report_interval;
-EXTERN uint64_t *prog_rpt_done;
+extern int report_interval;
+extern uint64_t *prog_rpt_done;
-EXTERN int ag_stride;
-EXTERN int thread_count;
+extern int ag_stride;
+extern int thread_count;
#endif /* _XFS_REPAIR_GLOBAL_H */
diff --git a/repair/versions.c b/repair/versions.c
index 9766e92..8fad41f 100644
--- a/repair/versions.c
+++ b/repair/versions.c
@@ -6,11 +6,28 @@
#include "libxfs.h"
-#define EXTERN
-#include "versions.h"
-#undef EXTERN
#include "err_protos.h"
#include "globals.h"
+#include "versions.h"
+
+/*
+ * filesystem feature global vars, set to 1 if the feature
+ * is on, 0 otherwise
+ */
+
+int fs_attributes;
+int fs_attributes2;
+int fs_inode_nlink;
+int fs_quotas;
+int fs_aligned_inodes;
+int fs_sb_feature_bits;
+int fs_has_extflgbit;
+
+/*
+ * inode chunk alignment, fsblocks
+ */
+
+xfs_extlen_t fs_ino_alignment;
void
update_sb_version(xfs_mount_t *mp)
diff --git a/repair/versions.h b/repair/versions.h
index 0cecf16..e1e2521 100644
--- a/repair/versions.h
+++ b/repair/versions.h
@@ -16,19 +16,19 @@
* is on, 0 otherwise
*/
-EXTERN int fs_attributes;
-EXTERN int fs_attributes2;
-EXTERN int fs_inode_nlink;
-EXTERN int fs_quotas;
-EXTERN int fs_aligned_inodes;
-EXTERN int fs_sb_feature_bits;
-EXTERN int fs_has_extflgbit;
+extern int fs_attributes;
+extern int fs_attributes2;
+extern int fs_inode_nlink;
+extern int fs_quotas;
+extern int fs_aligned_inodes;
+extern int fs_sb_feature_bits;
+extern int fs_has_extflgbit;
/*
* inode chunk alignment, fsblocks
*/
-EXTERN xfs_extlen_t fs_ino_alignment;
+extern xfs_extlen_t fs_ino_alignment;
/*
* modify superblock to reflect current state of global fs
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (11 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 12/15] xfsprogs: kill EXTERN macro Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:15 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 14/15] xfsprogs: eliminate shadow variables Eric Sandeen
` (2 subsequent siblings)
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
libxfs functions which aren't used or exported get flagged as
"should be static" but we stay in sync with kernelspace, which has other
headers which export them. Export the lot of them in libxfs_priv.h to
shut up sparse.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
libxfs/libxfs_priv.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
index b4bdc64..b29e887 100644
--- a/libxfs/libxfs_priv.h
+++ b/libxfs/libxfs_priv.h
@@ -606,5 +606,59 @@ static inline int test_bit(int nr, const volatile unsigned long *addr)
return *p & mask;
}
+/* Keep static checkers quiet about nonstatic functions by exporting */
+int xfs_inode_hasattr(struct xfs_inode *ip);
+int xfs_attr_get_ilocked(struct xfs_inode *ip, struct xfs_da_args *args);
+int xfs_attr_get(struct xfs_inode *ip, const unsigned char *name,
+ unsigned char *value, int *valuelenp, int flags);
+int xfs_attr_set(struct xfs_inode *dp, const unsigned char *name,
+ unsigned char *value, int valuelen, int flags);
+int xfs_attr_remove(struct xfs_inode *dp, const unsigned char *name, int flags);
+
+int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t block, int issum, struct xfs_buf **bpp);
+int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_extlen_t len, int val,
+ xfs_rtblock_t *new, int *stat);
+int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_rtblock_t limit,
+ xfs_rtblock_t *rtblock);
+int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_rtblock_t limit,
+ xfs_rtblock_t *rtblock);
+int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_extlen_t len, int val);
+int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp,
+ int log, xfs_rtblock_t bbno, int delta,
+ xfs_buf_t **rbpp, xfs_fsblock_t *rsb,
+ xfs_suminfo_t *sum);
+int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log,
+ xfs_rtblock_t bbno, int delta, xfs_buf_t **rbpp,
+ xfs_fsblock_t *rsb);
+int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_extlen_t len,
+ struct xfs_buf **rbpp, xfs_fsblock_t *rsb);
+int xfs_rtalloc_query_range(struct xfs_trans *tp,
+ struct xfs_rtalloc_rec *low_rec,
+ struct xfs_rtalloc_rec *high_rec,
+ xfs_rtalloc_query_range_fn fn,
+ void *priv);
+int xfs_rtalloc_query_all(struct xfs_trans *tp,
+ xfs_rtalloc_query_range_fn fn,
+ void *priv);
+bool xfs_verify_rtbno(struct xfs_mount *mp, xfs_rtblock_t rtbno);
+int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp,
+ xfs_rtblock_t start, xfs_extlen_t len,
+ bool *is_free);
+/* xfs_bmap_util.h */
+struct xfs_bmalloca;
+int xfs_bmap_extsize_align(struct xfs_mount *mp, struct xfs_bmbt_irec *gotp,
+ struct xfs_bmbt_irec *prevp, xfs_extlen_t extsz,
+ int rt, int eof, int delay, int convert,
+ xfs_fileoff_t *offp, xfs_extlen_t *lenp);
+void xfs_bmap_adjacent(struct xfs_bmalloca *ap);
+int xfs_bmap_last_extent(struct xfs_trans *tp, struct xfs_inode *ip,
+ int whichfork, struct xfs_bmbt_irec *rec,
+ int *is_empty);
#endif /* __LIBXFS_INTERNAL_XFS_H__ */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 14/15] xfsprogs: eliminate shadow variables
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (12 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:16 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 15/15] libfrog: change project entity variable scope Eric Sandeen
2018-10-05 15:41 ` [PATCH 0/15] xfsprogs: sparse fixes Darrick J. Wong
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
None of these seem activel harmful, but to avoid confusion, remove all
shadow variables by just renaming them in their local scope.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
db/check.c | 15 +++++++--------
db/metadump.c | 2 +-
io/mmap.c | 8 ++++----
logprint/log_misc.c | 43 ++++++++++++++++++++++---------------------
repair/scan.c | 22 +++++++++++-----------
scrub/xfs_scrub.c | 9 +++++----
6 files changed, 50 insertions(+), 49 deletions(-)
diff --git a/db/check.c b/db/check.c
index 754441c..04c3212 100644
--- a/db/check.c
+++ b/db/check.c
@@ -2050,7 +2050,7 @@ process_block_dir_v2(
int nex;
xfs_ino_t parent;
int v;
- int x;
+ int i;
nex = blkmap_getn(blkmap, 0, mp->m_dir_geo->fsbcount, &bmp);
v = id->ilist || verbose;
@@ -2067,9 +2067,9 @@ process_block_dir_v2(
make_bbmap(&bbmap, nex, bmp);
set_cur(&typtab[TYP_DIR2], XFS_FSB_TO_DADDR(mp, bmp->startblock),
mp->m_dir_geo->fsbcount * blkbb, DB_RING_IGN, nex > 1 ? &bbmap : NULL);
- for (x = 0; !v && x < nex; x++) {
- for (b = bmp[x].startblock;
- !v && b < bmp[x].startblock + bmp[x].blockcount;
+ for (i = 0; !v && i < nex; i++) {
+ for (b = bmp[i].startblock;
+ !v && b < bmp[i].startblock + bmp[i].blockcount;
b++)
v = CHECK_BLIST(b);
}
@@ -2998,7 +2998,6 @@ process_leaf_node_dir_v2(
int t = 0;
int v;
int v2;
- int x;
v2 = verbose || id->ilist;
v = parent = 0;
@@ -3012,9 +3011,9 @@ process_leaf_node_dir_v2(
while ((dbno = blkmap_next_off(blkmap, dbno, &t)) != NULLFILEOFF) {
nex = blkmap_getn(blkmap, dbno, mp->m_dir_geo->fsbcount, &bmp);
ASSERT(nex > 0);
- for (v = v2, x = 0; !v && x < nex; x++) {
- for (b = bmp[x].startblock;
- !v && b < bmp[x].startblock + bmp[x].blockcount;
+ for (v = v2, i = 0; !v && i < nex; i++) {
+ for (b = bmp[i].startblock;
+ !v && b < bmp[i].startblock + bmp[i].blockcount;
b++)
v = CHECK_BLIST(b);
}
diff --git a/db/metadump.c b/db/metadump.c
index cc2ae9a..8f85f4c 100644
--- a/db/metadump.c
+++ b/db/metadump.c
@@ -1515,7 +1515,7 @@ process_dir_data_block(
dup = (xfs_dir2_data_unused_t *)ptr;
if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) {
- int length = be16_to_cpu(dup->length);
+ length = be16_to_cpu(dup->length);
if (dir_offset + length > end_of_data ||
!length || (length & (XFS_DIR2_DATA_ALIGN - 1))) {
if (show_warnings)
diff --git a/io/mmap.c b/io/mmap.c
index 44749bb..1130b9b 100644
--- a/io/mmap.c
+++ b/io/mmap.c
@@ -30,7 +30,7 @@ print_mapping(
int index,
int braces)
{
- char buffer[8] = { 0 };
+ char buf[8] = { 0 };
int i;
static struct {
@@ -44,16 +44,16 @@ print_mapping(
};
for (i = 0, p = pflags; p->prot != PROT_NONE; i++, p++)
- buffer[i] = (map->prot & p->prot) ? p->mode : '-';
+ buf[i] = (map->prot & p->prot) ? p->mode : '-';
if (map->map_sync)
- sprintf(&buffer[i], " S");
+ sprintf(&buf[i], " S");
printf("%c%03d%c 0x%lx - 0x%lx %s %14s (%lld : %ld)\n",
braces? '[' : ' ', index, braces? ']' : ' ',
(unsigned long)map->addr,
(unsigned long)((char *)map->addr + map->length),
- buffer, map->name ? map->name : "???",
+ buf, map->name ? map->name : "???",
(long long)map->offset, (long)map->length);
}
diff --git a/logprint/log_misc.c b/logprint/log_misc.c
index e29366a..0c51d20 100644
--- a/logprint/log_misc.c
+++ b/logprint/log_misc.c
@@ -192,7 +192,6 @@ xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops)
int64_t blkno;
xfs_buf_log_format_t lbuf;
int size, blen, map_size, struct_size;
- __be64 x, y;
unsigned short flags;
/*
@@ -247,20 +246,22 @@ xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops)
if (be32_to_cpu(head->oh_len) < 4*8) {
printf(_("Out of space\n"));
} else {
+ __be64 a, b;
+
printf("\n");
/*
* memmove because *ptr may not be 8-byte aligned
*/
- memmove(&x, *ptr, sizeof(__be64));
- memmove(&y, *ptr+8, sizeof(__be64));
- printf(_("icount: %llu ifree: %llu "),
- (unsigned long long) be64_to_cpu(x),
- (unsigned long long) be64_to_cpu(y));
- memmove(&x, *ptr+16, sizeof(__be64));
- memmove(&y, *ptr+24, sizeof(__be64));
- printf(_("fdblks: %llu frext: %llu\n"),
- (unsigned long long) be64_to_cpu(x),
- (unsigned long long) be64_to_cpu(y));
+ memmove(&a, *ptr, sizeof(__be64));
+ memmove(&b, *ptr+8, sizeof(__be64));
+ printf(_("icount: %llu ifree: %llu "),
+ (unsigned long long) be64_to_cpu(a),
+ (unsigned long long) be64_to_cpu(b));
+ memmove(&a, *ptr+16, sizeof(__be64));
+ memmove(&b, *ptr+24, sizeof(__be64));
+ printf(_("fdblks: %llu frext: %llu\n"),
+ (unsigned long long) be64_to_cpu(a),
+ (unsigned long long) be64_to_cpu(b));
}
super_block = 0;
} else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGI_MAGIC) {
@@ -394,15 +395,15 @@ xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops)
if (print_data) {
uint *dp = (uint *)*ptr;
int nums = be32_to_cpu(head->oh_len) >> 2;
- int i = 0;
+ int j = 0;
- while (i < nums) {
- if ((i % 8) == 0)
- printf("%2x ", i);
+ while (j < nums) {
+ if ((j % 8) == 0)
+ printf("%2x ", j);
printf("%8x ", *dp);
dp++;
- i++;
- if ((i % 8) == 0)
+ j++;
+ if ((j % 8) == 0)
printf("\n");
}
printf("\n");
@@ -1185,7 +1186,7 @@ xlog_print_extended_headers(
int num_hdrs;
int num_required;
char xhbuf[XLOG_HEADER_SIZE];
- xlog_rec_ext_header_t *x;
+ xlog_rec_ext_header_t *xhdr;
num_required = howmany(len, XLOG_HEADER_CYCLE_SIZE);
num_hdrs = be32_to_cpu(hdr->h_size) / XLOG_HEADER_CYCLE_SIZE;
@@ -1210,7 +1211,7 @@ xlog_print_extended_headers(
*ret_num_hdrs = num_hdrs;
/* don't include 1st header */
- for (i = 1, x = *ret_xhdrs; i < num_hdrs; i++, (*blkno)++, x++) {
+ for (i = 1, xhdr = *ret_xhdrs; i < num_hdrs; i++, (*blkno)++, xhdr++) {
/* read one extra header blk */
if (read(fd, xhbuf, 512) == 0) {
printf(_("%s: physical end of log\n"), progname);
@@ -1240,9 +1241,9 @@ xlog_print_extended_headers(
* will look asymmetric with the 1 hdr normal case
* which does endian coversion on access.
*/
- x->xh_cycle = ((xlog_rec_ext_header_t*)xhbuf)->xh_cycle;
+ xhdr->xh_cycle = ((xlog_rec_ext_header_t*)xhbuf)->xh_cycle;
for (j = 0; j < XLOG_HEADER_CYCLE_SIZE / BBSIZE; j++) {
- x->xh_cycle_data[j] =
+ xhdr->xh_cycle_data[j] =
((xlog_rec_ext_header_t*)xhbuf)->xh_cycle_data[j];
}
}
diff --git a/repair/scan.c b/repair/scan.c
index 65a76e2..12ca314 100644
--- a/repair/scan.c
+++ b/repair/scan.c
@@ -738,7 +738,7 @@ _("%s freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n"),
}
for (i = 0; i < numrecs; i++) {
- xfs_agblock_t bno = be32_to_cpu(pp[i]);
+ xfs_agblock_t agbno = be32_to_cpu(pp[i]);
/*
* XXX - put sibling detection right here.
@@ -749,17 +749,17 @@ _("%s freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n"),
* pointer mismatch, try and extract as much data
* as possible.
*/
- if (bno != 0 && verify_agbno(mp, agno, bno)) {
+ if (agbno != 0 && verify_agbno(mp, agno, agbno)) {
switch (magic) {
case XFS_ABTB_CRC_MAGIC:
case XFS_ABTB_MAGIC:
- scan_sbtree(bno, level, agno, suspect,
+ scan_sbtree(agbno, level, agno, suspect,
scan_allocbt, 0, magic, priv,
&xfs_allocbt_buf_ops);
break;
case XFS_ABTC_CRC_MAGIC:
case XFS_ABTC_MAGIC:
- scan_sbtree(bno, level, agno, suspect,
+ scan_sbtree(agbno, level, agno, suspect,
scan_allocbt, 0, magic, priv,
&xfs_allocbt_buf_ops);
break;
@@ -1177,7 +1177,7 @@ advance:
}
for (i = 0; i < numrecs; i++) {
- xfs_agblock_t bno = be32_to_cpu(pp[i]);
+ xfs_agblock_t agbno = be32_to_cpu(pp[i]);
/*
* XXX - put sibling detection right here.
@@ -1199,12 +1199,12 @@ advance:
/* Look for impossible flags. */
do_warn(
_("invalid flags in high key %u of %s btree block %u/%u\n"),
- i, name, agno, bno);
+ i, name, agno, agbno);
continue;
}
- if (bno != 0 && verify_agbno(mp, agno, bno)) {
- scan_sbtree(bno, level, agno, suspect, scan_rmapbt, 0,
+ if (agbno != 0 && verify_agbno(mp, agno, agbno)) {
+ scan_sbtree(agbno, level, agno, suspect, scan_rmapbt, 0,
magic, priv, &xfs_rmapbt_buf_ops);
}
}
@@ -1419,10 +1419,10 @@ _("extent (%u/%u) len %u claimed, state is %d\n"),
}
for (i = 0; i < numrecs; i++) {
- xfs_agblock_t bno = be32_to_cpu(pp[i]);
+ xfs_agblock_t agbno = be32_to_cpu(pp[i]);
- if (bno != 0 && verify_agbno(mp, agno, bno)) {
- scan_sbtree(bno, level, agno, suspect, scan_refcbt, 0,
+ if (agbno != 0 && verify_agbno(mp, agno, agbno)) {
+ scan_sbtree(agbno, level, agno, suspect, scan_refcbt, 0,
magic, priv, &xfs_refcountbt_buf_ops);
}
}
diff --git a/scrub/xfs_scrub.c b/scrub/xfs_scrub.c
index c611f1f..0f9f765 100644
--- a/scrub/xfs_scrub.c
+++ b/scrub/xfs_scrub.c
@@ -423,7 +423,6 @@ run_scrub_phases(
bool moveon = true;
unsigned int debug_phase = 0;
unsigned int phase;
- unsigned int nr_threads;
int rshift;
if (debug && debug_tweak_on("XFS_SCRUB_PHASE"))
@@ -455,12 +454,14 @@ run_scrub_phases(
if (!moveon)
break;
if (sp->estimate_work) {
- moveon = sp->estimate_work(ctx, &max_work, &nr_threads,
- &rshift);
+ unsigned int work_threads;
+
+ moveon = sp->estimate_work(ctx, &max_work,
+ &work_threads, &rshift);
if (!moveon)
break;
moveon = progress_init_phase(ctx, progress_fp, phase,
- max_work, rshift, nr_threads);
+ max_work, rshift, work_threads);
} else {
moveon = progress_init_phase(ctx, NULL, phase, 0, 0, 0);
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH 15/15] libfrog: change project entity variable scope
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (13 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 14/15] xfsprogs: eliminate shadow variables Eric Sandeen
@ 2018-10-05 4:03 ` Eric Sandeen
2018-10-06 10:18 ` Christoph Hellwig
2018-10-05 15:41 ` [PATCH 0/15] xfsprogs: sparse fixes Darrick J. Wong
15 siblings, 1 reply; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 4:03 UTC (permalink / raw)
To: linux-xfs
From: Eric Sandeen <sandeen@redhat.com>
The global "p" got shadowed in some other functions, and it was a bit hard
to keep track of what's what. Change the scope of some of the project
entity retrieval function variables to make the behavior more clear.
Fixes sparse warnings about this.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
libfrog/projects.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libfrog/projects.c b/libfrog/projects.c
index d4dda3f..91bc78f 100644
--- a/libfrog/projects.c
+++ b/libfrog/projects.c
@@ -15,12 +15,8 @@ char *projid_file;
char *projects_file;
static FILE *projects;
-static fs_project_t p;
-static char projects_buffer[512];
static FILE *project_paths;
-static fs_project_path_t pp;
-static char project_paths_buffer[1024];
void
setprfiles(void)
@@ -64,8 +60,10 @@ endprpathent(void)
fs_project_t *
getprent(void)
{
- char *idstart, *idend;
- size_t size = sizeof(projects_buffer) - 1;
+ static fs_project_t p;
+ static char projects_buffer[512];
+ char *idstart, *idend;
+ size_t size = sizeof(projects_buffer) - 1;
if (!projects)
return NULL;
@@ -125,6 +123,8 @@ getprprid(
fs_project_path_t *
getprpathent(void)
{
+ static fs_project_path_t pp;
+ static char project_paths_buffer[1024];
char *nmstart, *nmend;
size_t size = sizeof(project_paths_buffer) - 1;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* Re: [PATCH 0/15] xfsprogs: sparse fixes
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
` (14 preceding siblings ...)
2018-10-05 4:03 ` [PATCH 15/15] libfrog: change project entity variable scope Eric Sandeen
@ 2018-10-05 15:41 ` Darrick J. Wong
2018-10-05 15:52 ` Eric Sandeen
15 siblings, 1 reply; 38+ messages in thread
From: Darrick J. Wong @ 2018-10-05 15:41 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:01PM -0500, Eric Sandeen wrote:
> A handful of sparse fixes, more or less one patch per issue.
Mostly looks fine except for the things I complained about on IRC:
Patch 7 commit message ought to identify the other definer of MS_
constants.
Patch 14 commit message has a typo "activel".
*progname probably should be in libfrog.h so that scrub doesn't
have to include libxfs.h (scrub doesn't link against libxfs) (patch 11).
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
>
> -Eric
>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 0/15] xfsprogs: sparse fixes
2018-10-05 15:41 ` [PATCH 0/15] xfsprogs: sparse fixes Darrick J. Wong
@ 2018-10-05 15:52 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-05 15:52 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: linux-xfs
On 10/5/18 10:41 AM, Darrick J. Wong wrote:
> On Thu, Oct 04, 2018 at 11:03:01PM -0500, Eric Sandeen wrote:
>> A handful of sparse fixes, more or less one patch per issue.
>
> Mostly looks fine except for the things I complained about on IRC:
>
> Patch 7 commit message ought to identify the other definer of MS_
> constants.
>
> Patch 14 commit message has a typo "activel".
>
> *progname probably should be in libfrog.h so that scrub doesn't
> have to include libxfs.h (scrub doesn't link against libxfs) (patch 11).
>
> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Will fix, scout's honor, thanks for the review.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 01/15] xfsprogs: minor sparse fixes
2018-10-05 4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
@ 2018-10-06 10:07 ` Christoph Hellwig
2018-10-08 14:58 ` Eric Sandeen
0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:07 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Why the double signoff?
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions
2018-10-05 4:03 ` [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions Eric Sandeen
@ 2018-10-06 10:07 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:07 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition
2018-10-05 4:03 ` [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition Eric Sandeen
@ 2018-10-06 10:08 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:08 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:04PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> Fixes sparse warnings about this.
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 04/15] xfs_db: single-bit bitfields are unsigned
2018-10-05 4:03 ` [PATCH 04/15] xfs_db: single-bit bitfields are unsigned Eric Sandeen
@ 2018-10-06 10:08 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:08 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:05PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> Fixes sparse warnings about this.
In this case bool might be even better.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 05/15] xfsprogs: don't use 0 as pointer
2018-10-05 4:03 ` [PATCH 05/15] xfsprogs: don't use 0 as pointer Eric Sandeen
@ 2018-10-06 10:08 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:08 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 06/15] xfsprogs: minor endian annotation fixes
2018-10-05 4:03 ` [PATCH 06/15] xfsprogs: minor endian annotation fixes Eric Sandeen
@ 2018-10-06 10:11 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:11 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
> if (xfs_sb_version_hascrc(sb) && !xfs_sb_version_hasmetauuid(sb) &&
> !uuid_equal(&tcarg->uuid, &sb->sb_uuid)) {
> - __be32 feat;
> + __u32 feat;
Don't we normally use uint32_t now?
> - /* Off by one.. */
> - crc = cpu_to_be32(crc + 1);
> + /* Off by one, ignore endianness - we're just corrupting it. */
> + crc++;
It also looks like crc should be an unsigned int or uint32_t while we
are at it..
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h
2018-10-05 4:03 ` [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h Eric Sandeen
@ 2018-10-06 10:12 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:12 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:08PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> MS_* (MS_NOSUID ... etc) get redefined. Fix this by
> simply removing the inclusion of mount.h, which isn't needed.
>
> Fixes sparse warnings about this.
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 08/15] xfsprogs: avoid redefinition of NBBY
2018-10-05 4:03 ` [PATCH 08/15] xfsprogs: avoid redefinition of NBBY Eric Sandeen
@ 2018-10-06 10:12 ` Christoph Hellwig
2018-10-08 14:59 ` Eric Sandeen
0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:12 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:09PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> sys/param.h (re)defines NBBY so just include it first.
Include it before what? We probably should also remove the other
definition..
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 09/15] xfsprogs: remove write-only variables
2018-10-05 4:03 ` [PATCH 09/15] xfsprogs: remove write-only variables Eric Sandeen
@ 2018-10-06 10:13 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:13 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 10/15] xfsprogs: make static things static
2018-10-05 4:03 ` [PATCH 10/15] xfsprogs: make static things static Eric Sandeen
@ 2018-10-06 10:13 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:13 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 11/15] xfsprogs: include headers for extern variables
2018-10-05 4:03 ` [PATCH 11/15] xfsprogs: include headers for extern variables Eric Sandeen
@ 2018-10-06 10:14 ` Christoph Hellwig
2018-10-08 17:08 ` Eric Sandeen
0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:14 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:12PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> Include headers which export functions so that they don't appear to be
> static to the sparse checker.
>
> Remove redundant extern declarations in c code which are no longer needed.
>
> Fixes sparse warnings about this.
I think this really wants to be split out into a few patches describing
what gets moved/included for specific case.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 12/15] xfsprogs: kill EXTERN macro
2018-10-05 4:03 ` [PATCH 12/15] xfsprogs: kill EXTERN macro Eric Sandeen
@ 2018-10-06 10:15 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:15 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:13PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> The EXTERN macro was a too-clever hack to allow a header file to both
> declare global variables and export them. Get rid of the hack and do
> things the predictable way.
>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
> ---
> repair/globals.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++--
> repair/globals.h | 136 +++++++++++++++++++++++++++---------------------------
> repair/versions.c | 23 +++++++--
> repair/versions.h | 16 +++----
> 4 files changed, 214 insertions(+), 84 deletions(-)
>
> diff --git a/repair/globals.c b/repair/globals.c
> index d00e964..e963edb 100644
> --- a/repair/globals.c
> +++ b/repair/globals.c
> @@ -1,10 +1,125 @@
> // SPDX-License-Identifier: GPL-2.0
> /*
> - * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
> + * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc.
This doesn't look related.
Otherwise this looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers
2018-10-05 4:03 ` [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers Eric Sandeen
@ 2018-10-06 10:15 ` Christoph Hellwig
0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:15 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:14PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> libxfs functions which aren't used or exported get flagged as
> "should be static" but we stay in sync with kernelspace, which has other
> headers which export them. Export the lot of them in libxfs_priv.h to
> shut up sparse.
Seems a bit of a hack, but I guess better than other options:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 14/15] xfsprogs: eliminate shadow variables
2018-10-05 4:03 ` [PATCH 14/15] xfsprogs: eliminate shadow variables Eric Sandeen
@ 2018-10-06 10:16 ` Christoph Hellwig
2018-10-08 15:48 ` Eric Sandeen
0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:16 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
On Thu, Oct 04, 2018 at 11:03:15PM -0500, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
>
> None of these seem activel harmful, but to avoid confusion, remove all
> shadow variables by just renaming them in their local scope.
>
> Fixes sparse warnings about this.
I'd feel much more comforable reviewing this with one patch per
function that explains why the transformation is safe, especially
as the patch itself contradicts the explanation above - some variables
are removed instead of renamed for example.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 15/15] libfrog: change project entity variable scope
2018-10-05 4:03 ` [PATCH 15/15] libfrog: change project entity variable scope Eric Sandeen
@ 2018-10-06 10:18 ` Christoph Hellwig
2018-10-08 15:50 ` Eric Sandeen
0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2018-10-06 10:18 UTC (permalink / raw)
To: Eric Sandeen; +Cc: linux-xfs
While the scope change is a good start the code is stull horrible.
I'd be much happier to kill these static variables entirely. The
buffers can just be on stack, and getprent should just get a
fs_project_t to fill out passed by reference. Same for
getprpathent.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 01/15] xfsprogs: minor sparse fixes
2018-10-06 10:07 ` Christoph Hellwig
@ 2018-10-08 14:58 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-08 14:58 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-xfs
On 10/6/18 5:07 AM, Christoph Hellwig wrote:
> Looks good,
>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
>
>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
>
> Why the double signoff?
>
pilot error, it passed through two of my machines with
git set up differently.
I tend to use @redhat.com as my author email but @sandeen.net
as my maintainer email. I didn't really mean to have both in
these patches in this way.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 08/15] xfsprogs: avoid redefinition of NBBY
2018-10-06 10:12 ` Christoph Hellwig
@ 2018-10-08 14:59 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-08 14:59 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-xfs
On 10/6/18 5:12 AM, Christoph Hellwig wrote:
> On Thu, Oct 04, 2018 at 11:03:09PM -0500, Eric Sandeen wrote:
>> From: Eric Sandeen <sandeen@redhat.com>
>>
>> sys/param.h (re)defines NBBY so just include it first.
>
> Include it before what? We probably should also remove the other
> definition..
We have an internal definition, maybe it was for other platforms?
Not sure. Maybe we can just remove our local definition - it's been
there forever, not quite sure when things changed.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 14/15] xfsprogs: eliminate shadow variables
2018-10-06 10:16 ` Christoph Hellwig
@ 2018-10-08 15:48 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-08 15:48 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-xfs
On 10/6/18 5:16 AM, Christoph Hellwig wrote:
> On Thu, Oct 04, 2018 at 11:03:15PM -0500, Eric Sandeen wrote:
>> From: Eric Sandeen <sandeen@redhat.com>
>>
>> None of these seem activel harmful, but to avoid confusion, remove all
>> shadow variables by just renaming them in their local scope.
>>
>> Fixes sparse warnings about this.
>
> I'd feel much more comforable reviewing this with one patch per
> function that explains why the transformation is safe, especially
> as the patch itself contradicts the explanation above - some variables
> are removed instead of renamed for example.
>
Well, existing variables are used in their place, i.e. another existing
loop counter "i" is re-used instead of one which shadows a global variable
("x").
But ok, I can split it up more.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 15/15] libfrog: change project entity variable scope
2018-10-06 10:18 ` Christoph Hellwig
@ 2018-10-08 15:50 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-08 15:50 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-xfs
On 10/6/18 5:18 AM, Christoph Hellwig wrote:
> While the scope change is a good start the code is stull horrible.
>
> I'd be much happier to kill these static variables entirely. The
> buffers can just be on stack, and getprent should just get a
> fs_project_t to fill out passed by reference. Same for
> getprpathent.
>
I had assumed that the goal was to behave just like getpwent, which
is a void function and does not require a struct passwd to be
passed in (for example). The symmetry of use made sense to me.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH 11/15] xfsprogs: include headers for extern variables
2018-10-06 10:14 ` Christoph Hellwig
@ 2018-10-08 17:08 ` Eric Sandeen
0 siblings, 0 replies; 38+ messages in thread
From: Eric Sandeen @ 2018-10-08 17:08 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-xfs
On 10/6/18 5:14 AM, Christoph Hellwig wrote:
> On Thu, Oct 04, 2018 at 11:03:12PM -0500, Eric Sandeen wrote:
>> From: Eric Sandeen <sandeen@redhat.com>
>>
>> Include headers which export functions so that they don't appear to be
>> static to the sparse checker.
>>
>> Remove redundant extern declarations in c code which are no longer needed.
>>
>> Fixes sparse warnings about this.
>
> I think this really wants to be split out into a few patches describing
> what gets moved/included for specific case.
>
Ok - "include foo.h in foo.c" seems straightforward enough, but I will see if
it makes sense to split other stuff into similar groupings.
-Eric
^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2018-10-09 0:21 UTC | newest]
Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05 4:03 [PATCH 0/15] xfsprogs: sparse fixes Eric Sandeen
2018-10-05 4:03 ` [PATCH 01/15] xfsprogs: minor " Eric Sandeen
2018-10-06 10:07 ` Christoph Hellwig
2018-10-08 14:58 ` Eric Sandeen
2018-10-05 4:03 ` [PATCH 02/15] xfsprogs: use ANSI declarations of void-arg functions Eric Sandeen
2018-10-06 10:07 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 03/15] mkfs.xfs: include full parser prototype in subopts definition Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 04/15] xfs_db: single-bit bitfields are unsigned Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 05/15] xfsprogs: don't use 0 as pointer Eric Sandeen
2018-10-06 10:08 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 06/15] xfsprogs: minor endian annotation fixes Eric Sandeen
2018-10-06 10:11 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 07/15] libxfs: avoid redefinitions of macros in mount.h Eric Sandeen
2018-10-06 10:12 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 08/15] xfsprogs: avoid redefinition of NBBY Eric Sandeen
2018-10-06 10:12 ` Christoph Hellwig
2018-10-08 14:59 ` Eric Sandeen
2018-10-05 4:03 ` [PATCH 09/15] xfsprogs: remove write-only variables Eric Sandeen
2018-10-06 10:13 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 10/15] xfsprogs: make static things static Eric Sandeen
2018-10-06 10:13 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 11/15] xfsprogs: include headers for extern variables Eric Sandeen
2018-10-06 10:14 ` Christoph Hellwig
2018-10-08 17:08 ` Eric Sandeen
2018-10-05 4:03 ` [PATCH 12/15] xfsprogs: kill EXTERN macro Eric Sandeen
2018-10-06 10:15 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 13/15] libxfs: export unused nonstatic functions to quiet static checkers Eric Sandeen
2018-10-06 10:15 ` Christoph Hellwig
2018-10-05 4:03 ` [PATCH 14/15] xfsprogs: eliminate shadow variables Eric Sandeen
2018-10-06 10:16 ` Christoph Hellwig
2018-10-08 15:48 ` Eric Sandeen
2018-10-05 4:03 ` [PATCH 15/15] libfrog: change project entity variable scope Eric Sandeen
2018-10-06 10:18 ` Christoph Hellwig
2018-10-08 15:50 ` Eric Sandeen
2018-10-05 15:41 ` [PATCH 0/15] xfsprogs: sparse fixes Darrick J. Wong
2018-10-05 15:52 ` Eric Sandeen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.