[linux-next:master 4236/6333] fs/bcachefs/journal_seq_blacklist.c:176:64: warning: array subscript '(unsigned int) _33 + 4294967295' is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   29e400e3ea486bf942b214769fc9778098114113
commit: 9a3dedfe50c12acbbea714a7e88dde7ede69290f [4236/6333] bcachefs: Array bounds fixes
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230920/202309200103.grXWDKTx-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309200103.grXWDKTx-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309200103.grXWDKTx-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

                    from fs/bcachefs/bcachefs.h:186:
   fs/bcachefs/journal_seq_blacklist.c:53:34: warning: array subscript 4294967294 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      53 |         if (le64_to_cpu(bl->start[i].end) >=
         |                         ~~~~~~~~~^~~
   include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__le64_to_cpu'
      33 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
         |                                                   ^
   fs/bcachefs/journal_seq_blacklist.c:53:13: note: in expansion of macro 'le64_to_cpu'
      53 |         if (le64_to_cpu(bl->start[i].end) >=
         |             ^~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:54:34: warning: array subscript 4294967295 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      54 |             le64_to_cpu(bl->start[i + 1].start)) {
         |                         ~~~~~~~~~^~~~~~~
   include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__le64_to_cpu'
      33 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
         |                                                   ^
   fs/bcachefs/journal_seq_blacklist.c:54:13: note: in expansion of macro 'le64_to_cpu'
      54 |             le64_to_cpu(bl->start[i + 1].start)) {
         |             ^~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:55:45: warning: array subscript 4294967295 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      55 |                 bl->start[i].end = bl->start[i + 1].end;
         |                                    ~~~~~~~~~^~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:55:26: warning: array subscript 4294967294 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      55 |                 bl->start[i].end = bl->start[i + 1].end;
         |                 ~~~~~~~~~^~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In file included from include/linux/string.h:254,
                    from include/linux/bitmap.h:11,
                    from include/linux/cpumask.h:12,
                    from include/linux/smp.h:13,
                    from include/linux/lockdep.h:14,
                    from include/linux/radix-tree.h:14:
   fs/bcachefs/journal_seq_blacklist.c:57:25: warning: array subscript 4294967294 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      57 |                 memmove(&bl->start[i],
         |                         ^~~~~~~~~~~~~
   include/linux/fortify-string.h:637:34: note: in definition of macro '__fortify_memcpy_chk'
     637 |         const size_t __p_size = (p_size);                               \
         |                                  ^~~~~~
   include/linux/fortify-string.h:698:17: note: in expansion of macro '__struct_size'
     698 |                 __struct_size(p), __struct_size(q),                     \
         |                 ^~~~~~~~~~~~~
   fs/bcachefs/journal_seq_blacklist.c:57:17: note: in expansion of macro 'memmove'
      57 |                 memmove(&bl->start[i],
         |                 ^~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:58:25: warning: array subscript 4294967295 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
      58 |                         &bl->start[i + 1],
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:638:34: note: in definition of macro '__fortify_memcpy_chk'
     638 |         const size_t __q_size = (q_size);                               \
         |                                  ^~~~~~
   include/linux/fortify-string.h:698:35: note: in expansion of macro '__struct_size'
     698 |                 __struct_size(p), __struct_size(q),                     \
         |                                   ^~~~~~~~~~~~~
   fs/bcachefs/journal_seq_blacklist.c:57:17: note: in expansion of macro 'memmove'
      57 |                 memmove(&bl->start[i],
         |                 ^~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In function 'blacklist_nr_entries',
       inlined from 'bch2_sb_journal_seq_blacklist_validate' at fs/bcachefs/journal_seq_blacklist.c:197:19:
   fs/bcachefs/journal_seq_blacklist.h:9:56: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
       9 |                 ? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
         |                                                        ^~~~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h: In function 'bch2_sb_journal_seq_blacklist_validate':
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In function 'blacklist_nr_entries',
       inlined from 'bch2_sb_journal_seq_blacklist_to_text' at fs/bcachefs/journal_seq_blacklist.c:228:16:
   fs/bcachefs/journal_seq_blacklist.h:9:56: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
       9 |                 ? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
         |                                                        ^~~~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h: In function 'bch2_sb_journal_seq_blacklist_to_text':
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In function 'blacklist_nr_entries',
       inlined from 'bch2_blacklist_table_initialize' at fs/bcachefs/journal_seq_blacklist.c:163:19:
   fs/bcachefs/journal_seq_blacklist.h:9:56: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
       9 |                 ? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
         |                                                        ^~~~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h: In function 'bch2_blacklist_table_initialize':
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
>> fs/bcachefs/journal_seq_blacklist.c:176:64: warning: array subscript '(unsigned int) _33 + 4294967295' is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
     176 |                 t->entries[i].start     = le64_to_cpu(bl->start[i].start);
         |                                                       ~~~~~~~~~^~~
   include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__le64_to_cpu'
      33 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
         |                                                   ^
   fs/bcachefs/journal_seq_blacklist.c:176:43: note: in expansion of macro 'le64_to_cpu'
     176 |                 t->entries[i].start     = le64_to_cpu(bl->start[i].start);
         |                                           ^~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:177:64: warning: array subscript '(unsigned int) _33 + 4294967295' is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
     177 |                 t->entries[i].end       = le64_to_cpu(bl->start[i].end);
         |                                                       ~~~~~~~~~^~~
   include/uapi/linux/byteorder/little_endian.h:33:51: note: in definition of macro '__le64_to_cpu'
      33 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
         |                                                   ^
   fs/bcachefs/journal_seq_blacklist.c:177:43: note: in expansion of macro 'le64_to_cpu'
     177 |                 t->entries[i].end       = le64_to_cpu(bl->start[i].end);
         |                                           ^~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In function 'blacklist_nr_entries',
       inlined from 'bch2_journal_seq_blacklist_add' at fs/bcachefs/journal_seq_blacklist.c:83:7:
   fs/bcachefs/journal_seq_blacklist.h:9:56: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
       9 |                 ? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
         |                                                        ^~~~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h: In function 'bch2_journal_seq_blacklist_add':
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
>> fs/bcachefs/journal_seq_blacklist.c:110:18: warning: array subscript 'i' is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
     110 |         bl->start[nr].start     = cpu_to_le64(start);
         |         ~~~~~~~~~^~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   fs/bcachefs/journal_seq_blacklist.c:111:18: warning: array subscript 'i' is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
     111 |         bl->start[nr].end       = cpu_to_le64(end);
         |         ~~~~~~~~~^~~~
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~
   In function 'blacklist_nr_entries',
       inlined from 'bch2_blacklist_entries_gc' at fs/bcachefs/journal_seq_blacklist.c:290:7:
   fs/bcachefs/journal_seq_blacklist.h:9:56: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct journal_seq_blacklist_entry[0]' [-Wzero-length-bounds]
       9 |                 ? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
         |                                                        ^~~~~~~~~~~~~
   fs/bcachefs/bcachefs_format.h: In function 'bch2_blacklist_entries_gc':
   fs/bcachefs/bcachefs_format.h:1566:44: note: while referencing 'start'
    1566 |         struct journal_seq_blacklist_entry start[0];
         |                                            ^~~~~


vim +176 fs/bcachefs/journal_seq_blacklist.c

51249d03060513 Kent Overstreet 2022-01-04   74  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   75  int bch2_journal_seq_blacklist_add(struct bch_fs *c, u64 start, u64 end)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   76  {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   77  	struct bch_sb_field_journal_seq_blacklist *bl;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   78  	unsigned i, nr;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   79  	int ret = 0;
e0750d9473522d Kent Overstreet 2017-03-16   80  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   81  	mutex_lock(&c->sb_lock);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   82  	bl = bch2_sb_get_journal_seq_blacklist(c->disk_sb.sb);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  @83  	nr = blacklist_nr_entries(bl);
e0750d9473522d Kent Overstreet 2017-03-16   84  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   85  	for (i = 0; i < nr; i++) {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   86  		struct journal_seq_blacklist_entry *e =
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   87  			bl->start + i;
e0750d9473522d Kent Overstreet 2017-03-16   88  
51249d03060513 Kent Overstreet 2022-01-04   89  		if (bl_entry_contig_or_overlaps(e, start, end)) {
51249d03060513 Kent Overstreet 2022-01-04   90  			e->start = cpu_to_le64(min(start, le64_to_cpu(e->start)));
51249d03060513 Kent Overstreet 2022-01-04   91  			e->end	= cpu_to_le64(max(end, le64_to_cpu(e->end)));
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   92  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   93  			if (i + 1 < nr)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   94  				bl = blacklist_entry_try_merge(c,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   95  							bl, i);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   96  			if (i)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   97  				bl = blacklist_entry_try_merge(c,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   98  							bl, i - 1);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04   99  			goto out_write_sb;
e0750d9473522d Kent Overstreet 2017-03-16  100  		}
e0750d9473522d Kent Overstreet 2017-03-16  101  	}
e0750d9473522d Kent Overstreet 2017-03-16  102  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  103  	bl = bch2_sb_resize_journal_seq_blacklist(&c->disk_sb,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  104  					sb_blacklist_u64s(nr + 1));
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  105  	if (!bl) {
dd5ce1e55fc983 Kent Overstreet 2023-03-14  106  		ret = -BCH_ERR_ENOSPC_sb_journal_seq_blacklist;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  107  		goto out;
e0750d9473522d Kent Overstreet 2017-03-16  108  	}
e0750d9473522d Kent Overstreet 2017-03-16  109  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04 @110  	bl->start[nr].start	= cpu_to_le64(start);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  111  	bl->start[nr].end	= cpu_to_le64(end);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  112  out_write_sb:
539caa353e671b Kent Overstreet 2021-05-23  113  	c->disk_sb.sb->features[0] |= cpu_to_le64(1ULL << BCH_FEATURE_journal_seq_blacklist_v3);
e0750d9473522d Kent Overstreet 2017-03-16  114  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  115  	ret = bch2_write_super(c);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  116  out:
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  117  	mutex_unlock(&c->sb_lock);
e0750d9473522d Kent Overstreet 2017-03-16  118  
b3caa4f1f7ea8e Kent Overstreet 2020-11-14  119  	return ret ?: bch2_blacklist_table_initialize(c);
e0750d9473522d Kent Overstreet 2017-03-16  120  }
e0750d9473522d Kent Overstreet 2017-03-16  121  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  122  static int journal_seq_blacklist_table_cmp(const void *_l,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  123  					   const void *_r, size_t size)
e0750d9473522d Kent Overstreet 2017-03-16  124  {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  125  	const struct journal_seq_blacklist_table_entry *l = _l;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  126  	const struct journal_seq_blacklist_table_entry *r = _r;
e0750d9473522d Kent Overstreet 2017-03-16  127  
5049ecf31eb1f6 Kent Overstreet 2019-04-12  128  	return cmp_int(l->start, r->start);
e0750d9473522d Kent Overstreet 2017-03-16  129  }
e0750d9473522d Kent Overstreet 2017-03-16  130  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  131  bool bch2_journal_seq_is_blacklisted(struct bch_fs *c, u64 seq,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  132  				     bool dirty)
e0750d9473522d Kent Overstreet 2017-03-16  133  {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  134  	struct journal_seq_blacklist_table *t = c->journal_seq_blacklist_table;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  135  	struct journal_seq_blacklist_table_entry search = { .start = seq };
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  136  	int idx;
e0750d9473522d Kent Overstreet 2017-03-16  137  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  138  	if (!t)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  139  		return false;
e0750d9473522d Kent Overstreet 2017-03-16  140  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  141  	idx = eytzinger0_find_le(t->entries, t->nr,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  142  				 sizeof(t->entries[0]),
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  143  				 journal_seq_blacklist_table_cmp,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  144  				 &search);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  145  	if (idx < 0)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  146  		return false;
e0750d9473522d Kent Overstreet 2017-03-16  147  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  148  	BUG_ON(t->entries[idx].start > seq);
e0750d9473522d Kent Overstreet 2017-03-16  149  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  150  	if (seq >= t->entries[idx].end)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  151  		return false;
e0750d9473522d Kent Overstreet 2017-03-16  152  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  153  	if (dirty)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  154  		t->entries[idx].dirty = true;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  155  	return true;
e0750d9473522d Kent Overstreet 2017-03-16  156  }
e0750d9473522d Kent Overstreet 2017-03-16  157  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  158  int bch2_blacklist_table_initialize(struct bch_fs *c)
e0750d9473522d Kent Overstreet 2017-03-16  159  {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  160  	struct bch_sb_field_journal_seq_blacklist *bl =
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  161  		bch2_sb_get_journal_seq_blacklist(c->disk_sb.sb);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  162  	struct journal_seq_blacklist_table *t;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04 @163  	unsigned i, nr = blacklist_nr_entries(bl);
e0750d9473522d Kent Overstreet 2017-03-16  164  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  165  	if (!bl)
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  166  		return 0;
e0750d9473522d Kent Overstreet 2017-03-16  167  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  168  	t = kzalloc(sizeof(*t) + sizeof(t->entries[0]) * nr,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  169  		    GFP_KERNEL);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  170  	if (!t)
dd5ce1e55fc983 Kent Overstreet 2023-03-14  171  		return -BCH_ERR_ENOMEM_blacklist_table_init;
e0750d9473522d Kent Overstreet 2017-03-16  172  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  173  	t->nr = nr;
e0750d9473522d Kent Overstreet 2017-03-16  174  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  175  	for (i = 0; i < nr; i++) {
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04 @176  		t->entries[i].start	= le64_to_cpu(bl->start[i].start);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  177  		t->entries[i].end	= le64_to_cpu(bl->start[i].end);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  178  	}
e0750d9473522d Kent Overstreet 2017-03-16  179  
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  180  	eytzinger0_sort(t->entries,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  181  			t->nr,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  182  			sizeof(t->entries[0]),
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  183  			journal_seq_blacklist_table_cmp,
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  184  			NULL);
e0750d9473522d Kent Overstreet 2017-03-16  185  
b3caa4f1f7ea8e Kent Overstreet 2020-11-14  186  	kfree(c->journal_seq_blacklist_table);
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  187  	c->journal_seq_blacklist_table = t;
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  188  	return 0;
e0750d9473522d Kent Overstreet 2017-03-16  189  }
8b35d6a1e1f2a9 Kent Overstreet 2019-04-04  190  

:::::: The code at line 176 was first introduced by commit
:::::: 8b35d6a1e1f2a9b790744db7883cfc04814a73fb bcachefs: Rewrite journal_seq_blacklist machinery

:::::: TO: Kent Overstreet <kent.overstreet@xxxxxxxxx>
:::::: CC: Kent Overstreet <kent.overstreet@xxxxxxxxx>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux