]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - fs/seq_file.c
procfs: speed up /proc/pid/stat, statm
[mirror_ubuntu-focal-kernel.git] / fs / seq_file.c
index 7d19816c4cc9799265e6b1b876eb0851bf214b44..55c293f7024dd55254dbfcffcdd6da9dbdb8753d 100644 (file)
@@ -659,7 +659,8 @@ int seq_put_decimal_ull(struct seq_file *m, char delimiter,
        if (m->count + 2 >= m->size) /* we'll write 2 bytes at least */
                goto overflow;
 
-       m->buf[m->count++] = delimiter;
+       if (delimiter)
+               m->buf[m->count++] = delimiter;
 
        if (num < 10) {
                m->buf[m->count++] = num + '0';
@@ -677,6 +678,24 @@ overflow:
 }
 EXPORT_SYMBOL(seq_put_decimal_ull);
 
+int seq_put_decimal_ll(struct seq_file *m, char delimiter,
+                       long long num)
+{
+       if (num < 0) {
+               if (m->count + 3 >= m->size) {
+                       m->count = m->size;
+                       return -1;
+               }
+               if (delimiter)
+                       m->buf[m->count++] = delimiter;
+               num = -num;
+               delimiter = '-';
+       }
+       return seq_put_decimal_ull(m, delimiter, num);
+
+}
+EXPORT_SYMBOL(seq_put_decimal_ll);
+
 /**
  * seq_write - write arbitrary data to buffer
  * @seq: seq_file identifying the buffer to which data should be written