From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7B955C4338F for ; Mon, 23 Aug 2021 23:34:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 519FF61357 for ; Mon, 23 Aug 2021 23:34:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233267AbhHWXen (ORCPT ); Mon, 23 Aug 2021 19:34:43 -0400 Received: from mga09.intel.com ([134.134.136.24]:15259 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229478AbhHWXek (ORCPT ); Mon, 23 Aug 2021 19:34:40 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10085"; a="217201007" X-IronPort-AV: E=Sophos;i="5.84,344,1620716400"; d="gz'50?scan'50,208,50";a="217201007" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2021 16:33:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,344,1620716400"; d="gz'50?scan'50,208,50";a="684864762" Received: from lkp-server02.sh.intel.com (HELO ca0e9373e375) ([10.239.97.151]) by fmsmga005.fm.intel.com with ESMTP; 23 Aug 2021 16:33:49 -0700 Received: from kbuild by ca0e9373e375 with local (Exim 4.92) (envelope-from ) id 1mIJRt-0000Wc-2o; Mon, 23 Aug 2021 23:33:49 +0000 Date: Tue, 24 Aug 2021 07:33:41 +0800 From: kernel test robot To: sishuaigong , jlbec@evilplan.org, hch@lst.de Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, sishuaigong Subject: Re: [PATCH v2] configfs: fix a race in configfs_lookup() Message-ID: <202108240707.hJ9l8snv-lkp@intel.com> References: <20210823194318.17528-1-sishuai@purdue.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="GvXjxJ+pjyke8COw" Content-Disposition: inline In-Reply-To: <20210823194318.17528-1-sishuai@purdue.edu> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --GvXjxJ+pjyke8COw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi sishuaigong, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on hch-configfs/for-next] [also build test WARNING on v5.14-rc7 next-20210823] [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/sishuaigong/configfs-fix-a-race-in-configfs_lookup/20210824-034517 base: git://git.infradead.org/users/hch/configfs.git for-next config: m68k-buildonly-randconfig-r006-20210822 (attached as .config) compiler: m68k-linux-gcc (GCC) 11.2.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/ff28c41926fb184655325e34dba02c438963dcf5 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review sishuaigong/configfs-fix-a-race-in-configfs_lookup/20210824-034517 git checkout ff28c41926fb184655325e34dba02c438963dcf5 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): fs/configfs/dir.c: In function 'configfs_lookup': >> fs/configfs/dir.c:446:25: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 446 | struct configfs_attribute *attr = sd->s_element; | ^~~~~~ vim +446 fs/configfs/dir.c 419 420 static struct dentry * configfs_lookup(struct inode *dir, 421 struct dentry *dentry, 422 unsigned int flags) 423 { 424 struct configfs_dirent * parent_sd = dentry->d_parent->d_fsdata; 425 struct configfs_dirent * sd; 426 struct inode *inode = NULL; 427 428 /* 429 * Fake invisibility if dir belongs to a group/default groups hierarchy 430 * being attached 431 * 432 * This forbids userspace to read/write attributes of items which may 433 * not complete their initialization, since the dentries of the 434 * attributes won't be instantiated. 435 */ 436 if (!configfs_dirent_is_ready(parent_sd)) 437 return ERR_PTR(-ENOENT); 438 439 spin_lock(&configfs_dirent_lock); 440 list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { 441 if (sd->s_type & CONFIGFS_NOT_PINNED) { 442 const unsigned char *name = configfs_get_name(sd); 443 if (strcmp(name, dentry->d_name.name)) 444 continue; 445 > 446 struct configfs_attribute *attr = sd->s_element; 447 umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; 448 449 dentry->d_fsdata = configfs_get(sd); 450 sd->s_dentry = dentry; 451 452 spin_unlock(&configfs_dirent_lock); 453 454 inode = configfs_create(dentry, mode); 455 if (IS_ERR(inode)) { 456 configfs_put(sd); 457 return ERR_CAST(inode); 458 } 459 if (sd->s_type & CONFIGFS_ITEM_BIN_ATTR) { 460 inode->i_size = 0; 461 inode->i_fop = &configfs_bin_file_operations; 462 } else { 463 inode->i_size = PAGE_SIZE; 464 inode->i_fop = &configfs_file_operations; 465 } 466 goto out; 467 } 468 } 469 spin_unlock(&configfs_dirent_lock); 470 471 /* 472 * If it doesn't exist and it isn't a NOT_PINNED item, 473 * it must be negative. 474 */ 475 if (dentry->d_name.len > NAME_MAX) 476 return ERR_PTR(-ENAMETOOLONG); 477 out: 478 d_add(dentry, inode); 479 return NULL; 480 } 481 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --GvXjxJ+pjyke8COw Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --GvXjxJ+pjyke8COw--