aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2008-06-06 10:25:18 +0000
committerPavel Machek <pavel@ucw.cz>2008-06-06 10:25:18 +0000
commitdf586169ccf4013298e272fed2bea8e2f5b6fef3 (patch)
treec07ba06666ee5b83c9548a2898eedcfb7cf1bebf
parente2946fb6abae14ef716e12a3fe6bb7831c206e9f (diff)
downloadsuspend-utils-df586169ccf4013298e272fed2bea8e2f5b6fef3.tar.gz
Short read from snapshot_image is rather bad error condition. Also fix
a comment.
-rw-r--r--suspend.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/suspend.c b/suspend.c
index 7e320da..daa406d 100644
--- a/suspend.c
+++ b/suspend.c
@@ -801,13 +801,20 @@ static int save_image(struct swap_writer *handle, unsigned int nr_pages)
/* The buffer may be partially filled at this point */
for (nr_pages = 0; ; nr_pages++) {
ret = read(handle->dev, handle->page_ptr, page_size);
- if (ret <= 0) {
- if (ret) {
+ if (!ret)
+ break;
+
+ if (ret != page_size) {
+ if (ret < 0) {
error = -errno;
- perror("\nError writing an image page");
+ perror("\nError reading an image page");
+ } else {
+ error = -EFAULT;
+ perror("\nShort read from snapshot?");
}
break;
}
+
handle->page_ptr += page_size;
if (!(nr_pages % m)) {