From: Neil Brown <neilb@cse.unsw.edu.au>
Change ext3 to run bd_claim() against external journal devices. It is
significant only for those who have ext3 journals on a separate device, and
gets exclusive access to that device.
*/
static int ext3_blkdev_put(struct block_device *bdev)
{
+ bd_release(bdev);
return blkdev_put(bdev, BDEV_FS);
}
if (bdev == NULL)
return NULL;
+ if (bd_claim(bdev, sb)) {
+ printk(KERN_ERR
+ "EXT3: failed to claim external journal device.\n");
+ blkdev_put(bdev, BDEV_FS);
+ return NULL;
+ }
+
blocksize = sb->s_blocksize;
hblock = bdev_hardsect_size(bdev);
if (blocksize < hblock) {