diff options
Diffstat (limited to 'sys-fs/device-mapper/files/device-mapper-1.02.22-export-format-r1.diff')
-rw-r--r-- | sys-fs/device-mapper/files/device-mapper-1.02.22-export-format-r1.diff | 300 |
1 files changed, 0 insertions, 300 deletions
diff --git a/sys-fs/device-mapper/files/device-mapper-1.02.22-export-format-r1.diff b/sys-fs/device-mapper/files/device-mapper-1.02.22-export-format-r1.diff deleted file mode 100644 index 0fef5a2558f6..000000000000 --- a/sys-fs/device-mapper/files/device-mapper-1.02.22-export-format-r1.diff +++ /dev/null @@ -1,300 +0,0 @@ -diff -Nur device-mapper.1.02.22.orig/dmsetup/dmsetup.c device-mapper.1.02.22/dmsetup/dmsetup.c ---- device-mapper.1.02.22.orig/dmsetup/dmsetup.c 2007-10-09 09:51:48.000000000 -0400 -+++ device-mapper.1.02.22/dmsetup/dmsetup.c 2007-10-09 09:52:02.000000000 -0400 -@@ -107,6 +107,7 @@ - enum { - READ_ONLY = 0, - COLS_ARG, -+ EXPORT_ARG, - EXEC_ARG, - FORCE_ARG, - GID_ARG, -@@ -137,7 +138,8 @@ - DR_TASK = 1, - DR_INFO = 2, - DR_DEPS = 4, -- DR_TREE = 8 /* Complete dependency tree required */ -+ DR_TREE = 8, /* Complete dependency tree required */ -+ DR_TABLE = 0x10, /* table is required, not just info */ - } report_type_t; - - static int _switches[NUM_SWITCHES]; -@@ -1105,8 +1107,13 @@ - name = argv[1]; - } - -- if (!(dmt = dm_task_create(DM_DEVICE_INFO))) -- return 0; -+ if (_report_type & DR_TABLE ) { -+ if (!(dmt = dm_task_create(DM_DEVICE_TABLE))) -+ return 0; -+ } else { -+ if (!(dmt = dm_task_create(DM_DEVICE_INFO))) -+ return 0; -+ } - - if (!_set_task_device(dmt, name, 0)) - goto out; -@@ -1570,6 +1577,16 @@ - return dm_report_field_uint32(rh, field, &value); - } - -+static int _int_disp(struct dm_report *rh, -+ struct dm_pool *mem __attribute((unused)), -+ struct dm_report_field *field, const void *data, -+ void *private __attribute((unused))) -+{ -+ const int value = *(const int *)data; -+ -+ return dm_report_field_int(rh, field, &value); -+} -+ - static int _dm_name_disp(struct dm_report *rh, - struct dm_pool *mem __attribute((unused)), - struct dm_report_field *field, const void *data, -@@ -1611,6 +1628,66 @@ - return dm_report_field_string(rh, field, &s); - } - -+static int _dm_info_cleartext_status_disp(struct dm_report *rh, -+ struct dm_pool *mem __attribute((unused)), -+ struct dm_report_field *field, const void *data, -+ void *private __attribute((unused))) -+{ -+ const char *buf = "NOTPRESENT"; -+ const struct dm_info *info = data; -+ -+ if (info->exists) { -+ if (info->suspended) -+ buf = "SUSPENDED"; -+ else -+ buf = info->read_only ? " READONLY" : "ACTIVE"; -+ } -+ -+ return dm_report_field_string(rh, field, &buf); -+} -+ -+static int _dm_info_target_types_disp(struct dm_report *rh, -+ struct dm_pool *mem __attribute((unused)), -+ struct dm_report_field *field, const void *data, -+ void *private __attribute((unused))) -+{ -+ char buf[1024]; -+ char *dest = buf; -+ int remains = sizeof(buf); -+ int written; -+ const char *s = buf; -+ struct dm_task *dmt = (struct dm_task *) data; -+ void *next = NULL; -+ uint64_t start, length; -+ char *target_type = NULL; -+ char *params; -+ -+ -+ buf[0] = '\0'; -+ -+ next = dm_get_next_target(dmt, next, &start, &length, -+ &target_type, ¶ms); -+ if (target_type) { -+ written = snprintf(dest, remains, "%s", target_type); -+ dest += written; -+ remains -= written; -+ -+ while (remains > 0 && next) { -+ next = dm_get_next_target(dmt, next, &start, &length, -+ &target_type, ¶ms); -+ if (target_type) { -+ written = snprintf(dest, remains, ",%s", target_type); -+ dest += written; -+ remains -= written; -+ } -+ } -+ } -+ -+ buf[sizeof(buf)-1] = '\0'; -+ -+ return dm_report_field_string(rh, field, &s); -+} -+ - static int _dm_info_devno_disp(struct dm_report *rh, struct dm_pool *mem, - struct dm_report_field *field, const void *data, - void *private) -@@ -1834,11 +1911,12 @@ - { DR_INFO, "Mapped Device Information", "", _info_get_obj }, - { DR_DEPS, "Mapped Device Relationship Information", "", _deps_get_obj }, - { DR_TREE, "Mapped Device Relationship Information", "", _tree_get_obj }, -+ { DR_TABLE, "Mapped Device Table", "", _task_get_obj }, - { 0, "", "", NULL }, - }; - - /* Column definitions */ --#define OFFSET_OF(strct, field) ((unsigned int) &((struct strct *)NULL)->field) -+#define OFFSET_OF(strct, field) ((unsigned long) &((struct strct *)NULL)->field) - #define STR (DM_REPORT_FIELD_TYPE_STRING) - #define NUM (DM_REPORT_FIELD_TYPE_NUMBER) - #define FIELD_O(type, strct, sorttype, head, field, width, func, id, desc) {DR_ ## type, sorttype, OFFSET_OF(strct, field), width, id, head, &_ ## func ## _disp, desc}, -@@ -1849,6 +1927,7 @@ - FIELD_F(TASK, STR, "Name", 16, dm_name, "name", "Name of mapped device.") - FIELD_F(TASK, STR, "UUID", 32, dm_uuid, "uuid", "Unique (optional) identifier for mapped device.") - FIELD_F(INFO, STR, "Stat", 4, dm_info_status, "attr", "(L)ive, (I)nactive, (s)uspended, (r)ead-only, read-(w)rite.") -+FIELD_F(INFO, STR, "State", 1, dm_info_cleartext_status, "status", "State as cleartext.") - FIELD_F(INFO, STR, "DevNo", 5, dm_info_devno, "devno", "Device major and minor numbers") - FIELD_O(INFO, dm_info, NUM, "Maj", major, 3, int32, "major", "Block device major number.") - FIELD_O(INFO, dm_info, NUM, "Min", minor, 3, int32, "minor", "Block device minor number.") -@@ -1856,6 +1935,11 @@ - FIELD_O(INFO, dm_info, NUM, "Targ", target_count, 4, int32, "segments", "Number of segments in live table, if present.") - FIELD_O(INFO, dm_info, NUM, "Event", event_nr, 6, uint32, "events", "Number of most recent event.") - -+FIELD_O(INFO, dm_info, NUM, "RO", read_only, 2, int, "read_only", "Read only.") -+FIELD_O(INFO, dm_info, NUM, "Ex", exists, 2, int, "exists", "Exists.") -+FIELD_O(INFO, dm_info, NUM, "Susp", suspended, 4, int, "suspended", "Suspended.") -+FIELD_O(INFO, dm_info, NUM, "tab_live", live_table, 8, int, "table_live", "Live table.") -+FIELD_O(INFO, dm_info, NUM, "tab_inact", inactive_table, 9, int, "table_inactive", "Inactive table.") - FIELD_O(DEPS, dm_deps, NUM, "#Devs", count, 5, int32, "device_count", "Number of devices used by this one.") - FIELD_F(TREE, STR, "DevNames", 8, dm_deps_names, "devs_used", "List of names of mapped devices used by this one.") - FIELD_F(DEPS, STR, "DevNos", 6, dm_deps, "devnos_used", "List of device numbers of devices used by this one.") -@@ -1863,6 +1947,7 @@ - FIELD_F(TREE, NUM, "#Refs", 5, dm_tree_parents_count, "device_ref_count", "Number of mapped devices referencing this one.") - FIELD_F(TREE, STR, "RefNames", 8, dm_tree_parents_names, "names_using_dev", "List of names of mapped devices using this one.") - FIELD_F(TREE, STR, "RefDevNos", 9, dm_tree_parents_devs, "devnos_using_dev", "List of device numbers of mapped devices using this one.") -+FIELD_F(TABLE, STR, "Targettypes", 32, dm_info_target_types, "target_types", "Used target types.") - {0, 0, 0, 0, "", "", NULL, NULL}, - /* *INDENT-ON* */ - }; -@@ -1873,13 +1958,15 @@ - #undef FIELD_F - - static const char *default_report_options = "name,major,minor,attr,open,segments,events,uuid"; -+static const char *default_export_options = "name,major,minor,status,read_only,exists,suspended,table_live,table_inactive,open,segments,events,uuid,target_types"; - - static int _report_init(struct command *c) - { -- char *options = (char *) default_report_options; -+ char *default_options = (char *) default_report_options; -+ char *options; - const char *keys = ""; - const char *separator = " "; -- int aligned = 1, headings = 1, buffered = 1; -+ int aligned = 1, headings = 1, buffered = 1, export = 0; - uint32_t flags = 0; - size_t len = 0; - int r = 0; -@@ -1894,6 +1981,15 @@ - if (_switches[UNBUFFERED_ARG]) - buffered = 0; - -+ if (_switches[EXPORT_ARG]) { -+ default_options = (char *) default_export_options; -+ separator = "\n"; -+ aligned = 0; -+ headings = 0; -+ export = 1; -+ } -+ -+ options = default_options; - if (_switches[OPTIONS_ARG] && _string_args[OPTIONS_ARG]) { - if (*_string_args[OPTIONS_ARG] != '+') - options = _string_args[OPTIONS_ARG]; -@@ -1936,6 +2032,9 @@ - if (headings) - flags |= DM_REPORT_OUTPUT_HEADINGS; - -+ if (export) -+ flags |= DM_REPORT_OUTPUT_EXPORT; -+ - if (!(_report = dm_report_init(&_report_type, - _report_types, _report_fields, - options, separator, flags, keys, NULL))) -@@ -2010,7 +2109,8 @@ - fprintf(out, "Usage:\n\n"); - fprintf(out, "dmsetup [--version] [-v|--verbose [-v|--verbose ...]]\n" - " [-r|--readonly] [--noopencount] [--nolockfs]\n" -- " [-c|-C|--columns] [-o <fields>] [-O|--sort <sort_fields>]\n" -+ " [-c|-C|--columns] [-e|--export]\n" -+ " [-o <fields>] [-O|--sort <sort_fields>]\n" - " [--noheadings] [--separator <separator>]\n\n"); - for (i = 0; _commands[i].name; i++) - fprintf(out, "\t%s %s\n", _commands[i].name, _commands[i].help); -@@ -2354,6 +2454,7 @@ - static struct option long_options[] = { - {"readonly", 0, &ind, READ_ONLY}, - {"columns", 0, &ind, COLS_ARG}, -+ {"export", 0, &ind, EXPORT_ARG}, - {"exec", 1, &ind, EXEC_ARG}, - {"force", 0, &ind, FORCE_ARG}, - {"gid", 1, &ind, GID_ARG}, -@@ -2431,12 +2532,16 @@ - - optarg = 0; - optind = OPTIND_INIT; -- while ((ind = -1, c = GETOPTLONG_FN(*argc, *argv, "cCfGj:m:Mno:O:ru:Uv", -+ while ((ind = -1, c = GETOPTLONG_FN(*argc, *argv, "cCefGj:m:Mno:O:ru:Uv", - long_options, NULL)) != -1) { - if (c == ':' || c == '?') - return 0; - if (c == 'c' || c == 'C' || ind == COLS_ARG) - _switches[COLS_ARG]++; -+ if (c == 'e' || ind == EXPORT_ARG) { -+ _switches[EXPORT_ARG]++; -+ _switches[COLS_ARG]++; -+ } - if (c == 'f' || ind == FORCE_ARG) - _switches[FORCE_ARG]++; - if (c == 'r' || ind == READ_ONLY) -diff -Nur device-mapper.1.02.22.orig/lib/libdevmapper.h device-mapper.1.02.22/lib/libdevmapper.h ---- device-mapper.1.02.22.orig/lib/libdevmapper.h 2007-10-09 09:51:48.000000000 -0400 -+++ device-mapper.1.02.22/lib/libdevmapper.h 2007-10-09 09:52:02.000000000 -0400 -@@ -715,6 +715,7 @@ - #define DM_REPORT_OUTPUT_ALIGNED 0x00000001 - #define DM_REPORT_OUTPUT_BUFFERED 0x00000002 - #define DM_REPORT_OUTPUT_HEADINGS 0x00000004 -+#define DM_REPORT_OUTPUT_EXPORT 0x00000008 - - struct dm_report *dm_report_init(uint32_t *report_types, - const struct dm_report_object_type *types, -diff -Nur device-mapper.1.02.22.orig/lib/libdm-report.c device-mapper.1.02.22/lib/libdm-report.c ---- device-mapper.1.02.22.orig/lib/libdm-report.c 2007-10-09 09:51:48.000000000 -0400 -+++ device-mapper.1.02.22/lib/libdm-report.c 2007-10-09 09:52:24.000000000 -0400 -@@ -13,6 +13,7 @@ - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -+#include <ctype.h> - #include "libdevmapper.h" - #include "list.h" - #include "log.h" -@@ -776,6 +777,8 @@ - char buf[4096]; - int32_t width; - uint32_t align; -+ const char *fname; -+ char tmp_char; - - if (list_empty(&rh->rows)) - return 1; -@@ -800,6 +803,25 @@ - if (field->props->flags & FLD_HIDDEN) - continue; - -+ if (rh->flags & DM_REPORT_OUTPUT_EXPORT) { -+ fname = rh->fields[field->props->field_num].id; -+ if (!dm_pool_grow_object(rh->mem, "DM_", strlen("DM_"))) { -+ log_error("dm_report: Unable to extend output line"); -+ goto bad; -+ } -+ while (fname && fname[0]) { -+ tmp_char = toupper(fname[0]); -+ if (!dm_pool_grow_object(rh->mem, &tmp_char, 1)) { -+ log_error("dm_report: Unable to extend output line"); -+ goto bad; -+ } -+ fname++; -+ } -+ if (!dm_pool_grow_object(rh->mem, "=", strlen("="))) { -+ log_error("dm_report: Unable to extend output line"); -+ goto bad; -+ } -+ } - repstr = field->report_string; - width = field->props->width; - if (!(rh->flags & DM_REPORT_OUTPUT_ALIGNED)) { |