select(fd + 1, &fds, NULL, NULL, NULL);
int r = do_splice(fd, STDOUT_FILENO);
+ if (r < 0)
+ return r;
if (r)
- return r < 0 ? r : 0;
+ break;
r = do_splice(STDIN_FILENO, fd);
if (r < 0)
return r;
}
- return 0;
+ return close(fd);
}
static int fsck_online(const char *dev_path)
if (kernel_probed < 0)
kernel_probed = should_use_kernel_fsck(devs);
+ struct bch_opts opts = bch2_opts_empty();
+
if (kernel_probed) {
struct bch_ioctl_fsck_offline *fsck = calloc(sizeof(*fsck) +
sizeof(u64) * devs.nr, 1);
ret = splice_fd_to_stdinout(fsck_fd);
} else {
userland_fsck:
- struct bch_opts opts = bch2_opts_empty();
ret = bch2_parse_mount_opts(NULL, &opts, opts_str.buf);
if (ret)
return ret;