@@ -43,16 +43,13 @@ efct_xport_init_debugfs(struct efct *efct)
if (!efct_debugfs_root) {
efct_debugfs_root = debugfs_create_dir("efct", NULL);
atomic_set(&efct_debugfs_count, 0);
- if (!efct_debugfs_root) {
- efc_log_err(efct, "failed to create debugfs entry\n");
- goto debugfs_fail;
- }
}
/* Create a directory for sessions in root */
if (!efct->sess_debugfs_dir) {
- efct->sess_debugfs_dir = debugfs_create_dir("sessions", NULL);
- if (!efct->sess_debugfs_dir) {
+ efct->sess_debugfs_dir = debugfs_create_dir("sessions",
+ efct_debugfs_root);
+ if (IS_ERR(efct->sess_debugfs_dir)) {
efc_log_err(efct,
"failed to create debugfs entry for sessions\n");
goto debugfs_fail;
debugfs_create_xxx routines, which return pointers, are being checked for error by looking for NULL values. The routines may return pointer-munged -Exxx codes, so they should be using IS_ERR() to adapt. There are two cases: - the first case is on initial directory creation, which actually doesn't need to be checked. So remove the check. - creation of the sessions subdirectory. Modify this creation to create under the initial directory created, and fix failure check. Fixes: 4df84e846624 ("scsi: elx: efct: Driver initialization routines") Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: James Smart <jsmart2021@gmail.com> --- drivers/scsi/elx/efct/efct_xport.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)