pktcdvd: debugfs functions return NULL on error
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 6 Nov 2013 08:24:02 +0000 (09:24 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 8 Nov 2013 16:10:31 +0000 (09:10 -0700)
My static checker complains correctly that this is potential NULL
dereference because debugfs functions return NULL on error.  They return
an ERR_PTR if they are configured out.

We don't need to check for ERR_PTR because if debugfs is stubbed out the
dummy functions won't complain about that.  We don't need to check the
values before calling debugfs_remove() because that accepts ERR_PTRs and
NULL pointers.

We don't need to set pkt->dfs_f_info to NULL in pkt_debugfs_dev_new()
because it was initialized with kzalloc() so I have removed that.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/block/pktcdvd.c

index 5618847..ff8668c 100644 (file)
@@ -473,45 +473,31 @@ static void pkt_debugfs_dev_new(struct pktcdvd_device *pd)
 {
        if (!pkt_debugfs_root)
                return;
-       pd->dfs_f_info = NULL;
        pd->dfs_d_root = debugfs_create_dir(pd->name, pkt_debugfs_root);
-       if (IS_ERR(pd->dfs_d_root)) {
-               pd->dfs_d_root = NULL;
+       if (!pd->dfs_d_root)
                return;
-       }
+
        pd->dfs_f_info = debugfs_create_file("info", S_IRUGO,
                                pd->dfs_d_root, pd, &debug_fops);
-       if (IS_ERR(pd->dfs_f_info)) {
-               pd->dfs_f_info = NULL;
-               return;
-       }
 }
 
 static void pkt_debugfs_dev_remove(struct pktcdvd_device *pd)
 {
        if (!pkt_debugfs_root)
                return;
-       if (pd->dfs_f_info)
-               debugfs_remove(pd->dfs_f_info);
+       debugfs_remove(pd->dfs_f_info);
+       debugfs_remove(pd->dfs_d_root);
        pd->dfs_f_info = NULL;
-       if (pd->dfs_d_root)
-               debugfs_remove(pd->dfs_d_root);
        pd->dfs_d_root = NULL;
 }
 
 static void pkt_debugfs_init(void)
 {
        pkt_debugfs_root = debugfs_create_dir(DRIVER_NAME, NULL);
-       if (IS_ERR(pkt_debugfs_root)) {
-               pkt_debugfs_root = NULL;
-               return;
-       }
 }
 
 static void pkt_debugfs_cleanup(void)
 {
-       if (!pkt_debugfs_root)
-               return;
        debugfs_remove(pkt_debugfs_root);
        pkt_debugfs_root = NULL;
 }