forked from pool/util-linux
Accepting request 226509 from home:sbrabec:branches:Base:System
- Merge fixes and features from SLE11 (bnc#831868): * Detect squashfs version <= 3 as squashfs3 and version >= 4 as squashfs. (mszeredi@suse.cz, util-linux-ng-2.16-squashfs3-detect.patch, bnc#666893) * add sfdisk-warn-about-2TB-limit.patch (puzel@novell.com, bnc#495657) * Document barrier option in mount.8 (jack@suse.cz, hvogel@suse.de, util-linux-ng-2.19.1-barrier_documentation.patch, bnc#489740) * lscpu: improve hypervisor detection (puzel@novell.com, fate#310255) - util-linux-lscpu-improve-hypervisor-detection.patch * umount: avoid calling readlink on mountpoints if not necessary - add: umount-avoid-readlink.patch (puzel@suse.com, bnc#794529) * fix file conflict between util-linux and s390-32 (puzel@suse.com, bnc#805684) * util-linux-update-default-commit-interval.patch: mount(8): update default commit interval (puzel@suse.com, bnc#809480) * Obsolete no more packaged uuid-runtime. - Add uname26 (util-linux-setarch-uname26.patch, FATE#313476). OBS-URL: https://build.opensuse.org/request/show/226509 OBS-URL: https://build.opensuse.org/package/show/Base:System/util-linux?expand=0&rev=227
This commit is contained in:
parent
7309d0e418
commit
1806747cca
31
sfdisk-warn-about-2TB-limit.patch
Normal file
31
sfdisk-warn-about-2TB-limit.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
Index: util-linux-2.19.1/fdisk/sfdisk.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.1.orig/fdisks/sfdisk.c
|
||||||
|
+++ util-linux-2.24.1/fdisks/sfdisk.c
|
||||||
|
@@ -1271,6 +1271,26 @@ partitions_ok(int fd, struct disk_desc *
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ /* Are the data partitions and the extended partition
|
||||||
|
+ within the DOS 2TB limit? */
|
||||||
|
+ for (p = partitions; p < partitions+partno; p++) {
|
||||||
|
+ if (p->size && !is_extended(p->p.sys_type)) {
|
||||||
|
+ if( p->size >= (unsigned long) 0xffffffff ) {
|
||||||
|
+ warn(_("Warning: partition %s of size %lu exceeds "
|
||||||
|
+ "msdos 2TB limit.\n"),
|
||||||
|
+ PNO(p), p->size);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ for (q = partitions; q < partitions+partno; q++)
|
||||||
|
+ if (is_extended(q->p.sys_type))
|
||||||
|
+ if ( q->size >= (unsigned long) 0xffffffff ) {
|
||||||
|
+ warn(_("Warning: partition %s of size %lu exceeds "
|
||||||
|
+ "msdos 2TB limit.\n"),
|
||||||
|
+ PNO(q), q->size);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do all partitions start at a cylinder boundary ?
|
46
umount-avoid-readlink.patch
Normal file
46
umount-avoid-readlink.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
Subject: umount: avoid calling readlink on mountpoints.
|
||||||
|
References: bnc#794529
|
||||||
|
|
||||||
|
We normally want to canonicalize a path given to umount
|
||||||
|
in case it contains symlinks. This ensure the right entry
|
||||||
|
is removed from /etc/mtab.
|
||||||
|
However if the mountpoint is for a non-responsive NFS server,
|
||||||
|
that readlink could hang (*will* have if mounted with -o noac).
|
||||||
|
|
||||||
|
In the normal case where no symlinks are used we don't need the
|
||||||
|
readlink() and we can easily detect this by checking if the
|
||||||
|
mount table contains the given name.
|
||||||
|
If it does, use the name as-is.
|
||||||
|
If it doesn't, then call canonicalize()
|
||||||
|
|
||||||
|
---
|
||||||
|
mount/umount.c | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
Index: util-linux-2.19.1/mount/umount.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.1.orig/mount-deprecated/umount.c
|
||||||
|
+++ util-linux-2.19.1/mount-deprecated/umount.c
|
||||||
|
@@ -588,12 +588,22 @@ umount_file (char *arg) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* If the name given is listed in the mount table, don't
|
||||||
|
+ * bother with canonicalize() - it can block an a non-responsive
|
||||||
|
+ * NFS server.
|
||||||
|
+ */
|
||||||
|
+ file = arg;
|
||||||
|
+ mc = getmntdirbackward(arg, NULL);
|
||||||
|
+ if (!mc && !nocanonicalize)
|
||||||
|
file = canonicalize(arg); /* mtab paths are canonicalized */
|
||||||
|
+ else
|
||||||
|
+ file = strdup(arg);
|
||||||
|
|
||||||
|
try_loopdev:
|
||||||
|
if (verbose > 1)
|
||||||
|
printf(_("Trying to unmount %s\n"), file);
|
||||||
|
|
||||||
|
+ if (!mc)
|
||||||
|
mc = getmntdirbackward(file, NULL);
|
||||||
|
if (!mc) {
|
||||||
|
mc = getmntdevbackward(file, NULL);
|
229
util-linux-lscpu-improve-hypervisor-detection.patch
Normal file
229
util-linux-lscpu-improve-hypervisor-detection.patch
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
---
|
||||||
|
sys-utils/lscpu.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
|
1 file changed, 152 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
Index: util-linux-2.24.1/sys-utils/lscpu.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.1.orig/sys-utils/lscpu.c
|
||||||
|
+++ util-linux-2.24.1/sys-utils/lscpu.c
|
||||||
|
@@ -32,6 +32,15 @@
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
+#include <stdint.h>
|
||||||
|
+#include <signal.h>
|
||||||
|
+#include <strings.h>
|
||||||
|
+#include <setjmp.h>
|
||||||
|
+#if defined(__x86_64__) || defined(__i386__)
|
||||||
|
+#ifdef HAVE_sys_io_h
|
||||||
|
+#include <sys/io.h>
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include "cpuset.h"
|
||||||
|
#include "nls.h"
|
||||||
|
@@ -59,6 +68,7 @@
|
||||||
|
#define _PATH_PROC_STATUS "/proc/self/status"
|
||||||
|
#define _PATH_PROC_VZ "/proc/vz"
|
||||||
|
#define _PATH_PROC_BC "/proc/bc"
|
||||||
|
+#define _PATH_PROC_DEVICETREE "/proc/device-tree"
|
||||||
|
#define _PATH_DEV_MEM "/dev/mem"
|
||||||
|
|
||||||
|
/* virtualization types */
|
||||||
|
@@ -86,7 +96,28 @@ const char *hv_vendors[] = {
|
||||||
|
[HYPER_UML] = "User-mode Linux",
|
||||||
|
[HYPER_INNOTEK] = "Innotek GmbH",
|
||||||
|
[HYPER_HITACHI] = "Hitachi",
|
||||||
|
- [HYPER_PARALLELS] = "Parallels"
|
||||||
|
+ [HYPER_PARALLELS] = "Parallels",
|
||||||
|
+ [HYPER_VBOX] = "Oracle",
|
||||||
|
+ [HYPER_OS400] = "OS/400",
|
||||||
|
+ [HYPER_PHYP] = "pHyp"
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+const int hv_vendor_pci[] = {
|
||||||
|
+ [HYPER_NONE] = 0x0000,
|
||||||
|
+ [HYPER_XEN] = 0x5853,
|
||||||
|
+ [HYPER_KVM] = 0x0000,
|
||||||
|
+ [HYPER_MSHV] = 0x1414,
|
||||||
|
+ [HYPER_VMWARE] = 0x15ad,
|
||||||
|
+ [HYPER_VBOX] = 0x80ee
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+const int hv_graphics_pci[] = {
|
||||||
|
+ [HYPER_NONE] = 0x0000,
|
||||||
|
+ [HYPER_XEN] = 0x0001,
|
||||||
|
+ [HYPER_KVM] = 0x0000,
|
||||||
|
+ [HYPER_MSHV] = 0x5353,
|
||||||
|
+ [HYPER_VMWARE] = 0x0710,
|
||||||
|
+ [HYPER_VBOX] = 0xbeef
|
||||||
|
};
|
||||||
|
|
||||||
|
/* CPU modes */
|
||||||
|
@@ -550,10 +581,111 @@ read_hypervisor_cpuid(struct lscpu_desc
|
||||||
|
desc->hyper = HYPER_VMWARE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#define VMWARE_BDOOR_MAGIC 0x564D5868
|
||||||
|
+#define VMWARE_BDOOR_PORT 0x5658
|
||||||
|
+#define VMWARE_BDOOR_CMD_GETVERSION 10
|
||||||
|
+
|
||||||
|
+#define VMWARE_BDOOR(eax, ebx, ecx, edx) \
|
||||||
|
+ __asm__("inl (%%dx)" : \
|
||||||
|
+ "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \
|
||||||
|
+ "0"(VMWARE_BDOOR_MAGIC), "1"(VMWARE_BDOOR_CMD_GETVERSION), \
|
||||||
|
+ "2"(VMWARE_BDOOR_PORT), "3"(0) : \
|
||||||
|
+ "memory");
|
||||||
|
+
|
||||||
|
+static jmp_buf segv_handler_env;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+segv_handler(int sig, siginfo_t *info, void *ignored)
|
||||||
|
+{
|
||||||
|
+ siglongjmp(segv_handler_env, 1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
+is_vmware_platform(void)
|
||||||
|
+{
|
||||||
|
+ uint32_t eax, ebx, ecx, edx;
|
||||||
|
+ struct sigaction act, oact;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * The assembly routine for vmware detection works
|
||||||
|
+ * fine under vmware, even if ran as regular user. But
|
||||||
|
+ * on real HW or under other hypervisors, it segfaults (which is
|
||||||
|
+ * expected). So we temporarily install SIGSEGV handler to catch
|
||||||
|
+ * the signal. All this magic is needed because lscpu
|
||||||
|
+ * isn't supposed to require root privileges.
|
||||||
|
+ */
|
||||||
|
+ if (sigsetjmp(segv_handler_env, 1))
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ bzero(&act, sizeof(act));
|
||||||
|
+ act.sa_sigaction = segv_handler;
|
||||||
|
+ act.sa_flags = SA_SIGINFO;
|
||||||
|
+
|
||||||
|
+ if (sigaction(SIGSEGV, &act, &oact))
|
||||||
|
+ err(EXIT_FAILURE, _("error: can not set signal handler"));
|
||||||
|
+
|
||||||
|
+ VMWARE_BDOOR(eax, ebx, ecx, edx);
|
||||||
|
+
|
||||||
|
+ if (sigaction(SIGSEGV, &oact, NULL))
|
||||||
|
+ err(EXIT_FAILURE, _("error: can not restore signal handler"));
|
||||||
|
+
|
||||||
|
+ return eax != (uint32_t)-1 && ebx == VMWARE_BDOOR_MAGIC;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#else /* ! __x86_64__ */
|
||||||
|
static void
|
||||||
|
read_hypervisor_cpuid(struct lscpu_desc *desc __attribute__((__unused__)))
|
||||||
|
{
|
||||||
|
+#ifdef __powerpc__
|
||||||
|
+ /* powerpc:
|
||||||
|
+ * IBM iSeries: legacy, if /proc/iSeries exists, its para-virtualized on top of OS/400
|
||||||
|
+ * IBM pSeries: always has a hypervisor
|
||||||
|
+ * if partition-name is "full", its kind of "bare-metal": full-system-partition
|
||||||
|
+ * otherwise its some partition created by Hardware Management Console
|
||||||
|
+ * in any case, its always some sort of HVM
|
||||||
|
+ * KVM: "linux,kvm" in /hypervisor/compatible indicates a KVM guest
|
||||||
|
+ * Xen: not in use, not detected
|
||||||
|
+ */
|
||||||
|
+ if (path_exist("/proc/iSeries")) {
|
||||||
|
+ desc->hyper = HYPER_OS400;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
+ } else if (path_exist(_PATH_PROC_DEVICETREE "/ibm,partition-name")) {
|
||||||
|
+ FILE *fd;
|
||||||
|
+ desc->hyper = HYPER_PHYP;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
+ fd = fopen(_PATH_PROC_DEVICETREE "/ibm,partition-name", "r");
|
||||||
|
+ if (fd) {
|
||||||
|
+ char buf[256];
|
||||||
|
+ if (fscanf(fd, "%s", buf) == 1 && !strcmp(buf, "full"))
|
||||||
|
+ desc->virtype = VIRT_NONE;
|
||||||
|
+ fclose(fd);
|
||||||
|
+ }
|
||||||
|
+ } else if (path_exist(_PATH_PROC_DEVICETREE "/hypervisor/compatible")) {
|
||||||
|
+ FILE *fd;
|
||||||
|
+ fd = fopen(_PATH_PROC_DEVICETREE "/hypervisor/compatible", "r");
|
||||||
|
+ if (fd) {
|
||||||
|
+ char buf[256];
|
||||||
|
+ int i;
|
||||||
|
+ memset(buf, 0, sizeof(buf));
|
||||||
|
+ fread(buf, sizeof(buf) - 1, 1, fd);
|
||||||
|
+ fclose(fd);
|
||||||
|
+ for (i = 0; i < sizeof(buf);) {
|
||||||
|
+ if (!strcmp(&buf[i], "linux,kvm")) {
|
||||||
|
+ desc->hyper = HYPER_KVM;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ i += strlen(&buf[i]);
|
||||||
|
+ i++;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int is_vmware_platform(void)
|
||||||
|
+{
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -588,9 +720,18 @@ read_hypervisor(struct lscpu_desc *desc,
|
||||||
|
desc->hyper = HYPER_XEN;
|
||||||
|
|
||||||
|
/* Xen full-virt on non-x86_64 */
|
||||||
|
- } else if (has_pci_device(0x5853, 0x0001)) {
|
||||||
|
+ } else if (has_pci_device( hv_vendor_pci[HYPER_XEN], hv_graphics_pci[HYPER_XEN])) {
|
||||||
|
desc->hyper = HYPER_XEN;
|
||||||
|
desc->virtype = VIRT_FULL;
|
||||||
|
+ } else if (is_vmware_platform()) {
|
||||||
|
+ desc->hyper = HYPER_VMWARE;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
+ } else if (has_pci_device( hv_vendor_pci[HYPER_VMWARE], hv_graphics_pci[HYPER_VMWARE])) {
|
||||||
|
+ desc->hyper = HYPER_VMWARE;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
+ } else if (has_pci_device( hv_vendor_pci[HYPER_VBOX], hv_graphics_pci[HYPER_VBOX])) {
|
||||||
|
+ desc->hyper = HYPER_VBOX;
|
||||||
|
+ desc->virtype = VIRT_FULL;
|
||||||
|
|
||||||
|
/* IBM PR/SM */
|
||||||
|
} else if (path_exist(_PATH_PROC_SYSINFO)) {
|
||||||
|
@@ -1181,6 +1322,7 @@ print_parsable(struct lscpu_desc *desc,
|
||||||
|
}
|
||||||
|
fputs(data && *data ? data : "", stdout);
|
||||||
|
}
|
||||||
|
+ printf(",HvVendor,VirtType");
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1210,7 +1352,9 @@ print_parsable(struct lscpu_desc *desc,
|
||||||
|
buf, sizeof(buf));
|
||||||
|
fputs(data && *data ? data : "", stdout);
|
||||||
|
}
|
||||||
|
- putchar('\n');
|
||||||
|
+ printf(",%s,%s\n",
|
||||||
|
+ hv_vendors[desc->hyper] ? hv_vendors[desc->hyper] : "none",
|
||||||
|
+ virt_types[desc->virtype]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: util-linux-2.24.1/sys-utils/lscpu.h
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.1.orig/sys-utils/lscpu.h
|
||||||
|
+++ util-linux-2.24.1/sys-utils/lscpu.h
|
||||||
|
@@ -13,7 +13,10 @@ enum {
|
||||||
|
HYPER_UML,
|
||||||
|
HYPER_INNOTEK, /* VBOX */
|
||||||
|
HYPER_HITACHI,
|
||||||
|
- HYPER_PARALLELS /* OpenVZ/VIrtuozzo */
|
||||||
|
+ HYPER_PARALLELS, /* OpenVZ/VIrtuozzo */
|
||||||
|
+ HYPER_VBOX,
|
||||||
|
+ HYPER_OS400,
|
||||||
|
+ HYPER_PHYP
|
||||||
|
};
|
||||||
|
|
||||||
|
extern int read_hypervisor_dmi(void);
|
118
util-linux-ng-2.16-squashfs3-detect.patch
Normal file
118
util-linux-ng-2.16-squashfs3-detect.patch
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
---
|
||||||
|
shlibs/blkid/src/superblocks/superblocks.c | 1
|
||||||
|
shlibs/blkid/src/superblocks/superblocks.h | 1
|
||||||
|
shlibs/blkid/src/superblocks/squashfs.c | 63 +++++++++++++++++++++++++++---------
|
||||||
|
3 files changed, 50 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
Index: util-linux-2.19/shlibs/blkid/src/superblocks/superblocks.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.orig/libblkid/src/superblocks/superblocks.c
|
||||||
|
+++ util-linux-2.19/libblkid/src/superblocks/superblocks.c
|
||||||
|
@@ -131,6 +131,7 @@ static const struct blkid_idinfo *idinfo
|
||||||
|
&oracleasm_idinfo,
|
||||||
|
&vxfs_idinfo,
|
||||||
|
&squashfs_idinfo,
|
||||||
|
+ &squashfs3_idinfo,
|
||||||
|
&netware_idinfo,
|
||||||
|
&btrfs_idinfo,
|
||||||
|
&ubifs_idinfo,
|
||||||
|
Index: util-linux-2.19/shlibs/blkid/src/superblocks/superblocks.h
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.orig/libblkid/src/superblocks/superblocks.h
|
||||||
|
+++ util-linux-2.19/libblkid/src/superblocks/superblocks.h
|
||||||
|
@@ -54,6 +54,7 @@ extern const struct blkid_idinfo luks_id
|
||||||
|
extern const struct blkid_idinfo highpoint37x_idinfo;
|
||||||
|
extern const struct blkid_idinfo highpoint45x_idinfo;
|
||||||
|
extern const struct blkid_idinfo squashfs_idinfo;
|
||||||
|
+extern const struct blkid_idinfo squashfs3_idinfo;
|
||||||
|
extern const struct blkid_idinfo netware_idinfo;
|
||||||
|
extern const struct blkid_idinfo sysv_idinfo;
|
||||||
|
extern const struct blkid_idinfo xenix_idinfo;
|
||||||
|
Index: util-linux-2.19/shlibs/blkid/src/superblocks/squashfs.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.orig/libblkid/src/superblocks/squashfs.c
|
||||||
|
+++ util-linux-2.19/libblkid/src/superblocks/squashfs.c
|
||||||
|
@@ -31,20 +31,46 @@ struct sqsh_super_block {
|
||||||
|
static int probe_squashfs(blkid_probe pr, const struct blkid_idmag *mag)
|
||||||
|
{
|
||||||
|
struct sqsh_super_block *sq;
|
||||||
|
+ uint16_t major;
|
||||||
|
+ uint16_t minor;
|
||||||
|
|
||||||
|
sq = blkid_probe_get_sb(pr, mag, struct sqsh_super_block);
|
||||||
|
if (!sq)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
- if (strcmp(mag->magic, "sqsh") == 0 ||
|
||||||
|
- strcmp(mag->magic, "qshs") == 0)
|
||||||
|
- blkid_probe_sprintf_version(pr, "%u.%u",
|
||||||
|
- sq->s_major,
|
||||||
|
- sq->s_minor);
|
||||||
|
- else
|
||||||
|
- blkid_probe_sprintf_version(pr, "%u.%u",
|
||||||
|
- swab16(sq->s_major),
|
||||||
|
- swab16(sq->s_minor));
|
||||||
|
+ major = le16_to_cpu(sq->s_major);
|
||||||
|
+ minor = le16_to_cpu(sq->s_minor);
|
||||||
|
+ if (major < 4)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ blkid_probe_sprintf_version(pr, "%u.%u", major, minor);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int probe_squashfs3(blkid_probe pr, const struct blkid_idmag *mag)
|
||||||
|
+{
|
||||||
|
+ struct sqsh_super_block *sq;
|
||||||
|
+ uint16_t major;
|
||||||
|
+ uint16_t minor;
|
||||||
|
+
|
||||||
|
+ sq = blkid_probe_get_sb(pr, mag, struct sqsh_super_block);
|
||||||
|
+ if (!sq)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ if (strcmp(mag->magic, "sqsh") == 0) {
|
||||||
|
+ major = be16_to_cpu(sq->s_major);
|
||||||
|
+ minor = be16_to_cpu(sq->s_minor);
|
||||||
|
+ } else {
|
||||||
|
+ major = le16_to_cpu(sq->s_major);
|
||||||
|
+ minor = le16_to_cpu(sq->s_minor);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (major > 3)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ blkid_probe_sprintf_version(pr, "%u.%u", major, minor);
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -55,14 +81,21 @@ const struct blkid_idinfo squashfs_idinf
|
||||||
|
.probefunc = probe_squashfs,
|
||||||
|
.magics =
|
||||||
|
{
|
||||||
|
- { .magic = "sqsh", .len = 4 },
|
||||||
|
- { .magic = "hsqs", .len = 4 }, /* swap */
|
||||||
|
-
|
||||||
|
- /* LZMA version */
|
||||||
|
- { .magic = "qshs", .len = 4 },
|
||||||
|
- { .magic = "shsq", .len = 4 }, /* swap */
|
||||||
|
+ { .magic = "hsqs", .len = 4 },
|
||||||
|
{ NULL }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
+const struct blkid_idinfo squashfs3_idinfo =
|
||||||
|
+{
|
||||||
|
+ .name = "squashfs3",
|
||||||
|
+ .usage = BLKID_USAGE_FILESYSTEM,
|
||||||
|
+ .probefunc = probe_squashfs3,
|
||||||
|
+ .magics =
|
||||||
|
+ {
|
||||||
|
+ { .magic = "sqsh", .len = 4 }, /* big endian */
|
||||||
|
+ { .magic = "hsqs", .len = 4 }, /* little endian */
|
||||||
|
+ { NULL }
|
||||||
|
+ }
|
||||||
|
+};
|
||||||
|
|
131
util-linux-ng-2.19.1-barrier_documentation.patch
Normal file
131
util-linux-ng-2.19.1-barrier_documentation.patch
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
From: Jan Kara <jack@suse.cz>
|
||||||
|
Subject: Update documentation of mount(8) about barrier mount options
|
||||||
|
|
||||||
|
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||||
|
|
||||||
|
Index: util-linux-2.24.1/sys-utils/mount.8
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.1.orig/sys-utils/mount.8
|
||||||
|
+++ util-linux-2.24.1/sys-utils/mount.8
|
||||||
|
@@ -1524,12 +1524,13 @@ ordered mode.
|
||||||
|
Abort the journal if an error occurs in a file data buffer in ordered mode.
|
||||||
|
.TP
|
||||||
|
.BR barrier=0 " / " barrier=1 "
|
||||||
|
-This enables/disables barriers. barrier=0 disables it, barrier=1 enables it.
|
||||||
|
-Write barriers enforce proper on-disk ordering of journal commits, making
|
||||||
|
-volatile disk write caches safe to use, at some performance penalty. The ext3
|
||||||
|
-filesystem does not enable write barriers by default. Be sure to enable
|
||||||
|
-barriers unless your disks are battery-backed one way or another. Otherwise
|
||||||
|
-you risk filesystem corruption in case of power failure.
|
||||||
|
+This disables / enables the use of write barriers in the jbd code. barrier=0
|
||||||
|
+disables, barrier=1 enables (default). This also requires an IO stack which can
|
||||||
|
+support barriers, and if jbd gets an error on a barrier write, it will disable
|
||||||
|
+barriers again with a warning. Write barriers enforce proper on-disk ordering
|
||||||
|
+of journal commits, making volatile disk write caches safe to use, at some
|
||||||
|
+performance penalty. If your disks are battery-backed in one way or another,
|
||||||
|
+disabling barriers may safely improve performance.
|
||||||
|
.TP
|
||||||
|
.BI commit= nrsec
|
||||||
|
Sync all data and metadata every
|
||||||
|
@@ -1577,15 +1578,9 @@ enabled older kernels cannot mount the d
|
||||||
|
This will enable 'journal_checksum' internally.
|
||||||
|
.TP
|
||||||
|
.BR barrier=0 " / " barrier=1 " / " barrier " / " nobarrier
|
||||||
|
-This enables/disables the use of write barriers in the jbd code. barrier=0
|
||||||
|
-disables, barrier=1 enables. This also requires an IO stack which can support
|
||||||
|
-barriers, and if jbd gets an error on a barrier write, it will disable again
|
||||||
|
-with a warning. Write barriers enforce proper on-disk ordering of journal
|
||||||
|
-commits, making volatile disk write caches safe to use, at some performance
|
||||||
|
-penalty. If your disks are battery-backed in one way or another, disabling
|
||||||
|
-barriers may safely improve performance. The mount options "barrier" and
|
||||||
|
-"nobarrier" can also be used to enable or disable barriers, for consistency
|
||||||
|
-with other ext4 mount options.
|
||||||
|
+These mount options have the same effect as in ext3. The mount options
|
||||||
|
+"barrier" and "nobarrier" are added for consistency with other ext4 mount
|
||||||
|
+options.
|
||||||
|
|
||||||
|
The ext4 filesystem enables write barriers by default.
|
||||||
|
.TP
|
||||||
|
@@ -2266,13 +2261,13 @@ Enable POSIX Access Control Lists. See t
|
||||||
|
manual page.
|
||||||
|
.TP
|
||||||
|
.BR barrier=none " / " barrier=flush "
|
||||||
|
-This enables/disables the use of write barriers in the journaling code.
|
||||||
|
-barrier=none disables it, barrier=flush enables it. Write barriers enforce
|
||||||
|
+This disables / enables the use of write barriers in the journaling code.
|
||||||
|
+barrier=none disables, barrier=flush enables (default). This also requires an
|
||||||
|
+IO stack which can support barriers, and if reiserfs gets an error on a barrier
|
||||||
|
+write, it will disable barriers again with a warning. Write barriers enforce
|
||||||
|
proper on-disk ordering of journal commits, making volatile disk write caches
|
||||||
|
-safe to use, at some performance penalty. The reiserfs filesystem does not
|
||||||
|
-enable write barriers by default. Be sure to enable barriers unless your disks
|
||||||
|
-are battery-backed one way or another. Otherwise you risk filesystem
|
||||||
|
-corruption in case of power failure.
|
||||||
|
+safe to use, at some performance penalty. If your disks are battery-backed in
|
||||||
|
+one way or another, disabling barriers may safely improve performance.
|
||||||
|
|
||||||
|
.SH "Mount options for romfs"
|
||||||
|
None.
|
||||||
|
Index: util-linux-2.24.1/mount-deprecated/mount.8
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.1.orig/mount-deprecated/mount.8
|
||||||
|
+++ util-linux-2.24.1/mount-deprecated/mount.8
|
||||||
|
@@ -1389,12 +1389,13 @@ in files after a crash and journal recov
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.BR barrier=0 " / " barrier=1 "
|
||||||
|
-This enables/disables barriers. barrier=0 disables it, barrier=1 enables it.
|
||||||
|
-Write barriers enforce proper on-disk ordering of journal commits, making
|
||||||
|
-volatile disk write caches safe to use, at some performance penalty. The ext3
|
||||||
|
-filesystem does not enable write barriers by default. Be sure to enable
|
||||||
|
-barriers unless your disks are battery-backed one way or another. Otherwise
|
||||||
|
-you risk filesystem corruption in case of power failure.
|
||||||
|
+This disables / enables the use of write barriers in the jbd code. barrier=0
|
||||||
|
+disables, barrier=1 enables (default). This also requires an IO stack which can
|
||||||
|
+support barriers, and if jbd gets an error on a barrier write, it will disable
|
||||||
|
+barriers again with a warning. Write barriers enforce proper on-disk ordering
|
||||||
|
+of journal commits, making volatile disk write caches safe to use, at some
|
||||||
|
+performance penalty. If your disks are battery-backed in one way or another,
|
||||||
|
+disabling barriers may safely improve performance.
|
||||||
|
.TP
|
||||||
|
.BI commit= nrsec
|
||||||
|
Sync all data and metadata every
|
||||||
|
@@ -1433,15 +1434,9 @@ enabled older kernels cannot mount the d
|
||||||
|
This will enable 'journal_checksum' internally.
|
||||||
|
.TP
|
||||||
|
.BR barrier=0 " / " barrier=1 " / " barrier " / " nobarrier
|
||||||
|
-This enables/disables the use of write barriers in the jbd code. barrier=0
|
||||||
|
-disables, barrier=1 enables. This also requires an IO stack which can support
|
||||||
|
-barriers, and if jbd gets an error on a barrier write, it will disable again
|
||||||
|
-with a warning. Write barriers enforce proper on-disk ordering of journal
|
||||||
|
-commits, making volatile disk write caches safe to use, at some performance
|
||||||
|
-penalty. If your disks are battery-backed in one way or another, disabling
|
||||||
|
-barriers may safely improve performance. The mount options "barrier" and
|
||||||
|
-"nobarrier" can also be used to enable or disable barriers, for consistency
|
||||||
|
-with other ext4 mount options.
|
||||||
|
+These mount options have the same effect as in ext3. The mount options
|
||||||
|
+"barrier" and "nobarrier" are added for consistency with other ext4 mount
|
||||||
|
+options.
|
||||||
|
|
||||||
|
The ext4 filesystem enables write barriers by default.
|
||||||
|
.TP
|
||||||
|
@@ -2099,13 +2094,13 @@ Enable POSIX Access Control Lists. See t
|
||||||
|
manual page.
|
||||||
|
.TP
|
||||||
|
.BR barrier=none " / " barrier=flush "
|
||||||
|
-This enables/disables the use of write barriers in the journaling code.
|
||||||
|
-barrier=none disables it, barrier=flush enables it. Write barriers enforce
|
||||||
|
+This disables / enables the use of write barriers in the journaling code.
|
||||||
|
+barrier=none disables, barrier=flush enables (default). This also requires an
|
||||||
|
+IO stack which can support barriers, and if reiserfs gets an error on a barrier
|
||||||
|
+write, it will disable barriers again with a warning. Write barriers enforce
|
||||||
|
proper on-disk ordering of journal commits, making volatile disk write caches
|
||||||
|
-safe to use, at some performance penalty. The reiserfs filesystem does not
|
||||||
|
-enable write barriers by default. Be sure to enable barriers unless your disks
|
||||||
|
-are battery-backed one way or another. Otherwise you risk filesystem
|
||||||
|
-corruption in case of power failure.
|
||||||
|
+safe to use, at some performance penalty. If your disks are battery-backed in
|
||||||
|
+one way or another, disabling barriers may safely improve performance.
|
||||||
|
|
||||||
|
.SH "Mount options for romfs"
|
||||||
|
None.
|
25
util-linux-setarch-uname26.patch
Normal file
25
util-linux-setarch-uname26.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
Index: util-linux-2.24/sys-utils/setarch.c
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.orig/sys-utils/setarch.c
|
||||||
|
+++ util-linux-2.24/sys-utils/setarch.c
|
||||||
|
@@ -146,6 +146,7 @@ set_arch(const char *pers, unsigned long
|
||||||
|
int perval;
|
||||||
|
const char *target_arch, *result_arch;
|
||||||
|
} transitions[] = {
|
||||||
|
+ {UNAME26, "uname26", NULL},
|
||||||
|
{PER_LINUX32, "linux32", NULL},
|
||||||
|
{PER_LINUX, "linux64", NULL},
|
||||||
|
#if defined(__powerpc__) || defined(__powerpc64__)
|
||||||
|
Index: util-linux-2.24/sys-utils/Makemodule.am
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.24.orig/sys-utils/Makemodule.am
|
||||||
|
+++ util-linux-2.24/sys-utils/Makemodule.am
|
||||||
|
@@ -89,7 +89,7 @@ usrbin_exec_PROGRAMS += setarch
|
||||||
|
dist_man_MANS += sys-utils/setarch.8
|
||||||
|
setarch_SOURCES = sys-utils/setarch.c
|
||||||
|
|
||||||
|
-SETARCH_LINKS = linux32 linux64
|
||||||
|
+SETARCH_LINKS = uname26 linux32 linux64
|
||||||
|
|
||||||
|
if ARCH_S390
|
||||||
|
SETARCH_LINKS += s390 s390x
|
30
util-linux-update-default-commit-interval.patch
Normal file
30
util-linux-update-default-commit-interval.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
mount/mount.8 | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: util-linux-2.19.1/mount/mount.8
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.1.orig/sys-utils/mount.8
|
||||||
|
+++ util-linux-2.19.1/sys-utils/mount.8
|
||||||
|
@@ -1384,7 +1384,7 @@ disabling barriers may safely improve pe
|
||||||
|
.BI commit= nrsec
|
||||||
|
Sync all data and metadata every
|
||||||
|
.I nrsec
|
||||||
|
-seconds. The default value is 5 seconds. Zero means default.
|
||||||
|
+seconds. The default value is 15 seconds. Zero means default.
|
||||||
|
.TP
|
||||||
|
.BR user_xattr
|
||||||
|
Enable Extended User Attributes. See the
|
||||||
|
Index: util-linux-2.19.1/mount/mount.8
|
||||||
|
===================================================================
|
||||||
|
--- util-linux-2.19.1.orig/mount-deprecated/mount.8
|
||||||
|
+++ util-linux-2.19.1/mount-deprecated/mount.8
|
||||||
|
@@ -1384,7 +1384,7 @@ disabling barriers may safely improve pe
|
||||||
|
.BI commit= nrsec
|
||||||
|
Sync all data and metadata every
|
||||||
|
.I nrsec
|
||||||
|
-seconds. The default value is 5 seconds. Zero means default.
|
||||||
|
+seconds. The default value is 15 seconds. Zero means default.
|
||||||
|
.TP
|
||||||
|
.BR user_xattr
|
||||||
|
Enable Extended User Attributes. See the
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 17 22:36:58 CET 2014 - sbrabec@suse.cz
|
||||||
|
|
||||||
|
- Merge fixes and features from SLE11 (bnc#831868):
|
||||||
|
* Detect squashfs version <= 3 as squashfs3 and version >= 4 as
|
||||||
|
squashfs. (mszeredi@suse.cz,
|
||||||
|
util-linux-ng-2.16-squashfs3-detect.patch, bnc#666893)
|
||||||
|
* add sfdisk-warn-about-2TB-limit.patch (puzel@novell.com,
|
||||||
|
bnc#495657)
|
||||||
|
* Document barrier option in mount.8 (jack@suse.cz,
|
||||||
|
hvogel@suse.de,
|
||||||
|
util-linux-ng-2.19.1-barrier_documentation.patch, bnc#489740)
|
||||||
|
* lscpu: improve hypervisor detection (puzel@novell.com,
|
||||||
|
fate#310255)
|
||||||
|
- util-linux-lscpu-improve-hypervisor-detection.patch
|
||||||
|
* umount: avoid calling readlink on mountpoints if not necessary
|
||||||
|
- add: umount-avoid-readlink.patch (puzel@suse.com, bnc#794529)
|
||||||
|
* fix file conflict between util-linux and s390-32
|
||||||
|
(puzel@suse.com, bnc#805684)
|
||||||
|
* util-linux-update-default-commit-interval.patch:
|
||||||
|
mount(8): update default commit interval (puzel@suse.com,
|
||||||
|
bnc#809480)
|
||||||
|
* Obsolete no more packaged uuid-runtime.
|
||||||
|
- Add uname26 (util-linux-setarch-uname26.patch, FATE#313476).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Mar 6 09:43:34 UTC 2014 - werner@suse.de
|
Thu Mar 6 09:43:34 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
@ -114,10 +114,22 @@ Patch16: agetty-on-s390-on-dev-3270-tty1-line.patch
|
|||||||
Patch17: sulogin-fooled-on-tty-line-due-plymouth.patch
|
Patch17: sulogin-fooled-on-tty-line-due-plymouth.patch
|
||||||
# PATCH-FIX-SUSE -- sulogin: find suitable console device even if first is not usable
|
# PATCH-FIX-SUSE -- sulogin: find suitable console device even if first is not usable
|
||||||
Patch18: sulogin-does-not-find-any-console.patch
|
Patch18: sulogin-does-not-find-any-console.patch
|
||||||
|
# PATCH-FEATURE-SLES util-linux-setarch-uname26.patch fate313476 sbrabec@suse.cz -- Support for uname26 binary.
|
||||||
|
Patch19: util-linux-setarch-uname26.patch
|
||||||
# hack for boot.localfs
|
# hack for boot.localfs
|
||||||
Patch20: util-linux-HACK-boot.localfs.diff
|
Patch20: util-linux-HACK-boot.localfs.diff
|
||||||
|
# PATCH-FEATURE-SLES util-linux-ng-2.16-squashfs3-detect.patch bnc666893 mszeredi@suse.cz -- Detect squashfs version <= 3 as squashfs3 and version >= 4 as squashfs.
|
||||||
|
Patch21: util-linux-ng-2.16-squashfs3-detect.patch
|
||||||
|
# PATCH-FEATURE-SLES fdisk-warn-about-2TB-limit.patch bnc495657 puzel@novell.com -- Warn about 2TB limit.
|
||||||
|
Patch22: sfdisk-warn-about-2TB-limit.patch
|
||||||
|
# PATCH-FEATURE-SLES util-linux-ng-2.19.1-barrier_documentation.patch bnc489740 jack@suse.cz -- Document barrier option in mount.8.
|
||||||
|
Patch23: util-linux-ng-2.19.1-barrier_documentation.patch
|
||||||
|
# PATCH-FEATURE-SLES util-linux-lscpu-improve-hypervisor-detection.patch fate310255 puzel@novell.com -- Improve hypervisor detection.
|
||||||
|
Patch24: util-linux-lscpu-improve-hypervisor-detection.patch
|
||||||
|
# PATCH-FIX-SLES umount-avoid-readlink.patch bnc794529 puzel@suse.com -- umount: avoid calling readlink on mountpoints if not necessary.
|
||||||
|
Patch25: umount-avoid-readlink.patch
|
||||||
|
# PATCH-FIX-SLES util-linux-update-default-commit-interval.patch bnc#809480 puzel@suse.com -- Update default commit interval.
|
||||||
|
Patch26: util-linux-update-default-commit-interval.patch
|
||||||
##
|
##
|
||||||
## klogconsole
|
## klogconsole
|
||||||
##
|
##
|
||||||
@ -146,6 +158,14 @@ Conflicts: coreutils < 8.21
|
|||||||
# File conflict of sulogin and utmpdump (up to 12.3 and SLE11).
|
# File conflict of sulogin and utmpdump (up to 12.3 and SLE11).
|
||||||
Conflicts: sysvinit-tools < 2.88+-87
|
Conflicts: sysvinit-tools < 2.88+-87
|
||||||
%endif
|
%endif
|
||||||
|
# bnc#805684:
|
||||||
|
%ifarch s390x
|
||||||
|
Obsoletes: s390-32
|
||||||
|
Provides: s390-32
|
||||||
|
%endif
|
||||||
|
# uuid-runtime appeared in SLE11 SP1 to SLE11 SP3
|
||||||
|
Provides: uuid-runtime = %{version}-%{release}
|
||||||
|
Obsoletes: uuid-runtime < %{version}-%{release}
|
||||||
#
|
#
|
||||||
# Using "Requires" here would lend itself to help upgrading, but since
|
# Using "Requires" here would lend itself to help upgrading, but since
|
||||||
# util-linux is in the initial bootstrap, that is not a good thing to do:
|
# util-linux is in the initial bootstrap, that is not a good thing to do:
|
||||||
@ -235,9 +255,17 @@ xzcat %{S:0} | %gpg_verify %{S:12} -
|
|||||||
%patch16 -p0
|
%patch16 -p0
|
||||||
%patch17 -p0
|
%patch17 -p0
|
||||||
%patch18 -p0
|
%patch18 -p0
|
||||||
|
%patch19 -p1
|
||||||
#
|
#
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
#
|
#
|
||||||
|
%patch21 -p1
|
||||||
|
%patch22 -p1
|
||||||
|
%patch23 -p1
|
||||||
|
%patch24 -p1
|
||||||
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
#
|
||||||
# setctsid
|
# setctsid
|
||||||
cp -p %{S:22} %{S:23} .
|
cp -p %{S:22} %{S:23} .
|
||||||
# nologin
|
# nologin
|
||||||
@ -693,6 +721,7 @@ fi
|
|||||||
%{_bindir}/utmpdump
|
%{_bindir}/utmpdump
|
||||||
%endif
|
%endif
|
||||||
%{_bindir}/uuidgen
|
%{_bindir}/uuidgen
|
||||||
|
%{_bindir}/uname26
|
||||||
%ifnarch ppc ppc64
|
%ifnarch ppc ppc64
|
||||||
%{_bindir}/chrp-addnote
|
%{_bindir}/chrp-addnote
|
||||||
%{_bindir}/mkzimage_cmdline
|
%{_bindir}/mkzimage_cmdline
|
||||||
@ -836,6 +865,7 @@ fi
|
|||||||
%{_mandir}/man8/swapoff.8.gz
|
%{_mandir}/man8/swapoff.8.gz
|
||||||
%{_mandir}/man8/swapon.8.gz
|
%{_mandir}/man8/swapon.8.gz
|
||||||
%{_mandir}/man8/umount.8.gz
|
%{_mandir}/man8/umount.8.gz
|
||||||
|
%{_mandir}/man8/uname26.8.gz
|
||||||
%{_mandir}/man8/setctsid.8.gz
|
%{_mandir}/man8/setctsid.8.gz
|
||||||
%{_mandir}/man8/wipefs.8.gz
|
%{_mandir}/man8/wipefs.8.gz
|
||||||
%{_mandir}/man8/fstrim.8.gz
|
%{_mandir}/man8/fstrim.8.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user