Commit 1b86db5f authored by Qing Wang's avatar Qing Wang Committed by Jens Axboe
Browse files

bcache: replace snprintf in show functions with sysfs_emit



coccicheck complains about the use of snprintf() in sysfs show functions.

Fix the following coccicheck warning:
drivers/md/bcache/sysfs.h:54:12-20: WARNING: use scnprintf or sprintf.

Implement sysfs_print() by sysfs_emit() and remove snprint() since no one
uses it any more.

Suggested-by: default avatarColy Li <colyli@suse.de>
Signed-off-by: default avatarQing Wang <wangqing@vivo.com>
Signed-off-by: default avatarColy Li <colyli@suse.de>
Link: https://lore.kernel.org/r/20211029060930.119923-3-colyli@suse.de


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent cf2197ca
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -51,13 +51,27 @@ STORE(fn) \
#define sysfs_printf(file, fmt, ...)					\
do {									\
	if (attr == &sysfs_ ## file)					\
		return snprintf(buf, PAGE_SIZE, fmt "\n", __VA_ARGS__);	\
		return sysfs_emit(buf, fmt "\n", __VA_ARGS__);	\
} while (0)

#define sysfs_print(file, var)						\
do {									\
	if (attr == &sysfs_ ## file)					\
		return snprint(buf, PAGE_SIZE, var);			\
		return sysfs_emit(buf,						\
				__builtin_types_compatible_p(typeof(var), int)		\
					 ? "%i\n" :				\
				__builtin_types_compatible_p(typeof(var), unsigned int)	\
					 ? "%u\n" :				\
				__builtin_types_compatible_p(typeof(var), long)		\
					 ? "%li\n" :			\
				__builtin_types_compatible_p(typeof(var), unsigned long)\
					 ? "%lu\n" :			\
				__builtin_types_compatible_p(typeof(var), int64_t)	\
					 ? "%lli\n" :			\
				__builtin_types_compatible_p(typeof(var), uint64_t)	\
					 ? "%llu\n" :			\
				__builtin_types_compatible_p(typeof(var), const char *)	\
					 ? "%s\n" : "%i\n", var);	\
} while (0)

#define sysfs_hprint(file, val)						\
+0 −17
Original line number Diff line number Diff line
@@ -340,23 +340,6 @@ static inline int bch_strtoul_h(const char *cp, long *res)
	_r;								\
})

#define snprint(buf, size, var)						\
	snprintf(buf, size,						\
		__builtin_types_compatible_p(typeof(var), int)		\
		     ? "%i\n" :						\
		__builtin_types_compatible_p(typeof(var), unsigned int)	\
		     ? "%u\n" :						\
		__builtin_types_compatible_p(typeof(var), long)		\
		     ? "%li\n" :					\
		__builtin_types_compatible_p(typeof(var), unsigned long)\
		     ? "%lu\n" :					\
		__builtin_types_compatible_p(typeof(var), int64_t)	\
		     ? "%lli\n" :					\
		__builtin_types_compatible_p(typeof(var), uint64_t)	\
		     ? "%llu\n" :					\
		__builtin_types_compatible_p(typeof(var), const char *)	\
		     ? "%s\n" : "%i\n", var)

ssize_t bch_hprint(char *buf, int64_t v);

bool bch_is_zero(const char *p, size_t n);