blob: afe0d4dd6a812f00508561bd4f37e5227d1642fe [file] [log] [blame]
From stable-bounces@linux.kernel.org Tue Aug 15 17:20:06 2006
Message-Id: <200608160019.k7G0JO0N010906@shell0.pdx.osdl.net>
To: mm-commits@vger.kernel.org
From: "Rafael J. Wysocki" <rjw@sisk.pl>
Date: Tue, 15 Aug 2006 17:19:24 -0700
Cc: rjw@sisk.pl, hugh@veritas.com, pavel@suse.cz, stable@kernel.org
Subject: swsusp: Fix swap_type_of
From: "Rafael J. Wysocki" <rjw@sisk.pl>
There is a bug in mm/swapfile.c#swap_type_of() that makes swsusp only be
able to use the first active swap partition as the resume device. Fix it.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Hugh Dickins <hugh@veritas.com>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
mm/swapfile.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- linux-2.6.17.9.orig/mm/swapfile.c
+++ linux-2.6.17.9/mm/swapfile.c
@@ -440,11 +440,12 @@ int swap_type_of(dev_t device)
if (!(swap_info[i].flags & SWP_WRITEOK))
continue;
+
if (!device) {
spin_unlock(&swap_lock);
return i;
}
- inode = swap_info->swap_file->f_dentry->d_inode;
+ inode = swap_info[i].swap_file->f_dentry->d_inode;
if (S_ISBLK(inode->i_mode) &&
device == MKDEV(imajor(inode), iminor(inode))) {
spin_unlock(&swap_lock);