On Fri, Oct 11, 2013 at 03:20:42PM +0200, Stefan Behrens wrote: > Device stats are only initialized (read from tree items) on mount. > Trying to read device stats after adding or replacing new devices will > return errors. > > btrfs_init_new_device() and btrfs_init_dev_replace_tgtdev() are the two > functions that allocate and initialize new btrfs_device structures after > a filesystem is mounted. They set the device stats to zero by using > kzalloc() which is correct for new devices. The only missing thing was > to declare these stats as being valid (device->dev_stats_valid = 1) and > this patch adds this missing code. > > This is the reproducer: > > TEST_DEV1=/dev/sdzzzzz1 > TEST_DEV2=/dev/sdzzzzz2 > TEST_DEV3=/dev/sdzzzzz3 > TEST_MNT=/mnt > mkfs.btrfs $TEST_DEV1 > mount $TEST_DEV1 $TEST_MNT > btrfs device add $TEST_DEV2 $TEST_MNT > btrfs device stat $TEST_MNT > btrfs replace start -B $TEST_DEV2 $TEST_DEV3 $TEST_MNT > btrfs device stat $TEST_MNT > umount $TEST_MNT > Sounds like something that would look great in xfstests, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
