Whamcloud - gitweb
Fix Android build warnings
authorTheodore Ts'o <tytso@mit.edu>
Mon, 30 May 2016 03:35:13 +0000 (23:35 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 30 May 2016 03:51:08 +0000 (23:51 -0400)
Also fix some additional gcc -Wall build warnings in a traditional
Linux environment.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
15 files changed:
debugfs/do_journal.c
debugfs/set_fields.c
e2fsck/recovery.c
e2fsck/rehash.c
lib/blkid/blkidP.h
lib/blkid/devno.c
lib/blkid/probe.c
lib/ext2fs/kernel-jbd.h
lib/support/mkquota.c
lib/support/quotaio.h
lib/support/quotaio_tree.c
misc/create_inode.c
misc/tune2fs.c
util/android_config.h
util/gcc-wall-cleanup

index b8c1e59..40c473c 100644 (file)
@@ -165,7 +165,8 @@ static errcode_t journal_add_revoke_to_trans(journal_transaction_t *trans,
        void *buf;
        size_t i, offset;
        blk64_t curr_blk;
-       int sz, csum_size = 0;
+       unsigned int sz;
+       unsigned csum_size = 0;
        struct buffer_head *bh;
        errcode_t err;
 
index 8a4c6a8..ff9b7b6 100644 (file)
@@ -569,7 +569,6 @@ static errcode_t parse_time(struct field_set_info *info,
        __s64           t;
        __u32           t_low, t_high;
        __u32           *ptr_low, *ptr_high;
-       int             suffix = check_suffix(field);
 
        if (check_suffix(field))
                return parse_uint(info, field, arg);
index b828ed4..48f42b7 100644 (file)
@@ -184,7 +184,7 @@ static int jbd2_descr_block_csum_verify(journal_t *j,
        if (!journal_has_csum_v2or3(j))
                return 1;
 
-       tail = (struct journal_block_tail *)(buf + j->j_blocksize -
+       tail = (struct journal_block_tail *)((char *)buf + j->j_blocksize -
                        sizeof(struct journal_block_tail));
        provided = tail->t_checksum;
        tail->t_checksum = 0;
@@ -626,8 +626,9 @@ static int do_one_pass(journal_t *journal,
                                        memcpy(nbh->b_data, obh->b_data,
                                                        journal->j_blocksize);
                                        if (flags & JFS_FLAG_ESCAPE) {
-                                               *((__u32 *)nbh->b_data) =
-                                               ext2fs_cpu_to_be32(JFS_MAGIC_NUMBER);
+                                               __u32 magic = ext2fs_cpu_to_be32(JFS_MAGIC_NUMBER);
+                                               memcpy(nbh->b_data, &magic,
+                                                      sizeof(magic));
                                        }
 
                                        BUFFER_TRACE(nbh, "marking dirty");
@@ -818,7 +819,7 @@ static int jbd2_revoke_block_csum_verify(journal_t *j,
        if (!journal_has_csum_v2or3(j))
                return 1;
 
-       tail = (struct journal_revoke_tail *)(buf + j->j_blocksize -
+       tail = (struct journal_revoke_tail *)((char *)buf + j->j_blocksize -
                        sizeof(struct journal_revoke_tail));
        provided = tail->r_checksum;
        tail->r_checksum = 0;
@@ -835,7 +836,7 @@ static int scan_revoke_records(journal_t *journal, struct buffer_head *bh,
 {
        journal_revoke_header_t *header;
        int offset, max;
-       int csum_size = 0;
+       unsigned csum_size = 0;
        __u32 rcount;
        int record_len = 4;
 
index 10e5d67..22a58f3 100644 (file)
@@ -791,8 +791,9 @@ errcode_t e2fsck_rehash_dir(e2fsck_t ctx, ext2_ino_t ino,
        errcode_t               retval;
        struct ext2_inode       inode;
        char                    *dir_buf = 0;
-       struct fill_dir_struct  fd = { NULL };
-       struct out_dir          outdir = { 0 };
+       struct fill_dir_struct  fd = { NULL, NULL, 0, 0, 0, NULL,
+                                      0, 0, 0, 0, 0, 0 };
+       struct out_dir          outdir = { 0, 0, 0, 0 };
 
        e2fsck_read_inode(ctx, ino, &inode, "rehash_dir");
 
index e0f11a0..b90bfed 100644 (file)
@@ -157,7 +157,7 @@ struct dir_list {
        char    *name;
        struct dir_list *next;
 };
-extern void blkid__scan_dir(char *, dev_t, struct dir_list **, char **);
+extern void blkid__scan_dir(const char *, dev_t, struct dir_list **, char **);
 
 /* lseek.c */
 extern blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int whence);
index 479d977..aa6eb90 100644 (file)
@@ -91,7 +91,7 @@ static void free_dirlist(struct dir_list **list)
        *list = NULL;
 }
 
-void blkid__scan_dir(char *dirname, dev_t devno, struct dir_list **list,
+void blkid__scan_dir(const char *dirname, dev_t devno, struct dir_list **list,
                     char **devname)
 {
        DIR     *dir;
index a486017..66ecbc4 100644 (file)
@@ -857,10 +857,10 @@ static int probe_jfs(struct blkid_probe *probe,
 
        js = (struct jfs_super_block *)buf;
 
-       if (blkid_le32(js->js_bsize) != (1 << blkid_le16(js->js_l2bsize)))
+       if (blkid_le32(js->js_bsize) != (1U << blkid_le16(js->js_l2bsize)))
                return 1;
 
-       if (blkid_le32(js->js_pbsize) != (1 << blkid_le16(js->js_l2pbsize)))
+       if (blkid_le32(js->js_pbsize) != (1U << blkid_le16(js->js_l2pbsize)))
                return 1;
 
        if ((blkid_le16(js->js_l2bsize) - blkid_le16(js->js_l2pbsize)) !=
@@ -1393,7 +1393,7 @@ static int probe_btrfs(struct blkid_probe *probe,
 }
 
 static int probe_f2fs(struct blkid_probe *probe,
-            struct blkid_magic *id,
+            struct blkid_magic *id __BLKID_ATTR((unused)),
             unsigned char *buf)
 {
     struct f2fs_super_block *bs;
index 092a50b..a7507b5 100644 (file)
@@ -274,7 +274,12 @@ typedef struct journal_superblock_s
                                         JFS_FEATURE_INCOMPAT_CSUM_V2|\
                                         JFS_FEATURE_INCOMPAT_CSUM_V3)
 
-
+#ifdef NO_INLINE_FUNCS
+extern size_t journal_tag_bytes(journal_t *journal);
+extern int journal_has_csum_v2or3(journal_t *journal);
+extern int tid_gt(tid_t x, tid_t y) EXT2FS_ATTR((unused));
+extern int tid_geq(tid_t x, tid_t y) EXT2FS_ATTR((unused));
+#endif
 
 #if (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
 #ifdef E2FSCK_INCLUDE_INLINE_FUNCS
@@ -297,17 +302,20 @@ typedef struct journal_superblock_s
 
 /* journal feature predicate functions */
 #define JFS_FEATURE_COMPAT_FUNCS(name, flagname) \
+_INLINE_ int jfs_has_feature_##name(journal_t *j); \
 _INLINE_ int jfs_has_feature_##name(journal_t *j) \
 { \
        return ((j)->j_format_version >= 2 && \
                ((j)->j_superblock->s_feature_compat & \
                 ext2fs_cpu_to_be32(JFS_FEATURE_COMPAT_##flagname)) != 0); \
 } \
+_INLINE_ void jfs_set_feature_##name(journal_t *j); \
 _INLINE_ void jfs_set_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_compat |= \
                ext2fs_cpu_to_be32(JFS_FEATURE_COMPAT_##flagname); \
 } \
+_INLINE_ void jfs_clear_feature_##name(journal_t *j); \
 _INLINE_ void jfs_clear_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_compat &= \
@@ -315,17 +323,20 @@ _INLINE_ void jfs_clear_feature_##name(journal_t *j) \
 }
 
 #define JFS_FEATURE_RO_COMPAT_FUNCS(name, flagname) \
- _INLINE_ int jfs_has_feature_##name(journal_t *j) \
+_INLINE_ int jfs_has_feature_##name(journal_t *j);     \
+_INLINE_ int jfs_has_feature_##name(journal_t *j) \
 { \
        return ((j)->j_format_version >= 2 && \
                ((j)->j_superblock->s_feature_ro_compat & \
                 ext2fs_cpu_to_be32(JFS_FEATURE_RO_COMPAT_##flagname)) != 0); \
 } \
+_INLINE_ void jfs_set_feature_##name(journal_t *j); \
 _INLINE_ void jfs_set_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_ro_compat |= \
                ext2fs_cpu_to_be32(JFS_FEATURE_RO_COMPAT_##flagname); \
 } \
+_INLINE_ void jfs_clear_feature_##name(journal_t *j); \
 _INLINE_ void jfs_clear_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_ro_compat &= \
@@ -333,23 +344,44 @@ _INLINE_ void jfs_clear_feature_##name(journal_t *j) \
 }
 
 #define JFS_FEATURE_INCOMPAT_FUNCS(name, flagname) \
+_INLINE_ int jfs_has_feature_##name(journal_t *j); \
 _INLINE_ int jfs_has_feature_##name(journal_t *j) \
 { \
        return ((j)->j_format_version >= 2 && \
                ((j)->j_superblock->s_feature_incompat & \
                 ext2fs_cpu_to_be32(JFS_FEATURE_INCOMPAT_##flagname)) != 0); \
 } \
+_INLINE_ void jfs_set_feature_##name(journal_t *j); \
 _INLINE_ void jfs_set_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_incompat |= \
                ext2fs_cpu_to_be32(JFS_FEATURE_INCOMPAT_##flagname); \
 } \
+_INLINE_ void jfs_clear_feature_##name(journal_t *j); \
 _INLINE_ void jfs_clear_feature_##name(journal_t *j) \
 { \
        (j)->j_superblock->s_feature_incompat &= \
                ~ext2fs_cpu_to_be32(JFS_FEATURE_INCOMPAT_##flagname); \
 }
 
+#else
+#define JFS_FEATURE_COMPAT_FUNCS(name, flagname) \
+extern int jfs_has_feature_##name(journal_t *j); \
+extern void jfs_set_feature_##name(journal_t *j); \
+extern void jfs_clear_feature_##name(journal_t *j);
+
+#define JFS_FEATURE_RO_COMPAT_FUNCS(name, flagname) \
+extern int jfs_has_feature_##name(journal_t *j); \
+extern void jfs_set_feature_##name(journal_t *j); \
+extern void jfs_clear_feature_##name(journal_t *j);
+
+#define JFS_FEATURE_INCOMPAT_FUNCS(name, flagname) \
+extern int jfs_has_feature_##name(journal_t *j); \
+extern void jfs_set_feature_##name(journal_t *j); \
+extern void jfs_clear_feature_##name(journal_t *j);
+
+#endif /* (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS)) */
+
 JFS_FEATURE_COMPAT_FUNCS(checksum,             CHECKSUM)
 
 JFS_FEATURE_INCOMPAT_FUNCS(revoke,             REVOKE)
@@ -358,6 +390,7 @@ JFS_FEATURE_INCOMPAT_FUNCS(async_commit,    ASYNC_COMMIT)
 JFS_FEATURE_INCOMPAT_FUNCS(csum2,              CSUM_V2)
 JFS_FEATURE_INCOMPAT_FUNCS(csum3,              CSUM_V3)
 
+#if (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
 /*
  * helper functions to deal with 32 or 64bit block numbers.
  */
@@ -387,9 +420,6 @@ _INLINE_ int journal_has_csum_v2or3(journal_t *journal)
        return 0;
 }
 
-_INLINE_ int tid_gt(tid_t x, tid_t y) EXT2FS_ATTR((unused));
-_INLINE_ int tid_geq(tid_t x, tid_t y) EXT2FS_ATTR((unused));
-
 /* Comparison functions for transaction IDs: perform comparisons using
  * modulo arithmetic so that they work over sequence number wraps. */
 
@@ -404,9 +434,9 @@ _INLINE_ int tid_geq(tid_t x, tid_t y)
        int difference = (x - y);
        return (difference >= 0);
 }
+#endif /* (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS)) */
 
 #undef _INLINE_
-#endif
 
 extern int journal_blocks_per_page(struct inode *inode);
 
index fc3f556..8407c76 100644 (file)
@@ -670,7 +670,7 @@ out:
        return err;
 }
 
-int parse_quota_opts(const char *opts, int (*func)(char *, void *), void *data)
+int parse_quota_opts(const char *opts, int (*func)(char *))
 {
        char    *buf, *token, *next, *p;
        int     len;
@@ -691,7 +691,7 @@ int parse_quota_opts(const char *opts, int (*func)(char *, void *), void *data)
                        *p = 0;
                        next = p + 1;
                }
-               ret = func(token, data);
+               ret = func(token);
                if (ret)
                        break;
        }
index 8f7ddcb..486c2a5 100644 (file)
@@ -233,7 +233,7 @@ int quota_file_exists(ext2_filsys fs, enum quota_type qtype);
 void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, enum quota_type qtype);
 errcode_t quota_compare_and_update(quota_ctx_t qctx, enum quota_type qtype,
                                   int *usage_inconsistent);
-int parse_quota_opts(const char *opts, int (*func)(char *, void *), void *data);
+int parse_quota_opts(const char *opts, int (*func)(char *));
 
 /* parse_qtype.c */
 int parse_quota_types(const char *in_str, unsigned int *qtype_bits,
index 3e6fd2c..a7c2028 100644 (file)
@@ -314,7 +314,8 @@ static void dq_insert_tree(struct quota_handle *h, struct dquot *dquot)
 /* Write dquot to file */
 void qtree_write_dquot(struct dquot *dquot)
 {
-       ssize_t ret;
+       errcode_t retval;
+       unsigned int ret;
        char *ddquot;
        struct quota_handle *h = dquot->dq_h;
        struct qtree_mem_dqinfo *info =
@@ -322,8 +323,8 @@ void qtree_write_dquot(struct dquot *dquot)
        log_debug("writing ddquot 1: off=%llu, info->dqi_entry_size=%u",
                        dquot->dq_dqb.u.v2_mdqb.dqb_off,
                        info->dqi_entry_size);
-       ret = ext2fs_get_mem(info->dqi_entry_size, &ddquot);
-       if (ret) {
+       retval = ext2fs_get_mem(info->dqi_entry_size, &ddquot);
+       if (retval) {
                errno = ENOMEM;
                log_err("Quota write failed (id %u): %s",
                        (unsigned int)dquot->dq_id, strerror(errno));
@@ -506,7 +507,7 @@ struct dquot *qtree_read_dquot(struct quota_handle *h, qid_t id)
 {
        struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
        ext2_loff_t offset;
-       ssize_t ret;
+       unsigned int ret;
        char *ddquot;
        struct dquot *dquot = get_empty_dquot();
 
index c879a3e..fd5cb21 100644 (file)
@@ -444,10 +444,10 @@ fail:
        return err;
 }
 
+#if defined(SEEK_DATA) && defined(SEEK_HOLE)
 static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf,
                                ext2_file_t e2_file, char *buf, char *zerobuf)
 {
-#if defined(SEEK_DATA) && defined(SEEK_HOLE)
        off_t data = 0, hole;
        off_t data_blk, hole_blk;
        errcode_t err;
@@ -475,15 +475,13 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf,
        }
 
        return err;
-#else
-       return EXT2_ET_UNIMPLEMENTED;
-#endif /* SEEK_DATA and SEEK_HOLE */
 }
+#endif /* SEEK_DATA and SEEK_HOLE */
 
+#if defined(FS_IOC_FIEMAP)
 static errcode_t try_fiemap_copy(ext2_filsys fs, int fd, ext2_file_t e2_file,
                                 char *buf, char *zerobuf)
 {
-#if defined(FS_IOC_FIEMAP)
 #define EXTENT_MAX_COUNT 512
        struct fiemap *fiemap_buf;
        struct fiemap_extent *ext_buf, *ext;
@@ -537,10 +535,8 @@ static errcode_t try_fiemap_copy(ext2_filsys fs, int fd, ext2_file_t e2_file,
 out:
        ext2fs_free_mem(&fiemap_buf);
        return err;
-#else
-       return EXT2_ET_UNIMPLEMENTED;
-#endif /* FS_IOC_FIEMAP */
 }
+#endif /* FS_IOC_FIEMAP */
 
 static errcode_t copy_file(ext2_filsys fs, int fd, struct stat *statbuf,
                           ext2_ino_t ino)
@@ -561,13 +557,17 @@ static errcode_t copy_file(ext2_filsys fs, int fd, struct stat *statbuf,
        if (err)
                goto out;
 
+#if defined(SEEK_DATA) && defined(SEEK_HOLE)
        err = try_lseek_copy(fs, fd, statbuf, e2_file, buf, zerobuf);
        if (err != EXT2_ET_UNIMPLEMENTED)
                goto out;
+#endif
 
+#if defined(FS_IOC_FIEMAP)
        err = try_fiemap_copy(fs, fd, e2_file, buf, zerobuf);
        if (err != EXT2_ET_UNIMPLEMENTED)
                goto out;
+#endif
 
        err = copy_file_range(fs, fd, e2_file, 0, statbuf->st_size, buf,
                              zerobuf);
index 2d9ded6..8562de6 100644 (file)
@@ -1557,7 +1557,7 @@ static void handle_quota_options(ext2_filsys fs)
        return;
 }
 
-static int option_handle_function(char *token, void *data)
+static int option_handle_function(char *token)
 {
        if (strncmp(token, "usr", 3) == 0) {
                quota_enable[USRQUOTA] = QOPT_ENABLE;
@@ -1805,8 +1805,7 @@ static void parse_tune2fs_options(int argc, char **argv)
                        break;
                case 'Q':
                        Q_flag = 1;
-                       ret = parse_quota_opts(optarg, option_handle_function,
-                                              NULL);
+                       ret = parse_quota_opts(optarg, option_handle_function);
                        if (ret)
                                exit(1);
                        open_flag = EXT2_FLAG_RW;
index 51db487..b3c12a7 100644 (file)
@@ -33,6 +33,7 @@
 #define HAVE_STRCASECMP 1
 #define HAVE_STRDUP 1
 #define HAVE_STRINGS_H 1
+#define HAVE_STRNLEN 1
 #define HAVE_STRPTIME 1
 #define HAVE_SYSCONF 1
 #define HAVE_SYS_IOCTL_H 1
index 52a80d5..cef7a2d 100644 (file)
@@ -13,6 +13,7 @@
 /traditional C rejects string concatenation/d
 /integer constant is unsigned in ANSI C, signed with -traditional/d
 /ISO C forbids conversion of object pointer to function pointer type/,+2d
+/ISO C does not support ‘__FUNCTION__’ predefined identifier/d
 /At top level:/d
 /In file included from/d
 /In function `.*':/d