• Rakesh Pandit's avatar
    bfs: fix sanity checks for empty files · 5f9f48f5
    Rakesh Pandit authored
    Mount fails if file system image has empty files because of sanity check
    while reading superblock.  For empty files disk offset to end of file
    (i_eoffset) is cpu_to_le32(-1).  Sanity check comparison, which compares
    disk offset with file system size isn't valid for this value and hence
    is ignored with this patch.
    
    Steps to reproduce:
    
      $  dd if=/dev/zero of=bfs-image count=204800
      $  mkfs.bfs bfs-image
      $  mkdir bfs-mount-point
      $  sudo mount -t bfs -o loop bfs-image bfs-mount-point/
      $  cd bfs-mount-point/
      $  sudo touch a
      $  cd ..
      $  sudo umount bfs-mount-point/
      $  sudo mount -t bfs -o loop bfs-image bfs-mount-point/
      mount: /dev/loop0: can't read superblock
    
      $  dmesg
      [25526.689580] BFS-fs: bfs_fill_super(): Inode 0x00000003 corrupted
    
    Tigran said:
     "If you had created the filesystem with the proper mkfs under SCO
      UnixWare 7 you (probably) wouldn't encounter this issue. But since
      commercial Unix-es are now part of history and the only proper way is
      the Linux mkfs.bfs utility, your patch is fine"
    
    Link: http://lkml.kernel.org/r/20170505201625.GA3097@hercules.tuxera.comSigned-off-by: default avatarRakesh Pandit <rakesh@tuxera.com>
    Acked-by: default avatarTigran Aivazian <aivazian.tigran@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5f9f48f5
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
bfs.h Loading commit data...
dir.c Loading commit data...
file.c Loading commit data...
inode.c Loading commit data...