• Andrew Vagin's avatar
    files: declare fd_params->pos as off_t · 5bf25d36
    Andrew Vagin authored
    Currently pos has type unsigned long, so its size depends on
    architecture. pos is saved as 64-bit value in the image file and it
    isn't restored, if it is equal to -1. Due to convertation on 32-bit
    platforms -1 is converted into UINT_MAX and we get error on restore.
    
    $ zdtm.sh ns/static/tun
    ...
    (00.398513)      5: Error (files-reg.c:534): Can't restore file pos: Illegal seek
    (00.398888)      5: Error (files-reg.c:489): Can't open file /dev/net/tun: Illegal seek
    ...
    id: 0x15 flags: 0x2 pos: 0x000000ffffffff fown: { uid: 0 euid: 0 signum: 0 pid_type: 0 pid: 0 }  name: "/dev/net/tun"
    
    crtools is compiled with _FILE_OFFSET_BITS=64, so off_t is always 64-bit.
    Signed-off-by: 's avatarAndrew Vagin <avagin@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    5bf25d36
files.h 3.91 KB