Commit dae06ac4 authored by Hugh Dickins's avatar Hugh Dickins Committed by Linus Torvalds

[PATCH] swap: update swsusp use of swap_info

Aha, swsusp dips into swap_info[], better update it to swap_lock.  It's
bitflipping flags with 0xFF, so get_swap_page will allocate from only the one
chosen device: let's change that to flip SWP_WRITEOK.
Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 5d337b91
...@@ -179,9 +179,9 @@ static int swsusp_swap_check(void) /* This is called before saving image */ ...@@ -179,9 +179,9 @@ static int swsusp_swap_check(void) /* This is called before saving image */
len=strlen(resume_file); len=strlen(resume_file);
root_swap = 0xFFFF; root_swap = 0xFFFF;
swap_list_lock(); spin_lock(&swap_lock);
for (i=0; i<MAX_SWAPFILES; i++) { for (i=0; i<MAX_SWAPFILES; i++) {
if (swap_info[i].flags == 0) { if (!(swap_info[i].flags & SWP_WRITEOK)) {
swapfile_used[i]=SWAPFILE_UNUSED; swapfile_used[i]=SWAPFILE_UNUSED;
} else { } else {
if (!len) { if (!len) {
...@@ -202,7 +202,7 @@ static int swsusp_swap_check(void) /* This is called before saving image */ ...@@ -202,7 +202,7 @@ static int swsusp_swap_check(void) /* This is called before saving image */
} }
} }
} }
swap_list_unlock(); spin_unlock(&swap_lock);
return (root_swap != 0xffff) ? 0 : -ENODEV; return (root_swap != 0xffff) ? 0 : -ENODEV;
} }
...@@ -216,12 +216,12 @@ static void lock_swapdevices(void) ...@@ -216,12 +216,12 @@ static void lock_swapdevices(void)
{ {
int i; int i;
swap_list_lock(); spin_lock(&swap_lock);
for (i = 0; i< MAX_SWAPFILES; i++) for (i = 0; i< MAX_SWAPFILES; i++)
if (swapfile_used[i] == SWAPFILE_IGNORED) { if (swapfile_used[i] == SWAPFILE_IGNORED) {
swap_info[i].flags ^= 0xFF; swap_info[i].flags ^= SWP_WRITEOK;
} }
swap_list_unlock(); spin_unlock(&swap_lock);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment