From 9aa28837785c76ad1d006b1ff45ab595391e7aab Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Sat, 3 Sep 2005 15:54:33 -0700 Subject: [PATCH] --- yaml --- r: 6846 b: refs/heads/master c: 4cd3bb10ff0b21b77b5a4cd13b4bd36694e054c4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/swapfile.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a9dd5df5b2d9..cb88b48d78ca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e2244ec2efa4ee1edf391d0001d314933e2b2974 +refs/heads/master: 4cd3bb10ff0b21b77b5a4cd13b4bd36694e054c4 diff --git a/trunk/mm/swapfile.c b/trunk/mm/swapfile.c index 5ac5333f37a0..4b39e9501d44 100644 --- a/trunk/mm/swapfile.c +++ b/trunk/mm/swapfile.c @@ -1129,6 +1129,7 @@ asmlinkage long sys_swapoff(const char __user * specialfile) swap_list_unlock(); goto out_dput; } + destroy_swap_extents(p); down(&swapon_sem); swap_list_lock(); drain_mmlist(); @@ -1139,7 +1140,6 @@ asmlinkage long sys_swapoff(const char __user * specialfile) swap_map = p->swap_map; p->swap_map = NULL; p->flags = 0; - destroy_swap_extents(p); swap_device_unlock(p); swap_list_unlock(); up(&swapon_sem); @@ -1531,6 +1531,7 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags) set_blocksize(bdev, p->old_block_size); bd_release(bdev); } + destroy_swap_extents(p); bad_swap_2: swap_list_lock(); swap_map = p->swap_map; @@ -1540,7 +1541,6 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags) if (!(swap_flags & SWAP_FLAG_PREFER)) ++least_priority; swap_list_unlock(); - destroy_swap_extents(p); vfree(swap_map); if (swap_file) filp_close(swap_file, NULL);