summaryrefslogtreecommitdiff
path: root/probe-bcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'probe-bcache.c')
-rw-r--r--probe-bcache.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/probe-bcache.c b/probe-bcache.c
deleted file mode 100644
index 6ff882a..0000000
--- a/probe-bcache.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Author: Kent Overstreet <kent.overstreet@gmail.com>
- *
- * GPLv2
- */
-
-#define _FILE_OFFSET_BITS 64
-#define __USE_FILE_OFFSET64
-#define _XOPEN_SOURCE 500
-
-#include <blkid/blkid.h>
-#include <fcntl.h>
-#include <linux/fs.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <uuid/uuid.h>
-
-#include "bcache.h"
-
-int main(int argc, char **argv)
-{
- bool udev = false;
- int i, o;
- extern char *optarg;
- struct cache_sb sb;
- char uuid[40];
- blkid_probe pr;
-
- while ((o = getopt(argc, argv, "o:")) != EOF)
- switch (o) {
- case 'o':
- if (strcmp("udev", optarg)) {
- printf("Invalid output format %s\n", optarg);
- exit(EXIT_FAILURE);
- }
- udev = true;
- break;
- }
-
-
- argv += optind;
- argc -= optind;
-
- for (i = 0; i < argc; i++) {
- int fd = open(argv[i], O_RDONLY);
- if (fd == -1)
- continue;
-
- if (!(pr = blkid_new_probe()))
- continue;
- if (blkid_probe_set_device(pr, fd, 0, 0))
- continue;
- /* probe partitions too */
- if (blkid_probe_enable_partitions(pr, true))
- continue;
- /* bail if anything was found
- * probe-bcache isn't needed once blkid recognizes bcache */
- if (!blkid_do_probe(pr)) {
- continue;
- }
-
- if (pread(fd, &sb, sizeof(sb), SB_SECTOR << 9) != sizeof(sb))
- continue;
-
- if (memcmp(&sb.magic, &BCACHE_MAGIC, sizeof(sb.magic)))
- continue;
-
- uuid_unparse(sb.disk_uuid.b, uuid);
-
- if (udev)
- printf("ID_FS_UUID=%s\n"
- "ID_FS_UUID_ENC=%s\n"
- "ID_FS_TYPE=bcache\n",
- uuid, uuid);
- else
- printf("%s: UUID=\"\" TYPE=\"bcache\"\n", uuid);
- }
-
- return 0;
-}