• R
    nbd: replace kill_bdev() with __invalidate_device() · abbbdf12
    Ratna Manoj Bolla 提交于
    When a filesystem is mounted on a nbd device and on a disconnect, because
    of kill_bdev(), and resetting bdev size to zero, buffer_head mappings are
    getting destroyed under mounted filesystem.
    
    After a bdev size reset(i.e bdev->bd_inode->i_size = 0) on a disconnect,
    followed by a sys_umount(),
            generic_shutdown_super()->...
            ->__sync_blockdev()->...
            -blkdev_writepages()->...
            ->do_invalidatepage()->...
            -discard_buffer()   is discarding superblock buffer_head assumed
    to be in mapped state by ext4_commit_super().
    
    [mlin: ported to 4.11-rc2]
    Signed-off-by: Ratna Manoj Bolla <manoj.br@gmail.com
    Signed-off-by: NJosef Bacik <jbacik@fb.com>
    Signed-off-by: NJens Axboe <axboe@fb.com>
    abbbdf12
nbd.c 28.9 KB