From 0715d1b22a6f0008b70fe4b1881045f65521ac19 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 24 Mar 2016 11:33:36 +0100 Subject: Use swapon path as pager partition path When /dev/hd* entries are parted-partition storeio, the store name is only the disk name, thus not unique. We should just use the path being used instead. * sutils/swapon.c (swaponoff): Use `file' instead of `store->name' to default_pager_paging_file. (main): Drop hardcoded "/dev/". * procfs/rootdir.c (rootdir_gc_swaps): Drop hardcoded "/dev/". --- procfs/rootdir.c | 2 +- sutils/swapon.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/procfs/rootdir.c b/procfs/rootdir.c index 951c071d..8e7c6595 100644 --- a/procfs/rootdir.c +++ b/procfs/rootdir.c @@ -557,7 +557,7 @@ rootdir_gc_swaps (void *hook, char **contents, ssize_t *contents_len) name = names; for (i = 0; i < nfree; i++) { - fprintf (m, "/dev/%s\tpartition\t%zu\t%zu\t-1\n", + fprintf (m, "%s\tpartition\t%zu\t%zu\t-1\n", name, size[i] >> 10, (size[i] - free[i]) >> 10); name = argz_next (names, names_len, name); } diff --git a/sutils/swapon.c b/sutils/swapon.c index 1d0d4353..40f5a205 100644 --- a/sutils/swapon.c +++ b/sutils/swapon.c @@ -424,9 +424,7 @@ swaponoff (const char *file, int add, int skipnotexisting) { /* The default pager does not support the new protocol. We tried it in a previous call (below) and got MIG_BAD_ID. */ - char pname[sizeof "/dev/" + strlen (store->name) + 1]; - strcpy (stpcpy (pname, "/dev/"), store->name); - err = default_pager_paging_file (def_pager, dev_master, pname, add); + err = default_pager_paging_file (def_pager, dev_master, file, add); } else { @@ -439,7 +437,7 @@ swaponoff (const char *file, int add, int skipnotexisting) runs[j++] = store->runs[i].length; } err = default_pager_paging_storage (def_pager, store->port, - runs, j, store->name, add); + runs, j, file, add); if (err == MIG_BAD_ID) { /* The default pager does not support the new protocol. @@ -580,7 +578,7 @@ main (int argc, char *argv[]) name = names; for (i = 0; i < nfree; i++) { - printf ("/dev/%s\tpartition\t%zuM\t%zuM\t-1\n", + printf ("%s\tpartition\t%zuM\t%zuM\t-1\n", name, size[i] >> 20, (size[i] - free[i]) >> 20); name = argz_next (names, names_len, name); } -- cgit v1.2.3