diff options
author | Pavel Machek <pavel@ucw.cz> | 2008-06-06 10:25:18 +0000 |
---|---|---|
committer | Pavel Machek <pavel@ucw.cz> | 2008-06-06 10:25:18 +0000 |
commit | df586169ccf4013298e272fed2bea8e2f5b6fef3 (patch) | |
tree | c07ba06666ee5b83c9548a2898eedcfb7cf1bebf | |
parent | e2946fb6abae14ef716e12a3fe6bb7831c206e9f (diff) | |
download | suspend-utils-df586169ccf4013298e272fed2bea8e2f5b6fef3.tar.gz |
Short read from snapshot_image is rather bad error condition. Also fix
a comment.
-rw-r--r-- | suspend.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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)) { |