• Guo Chao's avatar
    loopdev: ignore negative offset when calculate loop device size · b7a1da69
    Guo Chao authored
    Negative offset may cause loop device size larger than backing file
    size.
    
     $ fallocate -l 1M a
     $ losetup --offset 0xffffffffffff0000 /dev/loop0 a
     $ blockdev --getsize64 /dev/loop0
     1114112
     $ ls -l a
     -rw-r--r-- 1 root root 1048576 Jan 23 12:46 a
     $ cat /dev/loop0
     cat: /dev/loop0: Input/output error
    
    It makes no sense to do that. Only apply offset when it's positive.
    
    Fix a typo in the comment by the way.
    Signed-off-by: default avatarGuo Chao <yan@linux.vnet.ibm.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Guo Chao <yan@linux.vnet.ibm.com>
    Cc: M. Hindess <hindessm@uk.ibm.com>
    Cc: Nikanth Karthikesan <knikanth@suse.de>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    b7a1da69
loop.c 47.1 KB