git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rpcgss: krb5: miscellaneous cleanup
[safe/jmp/linux-2.6]
/
mm
/
swapfile.c
diff --git
a/mm/swapfile.c
b/mm/swapfile.c
index
fbceed6
..
a15def6
100644
(file)
--- a/
mm/swapfile.c
+++ b/
mm/swapfile.c
@@
-5,7
+5,6
@@
* Swap reorganised 29.12.95, Stephen Tweedie
*/
* Swap reorganised 29.12.95, Stephen Tweedie
*/
-#include <linux/config.h>
#include <linux/mm.h>
#include <linux/hugetlb.h>
#include <linux/mman.h>
#include <linux/mm.h>
#include <linux/hugetlb.h>
#include <linux/mman.h>
@@
-443,11
+442,12
@@
int swap_type_of(dev_t device)
if (!(swap_info[i].flags & SWP_WRITEOK))
continue;
if (!(swap_info[i].flags & SWP_WRITEOK))
continue;
+
if (!device) {
spin_unlock(&swap_lock);
return i;
}
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);
if (S_ISBLK(inode->i_mode) &&
device == MKDEV(imajor(inode), iminor(inode))) {
spin_unlock(&swap_lock);
@@
-772,10
+772,8
@@
static int try_to_unuse(unsigned int type)
while (*swap_map > 1 && !retval &&
(p = p->next) != &start_mm->mmlist) {
mm = list_entry(p, struct mm_struct, mmlist);
while (*swap_map > 1 && !retval &&
(p = p->next) != &start_mm->mmlist) {
mm = list_entry(p, struct mm_struct, mmlist);
- if (atomic_inc_return(&mm->mm_users) == 1) {
- atomic_dec(&mm->mm_users);
+ if (!atomic_inc_not_zero(&mm->mm_users))
continue;
continue;
- }
spin_unlock(&mmlist_lock);
mmput(prev_mm);
prev_mm = mm;
spin_unlock(&mmlist_lock);
mmput(prev_mm);
prev_mm = mm;
@@
-1479,8
+1477,7
@@
asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
error = -EINVAL;
goto bad_swap;
}
error = -EINVAL;
goto bad_swap;
}
- page = read_cache_page(mapping, 0,
- (filler_t *)mapping->a_ops->readpage, swap_file);
+ page = read_mapping_page(mapping, 0, swap_file);
if (IS_ERR(page)) {
error = PTR_ERR(page);
goto bad_swap;
if (IS_ERR(page)) {
error = PTR_ERR(page);
goto bad_swap;
@@
-1726,13
+1723,14
@@
get_swap_info_struct(unsigned type)
*/
int valid_swaphandles(swp_entry_t entry, unsigned long *offset)
{
*/
int valid_swaphandles(swp_entry_t entry, unsigned long *offset)
{
- int ret = 0, i = 1 << page_cluster;
+ int our_page_cluster = page_cluster;
+ int ret = 0, i = 1 << our_page_cluster;
unsigned long toff;
struct swap_info_struct *swapdev = swp_type(entry) + swap_info;
unsigned long toff;
struct swap_info_struct *swapdev = swp_type(entry) + swap_info;
- if (!
page_cluster)
/* no readahead */
+ if (!
our_page_cluster)
/* no readahead */
return 0;
return 0;
- toff = (swp_offset(entry) >>
page_cluster) <<
page_cluster;
+ toff = (swp_offset(entry) >>
our_page_cluster) << our_
page_cluster;
if (!toff) /* first page is swap header */
toff++, i--;
*offset = toff;
if (!toff) /* first page is swap header */
toff++, i--;
*offset = toff;