Can journal_revoke_header_s::r_count be changed from int to __s32 please?

Carlo Wood carlo at alinoe.com
Sat Mar 15 04:32:04 UTC 2008


I find that linux/jbd.h defines:

typedef struct journal_revoke_header_s
{
        journal_header_t r_header;
	__be32           r_count;       /* Count of bytes used in the block */
} journal_revoke_header_t;

thus, sizeof(r_count) == 4

However, in e2progs, in kernel-jbd.h I find:

typedef struct journal_revoke_header_s
{
        journal_header_t r_header;
        int              r_count;       /* Count of bytes used in the block */
} journal_revoke_header_t;

and this sizeof(r_count) depends on the architecture.

Using e2fslibs this is probably not a problem because
all current OS have sizeof(int) >= 4, and r_count is assigned
rather than mapped to the disk image (even on big endian
machines?).

Nevertheless, since I believe that kernel-jbd.h should
be made public (installed along with the other header files)
in order to make at least journal_superblock_t available
to user programs, I'd like to request to change this
int into __s32. That simply makes more sense as
journal_revoke_header_t represents a data structure
on disk and sizeof(journal_revoke_header_s) might be
used somewhere.

-- 
Carlo Wood <carlo at alinoe.com>




More information about the Ext3-users mailing list