mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
9f9d53e5bd
The function dasd_ro_store() calls set_disk_ro() to set the device in question read-only. Since set_disk_ro() might sleep, we can't call it while holding a lock. However, we also can't simply check if the device, block, and gdp references are valid before we call set_disk_ro() because an offline processing might have been started in the meanwhile which will destroy those references. In order to reliably call set_disk_ro() we have to ensure several things: - Still check validity of the mentioned references but additionally check if offline processing is running and bail out accordingly. Also, do this while holding the device lock. - To ensure that the block device is still safe after the lock, increase the open_count while still holding the device lock. Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> |
||
---|---|---|
.. | ||
dasd_3990_erp.c | ||
dasd_alias.c | ||
dasd_devmap.c | ||
dasd_diag.c | ||
dasd_diag.h | ||
dasd_eckd.c | ||
dasd_eckd.h | ||
dasd_eer.c | ||
dasd_erp.c | ||
dasd_fba.c | ||
dasd_fba.h | ||
dasd_genhd.c | ||
dasd_int.h | ||
dasd_ioctl.c | ||
dasd_proc.c | ||
dasd.c | ||
dcssblk.c | ||
Kconfig | ||
Makefile | ||
scm_blk_cluster.c | ||
scm_blk.c | ||
scm_blk.h | ||
scm_drv.c | ||
xpram.c |