diff --git a/util-linux-2.12a-mount_mountpointwithcolon.patch b/util-linux-2.12a-mount_mountpointwithcolon.patch deleted file mode 100644 index 7b29286..0000000 --- a/util-linux-2.12a-mount_mountpointwithcolon.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: util-linux-ng-2.12r+git20070330/mount/mount.c -=================================================================== ---- util-linux-ng-2.12r+git20070330.orig/mount/mount.c -+++ util-linux-ng-2.12r+git20070330/mount/mount.c -@@ -1207,11 +1207,15 @@ mount_one (const char *spec, const char - - if (types == NULL && !mounttype && !is_existing_file(spec)) { - if (strchr (spec, ':') != NULL) { -- types = "nfs"; -- if (verbose) -- printf(_("mount: no type was given - " -+ types = fsprobe_get_fstype_by_devname(spec); -+ if(types == NULL) { -+ types = "nfs"; -+ if (verbose) { -+ printf(_("mount: no type was given - " - "I'll assume nfs because of " - "the colon\n")); -+ } -+ } - } else if(!strncmp(spec, "//", 2)) { - types = "cifs"; - if (verbose) diff --git a/util-linux-2.12a-mount_procswapcheck.patch b/util-linux-2.12a-mount_procswapcheck.patch deleted file mode 100644 index 43f0e9d..0000000 --- a/util-linux-2.12a-mount_procswapcheck.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: util-linux-ng-2.12r+git20070330/mount/swapon.c -=================================================================== ---- util-linux-ng-2.12r+git20070330.orig/mount/swapon.c -+++ util-linux-ng-2.12r+git20070330/mount/swapon.c -@@ -138,6 +138,7 @@ static int - is_in_proc_swaps(const char *fname) { - int i; - char canonical[PATH_MAX + 2]; -+ struct stat stfname, stswapFile; - - if (!myrealpath(fname, canonical, PATH_MAX + 1)) { - fprintf(stderr, _("%s: cannot canonicalize %s: %s\n"), -@@ -146,9 +147,15 @@ is_in_proc_swaps(const char *fname) { - *(canonical + (PATH_MAX + 1)) = '\0'; - } - -- for (i = 0; i < numSwaps; i++) -- if (swapFiles[i] && !strcmp(canonical, swapFiles[i])) -- return 1; -+ for (i = 0; i < numSwaps; i++) { -+ if(S_ISBLK(stfname.st_mode)) { -+ stat(swapFiles[i], &stswapFile); -+ if(S_ISBLK(stswapFile.st_mode)) -+ if(stfname.st_rdev == stswapFile.st_rdev) -+ return 1; -+ } else if (swapFiles[i] && !strcmp(canonical, swapFiles[i])) -+ return 1; -+ } - return 0; - } - diff --git a/util-linux-2.12q-mount_umount2_not_static.patch b/util-linux-2.12q-mount_umount2_not_static.patch deleted file mode 100644 index 6dead01..0000000 --- a/util-linux-2.12q-mount_umount2_not_static.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: mount/umount.c -=================================================================== ---- mount/umount.c.orig -+++ mount/umount.c -@@ -38,7 +38,7 @@ - #include - #ifdef __NR_umount2 - --static int umount2(const char *path, int flags); -+int umount2(const char *path, int flags); - - _syscall2(int, umount2, const char *, path, int, flags); - diff --git a/util-linux-2.12r-mount_mtab_update.patch b/util-linux-2.12r-mount_mtab_update.patch deleted file mode 100644 index 6b9b97b..0000000 --- a/util-linux-2.12r-mount_mtab_update.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: mount/mount.c -=================================================================== ---- mount/mount.c.orig -+++ mount/mount.c -@@ -1112,9 +1112,13 @@ try_mount_one (const char *spec0, const - } - - if (fake || mnt5_res == 0) { -+ int isroot; -+ - /* Mount succeeded, report this (if verbose) and write mtab entry. */ -+ isroot = (streq(node, "/") || streq(node, "root") || -+ streq(node, "rootfs")); - -- if (!(mounttype & MS_PROPAGATION)) { -+ if (!(mounttype & MS_PROPAGATION) && !isroot) { - update_mtab_entry(loop ? loopfile : spec, - node, - types ? types : "unknown", diff --git a/util-linux-2.13-schedutils_chrt.patch b/util-linux-2.13-schedutils_chrt.patch deleted file mode 100644 index b1a01b1..0000000 --- a/util-linux-2.13-schedutils_chrt.patch +++ /dev/null @@ -1,67 +0,0 @@ -Index: util-linux-ng-2.12r+git20070530/schedutils/chrt.1 -=================================================================== ---- util-linux-ng-2.12r+git20070530.orig/schedutils/chrt.1 -+++ util-linux-ng-2.12r+git20070530/schedutils/chrt.1 -@@ -79,13 +79,13 @@ output version information and exit - .SH USAGE - .TP - The default behavior is to run a new command:: --chrt [prio] [command] [arguments] -+chrt prio command [arguments] - .TP - You can also retrieve the real-time attributes of an existing task: --chrt -p [pid] -+chrt -p pid - .TP - Or set them: --chrt -p [prio] [pid] -+chrt -p prio pid - .SH PERMISSIONS - A user must possess - .BR CAP_SYS_NICE -Index: util-linux-ng-2.12r+git20070530/schedutils/chrt.c -=================================================================== ---- util-linux-ng-2.12r+git20070530.orig/schedutils/chrt.c -+++ util-linux-ng-2.12r+git20070530/schedutils/chrt.c -@@ -46,7 +46,7 @@ static void show_usage(const char *cmd) - fprintf(stderr, " -b, --batch " - "set policy to SCHED_BATCH\n"); - fprintf(stderr, " -f, --fifo " -- "set policy to SCHED_FF\n"); -+ "set policy to SCHED_FIFO\n"); - fprintf(stderr, " -p, --pid " - "operate on existing given pid\n"); - fprintf(stderr, " -m, --max " -@@ -146,7 +146,7 @@ int main(int argc, char *argv[]) - { - int i, policy = SCHED_RR, priority = 0, verbose = 0; - struct sched_param sp; -- pid_t pid = 0; -+ pid_t pid = -1; - - struct option longopts[] = { - { "batch", 0, NULL, 'b' }, -@@ -205,12 +205,12 @@ int main(int argc, char *argv[]) - - } - -- if ((pid && argc - optind < 1) || (!pid && argc - optind < 2)) { -+ if (((pid > -1) && argc - optind < 1) || ((pid == -1) && argc - optind < 2)) { - show_usage(argv[0]); - return 1; - } - -- if (pid && (verbose || argc - optind == 1)) { -+ if ((pid > -1) && (verbose || argc - optind == 1)) { - show_rt_info("current", pid); - if (argc - optind == 1) - return 0; -@@ -224,6 +224,8 @@ int main(int argc, char *argv[]) - return 1; - } - -+ if (pid == -1) -+ pid = 0; - sp.sched_priority = priority; - if (sched_setscheduler(pid, policy, &sp) == -1) { - perror("sched_setscheduler"); diff --git a/util-linux-2.13-schedutils_ionice_idle.patch b/util-linux-2.13-schedutils_ionice_idle.patch new file mode 100644 index 0000000..e60ab55 --- /dev/null +++ b/util-linux-2.13-schedutils_ionice_idle.patch @@ -0,0 +1,55 @@ +From 19ab897e353f5a418590e2dcc07b91c3610f08bf Mon Sep 17 00:00:00 2001 +From: Matthias Koenig +Date: Tue, 17 Jul 2007 14:58:42 +0200 +Subject: [PATCH] schedutils: cleanup ionice usage for idle class + +The idle class has no class data. It will print a warning if +a prio argument is given for it, since this will be ignored. +Output for idle class will not contain prio data. + +Signed-off-by: Matthias Koenig +--- + schedutils/ionice.c | 13 +++++++++---- + 1 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/schedutils/ionice.c b/schedutils/ionice.c +index ac72121..2d23dd0 100644 +--- a/schedutils/ionice.c ++++ b/schedutils/ionice.c +@@ -95,11 +95,11 @@ int main(int argc, char *argv[]) + switch (c) { + case 'n': + ioprio = strtol(optarg, NULL, 10); +- set = 1; ++ set |= 1; + break; + case 'c': + ioprio_class = strtol(optarg, NULL, 10); +- set = 1; ++ set |= 2; + break; + case 'p': + pid = strtol(optarg, NULL, 10); +@@ -119,6 +119,8 @@ int main(int argc, char *argv[]) + case IOPRIO_CLASS_BE: + break; + case IOPRIO_CLASS_IDLE: ++ if (set & 1) ++ printf("Ignoring given class data for idle class\n"); + ioprio = 7; + break; + default: +@@ -136,8 +138,11 @@ int main(int argc, char *argv[]) + perror("ioprio_get"); + else { + ioprio_class = ioprio >> IOPRIO_CLASS_SHIFT; +- ioprio = ioprio & 0xff; +- printf("%s: prio %d\n", to_prio[ioprio_class], ioprio); ++ if (ioprio_class != IOPRIO_CLASS_IDLE) { ++ ioprio = ioprio & 0xff; ++ printf("%s: prio %d\n", to_prio[ioprio_class], ioprio); ++ } else ++ printf("%s\n", to_prio[ioprio_class]); + } + } else { + if (ioprio_set(IOPRIO_WHO_PROCESS, pid, ioprio | ioprio_class << IOPRIO_CLASS_SHIFT) == -1) { diff --git a/util-linux-2.13-sys_utils_arch.patch b/util-linux-2.13-sys_utils_arch.patch deleted file mode 100644 index 4ee47c8..0000000 --- a/util-linux-2.13-sys_utils_arch.patch +++ /dev/null @@ -1,105 +0,0 @@ -Index: util-linux-ng-2.13-rc1/sys-utils/Makefile.am -=================================================================== ---- util-linux-ng-2.13-rc1.orig/sys-utils/Makefile.am -+++ util-linux-ng-2.13-rc1/sys-utils/Makefile.am -@@ -1,9 +1,11 @@ - include $(top_srcdir)/config/include-Makefile.am - --bin_PROGRAMS = dmesg -+bin_PROGRAMS = arch dmesg - - usrbinexec_PROGRAMS = cytune flock ipcrm ipcs renice setsid setarch - -+arch_SOURCES = arch.c -+ - cytune_SOURCES = cytune.c cyclades.h - - sbin_PROGRAMS = ctrlaltdel -@@ -12,7 +14,7 @@ usrsbinexec_PROGRAMS = readprofile tunel - - tunelp_SOURCES = tunelp.c lp.h - --man_MANS = flock.1 readprofile.1 \ -+man_MANS = arch.1 flock.1 readprofile.1 \ - ctrlaltdel.8 cytune.8 dmesg.1 ipcrm.1 ipcs.1 renice.1 \ - setsid.1 tunelp.8 setarch.8 - -Index: util-linux-ng-2.13-rc1/sys-utils/arch.1 -=================================================================== ---- /dev/null -+++ util-linux-ng-2.13-rc1/sys-utils/arch.1 -@@ -0,0 +1,34 @@ -+.\" arch.1 -- -+.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) -+.\" Public domain: may be freely distributed. -+.TH ARCH 1 "4 July 1997" "Linux 2.0" "Linux Programmer's Manual" -+.SH NAME -+arch \- print machine architecture -+.SH SYNOPSIS -+.B arch -+.SH DESCRIPTION -+.B arch -+is equivalent to -+.BR "uname -m" . -+ -+On current Linux systems, -+.B arch -+prints things such as "i386", "i486", "i586", "alpha", "sparc", -+"arm", "m68k", "mips", "ppc". -+.SH SEE ALSO -+.BR uname (1), -+.BR uname (2) -+.\" -+.\" Details: -+.\" arch prints the machine part of the system_utsname struct -+.\" This struct is defined in version.c, and this field is -+.\" initialized with UTS_MACHINE, which is defined as $ARCH -+.\" in the main Makefile. -+.\" That gives the possibilities -+.\" alpha arm i386 m68k mips ppc sparc sparc64 -+.\" -+.\" If Makefile is not edited, ARCH is guessed by -+.\" ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) -+.\" Then how come we get these i586 values? -+.\" Well, the routine check_bugs() does system_utsname.machine[1] = '0' + x86; -+.\" (called in init/main.c, defined in ./include/asm-i386/bugs.h) -Index: util-linux-ng-2.13-rc1/sys-utils/arch.c -=================================================================== ---- /dev/null -+++ util-linux-ng-2.13-rc1/sys-utils/arch.c -@@ -0,0 +1,35 @@ -+/* arch -- print machine architecture information -+ * Created: Mon Dec 20 12:27:15 1993 by faith@cs.unc.edu -+ * Revised: Mon Dec 20 12:29:23 1993 by faith@cs.unc.edu -+ * Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) -+ -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2, or (at your option) any -+ * later version. -+ -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 675 Mass Ave, Cambridge, MA 02139, USA. */ -+ -+#include -+#include -+ -+int main (void) -+{ -+ struct utsname utsbuf; -+ -+ if (uname( &utsbuf )) { -+ perror( "arch" ); -+ return 1; -+ } -+ -+ printf( "%s\n", utsbuf.machine ); -+ -+ return 0; -+} diff --git a/util-linux-login_utils_wall.patch b/util-linux-login_utils_wall.patch deleted file mode 100644 index 619ed13..0000000 --- a/util-linux-login_utils_wall.patch +++ /dev/null @@ -1,13 +0,0 @@ -remove unwanted newline (#12181) - ---- util-linux-2.12q/login-utils/wall.c -+++ util-linux-2.12q/login-utils/wall.c -@@ -217,8 +217,6 @@ - if (cnt == 79 || ch == '\n') { - for (; cnt < 79; ++cnt) - putc(' ', fp); -- putc('\r', fp); -- putc('\n', fp); - cnt = 0; - } - carefulputc(ch, fp); diff --git a/util-linux-mount_mount.8-acl.patch b/util-linux-mount_mount.8-acl.patch deleted file mode 100644 index 83402f6..0000000 --- a/util-linux-mount_mount.8-acl.patch +++ /dev/null @@ -1,39 +0,0 @@ -Index: mount/mount.8 -================================================================================ ---- mount/mount.8 -+++ mount/mount.8 -@@ -943,6 +943,17 @@ - Sync all data and metadata every - .I nrsec - seconds. The default value is 5 seconds. Zero means default. -+.RE -+.TP -+.BR user_xattr -+Enable Extended User Attributes. See the -+.BR attr (5) -+manual page. -+.TP -+.BR acl -+Enable POSIX Access Control Lists. See the -+.BR acl (5) -+manual page. - - .SH "Mount options for fat" - (Note: -@@ -1495,6 +1506,16 @@ - .I resizer - utility which can be obtained from - .IR ftp://ftp.namesys.com/pub/reiserfsprogs . -+.TP -+.BR user_xattr -+Enable Extended User Attributes. See the -+.BR attr (5) -+manual page. -+.TP -+.BR acl -+Enable POSIX Access Control Lists. See the -+.BR acl (5) -+manual page. - - .SH "Mount options for romfs" - None. diff --git a/util-linux-ng-2.13-rc1.tar.bz2 b/util-linux-ng-2.13-rc1.tar.bz2 deleted file mode 100644 index e2615da..0000000 --- a/util-linux-ng-2.13-rc1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e0aeb0b619e19fdf0fe154784644215e1c4f3d4352173e94724c68401dbd8567 -size 2784788 diff --git a/util-linux-ng-2.13-rc2.tar.bz2 b/util-linux-ng-2.13-rc2.tar.bz2 new file mode 100644 index 0000000..d8dea66 --- /dev/null +++ b/util-linux-ng-2.13-rc2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:832e2bd4a0b4eb03589cc8a655603b12fd6734081de140e07016f1aea949598c +size 2654222 diff --git a/util-linux.changes b/util-linux.changes index e5b2d3e..740ccf0 100644 --- a/util-linux.changes +++ b/util-linux.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Tue Jul 17 10:44:18 CEST 2007 - mkoenig@suse.de + +- updated to version 2.13-rc2: + * add wakertc +- cleanup ionice usage [#270251] +- enable hwclock audit support [#280113] +- removed patches (merged/fixed upstream) + util-linux-login_utils_wall.patch + util-linux-mount_mount.8-acl.patch + util-linux-2.12r-mount_mtab_update.patch + util-linux-2.13-schedutils_chrt.patch + util-linux-2.13-sys_utils_arch.patch + util-linux-2.12a-mount_mountpointwithcolon.patch + util-linux-2.12a-mount_procswapcheck.patch + util-linux-2.12q-mount_umount2_not_static.patch + ------------------------------------------------------------------- Fri Jul 13 12:31:56 CEST 2007 - mkoenig@suse.de diff --git a/util-linux.spec b/util-linux.spec index b92ee9b..30d5d68 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -1,5 +1,5 @@ # -# spec file for package util-linux (Version 2.12r+2.13rc1) +# spec file for package util-linux (Version 2.12r+2.13rc2) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,7 +11,7 @@ # norootforbuild Name: util-linux -BuildRequires: gettext-devel libuuid-devel libvolume_id-devel ncurses-devel pam-devel zlib-devel +BuildRequires: audit-devel gettext-devel libuuid-devel libvolume_id-devel ncurses-devel pam-devel zlib-devel URL: http://kernel.org/pub/linux/utils/util-linux Provides: util rawio raw base schedutils Supplements: filesystem(minix) @@ -20,9 +20,9 @@ PreReq: %install_info_prereq permissions License: BSD 3-Clause, GPL v2 or later Group: System/Base Autoreqprov: on -Version: 2.12r+2.13rc1 -Release: 6 -%define upver 2.13-rc1 +Version: 2.12r+2.13rc2 +Release: 1 +%define upver 2.13-rc2 Summary: A collection of basic system utilities Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/%name-ng-%upver.tar.bz2 Source2: nologin.c @@ -48,21 +48,11 @@ Source30: README.largedisk ## ## util-linux ## +# # add hostid Patch1: util-linux-2.12-misc_utils_hostid.patch -# 27181 (suse12181) - wall adds newlines -Patch2: util-linux-login_utils_wall.patch -Patch5: util-linux-mount_mount.8-acl.patch -# 54436 (suse39436) - boot.swap "failed" activating swap on LVM -Patch8: util-linux-2.12a-mount_procswapcheck.patch -# 57097 (suse42097) - mount doesn't allow to mount files that have colons in their path -Patch10: util-linux-2.12a-mount_mountpointwithcolon.patch # 104405 - mount -a doesn't work with hotpluggable devices Patch16: util-linux-mount_opt_nofail.patch -Patch21: util-linux-2.12q-mount_umount2_not_static.patch -# 148409 - df, mount, /proc/mounts show root mounted twice -# TODO: Needs fix, because of 231599 -Patch22: util-linux-2.12r-mount_mtab_update.patch # 176582 - If the user doesn't specify -t mount.fstype will never be called #TODO: check alternative upstream fix #Patch96: util-linux-2.12r-mount_external_prog_on_guess.patch @@ -70,7 +60,7 @@ Patch22: util-linux-2.12r-mount_mtab_update.patch Patch26: util-linux-2.12r-mount_mount.8_xfs_update.patch # 160822 - fix for 153657 Patch29: util-linux-2.12r-fdisk_cyl.patch -# 179122 - Fix readprofile one ppc64 +# 179122 - Fix readprofile on ppc64 Patch30: util-linux-2.12r-sys_utils_readprofile_mapfile.patch # 205956 - default swap to V1 in any case Patch32: util-linux-2.12r-disk_utils_mkswap_fix.patch @@ -81,9 +71,9 @@ Patch35: util-linux-2.12r-fdisk_remove_bogus_warnings.patch # 254437 - swapon should automatically reset the suspend signature # TODO: Needs to be ported to new version Patch38: util-linux-2.12r-mount_swapon_swsuspend_resume.patch -Patch40: util-linux-2.13-sys_utils_arch.patch -Patch44: util-linux-2.13-schedutils_chrt.patch +# suse48633 - util-linux on x86_64 does not contain "rdev" and "vidmode" Patch45: util-linux-2.13-sys_utils_build_rdev_x86_64.patch +Patch46: util-linux-2.13-schedutils_ionice_idle.patch ## ## adjtimex ## @@ -118,13 +108,7 @@ Authors: %prep %setup -q -a 9 -b 10 -b 11 -b 12 -b 13 -n %name-ng-%upver %patch1 -p1 -%patch2 -p1 -%patch5 -p0 -%patch8 -p1 -%patch10 -p1 %patch16 -p1 -%patch21 -%patch22 %patch26 %patch29 -p1 %patch30 -p1 @@ -132,9 +116,8 @@ Authors: %patch34 -p1 %patch35 -p1 #%patch38 -p1 -%patch40 -p1 -%patch44 -p1 %patch45 -p1 +%patch46 -p1 # cd adjtimex-* %patch50 -p1 @@ -203,12 +186,14 @@ autoreconf -fi ./configure --mandir=%{_mandir} \ --datadir=%{_datadir} \ --with-fsprobe=volume_id \ + --with-audit \ --enable-elvtune \ --enable-mesg \ --enable-partx \ --enable-raw \ --enable-rdev \ --enable-write \ + --enable-arch \ --disable-use-tty-group \ CFLAGS="$CFLAGS $RPM_OPT_FLAGS" make @@ -427,6 +412,7 @@ fi /usr/sbin/delpart /usr/sbin/freeramdisk /usr/sbin/partx +/usr/sbin/rtcwake /usr/sbin/setctsid %verify(not mode) %attr(0755,root,tty) /usr/bin/wall /usr/bin/whereis @@ -500,6 +486,7 @@ fi %{_mandir}/man8/partx.8.gz %{_mandir}/man8/pivot_root.8.gz %{_mandir}/man8/raw.8.gz +%{_mandir}/man8/rtcwake.8.gz #%{_mandir}/man8/setarch.8.gz %{_mandir}/man8/swapoff.8.gz %{_mandir}/man8/swapon.8.gz @@ -512,7 +499,7 @@ fi %attr (755,root,root) /usr/share/getopt/getopt-parse.tcsh %attr (755,root,root) /usr/share/getopt/getopt-test.bash %attr (755,root,root) /usr/share/getopt/getopt-test.tcsh -/usr/share/locale/*/LC_MESSAGES/util-linux-ng.mo +#/usr/share/locale/*/LC_MESSAGES/util-linux-ng.mo %ifnarch ia64 %doc fdisk/README.fdisk /sbin/fdisk @@ -571,6 +558,20 @@ fi #%endif %changelog +* Tue Jul 17 2007 - mkoenig@suse.de +- updated to version 2.13-rc2: + * add wakertc +- cleanup ionice usage [#270251] +- enable hwclock audit support [#280113] +- removed patches (merged/fixed upstream) + util-linux-login_utils_wall.patch + util-linux-mount_mount.8-acl.patch + util-linux-2.12r-mount_mtab_update.patch + util-linux-2.13-schedutils_chrt.patch + util-linux-2.13-sys_utils_arch.patch + util-linux-2.12a-mount_mountpointwithcolon.patch + util-linux-2.12a-mount_procswapcheck.patch + util-linux-2.12q-mount_umount2_not_static.patch * Fri Jul 13 2007 - mkoenig@suse.de - replace hotplug with nofail option and fix it to not use syscall reserved values.