From a8cf452cda3935070ca272eafdbe8d6a52c694d8 Mon Sep 17 00:00:00 2001 From: Denis ChengRq Date: Mon, 1 Dec 2008 14:34:56 -0800 Subject: [PATCH] --- yaml --- r: 125007 b: refs/heads/master c: c2acf7b90821785fe812cc0aa05148e5a1f84204 h: refs/heads/master i: 125005: 4642a887666c2413dd21775f73ceb657b8f5351e 125003: 8d8bdcc9002927520acc30ffc1d65d6fae63c3c1 124999: 8e6e8242621f52b6ee4597015b3e622934dfd9c1 124991: b320c0958ebd31aed6fda4a7f492d5d8cf0496f0 v: v3 --- [refs] | 2 +- trunk/fs/block_dev.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 898e86c8c757..0b72aae5bf11 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6badd79bd002788aaec27b50a74ab69ef65ab8ee +refs/heads/master: c2acf7b90821785fe812cc0aa05148e5a1f84204 diff --git a/trunk/fs/block_dev.c b/trunk/fs/block_dev.c index 99e0ae1a4c78..349a26c10001 100644 --- a/trunk/fs/block_dev.c +++ b/trunk/fs/block_dev.c @@ -326,12 +326,13 @@ static struct file_system_type bd_type = { .kill_sb = kill_anon_super, }; -static struct vfsmount *bd_mnt __read_mostly; -struct super_block *blockdev_superblock; +struct super_block *blockdev_superblock __read_mostly; void __init bdev_cache_init(void) { int err; + struct vfsmount *bd_mnt; + bdev_cachep = kmem_cache_create("bdev_cache", sizeof(struct bdev_inode), 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| SLAB_MEM_SPREAD|SLAB_PANIC), @@ -373,7 +374,7 @@ struct block_device *bdget(dev_t dev) struct block_device *bdev; struct inode *inode; - inode = iget5_locked(bd_mnt->mnt_sb, hash(dev), + inode = iget5_locked(blockdev_superblock, hash(dev), bdev_test, bdev_set, &dev); if (!inode) @@ -463,7 +464,7 @@ void bd_forget(struct inode *inode) spin_lock(&bdev_lock); if (inode->i_bdev) { - if (inode->i_sb != blockdev_superblock) + if (!sb_is_blkdev_sb(inode->i_sb)) bdev = inode->i_bdev; __bd_forget(inode); }