• Christian Borntraeger's avatar
    ext4: allow defrag (EXT4_IOC_MOVE_EXT) in 32bit compat mode · b684b2ee
    Christian Borntraeger authored
    I have an x86_64 kernel with i386 userspace. e4defrag fails on the
    EXT4_IOC_MOVE_EXT ioctl because it is not wired up for the compat
    case. It seems that struct move_extent is compat save, only types
    with fixed widths are used:
    {
            __u32 reserved;         /* should be zero */
            __u32 donor_fd;         /* donor file descriptor */
            __u64 orig_start;       /* logical start offset in block for orig */
            __u64 donor_start;      /* logical start offset in block for donor */
            __u64 len;              /* block length to be moved */
            __u64 moved_len;        /* moved block length */
    };
    
    Lets just wire up EXT4_IOC_MOVE_EXT for the compat case.
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
    CC: Akira Fujita <a-fujita@rs.jp.nec.com> 
    b684b2ee
ioctl.c 8.82 KB