aboutsummaryrefslogtreecommitdiff
path: root/include/linux/debugobjects.h
diff options
context:
space:
mode:
authorVasily Tarasov <[email protected]>2007-07-15 23:41:12 -0700
committerLinus Torvalds <[email protected]>2007-07-16 09:05:48 -0700
commitb716395e2b8e450e294537de0c91476ded2f0395 (patch)
tree7f8fd39022c1caca71abb30303a453d77cf4d905 /include/linux/debugobjects.h
parent4b7775870b69129e640ed583c9b362d5cd66159d (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