diff options
| author | Vasily Tarasov <[email protected]> | 2007-07-15 23:41:12 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-07-16 09:05:48 -0700 |
| commit | b716395e2b8e450e294537de0c91476ded2f0395 (patch) | |
| tree | 7f8fd39022c1caca71abb30303a453d77cf4d905 /include/linux/debugobjects.h | |
| parent | 4b7775870b69129e640ed583c9b362d5cd66159d (diff) | |
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.
[[email protected]: build fix]
[[email protected]: Make it link with CONFIG_QUOTA=n]
Signed-off-by: Vasily Tarasov <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: "Luck, Tony" <[email protected]>
Cc: Jan Kara <[email protected]>
Cc: <[email protected]>
Signed-off-by: Michal Piotrowski <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions