summaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd_proc.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-04-11 12:51:40 -0400
committerJeff Garzik <jeff@garzik.org>2006-04-11 12:51:40 -0400
commit10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1 (patch)
treeeddf856286234f28cac747d20eb59d918e1bc8b5 /drivers/s390/block/dasd_proc.c
parentc2a6585296009379e0f4eff39cdcb108b457ebf2 (diff)
parenta145410dccdb44f81d3b56763ef9b6f721f4e47c (diff)
downloadop-kernel-dev-10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1.zip
op-kernel-dev-10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1.tar.gz
Merge branch 'master'
Conflicts: drivers/scsi/libata-scsi.c include/linux/libata.h
Diffstat (limited to 'drivers/s390/block/dasd_proc.c')
-rw-r--r--drivers/s390/block/dasd_proc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c
index 1aa3c26..ad23aed 100644
--- a/drivers/s390/block/dasd_proc.c
+++ b/drivers/s390/block/dasd_proc.c
@@ -294,23 +294,40 @@ out_error:
#endif /* CONFIG_DASD_PROFILE */
}
+/*
+ * Create dasd proc-fs entries.
+ * In case creation failed, cleanup and return -ENOENT.
+ */
int
dasd_proc_init(void)
{
dasd_proc_root_entry = proc_mkdir("dasd", &proc_root);
+ if (!dasd_proc_root_entry)
+ goto out_nodasd;
dasd_proc_root_entry->owner = THIS_MODULE;
dasd_devices_entry = create_proc_entry("devices",
S_IFREG | S_IRUGO | S_IWUSR,
dasd_proc_root_entry);
+ if (!dasd_devices_entry)
+ goto out_nodevices;
dasd_devices_entry->proc_fops = &dasd_devices_file_ops;
dasd_devices_entry->owner = THIS_MODULE;
dasd_statistics_entry = create_proc_entry("statistics",
S_IFREG | S_IRUGO | S_IWUSR,
dasd_proc_root_entry);
+ if (!dasd_statistics_entry)
+ goto out_nostatistics;
dasd_statistics_entry->read_proc = dasd_statistics_read;
dasd_statistics_entry->write_proc = dasd_statistics_write;
dasd_statistics_entry->owner = THIS_MODULE;
return 0;
+
+ out_nostatistics:
+ remove_proc_entry("devices", dasd_proc_root_entry);
+ out_nodevices:
+ remove_proc_entry("dasd", &proc_root);
+ out_nodasd:
+ return -ENOENT;
}
void
OpenPOWER on IntegriCloud