• Li Zefan's avatar
    Btrfs: fix oops when calling statfs on readonly device · b772a86e
    Li Zefan authored
    To reproduce this bug:
    
      # dd if=/dev/zero of=img bs=1M count=256
      # mkfs.btrfs img
      # losetup -r /dev/loop1 img
      # mount /dev/loop1 /mnt
      OOPS!!
    
    It triggered BUG_ON(!nr_devices) in btrfs_calc_avail_data_space().
    
    To fix this, instead of checking write-only devices, we check all open
    deivces:
    
      # df -h /dev/loop1
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/loop1            250M   28K  238M   1% /mnt
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    b772a86e
super.c 34.7 KB