PM: hibernate: fix load_image_and_restore() error path
authorYe Bin <yebin10@huawei.com>
Wed, 9 Feb 2022 11:29:51 +0000 (19:29 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 16 Feb 2022 18:47:52 +0000 (19:47 +0100)
As 'swsusp_check' open 'hib_resume_bdev', if call 'create_basic_memory_bitmaps'
failed, we need to close 'hib_resume_bdev' in 'load_image_and_restore' function.

Signed-off-by: Ye Bin <yebin10@huawei.com>
[ rjw: Subject ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
kernel/power/hibernate.c

index e6af502..49d1df0 100644 (file)
@@ -689,8 +689,10 @@ static int load_image_and_restore(void)
 
        lock_device_hotplug();
        error = create_basic_memory_bitmaps();
-       if (error)
+       if (error) {
+               swsusp_close(FMODE_READ | FMODE_EXCL);
                goto Unlock;
+       }
 
        error = swsusp_read(&flags);
        swsusp_close(FMODE_READ | FMODE_EXCL);