mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
[PATCH] s390: dasd extended error reporting
The DASD extended error reporting is a facility that allows to get detailed information about certain problems in the DASD I/O. This information can be used to implement fail-over applications that can recover these problems. Signed-off-by: Stefan Weinhuber <wein@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
554a826e0a
commit
20c644680a
@@ -715,10 +715,51 @@ dasd_discipline_show(struct device *dev, struct device_attribute *attr, char *bu
|
||||
|
||||
static DEVICE_ATTR(discipline, 0444, dasd_discipline_show, NULL);
|
||||
|
||||
/*
|
||||
* extended error-reporting
|
||||
*/
|
||||
static ssize_t
|
||||
dasd_eer_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct dasd_devmap *devmap;
|
||||
int eer_flag;
|
||||
|
||||
devmap = dasd_find_busid(dev->bus_id);
|
||||
if (!IS_ERR(devmap) && devmap->device)
|
||||
eer_flag = dasd_eer_enabled(devmap->device);
|
||||
else
|
||||
eer_flag = 0;
|
||||
return snprintf(buf, PAGE_SIZE, eer_flag ? "1\n" : "0\n");
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
dasd_eer_store(struct device *dev, struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct dasd_devmap *devmap;
|
||||
int rc;
|
||||
|
||||
devmap = dasd_devmap_from_cdev(to_ccwdev(dev));
|
||||
if (IS_ERR(devmap))
|
||||
return PTR_ERR(devmap);
|
||||
if (!devmap->device)
|
||||
return count;
|
||||
if (buf[0] == '1') {
|
||||
rc = dasd_eer_enable(devmap->device);
|
||||
if (rc)
|
||||
return rc;
|
||||
} else
|
||||
dasd_eer_disable(devmap->device);
|
||||
return count;
|
||||
}
|
||||
|
||||
static DEVICE_ATTR(eer_enabled, 0644, dasd_eer_show, dasd_eer_store);
|
||||
|
||||
static struct attribute * dasd_attrs[] = {
|
||||
&dev_attr_readonly.attr,
|
||||
&dev_attr_discipline.attr,
|
||||
&dev_attr_use_diag.attr,
|
||||
&dev_attr_eer_enabled.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user