hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/fs/orangefs/orangefs-debugfs.c
....@@ -64,7 +64,7 @@
6464 __u64 mask2;
6565 };
6666
67
-static int orangefs_kernel_debug_init(void);
67
+static void orangefs_kernel_debug_init(void);
6868
6969 static int orangefs_debug_help_open(struct inode *, struct file *);
7070 static void *help_start(struct seq_file *, loff_t *);
....@@ -99,7 +99,6 @@
9999 static char client_debug_string[ORANGEFS_MAX_DEBUG_STRING_LEN];
100100 static char client_debug_array_string[ORANGEFS_MAX_DEBUG_STRING_LEN];
101101
102
-static struct dentry *help_file_dentry;
103102 static struct dentry *client_debug_dentry;
104103 static struct dentry *debug_dir;
105104
....@@ -151,10 +150,8 @@
151150 * initialize kmod debug operations, create orangefs debugfs dir and
152151 * ORANGEFS_KMOD_DEBUG_HELP_FILE.
153152 */
154
-int orangefs_debugfs_init(int debug_mask)
153
+void orangefs_debugfs_init(int debug_mask)
155154 {
156
- int rc = -ENOMEM;
157
-
158155 /* convert input debug mask to a 64-bit unsigned integer */
159156 orangefs_gossip_debug_mask = (unsigned long long)debug_mask;
160157
....@@ -183,44 +180,23 @@
183180 (unsigned long long)orangefs_gossip_debug_mask);
184181
185182 debug_dir = debugfs_create_dir("orangefs", NULL);
186
- if (!debug_dir) {
187
- pr_info("%s: debugfs_create_dir failed.\n", __func__);
188
- goto out;
189
- }
190183
191
- help_file_dentry = debugfs_create_file(ORANGEFS_KMOD_DEBUG_HELP_FILE,
192
- 0444,
193
- debug_dir,
194
- debug_help_string,
195
- &debug_help_fops);
196
- if (!help_file_dentry) {
197
- pr_info("%s: debugfs_create_file failed.\n", __func__);
198
- goto out;
199
- }
184
+ debugfs_create_file(ORANGEFS_KMOD_DEBUG_HELP_FILE, 0444, debug_dir,
185
+ debug_help_string, &debug_help_fops);
200186
201187 orangefs_debug_disabled = 0;
202188
203
- rc = orangefs_kernel_debug_init();
204
-
205
-out:
206
-
207
- return rc;
189
+ orangefs_kernel_debug_init();
208190 }
209191
210192 /*
211193 * initialize the kernel-debug file.
212194 */
213
-static int orangefs_kernel_debug_init(void)
195
+static void orangefs_kernel_debug_init(void)
214196 {
215
- int rc = -ENOMEM;
216
- struct dentry *ret;
217
- char *k_buffer = NULL;
197
+ static char k_buffer[ORANGEFS_MAX_DEBUG_STRING_LEN] = { };
218198
219199 gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: start\n", __func__);
220
-
221
- k_buffer = kzalloc(ORANGEFS_MAX_DEBUG_STRING_LEN, GFP_KERNEL);
222
- if (!k_buffer)
223
- goto out;
224200
225201 if (strlen(kernel_debug_string) + 1 < ORANGEFS_MAX_DEBUG_STRING_LEN) {
226202 strcpy(k_buffer, kernel_debug_string);
....@@ -230,30 +206,16 @@
230206 pr_info("%s: overflow 1!\n", __func__);
231207 }
232208
233
- ret = debugfs_create_file(ORANGEFS_KMOD_DEBUG_FILE,
234
- 0444,
235
- debug_dir,
236
- k_buffer,
237
- &kernel_debug_fops);
238
- if (!ret) {
239
- pr_info("%s: failed to create %s.\n",
240
- __func__,
241
- ORANGEFS_KMOD_DEBUG_FILE);
242
- goto out;
243
- }
244
-
245
- rc = 0;
246
-
247
-out:
248
-
249
- gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: rc:%d:\n", __func__, rc);
250
- return rc;
209
+ debugfs_create_file(ORANGEFS_KMOD_DEBUG_FILE, 0444, debug_dir, k_buffer,
210
+ &kernel_debug_fops);
251211 }
252212
253213
254214 void orangefs_debugfs_cleanup(void)
255215 {
256216 debugfs_remove_recursive(debug_dir);
217
+ kfree(debug_help_string);
218
+ debug_help_string = NULL;
257219 }
258220
259221 /* open ORANGEFS_KMOD_DEBUG_HELP_FILE */
....@@ -329,17 +291,12 @@
329291 /*
330292 * initialize the client-debug file.
331293 */
332
-static int orangefs_client_debug_init(void)
294
+static void orangefs_client_debug_init(void)
333295 {
334296
335
- int rc = -ENOMEM;
336
- char *c_buffer = NULL;
297
+ static char c_buffer[ORANGEFS_MAX_DEBUG_STRING_LEN] = { };
337298
338299 gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: start\n", __func__);
339
-
340
- c_buffer = kzalloc(ORANGEFS_MAX_DEBUG_STRING_LEN, GFP_KERNEL);
341
- if (!c_buffer)
342
- goto out;
343300
344301 if (strlen(client_debug_string) + 1 < ORANGEFS_MAX_DEBUG_STRING_LEN) {
345302 strcpy(c_buffer, client_debug_string);
....@@ -354,19 +311,6 @@
354311 debug_dir,
355312 c_buffer,
356313 &kernel_debug_fops);
357
- if (!client_debug_dentry) {
358
- pr_info("%s: failed to create updated %s.\n",
359
- __func__,
360
- ORANGEFS_CLIENT_DEBUG_FILE);
361
- goto out;
362
- }
363
-
364
- rc = 0;
365
-
366
-out:
367
-
368
- gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: rc:%d:\n", __func__, rc);
369
- return rc;
370314 }
371315
372316 /* open ORANGEFS_KMOD_DEBUG_FILE or ORANGEFS_CLIENT_DEBUG_FILE.*/
....@@ -709,6 +653,7 @@
709653 memset(debug_help_string, 0, DEBUG_HELP_STRING_SIZE);
710654 strlcat(debug_help_string, new, string_size);
711655 mutex_unlock(&orangefs_help_file_lock);
656
+ kfree(new);
712657 }
713658
714659 rc = 0;
....@@ -964,7 +909,7 @@
964909 return ret;
965910 }
966911
967
-int orangefs_debugfs_new_client_string(void __user *arg)
912
+int orangefs_debugfs_new_client_string(void __user *arg)
968913 {
969914 int ret;
970915
....@@ -1017,7 +962,7 @@
1017962 return 0;
1018963 }
1019964
1020
-int orangefs_debugfs_new_debug(void __user *arg)
965
+int orangefs_debugfs_new_debug(void __user *arg)
1021966 {
1022967 struct dev_mask_info_s mask_info = {0};
1023968 int ret;