Hi Bartosz,

I love your patch! Perhaps something to improve:

[auto build test WARNING on hch-configfs/for-next]
[also build test WARNING on linux/master linus/master v5.10-rc5 next-20201125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Bartosz-Golaszewski/configfs-implement-committable-items-and-add-sample-code/20201125-232501
base:   git://git.infradead.org/users/hch/configfs.git for-next
config: arm-randconfig-r031-20201125 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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://github.com/0day-ci/linux/commit/9ddc94acfed5f87493359f719d6eb5c259b6bd6d
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Bartosz-Golaszewski/configfs-implement-committable-items-and-add-sample-code/20201125-232501
        git checkout 9ddc94acfed5f87493359f719d6eb5c259b6bd6d
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

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

All warnings (new ones prefixed by >>):

   fs/configfs/dir.c: In function 'configfs_rename':
>> fs/configfs/dir.c:1714:26: warning: variable 'committable_group_sd' set but 
>> not used [-Wunused-but-set-variable]
    1714 |  struct configfs_dirent *committable_group_sd;
         |                          ^~~~~~~~~~~~~~~~~~~~

vim +/committable_group_sd +1714 fs/configfs/dir.c

  1707  
  1708  static int configfs_rename(struct inode *old_dir, struct dentry 
*old_dentry,
  1709                             struct inode *new_dir, struct dentry 
*new_dentry,
  1710                             unsigned int flags)
  1711  {
  1712          struct configfs_dirent *sd, *old_parent_sd, *new_parent_sd;
  1713          struct dentry *old_parent_dentry, *new_parent_dentry;
> 1714          struct configfs_dirent *committable_group_sd;
  1715          struct dentry *committable_group_dentry;
  1716          struct config_item *committable_group_item, *item, 
*new_parent_item;
  1717          struct configfs_subsystem *committable_group_subsys;
  1718          struct configfs_group_operations *committable_group_ops;
  1719          int ret = 0;
  1720  
  1721          if (flags)
  1722                  return -EINVAL;
  1723  
  1724          old_parent_dentry = old_dentry->d_parent;
  1725          new_parent_dentry = new_dentry->d_parent;
  1726  
  1727          sd = old_dentry->d_fsdata;
  1728          old_parent_sd = old_dentry->d_parent->d_fsdata;
  1729          new_parent_sd = new_dentry->d_parent->d_fsdata;
  1730  
  1731          if (!old_parent_sd || !new_parent_sd)
  1732                  return -EPERM;
  1733  
  1734          /*
  1735           * Renaming must always be between a 'pending' and a 'live' 
group and
  1736           * both need to have the same parent.
  1737           */
  1738          if (!((old_parent_sd->s_type & CONFIGFS_GROUP_PENDING) &&
  1739                (new_parent_sd->s_type & CONFIGFS_GROUP_LIVE)) &&
  1740              !((old_parent_sd->s_type & CONFIGFS_GROUP_LIVE) &&
  1741                (new_parent_sd->s_type & CONFIGFS_GROUP_PENDING)))
  1742                  return -EPERM;
  1743  
  1744          if (old_parent_dentry->d_parent != new_parent_dentry->d_parent)
  1745                  return -EPERM;
  1746  
  1747          committable_group_dentry = old_parent_dentry->d_parent;
  1748          committable_group_sd = committable_group_dentry->d_fsdata;
  1749          /*
  1750           * Grab a reference to the committable group for the duration of
  1751           * this function.
  1752           */
  1753          committable_group_item =
  1754                  configfs_get_config_item(committable_group_dentry);
  1755          committable_group_subsys =
  1756                  to_config_group(committable_group_item)->cg_subsys;
  1757          committable_group_ops = 
committable_group_item->ci_type->ct_group_ops;
  1758  
  1759          item = sd->s_element;
  1760          new_parent_item = new_parent_sd->s_element;
  1761  
  1762          if (WARN_ON(!is_committable_group(committable_group_item))) {
  1763                  /* This would be a result of a programming error in 
configfs. */
  1764                  config_item_put(committable_group_item);
  1765                  return -EPERM;
  1766          }
  1767  
  1768          mutex_lock(&committable_group_subsys->su_mutex);
  1769          spin_lock(&configfs_dirent_lock);
  1770  
  1771          if ((old_parent_sd->s_type & CONFIGFS_GROUP_PENDING) &&
  1772              (new_parent_sd->s_type & CONFIGFS_GROUP_LIVE))
  1773                  ret = committable_group_ops->commit_item(item);
  1774          else
  1775                  ret = committable_group_ops->uncommit_item(item);
  1776          if (ret)
  1777                  goto out;
  1778  
  1779          new_dentry->d_fsdata = sd;
  1780          list_move(&sd->s_sibling, &new_parent_sd->s_children);
  1781          item->ci_parent = new_parent_item;
  1782          d_move(old_dentry, new_dentry);
  1783  
  1784  out:
  1785          spin_unlock(&configfs_dirent_lock);
  1786          mutex_unlock(&committable_group_subsys->su_mutex);
  1787          config_item_put(committable_group_item);
  1788  
  1789          return ret;
  1790  }
  1791  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to