CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Kees Cook <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5
commit: a52f8a59aef46b59753e583bf4b28fccb069ce64 fortify: Explicitly disable 
Clang support
date:   9 weeks ago
:::::: branch date: 25 hours ago
:::::: commit date: 9 weeks ago
config: i386-randconfig-c001-20211115 
(https://download.01.org/0day-ci/archive/20211128/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
fbe72e41b99dc7994daac300d208a955be3e4a0a)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a52f8a59aef46b59753e583bf4b28fccb069ce64
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout a52f8a59aef46b59753e583bf4b28fccb069ce64
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:740:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(btree_cache_size,          bch_cache_size(c));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:740:2: note: Call to function 'strcat' is insecure 
as it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcat'. CWE-119
           sysfs_hprint(btree_cache_size,          bch_cache_size(c));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:751:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(average_key_size,  bch_average_key_size(c));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:751:2: note: Call to function 'strcat' is insecure 
as it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcat'. CWE-119
           sysfs_hprint(average_key_size,  bch_average_key_size(c));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:778:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(congested,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:778:2: note: Call to function 'strcat' is insecure 
as it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcat'. CWE-119
           sysfs_hprint(congested,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1037:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(bucket_size,       bucket_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1037:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           sysfs_hprint(bucket_size,       bucket_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1038:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(block_size,        block_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1038:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           sysfs_hprint(block_size,        block_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1041:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9);
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1041:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9);
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1042:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(btree_written,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1042:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           sysfs_hprint(btree_written,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1044:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           sysfs_hprint(metadata_written,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
   drivers/md/bcache/sysfs.c:1044:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           sysfs_hprint(metadata_written,
           ^
   drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint'
                   strcat(buf, "\n");                                      \
                   ^~~~~~
>> drivers/md/bcache/sysfs.c:1102:4: warning: Division by zero 
>> [clang-analyzer-core.DivideZero]
                           do_div(sum, n);
                           ^
   arch/x86/include/asm/div64.h:33:21: note: expanded from macro 'do_div'
                           __upper = __high % (__base);            \
                                     ~~~~~~~^~~~~~~~~~
   drivers/md/bcache/sysfs.c:1035:21: note: Left side of '&&' is false
           struct cache *ca = container_of(kobj, struct cache, kobj);
                              ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/md/bcache/sysfs.c:1035:21: note: '?' condition is true
           struct cache *ca = container_of(kobj, struct cache, kobj);
                              ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:317:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:297:3: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/md/bcache/sysfs.c:1035:21: note: Left side of '&&' is false
           struct cache *ca = container_of(kobj, struct cache, kobj);
                              ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/md/bcache/sysfs.c:1035:21: note: Taking false branch
           struct cache *ca = container_of(kobj, struct cache, kobj);
                              ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:317:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:305:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:297:3: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/md/bcache/sysfs.c:1035:21: note: Loop condition is false.  Exiting 
loop
           struct cache *ca = container_of(kobj, struct cache, kobj);
                              ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:317:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:305:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:295:2: note: expanded from macro 
'__compiletime_assert'
           do {                                                            \
           ^
   drivers/md/bcache/sysfs.c:1037:2: note: '?' condition is false
           sysfs_hprint(bucket_size,       bucket_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:65:2: note: expanded from macro 'sysfs_hprint'
           if (attr == &sysfs_ ## file) {                                  \
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/md/bcache/sysfs.c:1037:2: note: Assuming the condition is false
           sysfs_hprint(bucket_size,       bucket_bytes(ca));
           ^
   drivers/md/bcache/sysfs.h:65:2: note: expanded from macro 'sysfs_hprint'
           if (attr == &sysfs_ ## file) {                                  \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:44: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'

vim +1102 drivers/md/bcache/sysfs.c

58f913dce2814a Peter Foley     2017-10-13  1032  
cafe563591446c Kent Overstreet 2013-03-23  1033  SHOW(__bch_cache)
cafe563591446c Kent Overstreet 2013-03-23  1034  {
cafe563591446c Kent Overstreet 2013-03-23  1035         struct cache *ca = 
container_of(kobj, struct cache, kobj);
cafe563591446c Kent Overstreet 2013-03-23  1036  
cafe563591446c Kent Overstreet 2013-03-23  1037         
sysfs_hprint(bucket_size,       bucket_bytes(ca));
cafe563591446c Kent Overstreet 2013-03-23  1038         
sysfs_hprint(block_size,        block_bytes(ca));
cafe563591446c Kent Overstreet 2013-03-23  1039         sysfs_print(nbuckets,   
        ca->sb.nbuckets);
cafe563591446c Kent Overstreet 2013-03-23  1040         sysfs_print(discard,    
        ca->discard);
cafe563591446c Kent Overstreet 2013-03-23  1041         sysfs_hprint(written, 
atomic_long_read(&ca->sectors_written) << 9);
cafe563591446c Kent Overstreet 2013-03-23  1042         
sysfs_hprint(btree_written,
cafe563591446c Kent Overstreet 2013-03-23  1043                      
atomic_long_read(&ca->btree_sectors_written) << 9);
cafe563591446c Kent Overstreet 2013-03-23  1044         
sysfs_hprint(metadata_written,
cafe563591446c Kent Overstreet 2013-03-23  1045                      
(atomic_long_read(&ca->meta_sectors_written) +
cafe563591446c Kent Overstreet 2013-03-23  1046                       
atomic_long_read(&ca->btree_sectors_written)) << 9);
cafe563591446c Kent Overstreet 2013-03-23  1047  
cafe563591446c Kent Overstreet 2013-03-23  1048         sysfs_print(io_errors,
cafe563591446c Kent Overstreet 2013-03-23  1049                     
atomic_read(&ca->io_errors) >> IO_ERROR_SHIFT);
cafe563591446c Kent Overstreet 2013-03-23  1050  
cafe563591446c Kent Overstreet 2013-03-23  1051         if (attr == 
&sysfs_cache_replacement_policy)
169ef1cf6171d3 Kent Overstreet 2013-03-28  1052                 return 
bch_snprint_string_list(buf, PAGE_SIZE,
cafe563591446c Kent Overstreet 2013-03-23  1053                                 
               cache_replacement_policies,
cafe563591446c Kent Overstreet 2013-03-23  1054                                 
               CACHE_REPLACEMENT(&ca->sb));
cafe563591446c Kent Overstreet 2013-03-23  1055  
cafe563591446c Kent Overstreet 2013-03-23  1056         if (attr == 
&sysfs_priority_stats) {
15754020524a56 Kent Overstreet 2014-02-25  1057                 struct bucket 
*b;
15754020524a56 Kent Overstreet 2014-02-25  1058                 size_t n = 
ca->sb.nbuckets, i;
15754020524a56 Kent Overstreet 2014-02-25  1059                 size_t unused = 
0, available = 0, dirty = 0, meta = 0;
cafe563591446c Kent Overstreet 2013-03-23  1060                 uint64_t sum = 
0;
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1061                 /* Compute 31 
quantiles */
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1062                 uint16_t q[31], 
*p, *cached;
cafe563591446c Kent Overstreet 2013-03-23  1063                 ssize_t ret;
cafe563591446c Kent Overstreet 2013-03-23  1064  
42bc47b35320e0 Kees Cook       2018-06-12  1065                 cached = p = 
vmalloc(array_size(sizeof(uint16_t),
42bc47b35320e0 Kees Cook       2018-06-12  1066                                 
                ca->sb.nbuckets));
cafe563591446c Kent Overstreet 2013-03-23  1067                 if (!p)
cafe563591446c Kent Overstreet 2013-03-23  1068                         return 
-ENOMEM;
cafe563591446c Kent Overstreet 2013-03-23  1069  
cafe563591446c Kent Overstreet 2013-03-23  1070                 
mutex_lock(&ca->set->bucket_lock);
15754020524a56 Kent Overstreet 2014-02-25  1071                 
for_each_bucket(b, ca) {
15754020524a56 Kent Overstreet 2014-02-25  1072                         if 
(!GC_SECTORS_USED(b))
15754020524a56 Kent Overstreet 2014-02-25  1073                                 
unused++;
15754020524a56 Kent Overstreet 2014-02-25  1074                         if 
(GC_MARK(b) == GC_MARK_RECLAIMABLE)
15754020524a56 Kent Overstreet 2014-02-25  1075                                 
available++;
15754020524a56 Kent Overstreet 2014-02-25  1076                         if 
(GC_MARK(b) == GC_MARK_DIRTY)
15754020524a56 Kent Overstreet 2014-02-25  1077                                 
dirty++;
15754020524a56 Kent Overstreet 2014-02-25  1078                         if 
(GC_MARK(b) == GC_MARK_METADATA)
15754020524a56 Kent Overstreet 2014-02-25  1079                                 
meta++;
15754020524a56 Kent Overstreet 2014-02-25  1080                 }
15754020524a56 Kent Overstreet 2014-02-25  1081  
cafe563591446c Kent Overstreet 2013-03-23  1082                 for (i = 
ca->sb.first_bucket; i < n; i++)
cafe563591446c Kent Overstreet 2013-03-23  1083                         p[i] = 
ca->buckets[i].prio;
cafe563591446c Kent Overstreet 2013-03-23  1084                 
mutex_unlock(&ca->set->bucket_lock);
cafe563591446c Kent Overstreet 2013-03-23  1085  
58f913dce2814a Peter Foley     2017-10-13  1086                 sort(p, n, 
sizeof(uint16_t), __bch_cache_cmp, NULL);
cafe563591446c Kent Overstreet 2013-03-23  1087  
cafe563591446c Kent Overstreet 2013-03-23  1088                 while (n &&
cafe563591446c Kent Overstreet 2013-03-23  1089                        
!cached[n - 1])
cafe563591446c Kent Overstreet 2013-03-23  1090                         --n;
cafe563591446c Kent Overstreet 2013-03-23  1091  
cafe563591446c Kent Overstreet 2013-03-23  1092                 while (cached < 
p + n &&
6751c1e3cff3aa Joe Perches     2021-02-10  1093                        *cached 
== BTREE_PRIO) {
6751c1e3cff3aa Joe Perches     2021-02-10  1094                         
cached++;
6751c1e3cff3aa Joe Perches     2021-02-10  1095                         n--;
6751c1e3cff3aa Joe Perches     2021-02-10  1096                 }
cafe563591446c Kent Overstreet 2013-03-23  1097  
cafe563591446c Kent Overstreet 2013-03-23  1098                 for (i = 0; i < 
n; i++)
cafe563591446c Kent Overstreet 2013-03-23  1099                         sum += 
INITIAL_PRIO - cached[i];
cafe563591446c Kent Overstreet 2013-03-23  1100  
cafe563591446c Kent Overstreet 2013-03-23  1101                 if (n)
cafe563591446c Kent Overstreet 2013-03-23 @1102                         
do_div(sum, n);
cafe563591446c Kent Overstreet 2013-03-23  1103  
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1104                 for (i = 0; i < 
ARRAY_SIZE(q); i++)
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1105                         q[i] = 
INITIAL_PRIO - cached[n * (i + 1) /
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1106                                 
(ARRAY_SIZE(q) + 1)];
cafe563591446c Kent Overstreet 2013-03-23  1107  
cafe563591446c Kent Overstreet 2013-03-23  1108                 vfree(p);
cafe563591446c Kent Overstreet 2013-03-23  1109  
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1110                 ret = 
scnprintf(buf, PAGE_SIZE,
cafe563591446c Kent Overstreet 2013-03-23  1111                                 
"Unused:                %zu%%\n"
15754020524a56 Kent Overstreet 2014-02-25  1112                                 
"Clean:         %zu%%\n"
15754020524a56 Kent Overstreet 2014-02-25  1113                                 
"Dirty:         %zu%%\n"
cafe563591446c Kent Overstreet 2013-03-23  1114                                 
"Metadata:      %zu%%\n"
cafe563591446c Kent Overstreet 2013-03-23  1115                                 
"Average:       %llu\n"
cafe563591446c Kent Overstreet 2013-03-23  1116                                 
"Sectors per Q: %zu\n"
cafe563591446c Kent Overstreet 2013-03-23  1117                                 
"Quantiles:     [",
cafe563591446c Kent Overstreet 2013-03-23  1118                                 
unused * 100 / (size_t) ca->sb.nbuckets,
15754020524a56 Kent Overstreet 2014-02-25  1119                                 
available * 100 / (size_t) ca->sb.nbuckets,
15754020524a56 Kent Overstreet 2014-02-25  1120                                 
dirty * 100 / (size_t) ca->sb.nbuckets,
15754020524a56 Kent Overstreet 2014-02-25  1121                                 
meta * 100 / (size_t) ca->sb.nbuckets, sum,
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1122                                 
n * ca->sb.bucket_size / (ARRAY_SIZE(q) + 1));
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1123  
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1124                 for (i = 0; i < 
ARRAY_SIZE(q); i++)
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1125                         ret += 
scnprintf(buf + ret, PAGE_SIZE - ret,
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1126                                 
         "%u ", q[i]);
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1127                 ret--;
cafe563591446c Kent Overstreet 2013-03-23  1128  
bbc77aa7fb72e6 Kent Overstreet 2013-05-28  1129                 ret += 
scnprintf(buf + ret, PAGE_SIZE - ret, "]\n");
cafe563591446c Kent Overstreet 2013-03-23  1130  
cafe563591446c Kent Overstreet 2013-03-23  1131                 return ret;
cafe563591446c Kent Overstreet 2013-03-23  1132         }
cafe563591446c Kent Overstreet 2013-03-23  1133  
cafe563591446c Kent Overstreet 2013-03-23  1134         return 0;
cafe563591446c Kent Overstreet 2013-03-23  1135  }
cafe563591446c Kent Overstreet 2013-03-23  1136  SHOW_LOCKED(bch_cache)
cafe563591446c Kent Overstreet 2013-03-23  1137  

:::::: The code at line 1102 was first introduced by commit
:::::: cafe563591446cf80bfbc2fe3bc72a2e36cf1060 bcache: A block layer cache

:::::: TO: Kent Overstreet <[email protected]>
:::::: CC: Kent Overstreet <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to