Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH] diskquota: 32bit quota tools on 64bit architectures | Date | Sat, 21 Oct 2006 18:28:32 +0200 |
| |
On Friday 20 October 2006 08:10, Vasily Tarasov wrote: > Christoph Hellwig wrote: > > <snip> > > > Please allocate the structure using compat_alloc_userspace and copy > > with copy_in_user instead of the set_fs trick. > > <snip> > > Good idea, thank you for your tip, I'll do it.
I think it would be even better to integrate this into fs/quota.c and get rid of the extra copy entirely. The only thing you need to do differently in case of 32 bit Q_GETQUOTA is the size of the copy_{from,to}_user.
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?
Arnd <>< - 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/
| |