]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - include/linux/printk.h
Update bcachefs sources to 787de128a5 bcachefs: Improvements to fsck check_dirents()
[bcachefs-tools-debian] / include / linux / printk.h
index 4e29af499df6635f213d97b4cac245502baf58e9..bc1619f7cbf765e184d4d80a2cd83a876c4b68e1 100644 (file)
 
 static inline int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
 {
-       int i = vsnprintf(buf, size, fmt, args);
-       ssize_t ssize = size;
+       int i;
 
-       return (i >= ssize) ? (ssize - 1) : i;
+       i = vsnprintf(buf, size, fmt, args);
+
+       if (likely(i < size))
+               return i;
+       if (size != 0)
+               return size - 1;
+       return 0;
 }
 
 static inline int scnprintf(char * buf, size_t size, const char * fmt, ...)
 {
-       ssize_t ssize = size;
-       va_list args;
-       int i;
+       va_list args;
+       int i;
 
-       va_start(args, fmt);
-       i = vsnprintf(buf, size, fmt, args);
-       va_end(args);
+       va_start(args, fmt);
+       i = vscnprintf(buf, size, fmt, args);
+       va_end(args);
 
-       return (i >= ssize) ? (ssize - 1) : i;
+       return i;
 }
 
 #define printk(...)    printf(__VA_ARGS__)
+#define vprintk(...)   vprintf(__VA_ARGS__)
 
 #define no_printk(fmt, ...)                            \
 ({                                                     \