Re: [patch 3/3] Fix XFS_IOC_FSBULKSTAT{,_SINGLE} and XFS_IOC_FSINUMBERS in compat mode

Andrew Morton
2007-06-28T18:15:41Z

On Tue, 19 Jun 2007 15:25:52 +0200 mmarek@suse.cz wrote:

> * 32bit struct xfs_fsop_bulkreq has different size and layout of
> members, no matter the alignment. Move the code out of the #else
> branch (why was it there in the first place?). Define _32 variants of
> the ioctl constants.
> * 32bit struct xfs_bstat is different because of time_t and on
> i386 becaus of different padding. Create a new formatter
> xfs_bulkstat_one_compat() that takes care of this. To do this, we need
> to make xfs_bulkstat_one_iget() and xfs_bulkstat_one_dinode()
> non-static.
> * i386 struct xfs_inogrp has different padding. Introduce a similar
> "formatter" mechanism for xfs_inumbers: the native formatter is just a
> copy_to_user, the compat formatter takes care of the different layout

test.kernel.org build failed:

CC fs/xfs/linux-2.6/xfs_ioctl32.o
fs/xfs/linux-2.6/xfs_ioctl32.c: In function ‘xfs_ioc_bulkstat_compat’:
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: ‘xfs_inumbers_fmt_compat’ undeclared (first use in this function)
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: (Each undeclared identifier is reported only once
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: for each function it appears in.)