1
linux/arch/ia64
Vasily Tarasov b716395e2b diskquota: 32bit quota tools on 64bit architectures
OpenVZ Linux kernel team has discovered the problem with 32bit quota tools
working on 64bit architectures.  In 2.6.10 kernel sys32_quotactl() function
was replaced by sys_quotactl() with the comment "sys_quotactl seems to be
32/64bit clean, enable it for 32bit" However this isn't right.  Look at
if_dqblk structure:

struct if_dqblk {
        __u64 dqb_bhardlimit;
        __u64 dqb_bsoftlimit;
        __u64 dqb_curspace;
        __u64 dqb_ihardlimit;
        __u64 dqb_isoftlimit;
        __u64 dqb_curinodes;
        __u64 dqb_btime;
        __u64 dqb_itime;
        __u32 dqb_valid;
};

For 32 bit quota tools sizeof(if_dqblk) == 0x44.
But for 64 bit kernel its size is 0x48, 'cause of alignment!
Thus we got a problem. Attached patch reintroduce sys32_quotactl() function,
that handles this and related situations.

[michal.k.k.piotrowski@gmail.com: build fix]
[akpm@linux-foundation.org: Make it link with CONFIG_QUOTA=n]
Signed-off-by: Vasily Tarasov <vtaras@openvz.org>
Cc: Andi Kleen <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Jan Kara <jack@ucw.cz>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16 09:05:48 -07:00
..
configs [IA64] refresh config files 2007-03-08 11:20:17 -08:00
dig [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
hp [IA64] Fix - Section mismatch: reference to .init.data:mvec_name 2007-05-10 11:57:58 -07:00
ia32 diskquota: 32bit quota tools on 64bit architectures 2007-07-16 09:05:48 -07:00
kernel serial: convert early_uart to earlycon for 8250 2007-07-16 09:05:35 -07:00
lib [AF_RXRPC/AFS]: Arch-specific fixes. 2007-04-27 15:28:45 -07:00
mm [IA64] silence GCC ia64 unused variable warnings 2007-07-11 11:40:42 -07:00
oprofile Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci [IA64] prevent MCA when performing MMIO mmap to PCI config space 2007-07-11 11:34:49 -07:00
scripts
sn [IA64] silence GCC ia64 unused variable warnings 2007-07-11 11:40:42 -07:00
defconfig Pull error-inject into release branch 2007-04-30 13:55:43 -07:00
install.sh
Kconfig PCI: Only build PCI syscalls on architectures that want them 2007-07-11 16:02:13 -07:00
Kconfig.debug
Makefile [IA64] add vmlinuz target 2006-06-21 14:31:07 -07:00
module.lds