2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-11 14:53:56 +08:00

bcache: do not check return value of debugfs_create_dir()

Greg KH suggests that normal code should not care about debugfs. Therefore
no matter successful or failed of debugfs_create_dir() execution, it is
unncessary to check its return value.

There are two functions called debugfs_create_dir() and check the return
value, which are bch_debug_init() and closure_debug_init(). This patch
changes these two functions from int to void type, and ignore return values
of debugfs_create_dir().

This patch does not fix exact bug, just makes things work as they should.

Signed-off-by: Coly Li <colyli@suse.de>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: stable@vger.kernel.org
Cc: Kai Krakow <kai@kaishome.de>
Cc: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Coly Li 2018-08-09 15:48:42 +08:00 committed by Jens Axboe
parent a12fc00b23
commit 78ac210717
5 changed files with 21 additions and 13 deletions

View File

@ -1001,7 +1001,7 @@ void bch_open_buckets_free(struct cache_set *);
int bch_cache_allocator_start(struct cache *ca); int bch_cache_allocator_start(struct cache *ca);
void bch_debug_exit(void); void bch_debug_exit(void);
int bch_debug_init(struct kobject *); void bch_debug_init(struct kobject *kobj);
void bch_request_exit(void); void bch_request_exit(void);
int bch_request_init(void); int bch_request_init(void);

View File

@ -199,11 +199,16 @@ static const struct file_operations debug_ops = {
.release = single_release .release = single_release
}; };
int __init closure_debug_init(void) void __init closure_debug_init(void)
{ {
closure_debug = debugfs_create_file("closures", if (!IS_ERR_OR_NULL(bcache_debug))
0400, bcache_debug, NULL, &debug_ops); /*
return IS_ERR_OR_NULL(closure_debug); * it is unnecessary to check return value of
* debugfs_create_file(), we should not care
* about this.
*/
closure_debug = debugfs_create_file(
"closures", 0400, bcache_debug, NULL, &debug_ops);
} }
#endif #endif

View File

@ -186,13 +186,13 @@ static inline void closure_sync(struct closure *cl)
#ifdef CONFIG_BCACHE_CLOSURES_DEBUG #ifdef CONFIG_BCACHE_CLOSURES_DEBUG
int closure_debug_init(void); void closure_debug_init(void);
void closure_debug_create(struct closure *cl); void closure_debug_create(struct closure *cl);
void closure_debug_destroy(struct closure *cl); void closure_debug_destroy(struct closure *cl);
#else #else
static inline int closure_debug_init(void) { return 0; } static inline void closure_debug_init(void) {}
static inline void closure_debug_create(struct closure *cl) {} static inline void closure_debug_create(struct closure *cl) {}
static inline void closure_debug_destroy(struct closure *cl) {} static inline void closure_debug_destroy(struct closure *cl) {}

View File

@ -252,11 +252,12 @@ void bch_debug_exit(void)
debugfs_remove_recursive(bcache_debug); debugfs_remove_recursive(bcache_debug);
} }
int __init bch_debug_init(struct kobject *kobj) void __init bch_debug_init(struct kobject *kobj)
{ {
if (!IS_ENABLED(CONFIG_DEBUG_FS)) /*
return 0; * it is unnecessary to check return value of
* debugfs_create_file(), we should not care
* about this.
*/
bcache_debug = debugfs_create_dir("bcache", NULL); bcache_debug = debugfs_create_dir("bcache", NULL);
return IS_ERR_OR_NULL(bcache_debug);
} }

View File

@ -2345,10 +2345,12 @@ static int __init bcache_init(void)
goto err; goto err;
if (bch_request_init() || if (bch_request_init() ||
bch_debug_init(bcache_kobj) || closure_debug_init() ||
sysfs_create_files(bcache_kobj, files)) sysfs_create_files(bcache_kobj, files))
goto err; goto err;
bch_debug_init(bcache_kobj);
closure_debug_init();
return 0; return 0;
err: err:
bcache_exit(); bcache_exit();