| https://bugs.gentoo.org/580062 |
| |
| From 2a1d0fa8ea765604cd8274aac5aa7876f1c145c9 Mon Sep 17 00:00:00 2001 |
| From: Mike Frysinger <vapier@gentoo.org> |
| Date: Tue, 19 Apr 2016 23:53:22 -0400 |
| Subject: [PATCH] convert major/minor/makedev handling |
| |
| Most of the files in here use MAJOR/MINOR/MKDEV macros, but a few |
| missed it. Update the defines in those files to match them. |
| --- |
| daemons/cmirrord/functions.c | 16 ++++++++++++---- |
| daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c | 12 ++++++++++-- |
| lib/filters/filter-sysfs.c | 6 ++++-- |
| 3 files changed, 26 insertions(+), 8 deletions(-) |
| |
| diff --git a/daemons/cmirrord/functions.c b/daemons/cmirrord/functions.c |
| index e9d3c09..5b3cb38 100644 |
| --- a/daemons/cmirrord/functions.c |
| +++ b/daemons/cmirrord/functions.c |
| @@ -20,6 +20,14 @@ |
| #include <time.h> |
| #include <unistd.h> |
| |
| +#ifdef __linux__ |
| +# include "kdev_t.h" |
| +#else |
| +# define MAJOR(x) major((x)) |
| +# define MINOR(x) minor((x)) |
| +# define MKDEV(x,y) makedev((x),(y)) |
| +#endif |
| + |
| #define BYTE_SHIFT 3 |
| |
| /* |
| @@ -333,8 +341,8 @@ static int find_disk_path(char *major_minor_str, char *path_rtn, int *unlink_pat |
| continue; |
| } |
| if (S_ISBLK(statbuf.st_mode) && |
| - (major(statbuf.st_rdev) == major) && |
| - (minor(statbuf.st_rdev) == minor)) { |
| + (MAJOR(statbuf.st_rdev) == major) && |
| + (MINOR(statbuf.st_rdev) == minor)) { |
| LOG_DBG(" %s: YES", dep->d_name); |
| if (closedir(dp)) |
| LOG_DBG("Unable to closedir /dev/mapper %s", |
| @@ -1451,7 +1459,7 @@ static int disk_status_info(struct log_c *lc, struct dm_ulog_request *rq) |
| } |
| |
| r = sprintf(data, "3 clustered-disk %d:%d %c", |
| - major(statbuf.st_rdev), minor(statbuf.st_rdev), |
| + MAJOR(statbuf.st_rdev), MINOR(statbuf.st_rdev), |
| (lc->log_dev_failed) ? 'D' : 'A'); |
| if (r < 0) |
| return r; |
| @@ -1514,7 +1522,7 @@ static int disk_status_table(struct log_c *lc, struct dm_ulog_request *rq) |
| } |
| |
| r = sprintf(data, "clustered-disk %d:%d %u %s%s ", |
| - major(statbuf.st_rdev), minor(statbuf.st_rdev), |
| + MAJOR(statbuf.st_rdev), MINOR(statbuf.st_rdev), |
| lc->region_size, |
| (lc->sync == DEFAULTSYNC) ? "" : |
| (lc->sync == NOSYNC) ? "nosync " : "sync ", |
| diff --git a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c |
| index 7b060ed..4098203 100644 |
| --- a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c |
| +++ b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c |
| @@ -20,6 +20,14 @@ |
| #include <stdarg.h> |
| #include <pthread.h> |
| |
| +#ifdef __linux__ |
| +# include "kdev_t.h" |
| +#else |
| +# define MAJOR(x) major((x)) |
| +# define MINOR(x) minor((x)) |
| +# define MKDEV(x,y) makedev((x),(y)) |
| +#endif |
| + |
| /* First warning when snapshot is 80% full. */ |
| #define WARNING_THRESH (DM_PERCENT_1 * 80) |
| /* Run a check every 5%. */ |
| @@ -148,8 +156,8 @@ static void _umount(const char *device, int major, int minor) |
| continue; /* can't stat, skip this one */ |
| |
| if (S_ISBLK(st.st_mode) && |
| - major(st.st_rdev) == major && |
| - minor(st.st_rdev) == minor) { |
| + MAJOR(st.st_rdev) == major && |
| + MINOR(st.st_rdev) == minor) { |
| log_error("Unmounting invalid snapshot %s from %s.", device, words[1]); |
| if (!_run(UMOUNT_COMMAND, "-fl", words[1], NULL)) |
| log_error("Failed to umount snapshot %s from %s: %s.", |
| diff --git a/lib/filters/filter-sysfs.c b/lib/filters/filter-sysfs.c |
| index 3115f86..5f76e8b 100644 |
| --- a/lib/filters/filter-sysfs.c |
| +++ b/lib/filters/filter-sysfs.c |
| @@ -19,6 +19,8 @@ |
| |
| #include <dirent.h> |
| |
| +#include "kdev_t.h" |
| + |
| static int _locate_sysfs_blocks(const char *sysfs_dir, char *path, size_t len, |
| unsigned *sysfs_depth) |
| { |
| @@ -120,7 +122,7 @@ static struct dev_set *_dev_set_create(struct dm_pool *mem, |
| |
| static unsigned _hash_dev(dev_t dev) |
| { |
| - return (major(dev) ^ minor(dev)) & (SET_BUCKETS - 1); |
| + return (MAJOR(dev) ^ MINOR(dev)) & (SET_BUCKETS - 1); |
| } |
| |
| /* |
| @@ -171,7 +173,7 @@ static int _parse_dev(const char *file, FILE *fp, dev_t *result) |
| return 0; |
| } |
| |
| - *result = makedev(major, minor); |
| + *result = MKDEV(major, minor); |
| return 1; |
| } |
| |
| -- |
| 2.7.4 |
| |