diff --git a/gpt-utils/gpt-utils.cpp b/gpt-utils/gpt-utils.cpp index d8d97b2..8f2e3d0 100644 --- a/gpt-utils/gpt-utils.cpp +++ b/gpt-utils/gpt-utils.cpp @@ -157,11 +157,18 @@ static int blk_rw(int fd, int rw, int64_t offset, uint8_t *buf, unsigned len) else r = read(fd, buf, len); - if (r < 0) + if (r < 0) { fprintf(stderr, "block dev %s failed: %s\n", rw ? "write" : "read", strerror(errno)); - else - r = 0; + } else { + if (rw) { + r = fsync(fd); + if (r < 0) + fprintf(stderr, "fsync failed: %s\n", strerror(errno)); + } else { + r = 0; + } + } return r; }