• Nicolas George's avatar
    uml: use correct type in BLKGETSIZE ioctl · 2c392a4f
    Nicolas George authored
    I found a type mismatch in UML that makes host block devices unusable as ubd
    devices on x86_64 and other 64 bits systems (segfault of the mm subsystem):
    
    In block/ioctl.c, the following lines show that the BLKGETSIZE ioctl expects
    a pointer to a long:
    
    	case BLKGETSIZE:
    		if ((bdev->bd_inode->i_size >> 9) > ~0UL)
    			return -EFBIG;
    		return put_ulong(arg, bdev->bd_inode->i_size >> 9);
    
    In arch/um/os-Linux/file.c, os_file_size calls it with an int.
    
    The ioctl_list man page should be fixed as well.
    
    Cc: Jeff Dike <jdike@addtoit.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2c392a4f
file.c 10.9 KB