From 00348fc7f5e762d3050880805b313a0834fdd663 Mon Sep 17 00:00:00 2001 From: szaka Date: Tue, 18 Apr 2006 22:03:09 +0000 Subject: [PATCH] Warn about bad sectors if pure disk I/O fails with EIO. This is regularly reported with faulty disks. --- ntfsprogs/ntfsresize.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ntfsprogs/ntfsresize.c b/ntfsprogs/ntfsresize.c index 8fad19ed..1ad39cd1 100644 --- a/ntfsprogs/ntfsresize.c +++ b/ntfsprogs/ntfsresize.c @@ -1420,13 +1420,21 @@ static void copy_clusters(ntfs_resize_t *resize, s64 dest, s64 src, s64 len) lseek_to_cluster(vol, src + i); - if (read_all(vol->dev, buff, vol->cluster_size) == -1) - perr_exit("read_all"); + if (read_all(vol->dev, buff, vol->cluster_size) == -1) { + perr_printf("Failed to read from the disk"); + if (errno == EIO) + printf("%s", bad_sectors_warning_msg); + exit(1); + } lseek_to_cluster(vol, dest + i); - if (write_all(vol->dev, buff, vol->cluster_size) == -1) - perr_exit("write_all"); + if (write_all(vol->dev, buff, vol->cluster_size) == -1) { + perr_printf("Failed to write to the disk"); + if (errno == EIO) + printf("%s", bad_sectors_warning_msg); + exit(1); + } resize->relocations++; progress_update(&resize->progress, resize->relocations);