patch-2.4.17 linux/mm/swapfile.c
Next file: linux/mm/vmalloc.c
Previous file: linux/mm/slab.c
Back to the patch index
Back to the overall index
- Lines: 21
- Date:
Fri Dec 21 16:40:33 2001
- Orig file:
linux-2.4.16/mm/swapfile.c
- Orig date:
Sun Nov 4 01:05:25 2001
diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.16/mm/swapfile.c linux/mm/swapfile.c
@@ -917,16 +917,19 @@
if (S_ISBLK(swap_inode->i_mode)) {
kdev_t dev = swap_inode->i_rdev;
struct block_device_operations *bdops;
+ devfs_handle_t de;
p->swap_device = dev;
set_blocksize(dev, PAGE_SIZE);
bd_acquire(swap_inode);
bdev = swap_inode->i_bdev;
- bdops = devfs_get_ops(devfs_get_handle_from_inode(swap_inode));
+ de = devfs_get_handle_from_inode(swap_inode);
+ bdops = devfs_get_ops(de); /* Increments module use count */
if (bdops) bdev->bd_op = bdops;
error = blkdev_get(bdev, FMODE_READ|FMODE_WRITE, 0, BDEV_SWAP);
+ devfs_put_ops(de);/*Decrement module use count now we're safe*/
if (error)
goto bad_swap_2;
set_blocksize(dev, PAGE_SIZE);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)