seq_printf and seq_puts returns are often misused. Instead of checking the seq_printf or seq_puts return, add a new seq_overflow function to test if a seq_file has overflowed the available buffer space. This will eventually allow seq_printf and seq_puts to be converted to have a void return instead of the int return that is often assumed to have a size_t value instead of an error/no-error value. Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> --- fs/seq_file.c | 15 ++++++++------- include/linux/seq_file.h | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fs/seq_file.c b/fs/seq_file.c index 1d641bb..aab0736 100644 --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -14,16 +14,17 @@ #include <asm/uaccess.h> #include <asm/page.h> - -/* - * seq_files have a buffer which can may overflow. When this happens a larger - * buffer is reallocated and all the data will be printed again. - * The overflow state is true when m->count == m->size. +/** + * seq_overflow - test if a seq_file has overflowed the space available + * @m: the seq_file handle + * + * Returns -1 when an overflow has occurred, 0 otherwise. */ -static bool seq_overflow(struct seq_file *m) +int seq_overflow(struct seq_file *m) { - return m->count == m->size; + return m->count == m->size ? -1 : 0; } +EXPORT_SYMBOL(seq_overflow); static void seq_set_overflow(struct seq_file *m) { diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 52e0097..f8f9dc0 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -107,6 +107,8 @@ int seq_write(struct seq_file *seq, const void *data, size_t len); __printf(2, 3) int seq_printf(struct seq_file *, const char *, ...); __printf(2, 0) int seq_vprintf(struct seq_file *, const char *, va_list args); +int seq_overflow(struct seq_file *m); + int seq_path(struct seq_file *, const struct path *, const char *); int seq_dentry(struct seq_file *, struct dentry *, const char *); int seq_path_root(struct seq_file *m, const struct path *path, -- 1.8.1.2.459.gbcd45b4.dirty -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html