[PATCH] propagate mode through swsusp_close()
Al Viro [Mon, 8 Oct 2007 17:21:10 +0000 (13:21 -0400)]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

kernel/power/disk.c
kernel/power/power.h
kernel/power/swap.c

index 331f983..c9d7408 100644 (file)
@@ -651,7 +651,7 @@ static int software_resume(void)
        pr_debug("PM: Preparing processes for restore.\n");
        error = prepare_processes();
        if (error) {
-               swsusp_close();
+               swsusp_close(FMODE_READ);
                goto Done;
        }
 
index acc0c10..46b5ec7 100644 (file)
@@ -153,7 +153,7 @@ extern int swsusp_shrink_memory(void);
 extern void swsusp_free(void);
 extern int swsusp_read(unsigned int *flags_p);
 extern int swsusp_write(unsigned int flags);
-extern void swsusp_close(void);
+extern void swsusp_close(fmode_t);
 
 struct timeval;
 /* kernel/power/swsusp.c */
index 7b9d611..178b001 100644 (file)
@@ -426,7 +426,7 @@ int swsusp_write(unsigned int flags)
 
        release_swap_writer(&handle);
  out:
-       swsusp_close();
+       swsusp_close(FMODE_WRITE);
        return error;
 }
 
@@ -626,14 +626,14 @@ int swsusp_check(void)
  *     swsusp_close - close swap device.
  */
 
-void swsusp_close(void)
+void swsusp_close(fmode_t mode)
 {
        if (IS_ERR(resume_bdev)) {
                pr_debug("PM: Image device not initialised\n");
                return;
        }
 
-       blkdev_put(resume_bdev, 0); /* move up */
+       blkdev_put(resume_bdev, mode); /* move up */
 }
 
 static int swsusp_header_init(void)