logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 2d7a92fd3469238ae4f12b591f79239c4e0e892d
parent 10b83649e920920e26c3b4e6e2d319a198156402
Author: Michael Forney <mforney@mforney.org>
Date:   Wed, 19 Jun 2019 18:45:11 -0700

util-linux: Fix a few portability issues

Diffstat:

M.gitmodules1+
Apkg/util-linux/patch/0001-Don-t-omit-second-operand-to-operator.patch95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/util-linux/patch/0002-Avoid-a-few-unnecessary-statement-expressions.patch55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/util-linux/patch/0003-Don-t-use-min-to-determine-if-dflt-is-non-zero.patch36++++++++++++++++++++++++++++++++++++
Apkg/util-linux/patch/0004-Remove-need-for-VLA-for-label-name.patch83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/util-linux/patch/0005-Avoid-statement-expressions-min-max.patch190+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/util-linux/patch/0006-Revert-lib-loopdev.c-Inline-loopcxt_has_device.patch28++++++++++++++++++++++++++++
Mpkg/util-linux/ver2+-
8 files changed, 489 insertions(+), 1 deletion(-)

diff --git a/.gitmodules b/.gitmodules @@ -239,6 +239,7 @@ [submodule "pkg/util-linux/src"] path = pkg/util-linux/src url = https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git + ignore = all [submodule "pkg/velox/src"] path = pkg/velox/src url = https://github.com/michaelforney/velox diff --git a/pkg/util-linux/patch/0001-Don-t-omit-second-operand-to-operator.patch b/pkg/util-linux/patch/0001-Don-t-omit-second-operand-to-operator.patch @@ -0,0 +1,95 @@ +From c8ea4def89774dbc0e0d4957108c7d6d18a00320 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 18 Jun 2019 01:38:53 -0700 +Subject: [PATCH] Don't omit second operand to `?` operator + +--- + libfdisk/src/bsd.c | 2 +- + libfdisk/src/dos.c | 2 +- + libfdisk/src/gpt.c | 2 +- + libfdisk/src/parttype.c | 2 +- + libfdisk/src/sgi.c | 2 +- + libfdisk/src/sun.c | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libfdisk/src/bsd.c b/libfdisk/src/bsd.c +index 4e05bb328..817f50c87 100644 +--- a/libfdisk/src/bsd.c ++++ b/libfdisk/src/bsd.c +@@ -116,7 +116,7 @@ static struct fdisk_parttype *bsd_partition_parttype( + { + struct fdisk_parttype *t + = fdisk_label_get_parttype_from_code(cxt->label, p->p_fstype); +- return t ? : fdisk_new_unknown_parttype(p->p_fstype, NULL); ++ return t ? t : fdisk_new_unknown_parttype(p->p_fstype, NULL); + } + + +diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c +index 6dc276e8a..2543edc04 100644 +--- a/libfdisk/src/dos.c ++++ b/libfdisk/src/dos.c +@@ -136,7 +136,7 @@ static struct fdisk_parttype *dos_partition_parttype( + { + struct fdisk_parttype *t + = fdisk_label_get_parttype_from_code(cxt->label, p->sys_ind); +- return t ? : fdisk_new_unknown_parttype(p->sys_ind, NULL); ++ return t ? t : fdisk_new_unknown_parttype(p->sys_ind, NULL); + } + + /* +diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c +index 1658782a8..64a9cd7b3 100644 +--- a/libfdisk/src/gpt.c ++++ b/libfdisk/src/gpt.c +@@ -384,7 +384,7 @@ static struct fdisk_parttype *gpt_partition_parttype( + + guid_to_string(&guid, str); + t = fdisk_label_get_parttype_from_string(cxt->label, str); +- return t ? : fdisk_new_unknown_parttype(0, str); ++ return t ? t : fdisk_new_unknown_parttype(0, str); + } + + static void gpt_entry_set_type(struct gpt_entry *e, struct gpt_guid *uuid) +diff --git a/libfdisk/src/parttype.c b/libfdisk/src/parttype.c +index 110ef3ba7..5dfe51996 100644 +--- a/libfdisk/src/parttype.c ++++ b/libfdisk/src/parttype.c +@@ -354,7 +354,7 @@ struct fdisk_parttype *fdisk_label_parse_parttype( + + done: + DBG(PARTTYPE, ul_debugobj(ret, "returns parsed '%s' [%s] partition type", +- ret->name, ret->typestr ? : "")); ++ ret->name, ret->typestr ? ret->typestr : "")); + return ret; + } + +diff --git a/libfdisk/src/sgi.c b/libfdisk/src/sgi.c +index 884e385ac..4bdc5729c 100644 +--- a/libfdisk/src/sgi.c ++++ b/libfdisk/src/sgi.c +@@ -351,7 +351,7 @@ static struct fdisk_parttype *sgi_get_parttype(struct fdisk_context *cxt, size_t + return NULL; + + t = fdisk_label_get_parttype_from_code(cxt->label, sgi_get_sysid(cxt, n)); +- return t ? : fdisk_new_unknown_parttype(sgi_get_sysid(cxt, n), NULL); ++ return t ? t : fdisk_new_unknown_parttype(sgi_get_sysid(cxt, n), NULL); + } + + /* fdisk_get_partition() backend */ +diff --git a/libfdisk/src/sun.c b/libfdisk/src/sun.c +index df91f543d..b1fb26d06 100644 +--- a/libfdisk/src/sun.c ++++ b/libfdisk/src/sun.c +@@ -819,7 +819,7 @@ static struct fdisk_parttype *sun_get_parttype( + + t = fdisk_label_get_parttype_from_code(cxt->label, + be16_to_cpu(sunlabel->vtoc.infos[n].id)); +- return t ? : fdisk_new_unknown_parttype(be16_to_cpu(sunlabel->vtoc.infos[n].id), NULL); ++ return t ? t : fdisk_new_unknown_parttype(be16_to_cpu(sunlabel->vtoc.infos[n].id), NULL); + } + + +-- +2.20.1 + diff --git a/pkg/util-linux/patch/0002-Avoid-a-few-unnecessary-statement-expressions.patch b/pkg/util-linux/patch/0002-Avoid-a-few-unnecessary-statement-expressions.patch @@ -0,0 +1,55 @@ +From aa429b34bbaf8fee4f8f0d625cd0b9813d9ba733 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 18 Jun 2019 02:29:07 -0700 +Subject: [PATCH] Avoid a few unnecessary statement expressions + +--- + include/c.h | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/include/c.h b/include/c.h +index 02e9e59fa..ec3f545ad 100644 +--- a/include/c.h ++++ b/include/c.h +@@ -159,9 +159,8 @@ + * @member: the name of the member within the struct. + */ + #ifndef container_of +-#define container_of(ptr, type, member) __extension__ ({ \ +- const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \ +- (type *)( (char *)__mptr - offsetof(type,member) );}) ++#define container_of(ptr, type, member) \ ++ ((type *)( (char *)ptr - offsetof(type,member) )) + #endif + + #ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME +@@ -239,11 +238,11 @@ errmsg(char doexit, int excode, char adderr, const char *fmt, ...) + + /* Don't use inline function to avoid '#include "nls.h"' in c.h + */ +-#define errtryhelp(eval) __extension__ ({ \ ++#define errtryhelp(eval) do { \ + fprintf(stderr, _("Try '%s --help' for more information.\n"), \ + program_invocation_short_name); \ + exit(eval); \ +-}) ++} while (0) + + /* After failed execvp() */ + #define EX_EXEC_FAILED 126 /* Program located, but not usable. */ +@@ -364,10 +363,10 @@ static inline int xusleep(useconds_t usec) + + #define UTIL_LINUX_VERSION _("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING + +-#define print_version(eval) __extension__ ({ \ ++#define print_version(eval) do { \ + printf(UTIL_LINUX_VERSION); \ + exit(eval); \ +-}) ++} while (0) + + /* + * scanf modifiers for "strings allocation" +-- +2.20.1 + diff --git a/pkg/util-linux/patch/0003-Don-t-use-min-to-determine-if-dflt-is-non-zero.patch b/pkg/util-linux/patch/0003-Don-t-use-min-to-determine-if-dflt-is-non-zero.patch @@ -0,0 +1,36 @@ +From 417ef5a41b19c9cc7ccdf3002453c0fec9caa960 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 18 Jun 2019 02:31:19 -0700 +Subject: [PATCH] Don't use min to determine if dflt is non-zero + +--- + libfdisk/src/bsd.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libfdisk/src/bsd.c b/libfdisk/src/bsd.c +index 817f50c87..25e878c32 100644 +--- a/libfdisk/src/bsd.c ++++ b/libfdisk/src/bsd.c +@@ -576,8 +576,7 @@ static uint32_t ask_uint32(struct fdisk_context *cxt, + { + uintmax_t res; + +- if (fdisk_ask_number(cxt, min(dflt, (uint32_t) 1), dflt, +- UINT32_MAX, mesg, &res) == 0) ++ if (fdisk_ask_number(cxt, !!dflt, dflt, UINT32_MAX, mesg, &res) == 0) + return res; + return dflt; + } +@@ -587,8 +586,7 @@ static uint16_t ask_uint16(struct fdisk_context *cxt, + { + uintmax_t res; + +- if (fdisk_ask_number(cxt, min(dflt, (uint16_t) 1), +- dflt, UINT16_MAX, mesg, &res) == 0) ++ if (fdisk_ask_number(cxt, !!dflt, dflt, UINT16_MAX, mesg, &res) == 0) + return res; + return dflt; + } +-- +2.20.1 + diff --git a/pkg/util-linux/patch/0004-Remove-need-for-VLA-for-label-name.patch b/pkg/util-linux/patch/0004-Remove-need-for-VLA-for-label-name.patch @@ -0,0 +1,83 @@ +From 7e73e83c21c9b20dadd429b06db30b2ff8ef5c2b Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 18 Jun 2019 11:54:57 -0700 +Subject: [PATCH] Remove need for VLA for label name + +--- + disk-utils/fdisk-list.c | 10 +++------- + libfdisk/src/label.c | 6 ++++-- + libfdisk/src/libfdisk.h.in | 2 +- + 3 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/disk-utils/fdisk-list.c b/disk-utils/fdisk-list.c +index 6bc52d704..66c04fb6a 100644 +--- a/disk-utils/fdisk-list.c ++++ b/disk-utils/fdisk-list.c +@@ -464,19 +464,15 @@ void list_available_columns(FILE *out) + static int fieldname_to_id(const char *name, size_t namesz) + { + const struct fdisk_field *fl; +- char buf[namesz + 1]; + + assert(name); + assert(namesz); + assert(fields_label); + +- memcpy(buf, name, namesz); +- buf[namesz] = '\0'; +- +- fl = fdisk_label_get_field_by_name(fields_label, buf); ++ fl = fdisk_label_get_field_by_name(fields_label, name, namesz); + if (!fl) { +- warnx(_("%s unknown column: %s"), +- fdisk_label_get_name(fields_label), buf); ++ warnx(_("%s unknown column: %.*s"), ++ fdisk_label_get_name(fields_label), (int)namesz, name); + return -1; + } + return fdisk_field_get_id(fl); +diff --git a/libfdisk/src/label.c b/libfdisk/src/label.c +index 2a11acad6..dcd35cfdc 100644 +--- a/libfdisk/src/label.c ++++ b/libfdisk/src/label.c +@@ -223,12 +223,14 @@ const struct fdisk_field *fdisk_label_get_field(const struct fdisk_label *lb, in + * fdisk_label_get_field_by_name + * @lb: label + * @name: field name ++ * @len: field name length + * + * Returns: pointer to static instance of the field. + */ + const struct fdisk_field *fdisk_label_get_field_by_name( + const struct fdisk_label *lb, +- const char *name) ++ const char *name, ++ size_t len) + { + size_t i; + +@@ -236,7 +238,7 @@ const struct fdisk_field *fdisk_label_get_field_by_name( + assert(name); + + for (i = 0; i < lb->nfields; i++) { +- if (lb->fields[i].name && strcasecmp(lb->fields[i].name, name) == 0) ++ if (lb->fields[i].name && strncasecmp(lb->fields[i].name, name, len) == 0 && lb->fields[i].name[len] == '\0') + return &lb->fields[i]; + } + +diff --git a/libfdisk/src/libfdisk.h.in b/libfdisk/src/libfdisk.h.in +index 47e778a67..09fdc4522 100644 +--- a/libfdisk/src/libfdisk.h.in ++++ b/libfdisk/src/libfdisk.h.in +@@ -423,7 +423,7 @@ extern int fdisk_label_get_fields_ids_all( + extern const struct fdisk_field *fdisk_label_get_field(const struct fdisk_label *lb, int id); + extern const struct fdisk_field *fdisk_label_get_field_by_name( + const struct fdisk_label *lb, +- const char *name); ++ const char *name, size_t len); + + extern void fdisk_label_set_changed(struct fdisk_label *lb, int changed); + extern int fdisk_label_is_changed(const struct fdisk_label *lb); +-- +2.20.1 + diff --git a/pkg/util-linux/patch/0005-Avoid-statement-expressions-min-max.patch b/pkg/util-linux/patch/0005-Avoid-statement-expressions-min-max.patch @@ -0,0 +1,190 @@ +From cdb8be2758e0b8082d86bd38daec78c1efb6383f Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 12 Mar 2019 17:13:45 -0700 +Subject: [PATCH] Avoid statement expressions min/max + +--- + include/c.h | 24 ++++++++++-------------- + lib/mbsalign.c | 2 +- + libfdisk/src/alignment.c | 8 ++++---- + libfdisk/src/context.c | 2 +- + libfdisk/src/gpt.c | 4 ++-- + libsmartcols/src/calculate.c | 8 ++++---- + libsmartcols/src/column.c | 2 +- + 7 files changed, 23 insertions(+), 27 deletions(-) + +diff --git a/include/c.h b/include/c.h +index ec3f545ad..0b96ff1c0 100644 +--- a/include/c.h ++++ b/include/c.h +@@ -124,21 +124,17 @@ + # define FALSE 0 + #endif + +-#ifndef min +-# define min(x, y) __extension__ ({ \ +- __typeof__(x) _min1 = (x); \ +- __typeof__(y) _min2 = (y); \ +- (void) (&_min1 == &_min2); \ +- _min1 < _min2 ? _min1 : _min2; }) +-#endif ++static inline uintmax_t ++umax(uintmax_t x, uintmax_t y) ++{ ++ return x > y ? x : y; ++} + +-#ifndef max +-# define max(x, y) __extension__ ({ \ +- __typeof__(x) _max1 = (x); \ +- __typeof__(y) _max2 = (y); \ +- (void) (&_max1 == &_max2); \ +- _max1 > _max2 ? _max1 : _max2; }) +-#endif ++static inline uintmax_t ++umin(uintmax_t x, uintmax_t y) ++{ ++ return x < y ? x : y; ++} + + #ifndef cmp_numbers + # define cmp_numbers(x, y) __extension__ ({ \ +diff --git a/lib/mbsalign.c b/lib/mbsalign.c +index 8fdab9ee9..bb31e7583 100644 +--- a/lib/mbsalign.c ++++ b/lib/mbsalign.c +@@ -563,7 +563,7 @@ mbsalign_unibyte: + + dest = mbs_align_pad (dest, dest_end, start_spaces, padchar); + space_left = dest_end - dest; +- dest = mempcpy (dest, str_to_print, min (n_used_bytes, space_left)); ++ dest = mempcpy (dest, str_to_print, umin (n_used_bytes, space_left)); + mbs_align_pad (dest, dest_end, end_spaces, padchar); + } + #ifdef HAVE_WIDECHAR +diff --git a/libfdisk/src/alignment.c b/libfdisk/src/alignment.c +index 426fa938c..964c66668 100644 +--- a/libfdisk/src/alignment.c ++++ b/libfdisk/src/alignment.c +@@ -38,7 +38,7 @@ + */ + static int lba_is_aligned(struct fdisk_context *cxt, uintmax_t lba) + { +- unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size); ++ unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size); + uintmax_t offset; + + if (cxt->grain > granularity) +@@ -54,7 +54,7 @@ static int lba_is_aligned(struct fdisk_context *cxt, uintmax_t lba) + */ + static int lba_is_phy_aligned(struct fdisk_context *cxt, fdisk_sector_t lba) + { +- unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size); ++ unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size); + uintmax_t offset = (lba * cxt->sector_size) % granularity; + + return !((granularity + cxt->alignment_offset - offset) % granularity); +@@ -103,7 +103,7 @@ fdisk_sector_t fdisk_align_lba(struct fdisk_context *cxt, fdisk_sector_t lba, in + * according the offset to be on the physical boundary. + */ + /* fprintf(stderr, "LBA: %llu apply alignment_offset\n", res); */ +- res -= (max(cxt->phy_sector_size, cxt->min_io_size) - ++ res -= (umax(cxt->phy_sector_size, cxt->min_io_size) - + cxt->alignment_offset) / cxt->sector_size; + + if (direction == FDISK_ALIGN_UP && res < lba) +@@ -396,7 +396,7 @@ int fdisk_apply_user_device_properties(struct fdisk_context *cxt) + fdisk_reset_alignment(cxt); + + if (cxt->user_grain) { +- unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size); ++ unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size); + + cxt->grain = cxt->user_grain < granularity ? granularity : cxt->user_grain; + DBG(CXT, ul_debugobj(cxt, "new grain: %lu", cxt->grain)); +diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c +index 56ebb6c1e..879ca53f3 100644 +--- a/libfdisk/src/context.c ++++ b/libfdisk/src/context.c +@@ -829,7 +829,7 @@ int fdisk_reread_changes(struct fdisk_context *cxt, struct fdisk_table *org) + /* the current layout */ + fdisk_get_partitions(cxt, &tb); + /* maximal number of partitions */ +- nparts = max(fdisk_table_get_nents(tb), fdisk_table_get_nents(org)); ++ nparts = umax(fdisk_table_get_nents(tb), fdisk_table_get_nents(org)); + + while (fdisk_diff_tables(org, tb, &itr, &pa, &change) == 0) { + if (change == FDISK_DIFF_UNCHANGED) +diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c +index 64a9cd7b3..497e9f00b 100644 +--- a/libfdisk/src/gpt.c ++++ b/libfdisk/src/gpt.c +@@ -557,7 +557,7 @@ static int gpt_mknew_pmbr(struct fdisk_context *cxt) + pmbr->partition_record[0].end_track = 0xFF; + pmbr->partition_record[0].starting_lba = cpu_to_le32(1); + pmbr->partition_record[0].size_in_lba = +- cpu_to_le32((uint32_t) min( cxt->total_sectors - 1ULL, 0xFFFFFFFFULL) ); ++ cpu_to_le32((uint32_t) umin(cxt->total_sectors - 1ULL, 0xFFFFFFFFULL)); + + return 0; + } +@@ -903,7 +903,7 @@ static int valid_pmbr(struct fdisk_context *cxt) + /* Note that gpt_write_pmbr() overwrites PMBR, but we want to keep it valid already + * in memory too to disable warnings when valid_pmbr() called next time */ + pmbr->partition_record[part].size_in_lba = +- cpu_to_le32((uint32_t) min( cxt->total_sectors - 1ULL, 0xFFFFFFFFULL) ); ++ cpu_to_le32((uint32_t) umin(cxt->total_sectors - 1ULL, 0xFFFFFFFFULL)); + fdisk_label_set_changed(cxt->label, 1); + } + } +diff --git a/libsmartcols/src/calculate.c b/libsmartcols/src/calculate.c +index 9426ebb05..da1ffa8fc 100644 +--- a/libsmartcols/src/calculate.c ++++ b/libsmartcols/src/calculate.c +@@ -55,7 +55,7 @@ static int count_cell_width(struct libscols_table *tb, + + if (len == (size_t) -1) /* ignore broken multibyte strings */ + len = 0; +- cl->width_max = max(len, cl->width_max); ++ cl->width_max = umax(len, cl->width_max); + + if (cl->is_extreme && cl->width_avg && len > cl->width_avg * 2) + return 0; +@@ -64,10 +64,10 @@ static int count_cell_width(struct libscols_table *tb, + cl->extreme_sum += len; + cl->extreme_count++; + } +- cl->width = max(len, cl->width); ++ cl->width = umax(len, cl->width); + if (scols_column_is_tree(cl)) { + size_t treewidth = buffer_get_safe_art_size(buf); +- cl->width_treeart = max(cl->width_treeart, treewidth); ++ cl->width_treeart = umax(cl->width_treeart, treewidth); + } + return 0; + } +@@ -108,7 +108,7 @@ static int count_column_width(struct libscols_table *tb, + } + if (scols_cell_get_data(&cl->header)) { + size_t len = mbs_safe_width(scols_cell_get_data(&cl->header)); +- cl->width_min = max(cl->width_min, len); ++ cl->width_min = umax(cl->width_min, len); + } else + no_header = 1; + +diff --git a/libsmartcols/src/column.c b/libsmartcols/src/column.c +index 4b42938f6..81fe76000 100644 +--- a/libsmartcols/src/column.c ++++ b/libsmartcols/src/column.c +@@ -343,7 +343,7 @@ size_t scols_wrapnl_chunksize(const struct libscols_column *cl __attribute__((un + } else + sz = mbs_safe_width(data); + +- sum = max(sum, sz); ++ sum = umax(sum, sz); + data = p; + } + +-- +2.20.1 + diff --git a/pkg/util-linux/patch/0006-Revert-lib-loopdev.c-Inline-loopcxt_has_device.patch b/pkg/util-linux/patch/0006-Revert-lib-loopdev.c-Inline-loopcxt_has_device.patch @@ -0,0 +1,28 @@ +From 91696aa317a78a594ca8ae6e6a810fe778490e6a Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Tue, 18 Jun 2019 22:05:16 +0200 +Subject: [PATCH] Revert "lib/loopdev.c: Inline loopcxt_has_device" + +... no caller in that file, this change has no effect. + +This reverts commit 3bb960c7b5f1428f1bff885b2667787e8af5001b. +--- + lib/loopdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/loopdev.c b/lib/loopdev.c +index ede1b5cdc..99a093926 100644 +--- a/lib/loopdev.c ++++ b/lib/loopdev.c +@@ -127,7 +127,7 @@ int loopcxt_set_device(struct loopdev_cxt *lc, const char *device) + return 0; + } + +-inline int loopcxt_has_device(struct loopdev_cxt *lc) ++int loopcxt_has_device(struct loopdev_cxt *lc) + { + return lc && *lc->device; + } +-- +2.20.1 + diff --git a/pkg/util-linux/ver b/pkg/util-linux/ver @@ -1 +1 @@ -2.34 r0 +2.34 r1