diff options
| author | Hugh Dickins <hugh@veritas.com> | 2005-09-03 18:54:42 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:05:42 -0400 |
| commit | dae06ac43d56d23e50a2300d511b32a9e38cd657 (patch) | |
| tree | 62bfa95e769ec5c731f02435b49025a15c45faf4 /kernel | |
| parent | 5d337b9194b1ce3b6fd5f3cb2799455ed2f9a3d1 (diff) | |
[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: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/swsusp.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/power/swsusp.c b/kernel/power/swsusp.c index f2bc71b9fe8b..975b1648a806 100644 --- a/kernel/power/swsusp.c +++ b/kernel/power/swsusp.c | |||
| @@ -179,9 +179,9 @@ static int swsusp_swap_check(void) /* This is called before saving image */ | |||
| 179 | len=strlen(resume_file); | 179 | len=strlen(resume_file); |
| 180 | root_swap = 0xFFFF; | 180 | root_swap = 0xFFFF; |
| 181 | 181 | ||
| 182 | swap_list_lock(); | 182 | spin_lock(&swap_lock); |
| 183 | for (i=0; i<MAX_SWAPFILES; i++) { | 183 | for (i=0; i<MAX_SWAPFILES; i++) { |
| 184 | if (swap_info[i].flags == 0) { | 184 | if (!(swap_info[i].flags & SWP_WRITEOK)) { |
| 185 | swapfile_used[i]=SWAPFILE_UNUSED; | 185 | swapfile_used[i]=SWAPFILE_UNUSED; |
| 186 | } else { | 186 | } else { |
| 187 | if (!len) { | 187 | if (!len) { |
| @@ -202,7 +202,7 @@ static int swsusp_swap_check(void) /* This is called before saving image */ | |||
| 202 | } | 202 | } |
| 203 | } | 203 | } |
| 204 | } | 204 | } |
| 205 | swap_list_unlock(); | 205 | spin_unlock(&swap_lock); |
| 206 | return (root_swap != 0xffff) ? 0 : -ENODEV; | 206 | return (root_swap != 0xffff) ? 0 : -ENODEV; |
| 207 | } | 207 | } |
| 208 | 208 | ||
| @@ -216,12 +216,12 @@ static void lock_swapdevices(void) | |||
| 216 | { | 216 | { |
| 217 | int i; | 217 | int i; |
| 218 | 218 | ||
| 219 | swap_list_lock(); | 219 | spin_lock(&swap_lock); |
| 220 | for (i = 0; i< MAX_SWAPFILES; i++) | 220 | for (i = 0; i< MAX_SWAPFILES; i++) |
| 221 | if (swapfile_used[i] == SWAPFILE_IGNORED) { | 221 | if (swapfile_used[i] == SWAPFILE_IGNORED) { |
| 222 | swap_info[i].flags ^= 0xFF; | 222 | swap_info[i].flags ^= SWP_WRITEOK; |
| 223 | } | 223 | } |
| 224 | swap_list_unlock(); | 224 | spin_unlock(&swap_lock); |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | /** | 227 | /** |
