From: Neil Brown 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. fs/ext3/super.c | 8 ++++++++ 1 files changed, 8 insertions(+) diff -puN fs/ext3/super.c~ext3-external-journal-bd_claim fs/ext3/super.c --- 25/fs/ext3/super.c~ext3-external-journal-bd_claim 2003-11-20 19:38:43.000000000 -0800 +++ 25-akpm/fs/ext3/super.c 2003-11-20 19:38:43.000000000 -0800 @@ -340,6 +340,7 @@ fail: */ static int ext3_blkdev_put(struct block_device *bdev) { + bd_release(bdev); return blkdev_put(bdev, BDEV_FS); } @@ -1480,6 +1481,13 @@ static journal_t *ext3_get_dev_journal(s 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) { _