Linux-kernel mailing list archive 1998-10,: Bug/patch for swapon system call

# Bug/patch for swapon system call

Paul Gortmaker (paul@rasty.ph.unimelb.edu.au)
Mon, 9 Mar 1998 22:37:55 +1100 (EST)

- Messages sorted by: [ date ][ thread ][ subject ][ author ]
- Next message: Paul Gortmaker: "Multi-floppy ramdisk support patch"
- Previous message: Mike Jagdis: "Re: [PATCH] Cyrix setup"
- Next in thread: Paul Gortmaker: "Re: Bug/patch for swapon system call"
- Reply: Paul Gortmaker: "Re: Bug/patch for swapon system call"

Needless to say, this is a Bad Thing(tm).

------------------------------------------------------------------
# cat /proc/swaps
Filename Type Size Used Priority
# swapon ./swap
# cat /proc/swaps
Filename Type Size Used Priority
/mnt/tmp/swap file 1020 0 -9
/mnt/tmp/swap file 1020 0 -10
#
-------------------------------------------------------------------

I got bitten by this since some distributions do 2 "swapon -a" during
boot. Once it touches the lower priority one, it obviously stomps all
over the 1st usage, and when it tries to swap back in stuff from the
1st one...

Problem is that the EBUSY test is mistakenly included in the S_ISBLK
code, so swapfiles slip through. Patch below. (2.1.89)

Paul.

--- linux/mm/swapfile.c~ Mon Mar 9 11:19:57 1998
+++ linux/mm/swapfile.c Mon Mar 9 11:20:47 1998
@@ -534,15 +534,15 @@
(blk_size[MAJOR(p->swap_device)] &&
!blk_size[MAJOR(p->swap_device)][MINOR(p->swap_device)]))
goto bad_swap;
- error = -EBUSY;
- for (i = 0 ; i < nr_swapfiles ; i++) {
- if (i == type)
- continue;
- if (p->swap_device == swap_info[i].swap_device)
- goto bad_swap;
- }
} else if (!S_ISREG(swap_dentry->d_inode->i_mode))
goto bad_swap;
+ error = -EBUSY;
+ for (i = 0 ; i < nr_swapfiles ; i++) {
+ if (i == type)
+ continue;
+ if (p->swap_device == swap_info[i].swap_device)
+ goto bad_swap;
+ }
avail_map = (unsigned char *) get_free_page(GFP_USER);
if (!avail_map) {
printk("Unable to start swapping: out of memory :-)\n");

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

- Next message: Paul Gortmaker: "Multi-floppy ramdisk support patch"
- Previous message: Mike Jagdis: "Re: [PATCH] Cyrix setup"
- Next in thread: Paul Gortmaker: "Re: Bug/patch for swapon system call"
- Reply: Paul Gortmaker: "Re: Bug/patch for swapon system call"