aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorGerald Schaefer <gerald.schaefer@de.ibm.com>2015-01-16 12:29:04 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-01-22 06:16:04 -0500
commit5be6fdc090e156bc67b63310b65f4f54523e7b6c (patch)
treecdc9cf51dd1b3f73185a82a6a61ea542f56051b9 /drivers/s390
parent10ad34bc76dfbc49bda327a13012f6754c0c72e0 (diff)
dcssblk: issue warning when trying to save SN/EN type DCSS
The content of a DCSS of type SN or EN cannot be saved. Issue a warning when trying to save such a DCSS. Depending on the setup, this may be a user error or intended behaviour e.g. with a multi-DCSS device. Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
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 }