Hi Richard,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   63863ee8e2f6f6ae47be3dff4af2f2806f5ca2dd
commit: 9ca2d732644484488db31123ecd3bf122b551566 ubifs: Limit number of xattrs 
per inode
date:   6 days ago
config: i386-randconfig-c0-05140716 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 9ca2d732644484488db31123ecd3bf122b551566
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   ld: fs/ubifs/dir.o: in function `ubifs_unlink':
>> fs/ubifs/dir.c:799: undefined reference to `ubifs_purge_xattrs'
   ld: fs/ubifs/dir.o: in function `do_rename':
   fs/ubifs/dir.c:1296: undefined reference to `ubifs_purge_xattrs'
   ld: fs/ubifs/dir.o: in function `ubifs_rmdir':
   fs/ubifs/dir.c:907: undefined reference to `ubifs_purge_xattrs'

vim +799 fs/ubifs/dir.c

   773  
   774  static int ubifs_unlink(struct inode *dir, struct dentry *dentry)
   775  {
   776          struct ubifs_info *c = dir->i_sb->s_fs_info;
   777          struct inode *inode = d_inode(dentry);
   778          struct ubifs_inode *dir_ui = ubifs_inode(dir);
   779          int err, sz_change, budgeted = 1;
   780          struct ubifs_budget_req req = { .mod_dent = 1, .dirtied_ino = 2 
};
   781          unsigned int saved_nlink = inode->i_nlink;
   782          struct fscrypt_name nm;
   783  
   784          /*
   785           * Budget request settings: deletion direntry, deletion inode 
(+1 for
   786           * @dirtied_ino), changing the parent directory inode. If 
budgeting
   787           * fails, go ahead anyway because we have extra space reserved 
for
   788           * deletions.
   789           */
   790  
   791          dbg_gen("dent '%pd' from ino %lu (nlink %d) in dir ino %lu",
   792                  dentry, inode->i_ino,
   793                  inode->i_nlink, dir->i_ino);
   794  
   795          err = fscrypt_setup_filename(dir, &dentry->d_name, 1, &nm);
   796          if (err)
   797                  return err;
   798  
 > 799          err = ubifs_purge_xattrs(inode);
   800          if (err)
   801                  return err;
   802  
   803          sz_change = CALC_DENT_SIZE(fname_len(&nm));
   804  
   805          ubifs_assert(c, inode_is_locked(dir));
   806          ubifs_assert(c, inode_is_locked(inode));
   807          err = dbg_check_synced_i_size(c, inode);
   808          if (err)
   809                  goto out_fname;
   810  
   811          err = ubifs_budget_space(c, &req);
   812          if (err) {
   813                  if (err != -ENOSPC)
   814                          goto out_fname;
   815                  budgeted = 0;
   816          }
   817  
   818          lock_2_inodes(dir, inode);
   819          inode->i_ctime = current_time(dir);
   820          drop_nlink(inode);
   821          dir->i_size -= sz_change;
   822          dir_ui->ui_size = dir->i_size;
   823          dir->i_mtime = dir->i_ctime = inode->i_ctime;
   824          err = ubifs_jnl_update(c, dir, &nm, inode, 1, 0);
   825          if (err)
   826                  goto out_cancel;
   827          unlock_2_inodes(dir, inode);
   828  
   829          if (budgeted)
   830                  ubifs_release_budget(c, &req);
   831          else {
   832                  /* We've deleted something - clean the "no space" flags 
*/
   833                  c->bi.nospace = c->bi.nospace_rp = 0;
   834                  smp_wmb();
   835          }
   836          fscrypt_free_filename(&nm);
   837          return 0;
   838  
   839  out_cancel:
   840          dir->i_size += sz_change;
   841          dir_ui->ui_size = dir->i_size;
   842          set_nlink(inode, saved_nlink);
   843          unlock_2_inodes(dir, inode);
   844          if (budgeted)
   845                  ubifs_release_budget(c, &req);
   846  out_fname:
   847          fscrypt_free_filename(&nm);
   848          return err;
   849  }
   850  

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