|
@@ -1625,6 +1625,10 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
|
|
|
spin_lock(&swap_lock);
|
|
|
if (p->prio < 0)
|
|
|
p->prio = --least_priority;
|
|
|
+ p->flags |= SWP_WRITEOK;
|
|
|
+ nr_swap_pages += p->pages;
|
|
|
+ total_swap_pages += p->pages;
|
|
|
+
|
|
|
prev = -1;
|
|
|
for (i = swap_list.head; i >= 0; i = swap_info[i]->next) {
|
|
|
if (p->prio >= swap_info[i]->prio)
|
|
@@ -1636,9 +1640,6 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
|
|
|
swap_list.head = swap_list.next = type;
|
|
|
else
|
|
|
swap_info[prev]->next = type;
|
|
|
- nr_swap_pages += p->pages;
|
|
|
- total_swap_pages += p->pages;
|
|
|
- p->flags |= SWP_WRITEOK;
|
|
|
spin_unlock(&swap_lock);
|
|
|
goto out_dput;
|
|
|
}
|