From: Lachlan McIlroy Date: Thu, 30 Jun 2011 01:01:45 +0000 (+1000) Subject: block: initialise bd_super in bdget() X-Git-Tag: MMI-PSA29.97-13-9~18704^2~8 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=782b94cdf577b4df1feb376f372dccc28e66a771;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git block: initialise bd_super in bdget() bd_super is currently reset to NULL in kill_block_super() so we rely on previous users of the block_device object to initialise this value for the next user. This quirk was exposed on RHEL5 when a third party filesystem did not always use kill_block_super() and therefore bd_super wasn't being reset when a block_device object was recycled within the cache. This may not be a problem upstream but makes sense to be defensive. Signed-off-by: Lachlan McIlroy Reviewed-by: Eric Sandeen Signed-off-by: Al Viro --- diff --git a/fs/block_dev.c b/fs/block_dev.c index f55aad4d1611..f28680553288 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -552,6 +552,7 @@ struct block_device *bdget(dev_t dev) if (inode->i_state & I_NEW) { bdev->bd_contains = NULL; + bdev->bd_super = NULL; bdev->bd_inode = inode; bdev->bd_block_size = (1 << inode->i_blkbits); bdev->bd_part_count = 0;