diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-11-26 12:50:39 +0300 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-11-26 12:50:42 +0300 | 
| commit | 16bc67edeb49b531940b2ba6c183780a1b5c472d (patch) | |
| tree | 71b4bc48e47e54f2c0b3126d8f81d2f31b707ea8 /kernel/power/hibernate.c | |
| parent | f6630114d9198aa959ac95c131334c020038f253 (diff) | |
| parent | 047106adcc85e3023da210143a6ab8a55df9e0fc (diff) | |
| download | linux-16bc67edeb49b531940b2ba6c183780a1b5c472d.tar.xz | |
Merge branch 'sched/urgent' into sched/core
Merge reason: Pick up fixes that did not make it into .32.0
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/power/hibernate.c')
| -rw-r--r-- | kernel/power/hibernate.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 04b3a83d686f..04a9e90d248f 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -693,21 +693,22 @@ static int software_resume(void)  	/* The snapshot device should not be opened while we're running */  	if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {  		error = -EBUSY; +		swsusp_close(FMODE_READ);  		goto Unlock;  	}  	pm_prepare_console();  	error = pm_notifier_call_chain(PM_RESTORE_PREPARE);  	if (error) -		goto Finish; +		goto close_finish;  	error = usermodehelper_disable();  	if (error) -		goto Finish; +		goto close_finish;  	error = create_basic_memory_bitmaps();  	if (error) -		goto Finish; +		goto close_finish;  	pr_debug("PM: Preparing processes for restore.\n");  	error = prepare_processes(); @@ -719,6 +720,7 @@ static int software_resume(void)  	pr_debug("PM: Reading hibernation image.\n");  	error = swsusp_read(&flags); +	swsusp_close(FMODE_READ);  	if (!error)  		hibernation_restore(flags & SF_PLATFORM_MODE); @@ -737,6 +739,9 @@ static int software_resume(void)  	mutex_unlock(&pm_mutex);  	pr_debug("PM: Resume from disk failed.\n");  	return error; +close_finish: +	swsusp_close(FMODE_READ); +	goto Finish;  }  late_initcall(software_resume);  | 
