• Linus Torvalds's avatar
    Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux · 6639c3ce
    Linus Torvalds authored
    Pull fsverity updates from Eric Biggers:
     "Fix the longstanding implementation limitation that fsverity was only
      supported when the Merkle tree block size, filesystem block size, and
      PAGE_SIZE were all equal.
    
      Specifically, add support for Merkle tree block sizes less than
      PAGE_SIZE, and make ext4 support fsverity on filesystems where the
      filesystem block size is less than PAGE_SIZE.
    
      Effectively, this means that fsverity can now be used on systems with
      non-4K pages, at least on ext4. These changes have been tested using
      the verity group of xfstests, newly updated to cover the new code
      paths.
    
      Also update fs/verity/ to support verifying data from large folios.
    
      There's also a similar patch for fs/crypto/, to support decrypting
      data from large folios, which I'm including in here to avoid a merge
      conflict between the fscrypt and fsverity branches"
    
    * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
      fscrypt: support decrypting data from large folios
      fsverity: support verifying data from large folios
      fsverity.rst: update git repo URL for fsverity-utils
      ext4: allow verity with fs block size < PAGE_SIZE
      fs/buffer.c: support fsverity in block_read_full_folio()
      f2fs: simplify f2fs_readpage_limit()
      ext4: simplify ext4_readpage_limit()
      fsverity: support enabling with tree block size < PAGE_SIZE
      fsverity: support verification with tree block size < PAGE_SIZE
      fsverity: replace fsverity_hash_page() with fsverity_hash_block()
      fsverity: use EFBIG for file too large to enable verity
      fsverity: store log2(digest_size) precomputed
      fsverity: simplify Merkle tree readahead size calculation
      fsverity: use unsigned long for level_start
      fsverity: remove debug messages and CONFIG_FS_VERITY_DEBUG
      fsverity: pass pos and size to ->write_merkle_tree_block
      fsverity: optimize fsverity_cleanup_inode() on non-verity files
      fsverity: optimize fsverity_prepare_setattr() on non-verity files
      fsverity: optimize fsverity_file_open() on non-verity files
    6639c3ce
super.c 202 KB