diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2006-08-27 04:23:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-27 14:01:28 -0400 |
commit | b6b5bce3571e496504a89ee575d32101e0a98b93 (patch) | |
tree | 283d4da88216071813b25d82c6e49a5ab71948f9 /mm | |
parent | c06aad854fdb9da38fcc22dccfe9d72919453e43 (diff) |
[PATCH] swsusp: Fix swap_type_of
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>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/swapfile.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index e70d6c6d6fee..f1f5ec783781 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c | |||
@@ -442,11 +442,12 @@ int swap_type_of(dev_t device) | |||
442 | 442 | ||
443 | if (!(swap_info[i].flags & SWP_WRITEOK)) | 443 | if (!(swap_info[i].flags & SWP_WRITEOK)) |
444 | continue; | 444 | continue; |
445 | |||
445 | if (!device) { | 446 | if (!device) { |
446 | spin_unlock(&swap_lock); | 447 | spin_unlock(&swap_lock); |
447 | return i; | 448 | return i; |
448 | } | 449 | } |
449 | inode = swap_info->swap_file->f_dentry->d_inode; | 450 | inode = swap_info[i].swap_file->f_dentry->d_inode; |
450 | if (S_ISBLK(inode->i_mode) && | 451 | if (S_ISBLK(inode->i_mode) && |
451 | device == MKDEV(imajor(inode), iminor(inode))) { | 452 | device == MKDEV(imajor(inode), iminor(inode))) { |
452 | spin_unlock(&swap_lock); | 453 | spin_unlock(&swap_lock); |