Commit d27e84a3 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman Committed by Jens Axboe

block: drbd: no need to check return value of debugfs_create functions

When calling debugfs functions, there is no need to ever check the
return value.  The function can work or not, but the code logic should
never do something different based on this.

Cc: Philipp Reisner <philipp.reisner@linbit.com>
Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: drbd-dev@lists.linbit.com
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 3a211b71
...@@ -465,35 +465,20 @@ static const struct file_operations in_flight_summary_fops = { ...@@ -465,35 +465,20 @@ static const struct file_operations in_flight_summary_fops = {
void drbd_debugfs_resource_add(struct drbd_resource *resource) void drbd_debugfs_resource_add(struct drbd_resource *resource)
{ {
struct dentry *dentry; struct dentry *dentry;
if (!drbd_debugfs_resources)
return;
dentry = debugfs_create_dir(resource->name, drbd_debugfs_resources); dentry = debugfs_create_dir(resource->name, drbd_debugfs_resources);
if (IS_ERR_OR_NULL(dentry))
goto fail;
resource->debugfs_res = dentry; resource->debugfs_res = dentry;
dentry = debugfs_create_dir("volumes", resource->debugfs_res); dentry = debugfs_create_dir("volumes", resource->debugfs_res);
if (IS_ERR_OR_NULL(dentry))
goto fail;
resource->debugfs_res_volumes = dentry; resource->debugfs_res_volumes = dentry;
dentry = debugfs_create_dir("connections", resource->debugfs_res); dentry = debugfs_create_dir("connections", resource->debugfs_res);
if (IS_ERR_OR_NULL(dentry))
goto fail;
resource->debugfs_res_connections = dentry; resource->debugfs_res_connections = dentry;
dentry = debugfs_create_file("in_flight_summary", 0440, dentry = debugfs_create_file("in_flight_summary", 0440,
resource->debugfs_res, resource, resource->debugfs_res, resource,
&in_flight_summary_fops); &in_flight_summary_fops);
if (IS_ERR_OR_NULL(dentry))
goto fail;
resource->debugfs_res_in_flight_summary = dentry; resource->debugfs_res_in_flight_summary = dentry;
return;
fail:
drbd_debugfs_resource_cleanup(resource);
drbd_err(resource, "failed to create debugfs dentry\n");
} }
static void drbd_debugfs_remove(struct dentry **dp) static void drbd_debugfs_remove(struct dentry **dp)
...@@ -636,35 +621,22 @@ void drbd_debugfs_connection_add(struct drbd_connection *connection) ...@@ -636,35 +621,22 @@ void drbd_debugfs_connection_add(struct drbd_connection *connection)
{ {
struct dentry *conns_dir = connection->resource->debugfs_res_connections; struct dentry *conns_dir = connection->resource->debugfs_res_connections;
struct dentry *dentry; struct dentry *dentry;
if (!conns_dir)
return;
/* Once we enable mutliple peers, /* Once we enable mutliple peers,
* these connections will have descriptive names. * these connections will have descriptive names.
* For now, it is just the one connection to the (only) "peer". */ * For now, it is just the one connection to the (only) "peer". */
dentry = debugfs_create_dir("peer", conns_dir); dentry = debugfs_create_dir("peer", conns_dir);
if (IS_ERR_OR_NULL(dentry))
goto fail;
connection->debugfs_conn = dentry; connection->debugfs_conn = dentry;
dentry = debugfs_create_file("callback_history", 0440, dentry = debugfs_create_file("callback_history", 0440,
connection->debugfs_conn, connection, connection->debugfs_conn, connection,
&connection_callback_history_fops); &connection_callback_history_fops);
if (IS_ERR_OR_NULL(dentry))
goto fail;
connection->debugfs_conn_callback_history = dentry; connection->debugfs_conn_callback_history = dentry;
dentry = debugfs_create_file("oldest_requests", 0440, dentry = debugfs_create_file("oldest_requests", 0440,
connection->debugfs_conn, connection, connection->debugfs_conn, connection,
&connection_oldest_requests_fops); &connection_oldest_requests_fops);
if (IS_ERR_OR_NULL(dentry))
goto fail;
connection->debugfs_conn_oldest_requests = dentry; connection->debugfs_conn_oldest_requests = dentry;
return;
fail:
drbd_debugfs_connection_cleanup(connection);
drbd_err(connection, "failed to create debugfs dentry\n");
} }
void drbd_debugfs_connection_cleanup(struct drbd_connection *connection) void drbd_debugfs_connection_cleanup(struct drbd_connection *connection)
...@@ -809,8 +781,6 @@ void drbd_debugfs_device_add(struct drbd_device *device) ...@@ -809,8 +781,6 @@ void drbd_debugfs_device_add(struct drbd_device *device)
snprintf(vnr_buf, sizeof(vnr_buf), "%u", device->vnr); snprintf(vnr_buf, sizeof(vnr_buf), "%u", device->vnr);
dentry = debugfs_create_dir(vnr_buf, vols_dir); dentry = debugfs_create_dir(vnr_buf, vols_dir);
if (IS_ERR_OR_NULL(dentry))
goto fail;
device->debugfs_vol = dentry; device->debugfs_vol = dentry;
snprintf(minor_buf, sizeof(minor_buf), "%u", device->minor); snprintf(minor_buf, sizeof(minor_buf), "%u", device->minor);
...@@ -819,18 +789,14 @@ void drbd_debugfs_device_add(struct drbd_device *device) ...@@ -819,18 +789,14 @@ void drbd_debugfs_device_add(struct drbd_device *device)
if (!slink_name) if (!slink_name)
goto fail; goto fail;
dentry = debugfs_create_symlink(minor_buf, drbd_debugfs_minors, slink_name); dentry = debugfs_create_symlink(minor_buf, drbd_debugfs_minors, slink_name);
device->debugfs_minor = dentry;
kfree(slink_name); kfree(slink_name);
slink_name = NULL; slink_name = NULL;
if (IS_ERR_OR_NULL(dentry))
goto fail;
device->debugfs_minor = dentry;
#define DCF(name) do { \ #define DCF(name) do { \
dentry = debugfs_create_file(#name, 0440, \ dentry = debugfs_create_file(#name, 0440, \
device->debugfs_vol, device, \ device->debugfs_vol, device, \
&device_ ## name ## _fops); \ &device_ ## name ## _fops); \
if (IS_ERR_OR_NULL(dentry)) \
goto fail; \
device->debugfs_vol_ ## name = dentry; \ device->debugfs_vol_ ## name = dentry; \
} while (0) } while (0)
...@@ -864,19 +830,9 @@ void drbd_debugfs_peer_device_add(struct drbd_peer_device *peer_device) ...@@ -864,19 +830,9 @@ void drbd_debugfs_peer_device_add(struct drbd_peer_device *peer_device)
struct dentry *dentry; struct dentry *dentry;
char vnr_buf[8]; char vnr_buf[8];
if (!conn_dir)
return;
snprintf(vnr_buf, sizeof(vnr_buf), "%u", peer_device->device->vnr); snprintf(vnr_buf, sizeof(vnr_buf), "%u", peer_device->device->vnr);
dentry = debugfs_create_dir(vnr_buf, conn_dir); dentry = debugfs_create_dir(vnr_buf, conn_dir);
if (IS_ERR_OR_NULL(dentry))
goto fail;
peer_device->debugfs_peer_dev = dentry; peer_device->debugfs_peer_dev = dentry;
return;
fail:
drbd_debugfs_peer_device_cleanup(peer_device);
drbd_err(peer_device, "failed to create debugfs entries\n");
} }
void drbd_debugfs_peer_device_cleanup(struct drbd_peer_device *peer_device) void drbd_debugfs_peer_device_cleanup(struct drbd_peer_device *peer_device)
...@@ -917,35 +873,19 @@ void drbd_debugfs_cleanup(void) ...@@ -917,35 +873,19 @@ void drbd_debugfs_cleanup(void)
drbd_debugfs_remove(&drbd_debugfs_root); drbd_debugfs_remove(&drbd_debugfs_root);
} }
int __init drbd_debugfs_init(void) void __init drbd_debugfs_init(void)
{ {
struct dentry *dentry; struct dentry *dentry;
dentry = debugfs_create_dir("drbd", NULL); dentry = debugfs_create_dir("drbd", NULL);
if (IS_ERR_OR_NULL(dentry))
goto fail;
drbd_debugfs_root = dentry; drbd_debugfs_root = dentry;
dentry = debugfs_create_file("version", 0444, drbd_debugfs_root, NULL, &drbd_version_fops); dentry = debugfs_create_file("version", 0444, drbd_debugfs_root, NULL, &drbd_version_fops);
if (IS_ERR_OR_NULL(dentry))
goto fail;
drbd_debugfs_version = dentry; drbd_debugfs_version = dentry;
dentry = debugfs_create_dir("resources", drbd_debugfs_root); dentry = debugfs_create_dir("resources", drbd_debugfs_root);
if (IS_ERR_OR_NULL(dentry))
goto fail;
drbd_debugfs_resources = dentry; drbd_debugfs_resources = dentry;
dentry = debugfs_create_dir("minors", drbd_debugfs_root); dentry = debugfs_create_dir("minors", drbd_debugfs_root);
if (IS_ERR_OR_NULL(dentry))
goto fail;
drbd_debugfs_minors = dentry; drbd_debugfs_minors = dentry;
return 0;
fail:
drbd_debugfs_cleanup();
if (dentry)
return PTR_ERR(dentry);
else
return -EINVAL;
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "drbd_int.h" #include "drbd_int.h"
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
int __init drbd_debugfs_init(void); void __init drbd_debugfs_init(void);
void drbd_debugfs_cleanup(void); void drbd_debugfs_cleanup(void);
void drbd_debugfs_resource_add(struct drbd_resource *resource); void drbd_debugfs_resource_add(struct drbd_resource *resource);
...@@ -22,7 +22,7 @@ void drbd_debugfs_peer_device_add(struct drbd_peer_device *peer_device); ...@@ -22,7 +22,7 @@ void drbd_debugfs_peer_device_add(struct drbd_peer_device *peer_device);
void drbd_debugfs_peer_device_cleanup(struct drbd_peer_device *peer_device); void drbd_debugfs_peer_device_cleanup(struct drbd_peer_device *peer_device);
#else #else
static inline int __init drbd_debugfs_init(void) { return -ENODEV; } static inline void __init drbd_debugfs_init(void) { }
static inline void drbd_debugfs_cleanup(void) { } static inline void drbd_debugfs_cleanup(void) { }
static inline void drbd_debugfs_resource_add(struct drbd_resource *resource) { } static inline void drbd_debugfs_resource_add(struct drbd_resource *resource) { }
......
...@@ -3009,8 +3009,7 @@ static int __init drbd_init(void) ...@@ -3009,8 +3009,7 @@ static int __init drbd_init(void)
spin_lock_init(&retry.lock); spin_lock_init(&retry.lock);
INIT_LIST_HEAD(&retry.writes); INIT_LIST_HEAD(&retry.writes);
if (drbd_debugfs_init()) drbd_debugfs_init();
pr_notice("failed to initialize debugfs -- will not be available\n");
pr_info("initialized. " pr_info("initialized. "
"Version: " REL_VERSION " (api:%d/proto:%d-%d)\n", "Version: " REL_VERSION " (api:%d/proto:%d-%d)\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment