Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -179,9 +179,9 @@ static int swsusp_swap_check(void) /* This is called before saving image */
	len=strlen(resume_file);
	root_swap = 0xFFFF;

	swap_list_lock();
	spin_lock(&swap_lock);
	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;
		} else {
			if (!len) {
@@ -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;
}

@@ -216,12 +216,12 @@ static void lock_swapdevices(void)
{
	int i;

	swap_list_lock();
	spin_lock(&swap_lock);
	for (i = 0; i< MAX_SWAPFILES; i++)
		if (swapfile_used[i] == SWAPFILE_IGNORED) {
			swap_info[i].flags ^= 0xFF;
			swap_info[i].flags ^= SWP_WRITEOK;
		}
	swap_list_unlock();
	spin_unlock(&swap_lock);
}

/**