• Miao Xie's avatar
    Btrfs: fix wrong nbytes information of the inode · a39f7521
    Miao Xie authored
    If we write some data into the data hole of the file(no preallocation for this
    hole), Btrfs will allocate some disk space, and update nbytes of the inode, but
    the other element--disk_i_size needn't be updated. At this condition, we must
    update inode metadata though disk_i_size is not changed(btrfs_ordered_update_i_size()
    return 1).
    
     # mkfs.btrfs /dev/sdb1
     # mount /dev/sdb1 /mnt
     # touch /mnt/a
     # truncate -s 856002 /mnt/a
     # dd if=/dev/zero of=/mnt/a bs=4K count=1 conv=nocreat,notrunc
     # umount /mnt
     # btrfsck /dev/sdb1
     root 5 inode 257 errors 400
     found 32768 bytes used err is 1
    Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    a39f7521
inode.c 197 KB