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
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes...
[pandora-kernel.git]
/
drivers
/
mmc
/
card
/
block.c
diff --git
a/drivers/mmc/card/block.c
b/drivers/mmc/card/block.c
index
86dbb36
..
ebc8b9d
100644
(file)
--- a/
drivers/mmc/card/block.c
+++ b/
drivers/mmc/card/block.c
@@
-103,8
+103,10
@@
static int mmc_blk_open(struct inode *inode, struct file *filp)
check_disk_change(inode->i_bdev);
ret = 0;
check_disk_change(inode->i_bdev);
ret = 0;
- if ((filp->f_mode & FMODE_WRITE) && md->read_only)
+ if ((filp->f_mode & FMODE_WRITE) && md->read_only) {
+ mmc_blk_put(md);
ret = -EROFS;
ret = -EROFS;
+ }
}
return ret;
}
return ret;
@@
-613,14
+615,19
@@
static struct mmc_driver mmc_driver = {
static int __init mmc_blk_init(void)
{
static int __init mmc_blk_init(void)
{
- int res
= -ENOMEM
;
+ int res;
res = register_blkdev(MMC_BLOCK_MAJOR, "mmc");
if (res)
goto out;
res = register_blkdev(MMC_BLOCK_MAJOR, "mmc");
if (res)
goto out;
- return mmc_register_driver(&mmc_driver);
+ res = mmc_register_driver(&mmc_driver);
+ if (res)
+ goto out2;
+ return 0;
+ out2:
+ unregister_blkdev(MMC_BLOCK_MAJOR, "mmc");
out:
return res;
}
out:
return res;
}