diff --git a/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch b/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch
new file mode 100644
index 0000000..cd86e04
--- /dev/null
+++ b/SOURCES/0150-libblkid-minix-Match-minix-superblock-types.patch
@@ -0,0 +1,44 @@
+From 4ce5726c0ed93e7607c5076f587546c32cf83c2f Mon Sep 17 00:00:00 2001
+From: Nate Clark <nate@neworld.us>
+Date: Wed, 4 Jan 2017 15:24:22 -0500
+Subject: [PATCH 150/152] libblkid/minix: Match minix superblock types
+
+All of the types in the minix super block are unsigned but in
+probe_minix they were being treated as signed. This would cause some of
+the extra sanity checks to pass on a non minix device. The types were
+updated to match the return types of the helper functions in
+disk-utils/minix_programs.h
+
+This can be checked by creating a swap partition with one of these UUIDs
+35f1f264-2468-471a-bc85-acc9f4bc04a3
+35f1f264-6824-471a-bc85-acc9f4bc04a3
+35f1f264-2478-471a-bc85-acc9f4bc04a3
+35f1f264-7824-471a-bc85-acc9f4bc04a3
+
+Prior to this change they would all be considered minix and swap by
+blkid.
+
+Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681
+Upstream: http://github.com/karelzak/util-linux/commit/a9975c1072c4975ec2df958188a80d89cabc6171
+Signed-off-by: Nate Clark <nate@neworld.us>
+---
+ libblkid/src/superblocks/minix.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c
+index 3e80e5b22..a20d51f2c 100644
+--- a/libblkid/src/superblocks/minix.c
++++ b/libblkid/src/superblocks/minix.c
+@@ -87,7 +87,8 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag)
+ 
+ 	if (version <= 2) {
+ 		struct minix_super_block *sb = (struct minix_super_block *) data;
+-		int zones, ninodes, imaps, zmaps, firstz;
++		unsigned long zones, ninodes, imaps, zmaps;
++		off_t firstz;
+ 
+ 		if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0)
+ 			return 1;
+-- 
+2.14.4
+
diff --git a/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch b/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch
new file mode 100644
index 0000000..d646253
--- /dev/null
+++ b/SOURCES/0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch
@@ -0,0 +1,44 @@
+From 289f0cd75f168f86702913658ebe2dbfd8e987c6 Mon Sep 17 00:00:00 2001
+From: Nate Clark <nate@neworld.us>
+Date: Wed, 4 Jan 2017 15:21:17 -0500
+Subject: [PATCH 151/152] libblkid/minix: Sanity check superblock s_state for v
+ 1 and 2
+
+Swap devices with specific values in the uuid can look like minix
+devices to blkid. Add an extra check to make sure the state of the
+filesystem has valid state flags.
+
+A couple of offending swap uuids include:
+35f1f264-137f-471a-bc85-acc9f4bc04a3
+35f1f264-7f13-471a-bc85-acc9f4bc04a3
+35f1f264-138f-471a-bc85-acc9f4bc04a3
+35f1f264-8f13-471a-bc85-acc9f4bc04a3
+
+Without this change a swap device with any of those uuids would be
+detected as minix and swap by blkid.
+
+Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681
+Upstream: http://github.com/karelzak/util-linux/commit/892553b1a41b449f58462f123eca2bf2c6c56b33
+Signed-off-by: Nate Clark <nate@neworld.us>
+---
+ libblkid/src/superblocks/minix.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c
+index a20d51f2c..4e70fda8f 100644
+--- a/libblkid/src/superblocks/minix.c
++++ b/libblkid/src/superblocks/minix.c
+@@ -93,6 +93,10 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag)
+ 		if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0)
+ 			return 1;
+ 
++		uint16_t state = minix_swab16(swabme, sb->s_state);
++		if ((state & (MINIX_VALID_FS | MINIX_ERROR_FS)) != state)
++			return 1;
++
+ 		zones = version == 2 ? minix_swab32(swabme, sb->s_zones) :
+ 				       minix_swab16(swabme, sb->s_nzones);
+ 		ninodes = minix_swab16(swabme, sb->s_ninodes);
+-- 
+2.14.4
+
diff --git a/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch b/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch
new file mode 100644
index 0000000..31bb209
--- /dev/null
+++ b/SOURCES/0152-libblkid-minix-Use-same-checks-for-version-3.patch
@@ -0,0 +1,90 @@
+From 0ade71743e5f96fbdb0f4a85c3eef22b88363f13 Mon Sep 17 00:00:00 2001
+From: Nate Clark <nate@neworld.us>
+Date: Wed, 4 Jan 2017 15:24:32 -0500
+Subject: [PATCH 152/152] libblkid/minix: Use same checks for version 3
+
+fsck.minix performs the same sanity checks on all versions of the
+superblock. Update the probe to perform the same sanity checks so it is
+less likely a different type of filesystem will be identified as minix.
+
+Upstream: http://github.com/karelzak/util-linux/commit/f82c804869bb8613fa0924e3111b7eb55bb04fcd
+Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1594681
+Signed-off-by: Nate Clark <nate@neworld.us>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ libblkid/src/superblocks/minix.c | 38 +++++++++++++++++++++++---------------
+ 1 file changed, 23 insertions(+), 15 deletions(-)
+
+diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c
+index 4e70fda8f..21b3bf8bb 100644
+--- a/libblkid/src/superblocks/minix.c
++++ b/libblkid/src/superblocks/minix.c
+@@ -75,6 +75,9 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag)
+ 	unsigned char *ext;
+ 	const unsigned char *data;
+ 	int version = 0, swabme = 0;
++	unsigned long zones, ninodes, imaps, zmaps;
++	off_t firstz;
++	size_t zone_size;
+ 
+ 	data = blkid_probe_get_buffer(pr, 1024,
+ 			max(sizeof(struct minix_super_block),
+@@ -85,14 +88,9 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag)
+ 	if (version < 1)
+ 		return 1;
+ 
++
+ 	if (version <= 2) {
+ 		struct minix_super_block *sb = (struct minix_super_block *) data;
+-		unsigned long zones, ninodes, imaps, zmaps;
+-		off_t firstz;
+-
+-		if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0)
+-			return 1;
+-
+ 		uint16_t state = minix_swab16(swabme, sb->s_state);
+ 		if ((state & (MINIX_VALID_FS | MINIX_ERROR_FS)) != state)
+ 			return 1;
+@@ -103,20 +101,30 @@ static int probe_minix(blkid_probe pr, const struct blkid_idmag *mag)
+ 		imaps   = minix_swab16(swabme, sb->s_imap_blocks);
+ 		zmaps   = minix_swab16(swabme, sb->s_zmap_blocks);
+ 		firstz  = minix_swab16(swabme, sb->s_firstdatazone);
+-
+-		/* sanity checks to be sure that the FS is really minix */
+-		if (imaps * MINIX_BLOCK_SIZE * 8 < ninodes + 1)
+-			return 1;
+-		if (zmaps * MINIX_BLOCK_SIZE * 8 < zones - firstz + 1)
+-			return 1;
+-
++		zone_size = sb->s_log_zone_size;
+ 	} else if (version == 3) {
+ 		struct minix3_super_block *sb = (struct minix3_super_block *) data;
+ 
+-		if (sb->s_imap_blocks == 0 || sb->s_zmap_blocks == 0)
+-			return 1;
++		zones = minix_swab32(swabme, sb->s_zones);
++		ninodes = minix_swab32(swabme, sb->s_ninodes);
++		imaps   = minix_swab16(swabme, sb->s_imap_blocks);
++		zmaps   = minix_swab16(swabme, sb->s_zmap_blocks);
++		firstz  = minix_swab16(swabme, sb->s_firstdatazone);
++		zone_size = sb->s_log_zone_size;
+ 	}
+ 
++	/* sanity checks to be sure that the FS is really minix.
++	 * see disk-utils/fsck.minix.c read_superblock
++	 */
++	if (zone_size != 0 || ninodes == 0 || ninodes == UINT32_MAX)
++		return 1;
++	if (imaps * MINIX_BLOCK_SIZE * 8 < ninodes + 1)
++		return 1;
++	if (firstz > (off_t) zones)
++		return 1;
++	if (zmaps * MINIX_BLOCK_SIZE * 8 < zones - firstz + 1)
++		return 1;
++
+ 	/* unfortunately, some parts of ext3 is sometimes possible to
+ 	 * interpreted as minix superblock. So check for extN magic
+ 	 * string. (For extN magic string and offsets see ext.c.)
+-- 
+2.14.4
+
diff --git a/SPECS/util-linux.spec b/SPECS/util-linux.spec
index 48100e4..904ef70 100644
--- a/SPECS/util-linux.spec
+++ b/SPECS/util-linux.spec
@@ -2,7 +2,7 @@
 Summary: A collection of basic system utilities
 Name: util-linux
 Version: 2.23.2
-Release: 52%{?dist}
+Release: 52%{?dist}.1
 License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
 Group: System Environment/Base
 URL: http://en.wikipedia.org/wiki/Util-linux
@@ -386,6 +386,15 @@ Patch148: 0148-mkswap-tolerate-ENOTSUP-when-failing-to-relabel.patch
 # 1534893 - RHEL7: util-linux: mount/unmount ASLR bypass via environment variable in libmount
 Patch149: 0149-libmount-fix-debug-message.patch
 
+#
+# RHEL7.5.Z
+#
+# 1594681 - [RHEL7.2] blkid does not output swap area
+Patch150: 0150-libblkid-minix-Match-minix-superblock-types.patch
+Patch151: 0151-libblkid-minix-Sanity-check-superblock-s_state-for-v.patch
+Patch152: 0152-libblkid-minix-Use-same-checks-for-version-3.patch
+
+
 %description
 The util-linux package contains a large variety of low-level system
 utilities that are necessary for a Linux system to function. Among
@@ -1118,6 +1127,9 @@ fi
 %{_libdir}/pkgconfig/uuid.pc
 
 %changelog
+* Thu Jul 12 2018 Karel Zak <kzak@redhat.com> 2.23.2-52.el7_5.1
+- fix #1594681 - blkid does not output swap area
+
 * Fri Feb 02 2018 Karel Zak <kzak@redhat.com> 2.23.2-52
 - fix #1534893 - RHEL7: util-linux: mount/unmount ASLR bypass via environment variable in libmount