Anand Jain
2014-Jul-17 09:28 UTC
[PATCH] btrfs-porgs: fix xfstest btrfs/023 random failure
xfstest btrfs/023 which does the following tests create_group_profile "raid0" check_group_profile "RAID0" create_group_profile "raid1" check_group_profile "RAID1" create_group_profile "raid10" check_group_profile "RAID10" create_group_profile "raid5" check_group_profile "RAID5" create_group_profile "raid6" check_group_profile "RAID6" fails randomly with the error as below ERROR: device scan failed '/dev/sde' - Invalid argument since failure is at random group profile it indicates to me that btrfs kernel did not see the newly created btrfs on the device To note: I have the following patch on the kernel which is not yet integrated, but its not related to this bug. btrfs: RFC: code optimize use btrfs_get_bdev_and_sb() at btrfs_scan_one_device btrfs: looping 'mkfs.btrfs -f <dev>' may fail with EBUSY btrfs: check generation as replace duplicates devid+uuid This patch calls fsync() at btrfs_prepare_device(). With this btrfs/023 has NOT failed consistently for several long iterations. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- utils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils.c b/utils.c index fbc5bde..e144dfd 100644 --- a/utils.c +++ b/utils.c @@ -741,6 +741,8 @@ int btrfs_prepare_device(int fd, char *file, int zero_end, u64 *block_count_ret, } *block_count_ret = block_count; + fsync(fd); + zero_dev_error: if (ret < 0) { fprintf(stderr, "ERROR: failed to zero device '%s' - %s\n", -- 2.0.0.153.g79dcccc -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html