[Suspend2][ 06/28] [Suspend2] Try to parse resume2= for swapwriter.

From: Nigel Cunningham
Date: Mon Jun 26 2006 - 18:46:35 EST


Check whether resume2= is a swapwriter target (swap: prefix or swapwriter
is the only writer), whether we can access the device, and whether we find
a valid signature.

Signed-off-by: Nigel Cunningham <nigel@xxxxxxxxxxxx>

kernel/power/suspend_swap.c | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/kernel/power/suspend_swap.c b/kernel/power/suspend_swap.c
index 13ad8d7..66bb556 100644
--- a/kernel/power/suspend_swap.c
+++ b/kernel/power/suspend_swap.c
@@ -196,3 +196,40 @@ static int disable_swapfile(void)
return result;
}

+static int try_to_parse_resume_device(char *commandline)
+{
+ struct kstat stat;
+ int error;
+
+ resume_dev_t = name_to_dev_t(commandline);
+
+ if (!resume_dev_t) {
+ error = vfs_stat(commandline, &stat);
+ if (!error)
+ resume_dev_t = stat.rdev;
+ }
+
+ if (!resume_dev_t) {
+ if (test_suspend_state(SUSPEND_TRYING_TO_RESUME))
+ suspend_early_boot_message(1, SUSPEND_CONTINUE_REQ,
+ "Failed to translate \"%s\" into a device id.\n",
+ commandline);
+ else
+ printk(name_suspend
+ "Can't translate \"%s\" into a device id yet.\n",
+ commandline);
+ return 1;
+ }
+
+ if (IS_ERR(resume_block_device =
+ open_bdev(MAX_SWAPFILES, resume_dev_t))) {
+ suspend_early_boot_message(1, SUSPEND_CONTINUE_REQ,
+ "Failed to get access to \"%s\", where"
+ " the swap header should be found.",
+ commandline);
+ return 1;
+ }
+
+ return 0;
+}
+

--
Nigel Cunningham nigel at suspend2 dot net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/