• Yoav Zach's avatar
    [PATCH] Don't force O_LARGEFILE for 32 bit processes on ia64 · ef3daeda
    Yoav Zach authored
    In ia64 kernel, the O_LARGEFILE flag is forced when opening a file.  This
    is problematic for execution of 32 bit processes, which are not largefile
    aware, either by SW emulation or by HW execution.
    
    For such processes, the problem is two-fold:
    
    1) When trying to open a file that is larger than 4G
       the operation should fail, but it's not
    2) Writing to offset larger than 4G should fail, but
       it's not
    
    The proposed patch takes advantage of the way 32 bit processes are
    identified in ia64 systems.  Such processes have PER_LINUX32 for their
    personality.  With the patch, the ia64 kernel will not enforce the
    O_LARGEFILE flag if the current process has PER_LINUX32 set.  The behavior
    for all other architectures remains unchanged.
    Signed-off-by: default avatarYoav Zach <yoav.zach@intel.com>
    Acked-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    ef3daeda
open.c 23.1 KB