Hi Liu,

[auto build test ERROR on v4.13-rc3]
[also build test ERROR on next-20170803]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Liu-Bo/Btrfs-search-parity-device-wisely/20170803-193103
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
        wget 
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=xtensa 

All errors (new ones prefixed by >>):

   fs/btrfs/raid56.c: In function 'raid56_parity_alloc_scrub_rbio':
>> fs/btrfs/raid56.c:2232:15: error: 'struct btrfs_raid_bio' has no member 
>> named 'data_stripes'
     for (i = rbio->data_stripes; i < rbio->real_stripes; i++) {
                  ^

vim +2232 fs/btrfs/raid56.c

  2201  
  2202  /*
  2203   * The following code is used to scrub/replace the parity stripe
  2204   *
  2205   * Caller must have already increased bio_counter for getting @bbio.
  2206   *
  2207   * Note: We need make sure all the pages that add into the scrub/replace
  2208   * raid bio are correct and not be changed during the scrub/replace. 
That
  2209   * is those pages just hold metadata or file data with checksum.
  2210   */
  2211  
  2212  struct btrfs_raid_bio *
  2213  raid56_parity_alloc_scrub_rbio(struct btrfs_fs_info *fs_info, struct 
bio *bio,
  2214                                 struct btrfs_bio *bbio, u64 stripe_len,
  2215                                 struct btrfs_device *scrub_dev,
  2216                                 unsigned long *dbitmap, int 
stripe_nsectors)
  2217  {
  2218          struct btrfs_raid_bio *rbio;
  2219          int i;
  2220  
  2221          rbio = alloc_rbio(fs_info, bbio, stripe_len);
  2222          if (IS_ERR(rbio))
  2223                  return NULL;
  2224          bio_list_add(&rbio->bio_list, bio);
  2225          /*
  2226           * This is a special bio which is used to hold the completion 
handler
  2227           * and make the scrub rbio is similar to the other types
  2228           */
  2229          ASSERT(!bio->bi_iter.bi_size);
  2230          rbio->operation = BTRFS_RBIO_PARITY_SCRUB;
  2231  
> 2232          for (i = rbio->data_stripes; i < rbio->real_stripes; i++) {
  2233                  if (bbio->stripes[i].dev == scrub_dev) {
  2234                          rbio->scrubp = i;
  2235                          break;
  2236                  }
  2237          }
  2238          ASSERT(i < rbio->real_stripes);
  2239  
  2240          /* Now we just support the sectorsize equals to page size */
  2241          ASSERT(fs_info->sectorsize == PAGE_SIZE);
  2242          ASSERT(rbio->stripe_npages == stripe_nsectors);
  2243          bitmap_copy(rbio->dbitmap, dbitmap, stripe_nsectors);
  2244  
  2245          /*
  2246           * We have already increased bio_counter when getting bbio, 
record it
  2247           * so we can free it at rbio_orig_end_io().
  2248           */
  2249          rbio->generic_bio_cnt = 1;
  2250  
  2251          return rbio;
  2252  }
  2253  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to