Use consistent e2fsprogs-standard types

Some different types such as u_int16_t and __uint32_t have snuck into
e2fsprogs.  These types are not guaranteed by any standard, and they
are not provided by dietlibc.  Convert them to __u16, __u32,
etc. since these are guaranteed to be provided by e2fsprogs' build.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
maint-test
Theodore Ts'o 2014-01-05 00:15:54 -05:00
parent 6c59a665da
commit 795c02def3
6 changed files with 72 additions and 60 deletions

View File

@ -931,10 +931,10 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block,
if (channel->flags & CHANNEL_FLAGS_BLOCK_DEVICE) { if (channel->flags & CHANNEL_FLAGS_BLOCK_DEVICE) {
#ifdef BLKDISCARD #ifdef BLKDISCARD
__uint64_t range[2]; __u64 range[2];
range[0] = (__uint64_t)(block) * channel->block_size; range[0] = (__u64)(block) * channel->block_size;
range[1] = (__uint64_t)(count) * channel->block_size; range[1] = (__u64)(count) * channel->block_size;
ret = ioctl(data->dev, BLKDISCARD, &range); ret = ioctl(data->dev, BLKDISCARD, &range);
#else #else

View File

@ -7,6 +7,13 @@
#ifndef __QUOTA_COMMON_H__ #ifndef __QUOTA_COMMON_H__
#define __QUOTA_COMMON_H__ #define __QUOTA_COMMON_H__
#if EXT2_FLAT_INCLUDES
#include "e2_types.h"
#else
#include <ext2fs/ext2_types.h>
#endif /* EXT2_FLAT_INCLUDES */
#ifndef __attribute__ #ifndef __attribute__
# if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
# define __attribute__(x) # define __attribute__(x)

View File

@ -30,8 +30,8 @@ static const char * const basenames[] = {
/* Header in all newer quotafiles */ /* Header in all newer quotafiles */
struct disk_dqheader { struct disk_dqheader {
u_int32_t dqh_magic; __u32 dqh_magic;
u_int32_t dqh_version; __u32 dqh_version;
} __attribute__ ((packed)); } __attribute__ ((packed));
/** /**

View File

@ -59,7 +59,7 @@ static inline void mark_quotafile_info_dirty(struct quota_handle *h)
} }
/* Read given block */ /* Read given block */
static void read_blk(struct quota_handle *h, uint blk, dqbuf_t buf) static void read_blk(struct quota_handle *h, unsigned int blk, dqbuf_t buf)
{ {
int err; int err;
@ -72,7 +72,7 @@ static void read_blk(struct quota_handle *h, uint blk, dqbuf_t buf)
} }
/* Write block */ /* Write block */
static int write_blk(struct quota_handle *h, uint blk, dqbuf_t buf) static int write_blk(struct quota_handle *h, unsigned int blk, dqbuf_t buf)
{ {
int err; int err;
@ -117,7 +117,8 @@ static int get_free_dqblk(struct quota_handle *h)
} }
/* Put given block to free list */ /* Put given block to free list */
static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf, uint blk) static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf,
unsigned int blk)
{ {
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf; struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree; struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
@ -131,11 +132,12 @@ static void put_free_dqblk(struct quota_handle *h, dqbuf_t buf, uint blk)
} }
/* Remove given block from the list of blocks with free entries */ /* Remove given block from the list of blocks with free entries */
static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk) static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf,
unsigned int blk)
{ {
dqbuf_t tmpbuf = getdqbuf(); dqbuf_t tmpbuf = getdqbuf();
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf; struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
uint nextblk = ext2fs_le32_to_cpu(dh->dqdh_next_free), prevblk = unsigned int nextblk = ext2fs_le32_to_cpu(dh->dqdh_next_free), prevblk =
ext2fs_le32_to_cpu(dh->dqdh_prev_free); ext2fs_le32_to_cpu(dh->dqdh_prev_free);
@ -164,7 +166,8 @@ static void remove_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
} }
/* Insert given block to the beginning of list with free entries */ /* Insert given block to the beginning of list with free entries */
static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk) static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf,
unsigned int blk)
{ {
dqbuf_t tmpbuf = getdqbuf(); dqbuf_t tmpbuf = getdqbuf();
struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf; struct qt_disk_dqdbheader *dh = (struct qt_disk_dqdbheader *)buf;
@ -188,8 +191,8 @@ static void insert_free_dqentry(struct quota_handle *h, dqbuf_t buf, uint blk)
} }
/* Find space for dquot */ /* Find space for dquot */
static uint find_free_dqentry(struct quota_handle *h, struct dquot *dquot, static unsigned int find_free_dqentry(struct quota_handle *h,
int *err) struct dquot *dquot, int *err)
{ {
int blk, i; int blk, i;
struct qt_disk_dqdbheader *dh; struct qt_disk_dqdbheader *dh;
@ -247,12 +250,12 @@ static uint find_free_dqentry(struct quota_handle *h, struct dquot *dquot,
/* Insert reference to structure into the trie */ /* Insert reference to structure into the trie */
static int do_insert_tree(struct quota_handle *h, struct dquot *dquot, static int do_insert_tree(struct quota_handle *h, struct dquot *dquot,
uint * treeblk, int depth) unsigned int * treeblk, int depth)
{ {
dqbuf_t buf; dqbuf_t buf;
int newson = 0, newact = 0; int newson = 0, newact = 0;
u_int32_t *ref; __u32 *ref;
uint newblk; unsigned int newblk;
int ret = 0; int ret = 0;
log_debug("inserting in tree: treeblk=%u, depth=%d", *treeblk, depth); log_debug("inserting in tree: treeblk=%u, depth=%d", *treeblk, depth);
@ -271,7 +274,7 @@ static int do_insert_tree(struct quota_handle *h, struct dquot *dquot,
read_blk(h, *treeblk, buf); read_blk(h, *treeblk, buf);
} }
ref = (u_int32_t *) buf; ref = (__u32 *) buf;
newblk = ext2fs_le32_to_cpu(ref[get_index(dquot->dq_id, depth)]); newblk = ext2fs_le32_to_cpu(ref[get_index(dquot->dq_id, depth)]);
if (!newblk) if (!newblk)
newson = 1; newson = 1;
@ -301,11 +304,11 @@ out_buf:
/* Wrapper for inserting quota structure into tree */ /* Wrapper for inserting quota structure into tree */
static void dq_insert_tree(struct quota_handle *h, struct dquot *dquot) static void dq_insert_tree(struct quota_handle *h, struct dquot *dquot)
{ {
uint tmp = QT_TREEOFF; unsigned int tmp = QT_TREEOFF;
if (do_insert_tree(h, dquot, &tmp, 0) < 0) if (do_insert_tree(h, dquot, &tmp, 0) < 0)
log_err("Cannot write quota (id %u): %s", log_err("Cannot write quota (id %u): %s",
(uint) dquot->dq_id, strerror(errno)); (unsigned int) dquot->dq_id, strerror(errno));
} }
/* Write dquot to file */ /* Write dquot to file */
@ -323,7 +326,7 @@ void qtree_write_dquot(struct dquot *dquot)
if (ret) { if (ret) {
errno = ENOMEM; errno = ENOMEM;
log_err("Quota write failed (id %u): %s", log_err("Quota write failed (id %u): %s",
(uint)dquot->dq_id, strerror(errno)); (unsigned int)dquot->dq_id, strerror(errno));
return; return;
} }
@ -340,13 +343,14 @@ void qtree_write_dquot(struct dquot *dquot)
if (ret > 0) if (ret > 0)
errno = ENOSPC; errno = ENOSPC;
log_err("Quota write failed (id %u): %s", log_err("Quota write failed (id %u): %s",
(uint)dquot->dq_id, strerror(errno)); (unsigned int)dquot->dq_id, strerror(errno));
} }
ext2fs_free_mem(&ddquot); ext2fs_free_mem(&ddquot);
} }
/* Free dquot entry in data block */ /* Free dquot entry in data block */
static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk) static void free_dqentry(struct quota_handle *h, struct dquot *dquot,
unsigned int blk)
{ {
struct qt_disk_dqdbheader *dh; struct qt_disk_dqdbheader *dh;
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree; struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
@ -358,7 +362,7 @@ static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk)
if (dquot->dq_dqb.u.v2_mdqb.dqb_off >> QT_BLKSIZE_BITS != blk) if (dquot->dq_dqb.u.v2_mdqb.dqb_off >> QT_BLKSIZE_BITS != blk)
log_err("Quota structure has offset to other block (%u) " log_err("Quota structure has offset to other block (%u) "
"than it should (%u).", blk, "than it should (%u).", blk,
(uint) (dquot->dq_dqb.u.v2_mdqb.dqb_off >> (unsigned int) (dquot->dq_dqb.u.v2_mdqb.dqb_off >>
QT_BLKSIZE_BITS)); QT_BLKSIZE_BITS));
read_blk(h, blk, buf); read_blk(h, blk, buf);
@ -388,11 +392,11 @@ static void free_dqentry(struct quota_handle *h, struct dquot *dquot, uint blk)
/* Remove reference to dquot from tree */ /* Remove reference to dquot from tree */
static void remove_tree(struct quota_handle *h, struct dquot *dquot, static void remove_tree(struct quota_handle *h, struct dquot *dquot,
uint * blk, int depth) unsigned int * blk, int depth)
{ {
dqbuf_t buf = getdqbuf(); dqbuf_t buf = getdqbuf();
uint newblk; unsigned int newblk;
u_int32_t *ref = (u_int32_t *) buf; __u32 *ref = (__u32 *) buf;
if (!buf) if (!buf)
return; return;
@ -428,7 +432,7 @@ static void remove_tree(struct quota_handle *h, struct dquot *dquot,
/* Delete dquot from tree */ /* Delete dquot from tree */
void qtree_delete_dquot(struct dquot *dquot) void qtree_delete_dquot(struct dquot *dquot)
{ {
uint tmp = QT_TREEOFF; unsigned int tmp = QT_TREEOFF;
if (!dquot->dq_dqb.u.v2_mdqb.dqb_off) /* Even not allocated? */ if (!dquot->dq_dqb.u.v2_mdqb.dqb_off) /* Even not allocated? */
return; return;
@ -437,7 +441,7 @@ void qtree_delete_dquot(struct dquot *dquot)
/* Find entry in block */ /* Find entry in block */
static ext2_loff_t find_block_dqentry(struct quota_handle *h, static ext2_loff_t find_block_dqentry(struct quota_handle *h,
struct dquot *dquot, uint blk) struct dquot *dquot, unsigned int blk)
{ {
struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree; struct qtree_mem_dqinfo *info = &h->qh_info.u.v2_mdqi.dqi_qtree;
dqbuf_t buf = getdqbuf(); dqbuf_t buf = getdqbuf();
@ -464,11 +468,11 @@ static ext2_loff_t find_block_dqentry(struct quota_handle *h,
/* Find entry for given id in the tree */ /* Find entry for given id in the tree */
static ext2_loff_t find_tree_dqentry(struct quota_handle *h, static ext2_loff_t find_tree_dqentry(struct quota_handle *h,
struct dquot *dquot, struct dquot *dquot,
uint blk, int depth) unsigned int blk, int depth)
{ {
dqbuf_t buf = getdqbuf(); dqbuf_t buf = getdqbuf();
ext2_loff_t ret = 0; ext2_loff_t ret = 0;
u_int32_t *ref = (u_int32_t *) buf; __u32 *ref = (__u32 *) buf;
if (!buf) if (!buf)
return -ENOMEM; return -ENOMEM;
@ -540,7 +544,7 @@ struct dquot *qtree_read_dquot(struct quota_handle *h, qid_t id)
#define set_bit(bmp, ind) ((bmp)[(ind) >> 3] |= (1 << ((ind) & 7))) #define set_bit(bmp, ind) ((bmp)[(ind) >> 3] |= (1 << ((ind) & 7)))
#define get_bit(bmp, ind) ((bmp)[(ind) >> 3] & (1 << ((ind) & 7))) #define get_bit(bmp, ind) ((bmp)[(ind) >> 3] & (1 << ((ind) & 7)))
static int report_block(struct dquot *dquot, uint blk, char *bitmap, static int report_block(struct dquot *dquot, unsigned int blk, char *bitmap,
int (*process_dquot) (struct dquot *, void *), int (*process_dquot) (struct dquot *, void *),
void *data) void *data)
{ {
@ -574,7 +578,7 @@ static int report_block(struct dquot *dquot, uint blk, char *bitmap,
return entries; return entries;
} }
static void check_reference(struct quota_handle *h, uint blk) static void check_reference(struct quota_handle *h, unsigned int blk)
{ {
if (blk >= h->qh_info.u.v2_mdqi.dqi_qtree.dqi_blocks) if (blk >= h->qh_info.u.v2_mdqi.dqi_qtree.dqi_blocks)
log_err("Illegal reference (%u >= %u) in %s quota file. " log_err("Illegal reference (%u >= %u) in %s quota file. "
@ -585,13 +589,14 @@ static void check_reference(struct quota_handle *h, uint blk)
type2name(h->qh_type)); type2name(h->qh_type));
} }
static int report_tree(struct dquot *dquot, uint blk, int depth, char *bitmap, static int report_tree(struct dquot *dquot, unsigned int blk, int depth,
char *bitmap,
int (*process_dquot) (struct dquot *, void *), int (*process_dquot) (struct dquot *, void *),
void *data) void *data)
{ {
int entries = 0, i; int entries = 0, i;
dqbuf_t buf = getdqbuf(); dqbuf_t buf = getdqbuf();
u_int32_t *ref = (u_int32_t *) buf; __u32 *ref = (__u32 *) buf;
if (!buf) if (!buf)
return 0; return 0;
@ -620,9 +625,9 @@ static int report_tree(struct dquot *dquot, uint blk, int depth, char *bitmap,
return entries; return entries;
} }
static uint find_set_bits(char *bmp, int blocks) static unsigned int find_set_bits(char *bmp, int blocks)
{ {
uint i, used = 0; unsigned int i, used = 0;
for (i = 0; i < blocks; i++) for (i = 0; i < blocks; i++)
if (get_bit(bmp, i)) if (get_bit(bmp, i))

View File

@ -7,7 +7,7 @@
#include <sys/types.h> #include <sys/types.h>
typedef u_int32_t qid_t; /* Type in which we store ids in memory */ typedef __u32 qid_t; /* Type in which we store ids in memory */
#define QT_TREEOFF 1 /* Offset of tree in file in blocks */ #define QT_TREEOFF 1 /* Offset of tree in file in blocks */
#define QT_TREEDEPTH 4 /* Depth of quota tree */ #define QT_TREEDEPTH 4 /* Depth of quota tree */
@ -20,13 +20,13 @@ typedef u_int32_t qid_t; /* Type in which we store ids in memory */
* so there will be space for exactly 21 quota-entries in a block * so there will be space for exactly 21 quota-entries in a block
*/ */
struct qt_disk_dqdbheader { struct qt_disk_dqdbheader {
u_int32_t dqdh_next_free; /* Number of next block with free __u32 dqdh_next_free; /* Number of next block with free
* entry */ * entry */
u_int32_t dqdh_prev_free; /* Number of previous block with free __u32 dqdh_prev_free; /* Number of previous block with free
* entry */ * entry */
u_int16_t dqdh_entries; /* Number of valid entries in block */ __u16 dqdh_entries; /* Number of valid entries in block */
u_int16_t dqdh_pad1; __u16 dqdh_pad1;
u_int32_t dqdh_pad2; __u32 dqdh_pad2;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct dquot; struct dquot;

View File

@ -16,8 +16,8 @@
#define V2_VERSION 1 #define V2_VERSION 1
struct v2_disk_dqheader { struct v2_disk_dqheader {
u_int32_t dqh_magic; /* Magic number identifying file */ __u32 dqh_magic; /* Magic number identifying file */
u_int32_t dqh_version; /* File version */ __u32 dqh_version; /* File version */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* Flags for version specific files */ /* Flags for version specific files */
@ -25,30 +25,30 @@ struct v2_disk_dqheader {
/* Header with type and version specific information */ /* Header with type and version specific information */
struct v2_disk_dqinfo { struct v2_disk_dqinfo {
u_int32_t dqi_bgrace; /* Time before block soft limit becomes __u32 dqi_bgrace; /* Time before block soft limit becomes
* hard limit */ * hard limit */
u_int32_t dqi_igrace; /* Time before inode soft limit becomes __u32 dqi_igrace; /* Time before inode soft limit becomes
* hard limit */ * hard limit */
u_int32_t dqi_flags; /* Flags for quotafile (DQF_*) */ __u32 dqi_flags; /* Flags for quotafile (DQF_*) */
u_int32_t dqi_blocks; /* Number of blocks in file */ __u32 dqi_blocks; /* Number of blocks in file */
u_int32_t dqi_free_blk; /* Number of first free block in the list */ __u32 dqi_free_blk; /* Number of first free block in the list */
u_int32_t dqi_free_entry; /* Number of block with at least one __u32 dqi_free_entry; /* Number of block with at least one
* free entry */ * free entry */
} __attribute__ ((packed)); } __attribute__ ((packed));
struct v2r1_disk_dqblk { struct v2r1_disk_dqblk {
u_int32_t dqb_id; /* id this quota applies to */ __u32 dqb_id; /* id this quota applies to */
u_int32_t dqb_pad; __u32 dqb_pad;
u_int64_t dqb_ihardlimit; /* absolute limit on allocated inodes */ __u64 dqb_ihardlimit; /* absolute limit on allocated inodes */
u_int64_t dqb_isoftlimit; /* preferred inode limit */ __u64 dqb_isoftlimit; /* preferred inode limit */
u_int64_t dqb_curinodes; /* current # allocated inodes */ __u64 dqb_curinodes; /* current # allocated inodes */
u_int64_t dqb_bhardlimit; /* absolute limit on disk space __u64 dqb_bhardlimit; /* absolute limit on disk space
* (in QUOTABLOCK_SIZE) */ * (in QUOTABLOCK_SIZE) */
u_int64_t dqb_bsoftlimit; /* preferred limit on disk space __u64 dqb_bsoftlimit; /* preferred limit on disk space
* (in QUOTABLOCK_SIZE) */ * (in QUOTABLOCK_SIZE) */
u_int64_t dqb_curspace; /* current space occupied (in bytes) */ __u64 dqb_curspace; /* current space occupied (in bytes) */
u_int64_t dqb_btime; /* time limit for excessive disk use */ __u64 dqb_btime; /* time limit for excessive disk use */
u_int64_t dqb_itime; /* time limit for excessive inode use */ __u64 dqb_itime; /* time limit for excessive inode use */
} __attribute__ ((packed)); } __attribute__ ((packed));
#endif #endif