dcssblk.c (2b1333b80885b896807ffb6ccf4bc21d29aa65e0) dcssblk.c (8b9ab62662048a3274361c7e5f64037c2c133e2c)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dcssblk.c -- the S/390 block driver for dcss memory
4 *
5 * Authors: Carsten Otte, Stefan Weinhuber, Gerald Schaefer
6 */
7
8#define KMSG_COMPONENT "dcssblk"

--- 400 unchanged lines hidden (view full) ---

409 if (entry != temp)
410 segment_unload(entry->segment_name);
411 }
412 list_del(&dev_info->lh);
413
414 kill_dax(dev_info->dax_dev);
415 put_dax(dev_info->dax_dev);
416 del_gendisk(dev_info->gd);
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dcssblk.c -- the S/390 block driver for dcss memory
4 *
5 * Authors: Carsten Otte, Stefan Weinhuber, Gerald Schaefer
6 */
7
8#define KMSG_COMPONENT "dcssblk"

--- 400 unchanged lines hidden (view full) ---

409 if (entry != temp)
410 segment_unload(entry->segment_name);
411 }
412 list_del(&dev_info->lh);
413
414 kill_dax(dev_info->dax_dev);
415 put_dax(dev_info->dax_dev);
416 del_gendisk(dev_info->gd);
417 blk_cleanup_disk(dev_info->gd);
417 put_disk(dev_info->gd);
418 up_write(&dcssblk_devices_sem);
419
420 if (device_remove_file_self(dev, attr)) {
421 device_unregister(dev);
422 put_device(dev);
423 }
424 return rc;
425out:

--- 281 unchanged lines hidden (view full) ---

707out_dax_host:
708 dax_remove_host(dev_info->gd);
709out_dax:
710 put_device(&dev_info->dev);
711 kill_dax(dev_info->dax_dev);
712 put_dax(dev_info->dax_dev);
713put_dev:
714 list_del(&dev_info->lh);
418 up_write(&dcssblk_devices_sem);
419
420 if (device_remove_file_self(dev, attr)) {
421 device_unregister(dev);
422 put_device(dev);
423 }
424 return rc;
425out:

--- 281 unchanged lines hidden (view full) ---

707out_dax_host:
708 dax_remove_host(dev_info->gd);
709out_dax:
710 put_device(&dev_info->dev);
711 kill_dax(dev_info->dax_dev);
712 put_dax(dev_info->dax_dev);
713put_dev:
714 list_del(&dev_info->lh);
715 blk_cleanup_disk(dev_info->gd);
715 put_disk(dev_info->gd);
716 list_for_each_entry(seg_info, &dev_info->seg_list, lh) {
717 segment_unload(seg_info->segment_name);
718 }
719 put_device(&dev_info->dev);
720 up_write(&dcssblk_devices_sem);
721 goto out;
722dev_list_del:
723 list_del(&dev_info->lh);
724release_gd:
716 list_for_each_entry(seg_info, &dev_info->seg_list, lh) {
717 segment_unload(seg_info->segment_name);
718 }
719 put_device(&dev_info->dev);
720 up_write(&dcssblk_devices_sem);
721 goto out;
722dev_list_del:
723 list_del(&dev_info->lh);
724release_gd:
725 blk_cleanup_disk(dev_info->gd);
725 put_disk(dev_info->gd);
726 up_write(&dcssblk_devices_sem);
727seg_list_del:
728 if (dev_info == NULL)
729 goto out;
730 list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) {
731 list_del(&seg_info->lh);
732 segment_unload(seg_info->segment_name);
733 kfree(seg_info);

--- 51 unchanged lines hidden (view full) ---

785 rc = -EBUSY;
786 goto out_buf;
787 }
788
789 list_del(&dev_info->lh);
790 kill_dax(dev_info->dax_dev);
791 put_dax(dev_info->dax_dev);
792 del_gendisk(dev_info->gd);
726 up_write(&dcssblk_devices_sem);
727seg_list_del:
728 if (dev_info == NULL)
729 goto out;
730 list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) {
731 list_del(&seg_info->lh);
732 segment_unload(seg_info->segment_name);
733 kfree(seg_info);

--- 51 unchanged lines hidden (view full) ---

785 rc = -EBUSY;
786 goto out_buf;
787 }
788
789 list_del(&dev_info->lh);
790 kill_dax(dev_info->dax_dev);
791 put_dax(dev_info->dax_dev);
792 del_gendisk(dev_info->gd);
793 blk_cleanup_disk(dev_info->gd);
793 put_disk(dev_info->gd);
794
795 /* unload all related segments */
796 list_for_each_entry(entry, &dev_info->seg_list, lh)
797 segment_unload(entry->segment_name);
798
799 up_write(&dcssblk_devices_sem);
800
801 device_unregister(&dev_info->dev);

--- 233 unchanged lines hidden ---
794
795 /* unload all related segments */
796 list_for_each_entry(entry, &dev_info->seg_list, lh)
797 segment_unload(entry->segment_name);
798
799 up_write(&dcssblk_devices_sem);
800
801 device_unregister(&dev_info->dev);

--- 233 unchanged lines hidden ---