diff -ur udev-093.orig/extras/volume_id/lib/linux_swap.c udev-093/extras/volume_id/lib/linux_swap.c --- udev-093.orig/extras/volume_id/lib/linux_swap.c 2006-05-29 10:18:16 +0100 +++ udev-093/extras/volume_id/lib/linux_swap.c 2006-08-10 18:18:32 +0100 @@ -55,7 +55,9 @@ goto found; } - if (memcmp(buf, "SWAPSPACE2", 10) == 0) { + if (memcmp(buf, "SWAPSPACE2", 10) == 0 + || memcmp(buf, "S1SUSPEND", 9) == 0 + || memcmp(buf, "ULSUSPEND", 9) == 0) { sw = (struct swap_header_v1_2 *) volume_id_get_buffer(id, off, sizeof(struct swap_header_v1_2)); if (sw == NULL) return -1; @@ -70,7 +72,12 @@ found: volume_id_set_usage(id, VOLUME_ID_OTHER); - id->type = "swap"; + if (memcmp(buf, "S1SUSPEND", 9) == 0 + || memcmp(buf, "ULSUSPEND", 9) == 0) { + id->type = "swsusp"; + } else { + id->type = "swap"; + } return 0; } diff -ur udev-093.orig/extras/volume_id/vol_id.c udev-093/extras/volume_id/vol_id.c --- udev-093.orig/extras/volume_id/vol_id.c 2006-05-29 10:18:16 +0100 +++ udev-093/extras/volume_id/vol_id.c 2006-08-10 18:17:45 +0100 @@ -204,15 +204,14 @@ printf("%s\n", vid->type); break; case PRINT_LABEL: - if (name[0] == '\0' || - (vid->usage_id != VOLUME_ID_FILESYSTEM && vid->usage_id != VOLUME_ID_DISKLABEL)) { + if (name[0] == '\0') { rc = 3; goto exit; } printf("%s\n", name); break; case PRINT_UUID: - if (vid->uuid[0] == '\0' || vid->usage_id != VOLUME_ID_FILESYSTEM) { + if (vid->uuid[0] == '\0') { rc = 4; goto exit; }