aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-06-12 10:56:22 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-07-03 10:57:18 -0400
commit0a0762c6c604bb0ce8afe4ee052514e0208152a0 (patch)
treec9519deb67339a031953daa0e6bd1c919ffe92b9
parent702d6a834b497a7c387722bd796e0dc18bb55360 (diff)
sunrpc: 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: "J. Bruce Fields" <bfields@fieldses.org> Cc: Jeff Layton <jlayton@kernel.org> Cc: Trond Myklebust <trond.myklebust@hammerspace.com> Cc: Anna Schumaker <anna.schumaker@netapp.com> Cc: linux-nfs@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20190612145622.GA18839@kroah.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/sunrpc/debugfs.c66
1 files changed, 11 insertions, 55 deletions
diff --git a/net/sunrpc/debugfs.c b/net/sunrpc/debugfs.c
index 95ebd76b132d..707d7aab1546 100644
--- a/net/sunrpc/debugfs.c
+++ b/net/sunrpc/debugfs.c
@@ -11,7 +11,6 @@
11#include "netns.h" 11#include "netns.h"
12 12
13static struct dentry *topdir; 13static struct dentry *topdir;
14static struct dentry *rpc_fault_dir;
15static struct dentry *rpc_clnt_dir; 14static struct dentry *rpc_clnt_dir;
16static struct dentry *rpc_xprt_dir; 15static struct dentry *rpc_xprt_dir;
17 16
@@ -125,23 +124,16 @@ rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
125 char name[24]; /* enough for "../../rpc_xprt/ + 8 hex digits + NULL */ 124 char name[24]; /* enough for "../../rpc_xprt/ + 8 hex digits + NULL */
126 struct rpc_xprt *xprt; 125 struct rpc_xprt *xprt;
127 126
128 /* Already registered? */
129 if (clnt->cl_debugfs || !rpc_clnt_dir)
130 return;
131
132 len = snprintf(name, sizeof(name), "%x", clnt->cl_clid); 127 len = snprintf(name, sizeof(name), "%x", clnt->cl_clid);
133 if (len >= sizeof(name)) 128 if (len >= sizeof(name))
134 return; 129 return;
135 130
136 /* make the per-client dir */ 131 /* make the per-client dir */
137 clnt->cl_debugfs = debugfs_create_dir(name, rpc_clnt_dir); 132 clnt->cl_debugfs = debugfs_create_dir(name, rpc_clnt_dir);
138 if (!clnt->cl_debugfs)
139 return;
140 133
141 /* make tasks file */ 134 /* make tasks file */
142 if (!debugfs_create_file("tasks", S_IFREG | 0400, clnt->cl_debugfs, 135 debugfs_create_file("tasks", S_IFREG | 0400, clnt->cl_debugfs, clnt,
143 clnt, &tasks_fops)) 136 &tasks_fops);
144 goto out_err;
145 137
146 rcu_read_lock(); 138 rcu_read_lock();
147 xprt = rcu_dereference(clnt->cl_xprt); 139 xprt = rcu_dereference(clnt->cl_xprt);
@@ -157,8 +149,7 @@ rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
157 if (len >= sizeof(name)) 149 if (len >= sizeof(name))
158 goto out_err; 150 goto out_err;
159 151
160 if (!debugfs_create_symlink("xprt", clnt->cl_debugfs, name)) 152 debugfs_create_symlink("xprt", clnt->cl_debugfs, name);
161 goto out_err;
162 153
163 return; 154 return;
164out_err: 155out_err:
@@ -226,9 +217,6 @@ rpc_xprt_debugfs_register(struct rpc_xprt *xprt)
226 static atomic_t cur_id; 217 static atomic_t cur_id;
227 char name[9]; /* 8 hex digits + NULL term */ 218 char name[9]; /* 8 hex digits + NULL term */
228 219
229 if (!rpc_xprt_dir)
230 return;
231
232 id = (unsigned int)atomic_inc_return(&cur_id); 220 id = (unsigned int)atomic_inc_return(&cur_id);
233 221
234 len = snprintf(name, sizeof(name), "%x", id); 222 len = snprintf(name, sizeof(name), "%x", id);
@@ -237,15 +225,10 @@ rpc_xprt_debugfs_register(struct rpc_xprt *xprt)
237 225
238 /* make the per-client dir */ 226 /* make the per-client dir */
239 xprt->debugfs = debugfs_create_dir(name, rpc_xprt_dir); 227 xprt->debugfs = debugfs_create_dir(name, rpc_xprt_dir);
240 if (!xprt->debugfs)
241 return;
242 228
243 /* make tasks file */ 229 /* make tasks file */
244 if (!debugfs_create_file("info", S_IFREG | 0400, xprt->debugfs, 230 debugfs_create_file("info", S_IFREG | 0400, xprt->debugfs, xprt,
245 xprt, &xprt_info_fops)) { 231 &xprt_info_fops);
246 debugfs_remove_recursive(xprt->debugfs);
247 xprt->debugfs = NULL;
248 }
249 232
250 atomic_set(&xprt->inject_disconnect, rpc_inject_disconnect); 233 atomic_set(&xprt->inject_disconnect, rpc_inject_disconnect);
251} 234}
@@ -308,28 +291,11 @@ static const struct file_operations fault_disconnect_fops = {
308 .release = fault_release, 291 .release = fault_release,
309}; 292};
310 293
311static struct dentry *
312inject_fault_dir(struct dentry *topdir)
313{
314 struct dentry *faultdir;
315
316 faultdir = debugfs_create_dir("inject_fault", topdir);
317 if (!faultdir)
318 return NULL;
319
320 if (!debugfs_create_file("disconnect", S_IFREG | 0400, faultdir,
321 NULL, &fault_disconnect_fops))
322 return NULL;
323
324 return faultdir;
325}
326
327void __exit 294void __exit
328sunrpc_debugfs_exit(void) 295sunrpc_debugfs_exit(void)
329{ 296{
330 debugfs_remove_recursive(topdir); 297 debugfs_remove_recursive(topdir);
331 topdir = NULL; 298 topdir = NULL;
332 rpc_fault_dir = NULL;
333 rpc_clnt_dir = NULL; 299 rpc_clnt_dir = NULL;
334 rpc_xprt_dir = NULL; 300 rpc_xprt_dir = NULL;
335} 301}
@@ -337,26 +303,16 @@ sunrpc_debugfs_exit(void)
337void __init 303void __init
338sunrpc_debugfs_init(void) 304sunrpc_debugfs_init(void)
339{ 305{
340 topdir = debugfs_create_dir("sunrpc", NULL); 306 struct dentry *rpc_fault_dir;
341 if (!topdir)
342 return;
343 307
344 rpc_fault_dir = inject_fault_dir(topdir); 308 topdir = debugfs_create_dir("sunrpc", NULL);
345 if (!rpc_fault_dir)
346 goto out_remove;
347 309
348 rpc_clnt_dir = debugfs_create_dir("rpc_clnt", topdir); 310 rpc_clnt_dir = debugfs_create_dir("rpc_clnt", topdir);
349 if (!rpc_clnt_dir)
350 goto out_remove;
351 311
352 rpc_xprt_dir = debugfs_create_dir("rpc_xprt", topdir); 312 rpc_xprt_dir = debugfs_create_dir("rpc_xprt", topdir);
353 if (!rpc_xprt_dir)
354 goto out_remove;
355 313
356 return; 314 rpc_fault_dir = debugfs_create_dir("inject_fault", topdir);
357out_remove: 315
358 debugfs_remove_recursive(topdir); 316 debugfs_create_file("disconnect", S_IFREG | 0400, rpc_fault_dir, NULL,
359 topdir = NULL; 317 &fault_disconnect_fops);
360 rpc_fault_dir = NULL;
361 rpc_clnt_dir = NULL;
362} 318}