Messages in this thread | | | Date | Mon, 23 Oct 2006 14:51:31 +0400 | From | Vasily Tarasov <> | Subject | Re: [PATCH] diskquota: 32bit quota tools on 64bit architectures |
| |
Hello,
Arnd Bergmann wrote:
<snip> > On a related topic, I just noticed > > typedef struct fs_qfilestat { > __u64 qfs_ino; /* inode number */ > __u64 qfs_nblks; /* number of BBs 512-byte-blks */ > __u32 qfs_nextents; /* number of extents */ > } fs_qfilestat_t; > > typedef struct fs_quota_stat { > __s8 qs_version; /* version number for future changes */ > __u16 qs_flags; /* XFS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */ > __s8 qs_pad; /* unused */ > fs_qfilestat_t qs_uquota; /* user quota storage information */ > fs_qfilestat_t qs_gquota; /* group quota storage information */ > __u32 qs_incoredqs; /* number of dquots incore */ > __s32 qs_btimelimit; /* limit for blks timer */ > __s32 qs_itimelimit; /* limit for inodes timer */ > __s32 qs_rtbtimelimit;/* limit for rt blks timer */ > __u16 qs_bwarnlimit; /* limit for num warnings */ > __u16 qs_iwarnlimit; /* limit for num warnings */ > } fs_quota_stat_t; > > This one seems to have a more severe problem in x86_64 compat > mode. I haven't tried it, but isn't everything down from > gs_gquota aligned differently on i386? <snip>
The problem indeed exists:
ia32: sizeof(fs_qfilestat) = 0x14 sizeof(fs_quota_stat) = 0x44
x86_64: sizeof(fs_qfilestat) = 0x18 sizeof(fs_quota_stat) = 0x50
Note, that the difference between sizes of fs_qfilestat on ia32 and on x86_64 doesn't equal 8 bytes, as was expected (by me :)), but equals 12 bytes: 'cause of padding at the end of fs_quota_stat structure on x86_64.
I will add support of 32-bit XFS quotactl over 64bit OS in next patch.
Thank you! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |