summaryrefslogtreecommitdiff
path: root/cmd_device.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-07-11 23:06:17 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-07-11 23:06:17 -0400
commita29cb4b9f88af9905c0ab9497330eac64456dfdd (patch)
tree92819cc60aac9739b45c55881166080ea32de893 /cmd_device.c
parentcc1f2deb960478d556e2d61be70ca412e12425d1 (diff)
cmd_device_set_state: use buffered IO for writing superblock
The layout may be unaligned on 4k sector devices - but there's no reason we need to use direct IO here. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'cmd_device.c')
-rw-r--r--cmd_device.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/cmd_device.c b/cmd_device.c
index 6a552af2..e3c5d513 100644
--- a/cmd_device.c
+++ b/cmd_device.c
@@ -418,9 +418,12 @@ int cmd_device_set_state(int argc, char *argv[])
le64_add_cpu(&sb.sb->seq, 1);
- bch2_super_write(sb.bdev->bd_fd, sb.sb);
+ bch2_super_write(sb.bdev->bd_buffered_fd, sb.sb);
+ ret = fsync(sb.bdev->bd_buffered_fd);
+ if (ret)
+ fprintf(stderr, "error writing superblock: fsync error (%m)");
bch2_free_super(&sb);
- return 0;
+ return ret;
}
char *fs_path = arg_pop();