Skip to content
Snippets Groups Projects
Commit 3e150bf3 authored by Leah Rowe's avatar Leah Rowe
Browse files

util/nvmutil: cmd_swap(): write sequentually

the current code writes part 1 first, and part 0 next,
on the disk, due to the way the swap works.

with this change, swap still swaps the two parts of the file,
on disk, but writes the new file sequentially.

this change might speed up i/o on the file system, on HDDs.
on SSDs, this change likely makes no difference at all.
parent 7e3a7355
No related merge requests found
......@@ -438,16 +438,21 @@ writeGbeFile(int *fd, const char *filename)
nw = 128;
for (p = 0; p < 2; p++) {
if (gbe[0] > gbe[1])
p ^= 1;
if (nvmPartModified[p]) {
printf("Part %d modified\n", p);
} else {
fprintf (stderr,
"Part %d NOT modified\n", p);
continue;
goto next_part;
}
if (pwrite((*fd), (uint8_t *) gbe[p], nw, p << 12) != nw)
err(errno, "%s", filename);
tw += nw;
next_part:
if (gbe[0] > gbe[1])
p ^= 1;
}
if (close((*fd)))
err(errno, "%s", filename);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment