• M
    Btrfs: fix wrong nbytes information of the inode · a39f7521
    Miao Xie 提交于
    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: NMiao Xie <miaox@cn.fujitsu.com>
    Signed-off-by: NChris Mason <chris.mason@oracle.com>
    a39f7521
inode.c 196.7 KB