From: Pavel Machek <pavel@ucw.cz>

Move device name resolution code around so that it is not called from
resume-from-initrd.  name_to_dev_t may be unavailable at that point.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 kernel/power/disk.c   |   10 ++++++++++
 kernel/power/swsusp.c |   10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff -puN kernel/power/disk.c~fix-resume-from-initrd kernel/power/disk.c
--- 25/kernel/power/disk.c~fix-resume-from-initrd	Wed Jul  6 13:03:41 2005
+++ 25-akpm/kernel/power/disk.c	Wed Jul  6 13:03:41 2005
@@ -236,6 +236,16 @@ static int software_resume(void)
 {
 	int error;
 
+	if (!swsusp_resume_device) {
+		if (!strlen(resume_file))
+			return -ENOENT;
+		swsusp_resume_device = name_to_dev_t(resume_file);
+		pr_debug("swsusp: Resume From Partition %s\n", resume_file);
+	} else {
+		pr_debug("swsusp: Resume From Partition %d:%d\n",
+			 MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device));
+	}
+
 	if (noresume) {
 		/**
 		 * FIXME: If noresume is specified, we need to find the partition
diff -puN kernel/power/swsusp.c~fix-resume-from-initrd kernel/power/swsusp.c
--- 25/kernel/power/swsusp.c~fix-resume-from-initrd	Wed Jul  6 13:03:41 2005
+++ 25-akpm/kernel/power/swsusp.c	Wed Jul  6 13:03:41 2005
@@ -1356,16 +1356,6 @@ int swsusp_check(void)
 {
 	int error;
 
-	if (!swsusp_resume_device) {
-		if (!strlen(resume_file))
-			return -ENOENT;
-		swsusp_resume_device = name_to_dev_t(resume_file);
-		pr_debug("swsusp: Resume From Partition %s\n", resume_file);
-	} else {
-		pr_debug("swsusp: Resume From Partition %d:%d\n",
-			 MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device));
-	}
-
 	resume_bdev = open_by_devnum(swsusp_resume_device, FMODE_READ);
 	if (!IS_ERR(resume_bdev)) {
 		set_blocksize(resume_bdev, PAGE_SIZE);
_