[PATCH v2 1/4] smb/server: warn if ksmbd_proc_create() fails
Ze Tan <[email protected]>
| Newsgroups | org.kernel.vger.linux-cifs |
|---|---|
| Message-ID | <[email protected]> |
Print a warning if the sessions procfs entry cannot be created. Signed-off-by: Ze Tan <[email protected]> Reviewed-by: ChenXiaoSong <[email protected]> --- fs/smb/server/connection.c | 3 ++- fs/smb/server/mgmt/user_session.c | 5 ++++- fs/smb/server/server.c | 8 ++++++-- fs/smb/server/vfs_cache.c | 6 ++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/fs/smb/server/connection.c b/fs/smb/server/connection.c index e225aca67686..a627c5d4ed4a 100644 --- a/fs/smb/server/connection.c +++ b/fs/smb/server/connection.c @@ -746,7 +746,8 @@ int ksmbd_conn_transport_init(void) } out: mutex_unlock(&init_lock); - create_proc_clients(); + if (create_proc_clients()) + pr_warn("Unable to create clients procfs entry\n"); return ret; } diff --git a/fs/smb/server/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c index f4675c457714..a72dc0211d0d 100644 --- a/fs/smb/server/mgmt/user_session.c +++ b/fs/smb/server/mgmt/user_session.c @@ -204,6 +204,8 @@ static int create_proc_session(struct ksmbd_session *sess) snprintf(name, sizeof(name), "sessions/%llu", sess->id); sess->proc_entry = ksmbd_proc_create(name, show_proc_session, sess); + if (!sess->proc_entry) + return -ENOMEM; return 0; } @@ -722,7 +724,8 @@ static struct ksmbd_session *__session_create(int protocol) hash_add(sessions_table, &sess->hlist, sess->id); up_write(&sessions_table_lock); - create_proc_session(sess); + if (create_proc_session(sess)) + pr_warn_ratelimited("Unable to create session %llu procfs entry\n", sess->id); ksmbd_counter_inc(KSMBD_COUNTER_SESSIONS); return sess; diff --git a/fs/smb/server/server.c b/fs/smb/server/server.c index d619d1f22601..513a82afced8 100644 --- a/fs/smb/server/server.c +++ b/fs/smb/server/server.c @@ -628,8 +628,12 @@ static int __init ksmbd_server_init(void) ret = ksmbd_proc_init(); if (ret) goto err_unregister; - create_proc_sessions(); - create_proc_shares(); + + if (create_proc_sessions()) + pr_warn("Unable to create sessions procfs entry\n"); + + if (create_proc_shares()) + pr_warn("Unable to create shares procfs entry\n"); ksmbd_server_tcp_callbacks_init(); diff --git a/fs/smb/server/vfs_cache.c b/fs/smb/server/vfs_cache.c index 972e8985a503..532ef727d2f2 100644 --- a/fs/smb/server/vfs_cache.c +++ b/fs/smb/server/vfs_cache.c @@ -180,7 +180,8 @@ static int proc_show_files(struct seq_file *m, void *v) static int create_proc_files(void) { - ksmbd_proc_create("files", proc_show_files, NULL); + if (!ksmbd_proc_create("files", proc_show_files, NULL)) + return -ENOMEM; return 0; } #else @@ -1829,7 +1830,8 @@ void ksmbd_close_session_fds(struct ksmbd_work *work) int ksmbd_init_global_file_table(void) { - create_proc_files(); + if (create_proc_files()) + pr_warn("Unable to create files procfs entry\n"); return ksmbd_init_file_table(&global_ft); } -- 2.55.0