patch-2.1.127 linux/mm/swapfile.c
Next file: linux/mm/vmscan.c
Previous file: linux/mm/slab.c
Back to the patch index
Back to the overall index
-  Lines: 19
-  Date:
Thu Oct 29 09:38:24 1998
-  Orig file: 
v2.1.126/linux/mm/swapfile.c
-  Orig date: 
Wed Sep  9 14:51:13 1998
diff -u --recursive --new-file v2.1.126/linux/mm/swapfile.c linux/mm/swapfile.c
@@ -559,8 +559,17 @@
 			if (p->swap_device == swap_info[i].swap_device)
 				goto bad_swap;
 		}
-	} else if (!S_ISREG(swap_dentry->d_inode->i_mode))
+	} else if (S_ISREG(swap_dentry->d_inode->i_mode)) {
+		error = -EBUSY;
+		for (i = 0 ; i < nr_swapfiles ; i++) {
+			if (i == type)
+				continue;
+			if (p->swap_file == swap_info[i].swap_file)
+				goto bad_swap;
+		}
+	} else
 		goto bad_swap;
+
 	swap_header = (void *) __get_free_page(GFP_USER);
 	if (!swap_header) {
 		printk("Unable to start swapping: out of memory :-)\n");
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov