aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/block/dcssblk.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index b550c8c8d010..7f900229404d 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -438,7 +438,13 @@ dcssblk_save_store(struct device *dev, struct device_attribute *attr, const char
438 pr_info("All DCSSs that map to device %s are " 438 pr_info("All DCSSs that map to device %s are "
439 "saved\n", dev_info->segment_name); 439 "saved\n", dev_info->segment_name);
440 list_for_each_entry(entry, &dev_info->seg_list, lh) { 440 list_for_each_entry(entry, &dev_info->seg_list, lh) {
441 segment_save(entry->segment_name); 441 if (entry->segment_type == SEG_TYPE_EN ||
442 entry->segment_type == SEG_TYPE_SN)
443 pr_warn("DCSS %s is of type SN or EN"
444 " and cannot be saved\n",
445 entry->segment_name);
446 else
447 segment_save(entry->segment_name);
442 } 448 }
443 } else { 449 } else {
444 // device is busy => we save it when it becomes 450 // device is busy => we save it when it becomes
@@ -797,7 +803,12 @@ dcssblk_release(struct gendisk *disk, fmode_t mode)
797 pr_info("Device %s has become idle and is being saved " 803 pr_info("Device %s has become idle and is being saved "
798 "now\n", dev_info->segment_name); 804 "now\n", dev_info->segment_name);
799 list_for_each_entry(entry, &dev_info->seg_list, lh) { 805 list_for_each_entry(entry, &dev_info->seg_list, lh) {
800 segment_save(entry->segment_name); 806 if (entry->segment_type == SEG_TYPE_EN ||
807 entry->segment_type == SEG_TYPE_SN)
808 pr_warn("DCSS %s is of type SN or EN and cannot"
809 " be saved\n", entry->segment_name);
810 else
811 segment_save(entry->segment_name);
801 } 812 }
802 dev_info->save_pending = 0; 813 dev_info->save_pending = 0;
803 } 814 }