summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2010-11-29 10:26:18 +0100
committerKarel Zak2010-11-30 10:12:00 +0100
commit5a16af58c5b3625e6e5a1a487bdf5521cb9646c2 (patch)
treec03393f746de6b86e241da5c9479f9179cb8a063
parentfdisk: fix freespace boundaries calculation on SGI disklabel (diff)
downloadkernel-qcow2-util-linux-5a16af58c5b3625e6e5a1a487bdf5521cb9646c2.tar.gz
kernel-qcow2-util-linux-5a16af58c5b3625e6e5a1a487bdf5521cb9646c2.tar.xz
kernel-qcow2-util-linux-5a16af58c5b3625e6e5a1a487bdf5521cb9646c2.zip
libblkid: add LINHIB0001 signature to swap prober
The new swsuspend signature has been added by commit 3624eb04c24861ab296842414f9752a393e68372 to kernel 2.6.37-rc1. Reported-by: "Dr. David Alan Gilbert" <linux@treblig.org> Addresses: https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/682176 Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--mount/swapon.c3
-rw-r--r--shlibs/blkid/src/superblocks/swap.c12
2 files changed, 14 insertions, 1 deletions
diff --git a/mount/swapon.c b/mount/swapon.c
index d8fad0bfa..a2dd9dc26 100644
--- a/mount/swapon.c
+++ b/mount/swapon.c
@@ -298,7 +298,8 @@ swap_detect_signature(const char *buf, int *sig)
else if (memcmp(buf, "S1SUSPEND", 9) == 0 ||
memcmp(buf, "S2SUSPEND", 9) == 0 ||
memcmp(buf, "ULSUSPEND", 9) == 0 ||
- memcmp(buf, "\xed\xc3\x02\xe9\x98\x56\xe5\x0c", 8) == 0)
+ memcmp(buf, "\xed\xc3\x02\xe9\x98\x56\xe5\x0c", 8) == 0 ||
+ memcmp(buf, "LINHIB0001", 10) == 0)
*sig = SIG_SWSUSPEND;
else
return 0;
diff --git a/shlibs/blkid/src/superblocks/swap.c b/shlibs/blkid/src/superblocks/swap.c
index e2b0db9f1..325a8fafa 100644
--- a/shlibs/blkid/src/superblocks/swap.c
+++ b/shlibs/blkid/src/superblocks/swap.c
@@ -102,6 +102,8 @@ static int probe_swsuspend(blkid_probe pr, const struct blkid_idmag *mag)
return swap_set_info(pr, "ulsuspend");
if (!memcmp(mag->magic, TOI_MAGIC_STRING, mag->len))
return swap_set_info(pr, "tuxonice");
+ if (!memcmp(mag->magic, "LINHIB0001", mag->len))
+ return swap_set_info(pr, "linhib0001");
return -1; /* no signature detected */
}
@@ -141,18 +143,28 @@ const struct blkid_idinfo swsuspend_idinfo =
{ "S1SUSPEND", 9, 0, 0xff6 },
{ "S2SUSPEND", 9, 0, 0xff6 },
{ "ULSUSPEND", 9, 0, 0xff6 },
+ { "LINHIB0001",10,0, 0xff6 },
+
{ "S1SUSPEND", 9, 0, 0x1ff6 },
{ "S2SUSPEND", 9, 0, 0x1ff6 },
{ "ULSUSPEND", 9, 0, 0x1ff6 },
+ { "LINHIB0001",10,0, 0x1ff6 },
+
{ "S1SUSPEND", 9, 0, 0x3ff6 },
{ "S2SUSPEND", 9, 0, 0x3ff6 },
{ "ULSUSPEND", 9, 0, 0x3ff6 },
+ { "LINHIB0001",10,0, 0x3ff6 },
+
{ "S1SUSPEND", 9, 0, 0x7ff6 },
{ "S2SUSPEND", 9, 0, 0x7ff6 },
{ "ULSUSPEND", 9, 0, 0x7ff6 },
+ { "LINHIB0001",10,0, 0x7ff6 },
+
{ "S1SUSPEND", 9, 0, 0xfff6 },
{ "S2SUSPEND", 9, 0, 0xfff6 },
{ "ULSUSPEND", 9, 0, 0xfff6 },
+ { "LINHIB0001",10,0, 0xfff6 },
+
{ NULL }
}
};