-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
/*
* probe disks for filesystems and partitions
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <blkid/blkid.h>
+#include <blkid.h>
#include <errno.h>
#include <fcntl.h>
#include <getopt.h>
#include "sd-id128.h"
#include "alloc-util.h"
+#include "blkid-util.h"
#include "efivars.h"
#include "fd-util.h"
#include "gpt.h"
static int find_gpt_root(struct udev_device *dev, blkid_probe pr, bool test) {
-#if defined(GPT_ROOT_NATIVE) && defined(ENABLE_EFI)
+#if defined(GPT_ROOT_NATIVE) && ENABLE_EFI
_cleanup_free_ char *root_id = NULL;
bool found_esp = false;
errno = 0;
pl = blkid_probe_get_partitions(pr);
if (!pl)
- return errno ? -errno : -ENOMEM;
+ return -errno ?: -ENOMEM;
nvals = blkid_partlist_numof_partitions(pl);
for (i = 0; i < nvals; i++) {
if (sd_id128_equal(type, GPT_ESP)) {
sd_id128_t id, esp;
- unsigned long long flags;
-
- flags = blkid_partition_get_flags(pp);
- if (flags & GPT_FLAG_NO_AUTO)
- continue;
/* We found an ESP, let's see if it matches
* the ESP we booted from. */
found_esp = true;
} else if (sd_id128_equal(type, GPT_ROOT_NATIVE)) {
+ unsigned long long flags;
+
+ flags = blkid_partition_get_flags(pp);
+ if (flags & GPT_FLAG_NO_AUTO)
+ continue;
/* We found a suitable root partition, let's
* remember the first one. */
int rc;
if (fstat(blkid_probe_get_fd(pr), &st))
- return -1;
+ return -errno;
blkid_probe_enable_partitions(pr, 1);
int64_t offset = 0;
bool noraid = false;
_cleanup_close_ int fd = -1;
- blkid_probe pr;
+ _cleanup_blkid_free_probe_ blkid_probe pr = NULL;
const char *data;
const char *name;
- const char *prtype = NULL;
int nvals;
int i;
int err = 0;
blkid_probe_set_superblocks_flags(pr,
BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID |
BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE |
- BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION |
- BLKID_SUBLKS_BADCSUM);
+ BLKID_SUBLKS_USAGE | BLKID_SUBLKS_VERSION);
if (noraid)
blkid_probe_filter_superblocks_usage(pr, BLKID_FLTR_NOTIN, BLKID_USAGE_RAID);
err = probe_superblocks(pr);
if (err < 0)
goto out;
- if (blkid_probe_has_value(pr, "SBBADCSUM")) {
- if (!blkid_probe_lookup_value(pr, "TYPE", &prtype, NULL))
- log_warning("incorrect %s checksum on %s",
- prtype, udev_device_get_devnode(dev));
- else
- log_warning("incorrect checksum on %s",
- udev_device_get_devnode(dev));
- goto out;
- }
/* If we are a partition then our parent passed on the root
* partition UUID to us */
if (is_gpt)
find_gpt_root(dev, pr, test);
- blkid_free_probe(pr);
out:
if (err < 0)
return EXIT_FAILURE;