PM / Hibernate: Make snapshot_release() restore GFP mask
authorRafael J. Wysocki <rjw@sisk.pl>
Tue, 10 May 2011 19:10:01 +0000 (21:10 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Wed, 11 May 2011 19:10:43 +0000 (21:10 +0200)
If the process using the hibernate user space interface closes
/dev/snapshot after creating a hibernation image without thawing
tasks, snapshot_release() should call pm_restore_gfp_mask() to
restore the GFP mask used before the creation of the image.  Make
that happen.

Tested-by: Alexandre Felipe Muller de Souza <alexandrefm@mandriva.com.br>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: stable@kernel.org
kernel/power/user.c

index c36c3b9e8a84f59ad5894a1e2d04c7252b656ebe..6522be913ac1b1ae5b3e7f89cfad2c137f1b399a 100644 (file)
@@ -135,8 +135,10 @@ static int snapshot_release(struct inode *inode, struct file *filp)
        free_basic_memory_bitmaps();
        data = filp->private_data;
        free_all_swap_pages(data->swap);
-       if (data->frozen)
+       if (data->frozen) {
+               pm_restore_gfp_mask();
                thaw_processes();
+       }
        pm_notifier_call_chain(data->mode == O_RDONLY ?
                        PM_POST_HIBERNATION : PM_POST_RESTORE);
        atomic_inc(&snapshot_device_available);