• Theodore Ts'o's avatar
    ext4: fix EXT4_IOC_SWAP_BOOT · 18aded17
    Theodore Ts'o authored
    The code EXT4_IOC_SWAP_BOOT ioctl hasn't been updated in a while, and
    it's a bit broken with respect to more modern ext4 kernels, especially
    metadata checksums.
    
    Other problems fixed with this commit:
    
    * Don't allow installing a DAX, swap file, or an encrypted file as a
      boot loader.
    
    * Respect the immutable and append-only flags.
    
    * Wait until any DIO operations are finished *before* calling
      truncate_inode_pages().
    
    * Don't swap inode->i_flags, since these flags have nothing to do with
      the inode blocks --- and it will give the IMA/audit code heartburn
      when the inode is evicted.
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Reported-by: syzbot+e81ccd4744c6c4f71354@syzkaller.appspotmail.com
    18aded17
ioctl.c 27.3 KB