1
linux/arch/x86_64/ia32
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
..
audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
fpu32.c [PATCH] x86_64: Remove long obsolete CVS 2006-06-26 10:48:16 -07:00
ia32_aout.c [PATCH] x86-64: Fix warnings in ia32_aout.c 2007-01-11 01:52:45 +01:00
ia32_binfmt.c [PATCH] x86-64: fix ia32_binfmt.c build error 2007-05-02 19:27:08 +02:00
ia32_signal.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
ia32entry.S diskquota: 32bit quota tools on 64bit architectures 2007-07-16 09:05:48 -07:00
ipc32.c
Makefile [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
mmap32.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
ptrace32.c [PATCH] x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted 2007-03-08 07:38:21 -08:00
sys_ia32.c x86_64: Fix readahead/sync_file_range/fadvise64 compat calls 2007-06-20 14:27:25 -07:00
syscall32_syscall.S
syscall32.c [PATCH] x86-64: adjust inclusion of asm/vsyscall32.h 2007-05-02 19:27:04 +02:00
tls32.c
vsyscall-sigreturn.S [PATCH] Mark unwind info for signal trampolines in vDSOs 2006-03-31 12:18:52 -08:00
vsyscall-syscall.S
vsyscall-sysenter.S
vsyscall.lds [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00