git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xen-blkfront: disable barrier/flush write support
[pandora-kernel.git]
/
drivers
/
block
/
z2ram.c
diff --git
a/drivers/block/z2ram.c
b/drivers/block/z2ram.c
index
9114654
..
d75b2bb
100644
(file)
--- a/
drivers/block/z2ram.c
+++ b/
drivers/block/z2ram.c
@@
-33,6
+33,7
@@
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/bitops.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/bitops.h>
+#include <linux/smp_lock.h>
#include <linux/slab.h>
#include <asm/setup.h>
#include <linux/slab.h>
#include <asm/setup.h>
@@
-153,6
+154,7
@@
static int z2_open(struct block_device *bdev, fmode_t mode)
device = MINOR(bdev->bd_dev);
device = MINOR(bdev->bd_dev);
+ lock_kernel();
if ( current_device != -1 && current_device != device )
{
rc = -EBUSY;
if ( current_device != -1 && current_device != device )
{
rc = -EBUSY;
@@
-294,20
+296,25
@@
static int z2_open(struct block_device *bdev, fmode_t mode)
set_capacity(z2ram_gendisk, z2ram_size >> 9);
}
set_capacity(z2ram_gendisk, z2ram_size >> 9);
}
+ unlock_kernel();
return 0;
err_out_kfree:
kfree(z2ram_map);
err_out:
return 0;
err_out_kfree:
kfree(z2ram_map);
err_out:
+ unlock_kernel();
return rc;
}
static int
z2_release(struct gendisk *disk, fmode_t mode)
{
return rc;
}
static int
z2_release(struct gendisk *disk, fmode_t mode)
{
- if ( current_device == -1 )
- return 0;
-
+ lock_kernel();
+ if ( current_device == -1 ) {
+ unlock_kernel();
+ return 0;
+ }
+ unlock_kernel();
/*
* FIXME: unmap memory
*/
/*
* FIXME: unmap memory
*/