diff options
Diffstat (limited to 'fs/ext3/super.c')
| -rw-r--r-- | fs/ext3/super.c | 12 | 
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 2fedaf8b501..23e7513dba9 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -347,7 +347,7 @@ static struct block_device *ext3_blkdev_get(dev_t dev, struct super_block *sb)  	struct block_device *bdev;  	char b[BDEVNAME_SIZE]; -	bdev = open_by_devnum(dev, FMODE_READ|FMODE_WRITE); +	bdev = open_by_devnum(dev, FMODE_READ|FMODE_WRITE|FMODE_EXCL, sb);  	if (IS_ERR(bdev))  		goto fail;  	return bdev; @@ -364,8 +364,7 @@ fail:   */  static int ext3_blkdev_put(struct block_device *bdev)  { -	bd_release(bdev); -	return blkdev_put(bdev, FMODE_READ|FMODE_WRITE); +	return blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);  }  static int ext3_blkdev_remove(struct ext3_sb_info *sbi) @@ -2136,13 +2135,6 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb,  	if (bdev == NULL)  		return NULL; -	if (bd_claim(bdev, sb)) { -		ext3_msg(sb, KERN_ERR, -			"error: failed to claim external journal device"); -		blkdev_put(bdev, FMODE_READ|FMODE_WRITE); -		return NULL; -	} -  	blocksize = sb->s_blocksize;  	hblock = bdev_logical_block_size(bdev);  	if (blocksize < hblock) {  |