fs/seq_file: Convert int seq_vprint/seq_printf/etc... returns to void
PATCH 1/1 fs/seq_file: Convert int seq_vprint/seq_printf/etc... returns to void
The seq_<foo> function return values were frequently misused.
See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to
seq_has_overflowed() and make public")
All uses of these return values have been removed, so convert the return types to void.
Miscellanea:
o Move seq_put_decimal_<type> and seq_escape prototypes closer the other seq_vprintf prototypes
o Reorder seq_putc and seq_puts to return early on overflow
o Add argument names to seq_vprintf and seq_printf
o Update the seq_escape kernel-doc
o Convert a couple of leading spaces to tabs in seq_escape
Signed-off-by Joe Perches <[email protected]>
--- fs/seq_file.c | 70 +++++++++++++++++++++--------------------------- include/linux/seq_file.h | 19 ++++++------- 2 files changed, 41 insertions(+), 48 deletions(-)
fs/seq_file.c +31 -39
@@ -368,16 +368,16 @@ EXPORT_SYMBOL(seq_release);* @esc: set of characters that need escaping * * Puts string into buffer, replacing each occurrence of character from -* @esc with usual octal escape. Returns 0 in case of success, -1 - in -* case of overflow. +* @esc with usual octal escape. +* Use seq_has_overflowed() to check for errors. */ -int seq_escape (struct seq_file *m,const char *s,const char *esc) +void seq_escape (struct seq_file *m,const char *s,const char *esc) {char *end = m->buf + m->size; -char *p; +char *p;char c; -for (p = m->buf + m->count; (c = *s) !='\0' && p < end; s++) { +for (p = m->buf + m->count; (c = *s) !='\0' && p < end; s++) {if (!strchr (esc, c)) { *p++ = c;continue ;
@@ -390,14 +390,13 @@ int seq_escape(struct seq_file *m, const char *s, const char *esc)continue ; }seq_set_overflow (m); -return -1 ; - } +return ; + } m->count = p - m->buf; -return 0 ; }EXPORT_SYMBOL (seq_escape); -int seq_vprintf (struct seq_file *m,const char *f,va_list args) +void seq_vprintf (struct seq_file *m,const char *f,va_list args) {int len;
@@ -405,24 +404,20 @@ int seq_vprintf(struct seq_file *m, const char *f, va_list args) len =vsnprintf (m->buf + m->count, m->size - m->count, f, args);if (m->count + len < m->size) { m->count += len; -return 0 ; +return ; } }seq_set_overflow (m); -return -1 ; }EXPORT_SYMBOL (seq_vprintf); -int seq_printf (struct seq_file *m,const char *f, ...) +void seq_printf (struct seq_file *m,const char *f, ...) { -int ret;va_list args;va_start (args, f); - ret =seq_vprintf (m, f, args); +seq_vprintf (m, f, args);va_end (args); - -return ret; }EXPORT_SYMBOL (seq_printf);
@@ -645,26 +640,25 @@ int seq_open_private(struct file *filp, const struct seq_operations *ops, }EXPORT_SYMBOL (seq_open_private); -int seq_putc (struct seq_file *m,char c) +void seq_putc (struct seq_file *m,char c) { -if (m->count < m->size) { - m->buf[m->count++] = c; -return 0 ; - } -return -1 ; +if (m->count >= m->size) +return ; + + m->buf[m->count++] = c; }EXPORT_SYMBOL (seq_putc); -int seq_puts (struct seq_file *m,const char *s) +void seq_puts (struct seq_file *m,const char *s) {int len =strlen (s); -if (m->count + len < m->size) { -memcpy (m->buf + m->count, s, len); - m->count += len; -return 0 ; + +if (m->count + len >= m->size) { +seq_set_overflow (m); +return ; } -seq_set_overflow (m); -return -1 ; +memcpy (m->buf + m->count, s, len); + m->count += len; }EXPORT_SYMBOL (seq_puts);
@@ -675,8 +669,8 @@ EXPORT_SYMBOL(seq_puts);* This routine is very quick when you show lots of numbers. * In usual cases, it will be better to use seq_printf(). It's easier to read. */ -int seq_put_decimal_ull (struct seq_file *m,char delimiter, -unsigned long long num) +void seq_put_decimal_ull (struct seq_file *m,char delimiter, +unsigned long long num) {int len;
@@ -688,35 +682,33 @@ int seq_put_decimal_ull(struct seq_file *m, char delimiter,if (num <10 ) { m->buf[m->count++] = num +'0' ; -return 0 ; +return ; } len =num_to_str (m->buf + m->count, m->size - m->count, num);if (!len) goto overflow; m->count += len; -return 0 ; +return ; + overflow:seq_set_overflow (m); -return -1 ; }EXPORT_SYMBOL (seq_put_decimal_ull); -int seq_put_decimal_ll (struct seq_file *m,char delimiter, -long long num) +void seq_put_decimal_ll (struct seq_file *m,char delimiter,long long num) {if (num <0 ) {if (m->count +3 >= m->size) {seq_set_overflow (m); -return -1 ; +return ; }if (delimiter) m->buf[m->count++] = delimiter; num = -num; delimiter ='-' ; } -return seq_put_decimal_ull (m, delimiter, num); - +seq_put_decimal_ull (m, delimiter, num); }EXPORT_SYMBOL (seq_put_decimal_ll);
include/linux/seq_file.h +10 -9
@@ -114,13 +114,18 @@ int seq_open(struct file *, const struct seq_operations *);ssize_t seq_read (struct file *,char __user *,size_t ,loff_t *);loff_t seq_lseek (struct file *,loff_t ,int );int seq_release (struct inode *,struct file *); -int seq_escape (struct seq_file *,const char *,const char *); -int seq_putc (struct seq_file *m,char c); -int seq_puts (struct seq_file *m,const char *s);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); +__printf(2, 0) +void seq_vprintf (struct seq_file *m,const char *fmt,va_list args); +__printf(2, 3) +void seq_printf (struct seq_file *m,const char *fmt, ...); +void seq_putc (struct seq_file *m,char c); +void seq_puts (struct seq_file *m,const char *s); +void seq_put_decimal_ull (struct seq_file *m,char delimiter, +unsigned long long num); +void seq_put_decimal_ll (struct seq_file *m,char delimiter,long long num); +void seq_escape (struct seq_file *m,const char *s,const char *esc);int seq_path (struct seq_file *,const struct path *,const char *);int seq_dentry (struct seq_file *,struct dentry *,const char *);
@@ -133,10 +138,6 @@ int single_release(struct inode *, struct file *);void *__seq_open_private (struct file *,const struct seq_operations *,int );int seq_open_private (struct file *,const struct seq_operations *,int );int seq_release_private (struct inode *,struct file *); -int seq_put_decimal_ull (struct seq_file *m,char delimiter, -unsigned long long num); -int seq_put_decimal_ll (struct seq_file *m,char delimiter, -long long num);static inline struct user_namespace *seq_user_ns (struct seq_file *seq) {