summaryrefslogtreecommitdiff
path: root/src/udev/udev-builtin-btrfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/udev/udev-builtin-btrfs.c')
-rw-r--r--src/udev/udev-builtin-btrfs.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/udev/udev-builtin-btrfs.c b/src/udev/udev-builtin-btrfs.c
index 2e8535598d..85dba3d099 100644
--- a/src/udev/udev-builtin-btrfs.c
+++ b/src/udev/udev-builtin-btrfs.c
@@ -4,34 +4,33 @@
#include <stdlib.h>
#include <sys/ioctl.h>
-#if HAVE_LINUX_BTRFS_H
-#include <linux/btrfs.h>
-#endif
-
+#include "device-util.h"
#include "fd-util.h"
#include "missing.h"
#include "string-util.h"
-#include "udev.h"
+#include "strxcpyx.h"
+#include "udev-builtin.h"
+#include "util.h"
-static int builtin_btrfs(struct udev_device *dev, int argc, char *argv[], bool test) {
+static int builtin_btrfs(sd_device *dev, int argc, char *argv[], bool test) {
struct btrfs_ioctl_vol_args args = {};
_cleanup_close_ int fd = -1;
- int err;
+ int r;
if (argc != 3 || !streq(argv[1], "ready"))
- return EXIT_FAILURE;
+ return log_device_error_errno(dev, EINVAL, "Invalid arguments");
fd = open("/dev/btrfs-control", O_RDWR|O_CLOEXEC);
if (fd < 0)
- return EXIT_FAILURE;
+ return log_device_debug_errno(dev, errno, "Failed to open /dev/btrfs-control: %m");
strscpy(args.name, sizeof(args.name), argv[2]);
- err = ioctl(fd, BTRFS_IOC_DEVICES_READY, &args);
- if (err < 0)
- return EXIT_FAILURE;
+ r = ioctl(fd, BTRFS_IOC_DEVICES_READY, &args);
+ if (r < 0)
+ return log_device_debug_errno(dev, errno, "Failed to call BTRFS_IOC_DEVICES_READY: %m");
- udev_builtin_add_property(dev, test, "ID_BTRFS_READY", one_zero(err == 0));
- return EXIT_SUCCESS;
+ udev_builtin_add_property(dev, test, "ID_BTRFS_READY", one_zero(r == 0));
+ return 0;
}
const struct udev_builtin udev_builtin_btrfs = {