dasd: also call __invalidate_device when setting the device offline

Don't just write out the data, but also invalidate all caches when setting
the device offline.  Stop canceling the offlining when writeback fails
as there is no way to recover from that anyway.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Message-Id: <20230811100828.1897174-12-hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Christoph Hellwig 2023-08-11 12:08:22 +02:00 committed by Christian Brauner
parent 2c0326c587
commit 2527fd3877
1 changed files with 2 additions and 3 deletions

View File

@ -3627,9 +3627,8 @@ int dasd_generic_set_offline(struct ccw_device *cdev)
* empty
*/
if (device->block) {
rc = fsync_bdev(device->block->bdev);
if (rc != 0)
goto interrupted;
fsync_bdev(device->block->bdev);
__invalidate_device(device->block->bdev, true);
}
dasd_schedule_device_bh(device);
rc = wait_event_interruptible(shutdown_waitq,