tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   255442c93843f52b6891b21d0b485bf2c97f93c3
commit: c1696fb85d33194cf65c7ebfc82a75696299c3a3 GFS2: Introduce new 
gfs2_log_header_v2
date:   9 days ago
config: x86_64-randconfig-a0-02011154 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        git checkout c1696fb85d33194cf65c7ebfc82a75696299c3a3
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   fs/gfs2/log.o: In function `gfs2_write_log_header':
>> fs/gfs2/log.c:717: undefined reference to `crc32c'
   fs/gfs2/recovery.o: In function `get_log_header':
>> fs/gfs2/recovery.c:152: undefined reference to `crc32c'

vim +717 fs/gfs2/log.c

   653  
   654  /**
   655   * write_log_header - Write a journal log header buffer at 
sd_log_flush_head
   656   * @sdp: The GFS2 superblock
   657   * @jd: journal descriptor of the journal to which we are writing
   658   * @seq: sequence number
   659   * @tail: tail of the log
   660   * @flags: log header flags GFS2_LOG_HEAD_*
   661   * @op_flags: flags to pass to the bio
   662   *
   663   * Returns: the initialized log buffer descriptor
   664   */
   665  
   666  void gfs2_write_log_header(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd,
   667                             u64 seq, u32 tail, u32 flags, int op_flags)
   668  {
   669          struct gfs2_log_header *lh;
   670          u32 hash, crc;
   671          struct page *page = mempool_alloc(gfs2_page_pool, GFP_NOIO);
   672          struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
   673          struct timespec64 tv;
   674          struct super_block *sb = sdp->sd_vfs;
   675          u64 addr;
   676  
   677          lh = page_address(page);
   678          clear_page(lh);
   679  
   680          lh->lh_header.mh_magic = cpu_to_be32(GFS2_MAGIC);
   681          lh->lh_header.mh_type = cpu_to_be32(GFS2_METATYPE_LH);
   682          lh->lh_header.__pad0 = cpu_to_be64(0);
   683          lh->lh_header.mh_format = cpu_to_be32(GFS2_FORMAT_LH);
   684          lh->lh_header.mh_jid = cpu_to_be32(sdp->sd_jdesc->jd_jid);
   685          lh->lh_sequence = cpu_to_be64(seq);
   686          lh->lh_flags = cpu_to_be32(flags);
   687          lh->lh_tail = cpu_to_be32(tail);
   688          lh->lh_blkno = cpu_to_be32(sdp->sd_log_flush_head);
   689          hash = ~crc32(~0, lh, LH_V1_SIZE);
   690          lh->lh_hash = cpu_to_be32(hash);
   691  
   692          tv = current_kernel_time64();
   693          lh->lh_nsec = cpu_to_be32(tv.tv_nsec);
   694          lh->lh_sec = cpu_to_be64(tv.tv_sec);
   695          addr = gfs2_log_bmap(sdp);
   696          lh->lh_addr = cpu_to_be64(addr);
   697          lh->lh_jinode = cpu_to_be64(GFS2_I(jd->jd_inode)->i_no_addr);
   698  
   699          /* We may only write local statfs, quota, etc., when writing to 
our
   700             own journal. The values are left 0 when recovering a journal
   701             different from our own. */
   702          if (!(flags & GFS2_LOG_HEAD_RECOVERY)) {
   703                  lh->lh_statfs_addr =
   704                          
cpu_to_be64(GFS2_I(sdp->sd_sc_inode)->i_no_addr);
   705                  lh->lh_quota_addr =
   706                          
cpu_to_be64(GFS2_I(sdp->sd_qc_inode)->i_no_addr);
   707  
   708                  spin_lock(&sdp->sd_statfs_spin);
   709                  lh->lh_local_total = cpu_to_be64(l_sc->sc_total);
   710                  lh->lh_local_free = cpu_to_be64(l_sc->sc_free);
   711                  lh->lh_local_dinodes = cpu_to_be64(l_sc->sc_dinodes);
   712                  spin_unlock(&sdp->sd_statfs_spin);
   713          }
   714  
   715          BUILD_BUG_ON(offsetof(struct gfs2_log_header, lh_crc) != 
LH_V1_SIZE);
   716  
 > 717          crc = crc32c(~0, (void *)lh + LH_V1_SIZE + 4,
   718                       sb->s_blocksize - LH_V1_SIZE - 4);
   719          lh->lh_crc = cpu_to_be32(crc);
   720  
   721          gfs2_log_write(sdp, page, sb->s_blocksize, 0, addr);
   722          gfs2_log_flush_bio(sdp, REQ_OP_WRITE, op_flags);
   723          log_flush_wait(sdp);
   724  }
   725  

---
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