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 <lmcilroy@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c4ae0c6545
commit
782b94cdf5
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue