2022-08-05 21:29:34

by Andreas Dilger

[permalink] [raw]
Subject: [PATCH, resend] misc: use ext2_ino_t instead of ino_t

From: Andreas Dilger <[email protected]>

Some of the new fastcommit and casefold changes used the system
"ino_t" instead of "ext2_ino_t" for handling filesystem inodes.
This causes printf warnings if the system "ino_t" is of a different
size. Use the library "ext2_ino_t" for consistency.

Signed-off-by: Andreas Dilger <[email protected]>
Reviewed-by: Gabriel Krisman Bertazi <[email protected]>
---
e2fsck/journal.c | 16 ++++++++--------
e2fsck/pass1.c | 8 ++++----
e2fsck/rehash.c | 6 +++---
lib/ext2fs/badblocks.c | 2 +-
4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index 12487e3d..ac38ae8e 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -578,7 +578,7 @@ static int ext4_del_extent_from_list(e2fsck_t ctx, struct extent_list *list,
return ext4_modify_extent_list(ctx, list, ex, 1 /* delete */);
}

-static int ext4_fc_read_extents(e2fsck_t ctx, ino_t ino)
+static int ext4_fc_read_extents(e2fsck_t ctx, ext2_ino_t ino)
{
struct extent_list *extent_list = &ctx->fc_replay_state.fc_extent_list;

@@ -597,7 +597,7 @@ static int ext4_fc_read_extents(e2fsck_t ctx, ino_t ino)
* for the inode so that we can flush all of them at once and it also saves us
* from continuously growing and shrinking the extent tree.
*/
-static void ext4_fc_flush_extents(e2fsck_t ctx, ino_t ino)
+static void ext4_fc_flush_extents(e2fsck_t ctx, ext2_ino_t ino)
{
struct extent_list *extent_list = &ctx->fc_replay_state.fc_extent_list;

@@ -610,10 +610,10 @@ static void ext4_fc_flush_extents(e2fsck_t ctx, ino_t ino)

/* Helper struct for dentry replay routines */
struct dentry_info_args {
- ino_t parent_ino;
- int dname_len;
- ino_t ino;
- char *dname;
+ ext2_ino_t parent_ino;
+ ext2_ino_t ino;
+ int dname_len;
+ char *dname;
};

static inline int tl_to_darg(struct dentry_info_args *darg,
@@ -635,7 +635,7 @@ static inline int tl_to_darg(struct dentry_info_args *darg,
val + sizeof(struct ext4_fc_dentry_info),
darg->dname_len);
darg->dname[darg->dname_len] = 0;
- jbd_debug(1, "%s: %s, ino %lu, parent %lu\n",
+ jbd_debug(1, "%s: %s, ino %u, parent %u\n",
tag == EXT4_FC_TAG_CREAT ? "create" :
(tag == EXT4_FC_TAG_LINK ? "link" :
(tag == EXT4_FC_TAG_UNLINK ? "unlink" : "error")),
@@ -800,7 +800,7 @@ static int ext4_fc_handle_add_extent(e2fsck_t ctx, __u8 *val)
{
struct ext2fs_extent extent;
struct ext4_fc_add_range add_range;
- ino_t ino;
+ ext2_ino_t ino;
int ret = 0;

memcpy(&add_range, val, sizeof(add_range));
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
index 43972e7c..85e20b89 100644
--- a/e2fsck/pass1.c
+++ b/e2fsck/pass1.c
@@ -79,8 +79,8 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx,
static void mark_table_blocks(e2fsck_t ctx);
static void alloc_bb_map(e2fsck_t ctx);
static void alloc_imagic_map(e2fsck_t ctx);
-static void mark_inode_bad(e2fsck_t ctx, ino_t ino);
-static void add_casefolded_dir(e2fsck_t ctx, ino_t ino);
+static void mark_inode_bad(e2fsck_t ctx, ext2_ino_t ino);
+static void add_casefolded_dir(e2fsck_t ctx, ext2_ino_t ino);
static void handle_fs_bad_blocks(e2fsck_t ctx);
static void process_inodes(e2fsck_t ctx, char *block_buf);
static EXT2_QSORT_TYPE process_inode_cmp(const void *a, const void *b);
@@ -2205,7 +2205,7 @@ static EXT2_QSORT_TYPE process_inode_cmp(const void *a, const void *b)
/*
* Mark an inode as being bad in some what
*/
-static void mark_inode_bad(e2fsck_t ctx, ino_t ino)
+static void mark_inode_bad(e2fsck_t ctx, ext2_ino_t ino)
{
struct problem_context pctx;

@@ -2226,7 +2226,7 @@ static void mark_inode_bad(e2fsck_t ctx, ino_t ino)
ext2fs_mark_inode_bitmap2(ctx->inode_bad_map, ino);
}

-static void add_casefolded_dir(e2fsck_t ctx, ino_t ino)
+static void add_casefolded_dir(e2fsck_t ctx, ext2_ino_t ino)
{
struct problem_context pctx;

diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c
index 8cc36f24..f9af0329 100644
--- a/e2fsck/rehash.c
+++ b/e2fsck/rehash.c
@@ -89,9 +89,9 @@ struct fill_dir_struct {
};

struct hash_entry {
- ext2_dirhash_t hash;
- ext2_dirhash_t minor_hash;
- ino_t ino;
+ ext2_dirhash_t hash;
+ ext2_dirhash_t minor_hash;
+ ext2_ino_t ino;
struct ext2_dir_entry *dir;
};

diff --git a/lib/ext2fs/badblocks.c b/lib/ext2fs/badblocks.c
index 0f23983b..a306bc06 100644
--- a/lib/ext2fs/badblocks.c
+++ b/lib/ext2fs/badblocks.c
@@ -103,7 +103,7 @@ errcode_t ext2fs_badblocks_copy(ext2_badblocks_list src,


/*
- * This procedure adds a block to a badblocks list.
+ * This procedure adds an item to a tracking list (e.g. badblocks or casefold).
*/
errcode_t ext2fs_u32_list_add(ext2_u32_list bb, __u32 blk)
{
--
2.25.1


2022-08-13 01:27:52

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH, resend] misc: use ext2_ino_t instead of ino_t

On Fri, Aug 05, 2022 at 03:28:54PM -0600, Andreas Dilger wrote:
> From: Andreas Dilger <[email protected]>
>
> Some of the new fastcommit and casefold changes used the system
> "ino_t" instead of "ext2_ino_t" for handling filesystem inodes.
> This causes printf warnings if the system "ino_t" is of a different
> size. Use the library "ext2_ino_t" for consistency.
>
> Signed-off-by: Andreas Dilger <[email protected]>
> Reviewed-by: Gabriel Krisman Bertazi <[email protected]>

Applied, thanks!

- Ted