check errno to determine fsck ioctl error

The error code is in errno, not the return value.

Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Thomas Bertschinger 2024-05-24 22:00:27 -06:00 committed by Kent Overstreet
parent ff44b8b96d
commit 7bf821f3f9

View File

@ -1,4 +1,5 @@
#include <errno.h>
#include <getopt.h>
#include <sys/uio.h>
#include <unistd.h>
@ -98,7 +99,7 @@ static int fsck_online(const char *dev_path)
int fsck_fd = ioctl(fs.ioctl_fd, BCH_IOCTL_FSCK_ONLINE, &fsck);
if (fsck_fd < 0)
die("BCH_IOCTL_FSCK_ONLINE error: %s", bch2_err_str(fsck_fd));
die("BCH_IOCTL_FSCK_ONLINE error: %s", bch2_err_str(errno));
return splice_fd_to_stdinout(fsck_fd);
}
@ -249,7 +250,7 @@ int cmd_fsck(int argc, char *argv[])
goto userland_fsck;
if (fsck_fd < 0)
die("BCH_IOCTL_FSCK_OFFLINE error: %s", bch2_err_str(fsck_fd));
die("BCH_IOCTL_FSCK_OFFLINE error: %s", bch2_err_str(errno));
ret = splice_fd_to_stdinout(fsck_fd);
} else {