- if (write (fd, buf, sizeof buf) != sizeof buf) {
- reply_with_perror ("write: %s", device);
+ offset = i * sizeof zero_buf;
+
+ /* Check if the block is already zero before overwriting it. */
+ if (pread (fd, buf, sizeof buf, offset) != sizeof buf) {
+ reply_with_perror ("pread: %s", device);