diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-09-05 22:01:34 +0200 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-09-07 13:45:24 +0200 |
commit | aa0295f1d9ac2b94f9506e707a01905c6af591d4 (patch) | |
tree | 3c2a7e1c2b6bcec12abb867759708d6917c79cb4 /src/shared/loop-util.c | |
parent | blockdev-util: check if provided sd_device is for a whole block device (diff) | |
download | systemd-aa0295f1d9ac2b94f9506e707a01905c6af591d4.tar.xz systemd-aa0295f1d9ac2b94f9506e707a01905c6af591d4.zip |
loop-util: move device_has_block_children() to blockdev-util.c
As the function is not only for loopback block device.
No actual code changes, just refactoring.
Diffstat (limited to 'src/shared/loop-util.c')
-rw-r--r-- | src/shared/loop-util.c | 49 |
1 files changed, 1 insertions, 48 deletions
diff --git a/src/shared/loop-util.c b/src/shared/loop-util.c index 56574ee7f2..b5c16b0b0e 100644 --- a/src/shared/loop-util.c +++ b/src/shared/loop-util.c @@ -70,53 +70,6 @@ static int get_current_uevent_seqnum(uint64_t *ret) { return 0; } -static int device_has_block_children(sd_device *d) { - _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL; - const char *main_ss, *main_dt; - int r; - - assert(d); - - /* Checks if the specified device currently has block device children (i.e. partition block - * devices). */ - - r = sd_device_get_subsystem(d, &main_ss); - if (r < 0) - return r; - - if (!streq(main_ss, "block")) - return -EINVAL; - - r = sd_device_get_devtype(d, &main_dt); - if (r < 0) - return r; - - if (!streq(main_dt, "disk")) /* Refuse invocation on partition block device, insist on "whole" device */ - return -EINVAL; - - r = sd_device_enumerator_new(&e); - if (r < 0) - return r; - - r = sd_device_enumerator_allow_uninitialized(e); - if (r < 0) - return r; - - r = sd_device_enumerator_add_match_parent(e, d); - if (r < 0) - return r; - - r = sd_device_enumerator_add_match_subsystem(e, "block", /* match = */ true); - if (r < 0) - return r; - - r = sd_device_enumerator_add_match_property(e, "DEVTYPE", "partition"); - if (r < 0) - return r; - - return !!sd_device_enumerator_get_device_first(e); -} - static int open_lock_fd(int primary_fd, int operation) { int lock_fd; @@ -168,7 +121,7 @@ static int loop_configure( * superficially is detached but still has partition block devices associated for it. Let's then * manually remove the partitions via BLKPG, and tell the caller we did that via EUCLEAN, so they try * again. */ - r = device_has_block_children(dev); + r = block_device_has_partitions(dev); if (r < 0) return r; if (r > 0) { |