All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Xiubo Li <xiubli@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev, ceph-devel@vger.kernel.org,
	Patrick Donnelly <pdonnell@redhat.com>
Subject: [ceph-client:testing 78/96] fs/ceph/mds_client.c:2639: warning: Function parameter or member 'mdsc' not described in 'ceph_mdsc_build_path'
Date: Mon, 21 Aug 2023 21:03:49 +0800	[thread overview]
Message-ID: <202308212002.IYVp010T-lkp@intel.com> (raw)

tree:   https://github.com/ceph/ceph-client.git testing
head:   a7fb1265323db972dd333f71b9a53e9479f62e37
commit: 7072b2e8839b81f9781603bd2c5e40c9ccd13f6a [78/96] ceph: pass the mdsc to several helpers
config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20230821/202308212002.IYVp010T-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230821/202308212002.IYVp010T-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308212002.IYVp010T-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> fs/ceph/mds_client.c:2639: warning: Function parameter or member 'mdsc' not described in 'ceph_mdsc_build_path'


vim +2639 fs/ceph/mds_client.c

5d7efc49126a6d Jeff Layton    2021-01-14  2616  
0874db5f86bc5b Jeff Layton    2020-08-07  2617  /**
0874db5f86bc5b Jeff Layton    2020-08-07  2618   * ceph_mdsc_build_path - build a path string to a given dentry
0874db5f86bc5b Jeff Layton    2020-08-07  2619   * @dentry: dentry to which path should be built
0874db5f86bc5b Jeff Layton    2020-08-07  2620   * @plen: returned length of string
0874db5f86bc5b Jeff Layton    2020-08-07  2621   * @pbase: returned base inode number
0874db5f86bc5b Jeff Layton    2020-08-07  2622   * @for_wire: is this path going to be sent to the MDS?
0874db5f86bc5b Jeff Layton    2020-08-07  2623   *
0874db5f86bc5b Jeff Layton    2020-08-07  2624   * Build a string that represents the path to the dentry. This is mostly called
0874db5f86bc5b Jeff Layton    2020-08-07  2625   * for two different purposes:
0874db5f86bc5b Jeff Layton    2020-08-07  2626   *
0874db5f86bc5b Jeff Layton    2020-08-07  2627   * 1) we need to build a path string to send to the MDS (for_wire == true)
0874db5f86bc5b Jeff Layton    2020-08-07  2628   * 2) we need a path string for local presentation (e.g. debugfs) (for_wire == false)
2f2dc053404feb Sage Weil      2009-10-06  2629   *
0874db5f86bc5b Jeff Layton    2020-08-07  2630   * The path is built in reverse, starting with the dentry. Walk back up toward
0874db5f86bc5b Jeff Layton    2020-08-07  2631   * the root, building the path until the first non-snapped inode is reached (for_wire)
0874db5f86bc5b Jeff Layton    2020-08-07  2632   * or the root inode is reached (!for_wire).
2f2dc053404feb Sage Weil      2009-10-06  2633   *
2f2dc053404feb Sage Weil      2009-10-06  2634   * Encode hidden .snap dirs as a double /, i.e.
2f2dc053404feb Sage Weil      2009-10-06  2635   *   foo/.snap/bar -> foo//bar
2f2dc053404feb Sage Weil      2009-10-06  2636   */
7072b2e8839b81 Xiubo Li       2023-06-09  2637  char *ceph_mdsc_build_path(struct ceph_mds_client *mdsc, struct dentry *dentry,
7072b2e8839b81 Xiubo Li       2023-06-09  2638  			   int *plen, u64 *pbase, int for_wire)
2f2dc053404feb Sage Weil      2009-10-06 @2639  {
1b82f60fdbf92e Jeff Layton    2020-08-05  2640  	struct dentry *cur;
1b82f60fdbf92e Jeff Layton    2020-08-05  2641  	struct inode *inode;
2f2dc053404feb Sage Weil      2009-10-06  2642  	char *path;
f77f21bb28367d Jeff Layton    2019-04-29  2643  	int pos;
1b71fe2efa31cd Al Viro        2011-07-16  2644  	unsigned seq;
69a10fb3f4b876 Jeff Layton    2019-04-26  2645  	u64 base;
2f2dc053404feb Sage Weil      2009-10-06  2646  
d37b1d9943d513 Markus Elfring 2017-08-20  2647  	if (!dentry)
2f2dc053404feb Sage Weil      2009-10-06  2648  		return ERR_PTR(-EINVAL);
2f2dc053404feb Sage Weil      2009-10-06  2649  
f77f21bb28367d Jeff Layton    2019-04-29  2650  	path = __getname();
d37b1d9943d513 Markus Elfring 2017-08-20  2651  	if (!path)
2f2dc053404feb Sage Weil      2009-10-06  2652  		return ERR_PTR(-ENOMEM);
f77f21bb28367d Jeff Layton    2019-04-29  2653  retry:
f77f21bb28367d Jeff Layton    2019-04-29  2654  	pos = PATH_MAX - 1;
f77f21bb28367d Jeff Layton    2019-04-29  2655  	path[pos] = '\0';
f77f21bb28367d Jeff Layton    2019-04-29  2656  
f77f21bb28367d Jeff Layton    2019-04-29  2657  	seq = read_seqbegin(&rename_lock);
1b82f60fdbf92e Jeff Layton    2020-08-05  2658  	cur = dget(dentry);
f77f21bb28367d Jeff Layton    2019-04-29  2659  	for (;;) {
0874db5f86bc5b Jeff Layton    2020-08-07  2660  		struct dentry *parent;
2f2dc053404feb Sage Weil      2009-10-06  2661  
1b82f60fdbf92e Jeff Layton    2020-08-05  2662  		spin_lock(&cur->d_lock);
1b82f60fdbf92e Jeff Layton    2020-08-05  2663  		inode = d_inode(cur);
2f2dc053404feb Sage Weil      2009-10-06  2664  		if (inode && ceph_snap(inode) == CEPH_SNAPDIR) {
104648ad3f2ebe Sage Weil      2010-03-18  2665  			dout("build_path path+%d: %p SNAPDIR\n",
1b82f60fdbf92e Jeff Layton    2020-08-05  2666  			     pos, cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2667  			spin_unlock(&cur->d_lock);
0874db5f86bc5b Jeff Layton    2020-08-07  2668  			parent = dget_parent(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2669  		} else if (for_wire && inode && dentry != cur && ceph_snap(inode) == CEPH_NOSNAP) {
1b82f60fdbf92e Jeff Layton    2020-08-05  2670  			spin_unlock(&cur->d_lock);
d6b8bd679c9c88 Jeff Layton    2019-05-09  2671  			pos++; /* get rid of any prepended '/' */
2f2dc053404feb Sage Weil      2009-10-06  2672  			break;
0874db5f86bc5b Jeff Layton    2020-08-07  2673  		} else if (!for_wire || !IS_ENCRYPTED(d_inode(cur->d_parent))) {
1b82f60fdbf92e Jeff Layton    2020-08-05  2674  			pos -= cur->d_name.len;
1b71fe2efa31cd Al Viro        2011-07-16  2675  			if (pos < 0) {
1b82f60fdbf92e Jeff Layton    2020-08-05  2676  				spin_unlock(&cur->d_lock);
2f2dc053404feb Sage Weil      2009-10-06  2677  				break;
1b71fe2efa31cd Al Viro        2011-07-16  2678  			}
1b82f60fdbf92e Jeff Layton    2020-08-05  2679  			memcpy(path + pos, cur->d_name.name, cur->d_name.len);
0874db5f86bc5b Jeff Layton    2020-08-07  2680  			spin_unlock(&cur->d_lock);
0874db5f86bc5b Jeff Layton    2020-08-07  2681  			parent = dget_parent(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2682  		} else {
0874db5f86bc5b Jeff Layton    2020-08-07  2683  			int len, ret;
0874db5f86bc5b Jeff Layton    2020-08-07  2684  			char buf[NAME_MAX];
0874db5f86bc5b Jeff Layton    2020-08-07  2685  
0874db5f86bc5b Jeff Layton    2020-08-07  2686  			/*
0874db5f86bc5b Jeff Layton    2020-08-07  2687  			 * Proactively copy name into buf, in case we need to present
0874db5f86bc5b Jeff Layton    2020-08-07  2688  			 * it as-is.
0874db5f86bc5b Jeff Layton    2020-08-07  2689  			 */
0874db5f86bc5b Jeff Layton    2020-08-07  2690  			memcpy(buf, cur->d_name.name, cur->d_name.len);
0874db5f86bc5b Jeff Layton    2020-08-07  2691  			len = cur->d_name.len;
0874db5f86bc5b Jeff Layton    2020-08-07  2692  			spin_unlock(&cur->d_lock);
0874db5f86bc5b Jeff Layton    2020-08-07  2693  			parent = dget_parent(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2694  
97142624013d56 Luís Henriques 2022-11-29  2695  			ret = ceph_fscrypt_prepare_readdir(d_inode(parent));
0874db5f86bc5b Jeff Layton    2020-08-07  2696  			if (ret < 0) {
0874db5f86bc5b Jeff Layton    2020-08-07  2697  				dput(parent);
0874db5f86bc5b Jeff Layton    2020-08-07  2698  				dput(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2699  				return ERR_PTR(ret);
0874db5f86bc5b Jeff Layton    2020-08-07  2700  			}
0874db5f86bc5b Jeff Layton    2020-08-07  2701  
0874db5f86bc5b Jeff Layton    2020-08-07  2702  			if (fscrypt_has_encryption_key(d_inode(parent))) {
0874db5f86bc5b Jeff Layton    2020-08-07  2703  				len = ceph_encode_encrypted_fname(d_inode(parent), cur, buf);
0874db5f86bc5b Jeff Layton    2020-08-07  2704  				if (len < 0) {
0874db5f86bc5b Jeff Layton    2020-08-07  2705  					dput(parent);
0874db5f86bc5b Jeff Layton    2020-08-07  2706  					dput(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2707  					return ERR_PTR(len);
2f2dc053404feb Sage Weil      2009-10-06  2708  				}
0874db5f86bc5b Jeff Layton    2020-08-07  2709  			}
0874db5f86bc5b Jeff Layton    2020-08-07  2710  			pos -= len;
0874db5f86bc5b Jeff Layton    2020-08-07  2711  			if (pos < 0) {
0874db5f86bc5b Jeff Layton    2020-08-07  2712  				dput(parent);
0874db5f86bc5b Jeff Layton    2020-08-07  2713  				break;
0874db5f86bc5b Jeff Layton    2020-08-07  2714  			}
0874db5f86bc5b Jeff Layton    2020-08-07  2715  			memcpy(path + pos, buf, len);
0874db5f86bc5b Jeff Layton    2020-08-07  2716  		}
0874db5f86bc5b Jeff Layton    2020-08-07  2717  		dput(cur);
0874db5f86bc5b Jeff Layton    2020-08-07  2718  		cur = parent;
f77f21bb28367d Jeff Layton    2019-04-29  2719  
f77f21bb28367d Jeff Layton    2019-04-29  2720  		/* Are we at the root? */
1b82f60fdbf92e Jeff Layton    2020-08-05  2721  		if (IS_ROOT(cur))
f77f21bb28367d Jeff Layton    2019-04-29  2722  			break;
f77f21bb28367d Jeff Layton    2019-04-29  2723  
f77f21bb28367d Jeff Layton    2019-04-29  2724  		/* Are we out of buffer? */
f77f21bb28367d Jeff Layton    2019-04-29  2725  		if (--pos < 0)
f77f21bb28367d Jeff Layton    2019-04-29  2726  			break;
f77f21bb28367d Jeff Layton    2019-04-29  2727  
f77f21bb28367d Jeff Layton    2019-04-29  2728  		path[pos] = '/';
2f2dc053404feb Sage Weil      2009-10-06  2729  	}
1b82f60fdbf92e Jeff Layton    2020-08-05  2730  	inode = d_inode(cur);
1b82f60fdbf92e Jeff Layton    2020-08-05  2731  	base = inode ? ceph_ino(inode) : 0;
1b82f60fdbf92e Jeff Layton    2020-08-05  2732  	dput(cur);
f5946bcc5e7903 Jeff Layton    2019-10-16  2733  
f5946bcc5e7903 Jeff Layton    2019-10-16  2734  	if (read_seqretry(&rename_lock, seq))
f5946bcc5e7903 Jeff Layton    2019-10-16  2735  		goto retry;
f5946bcc5e7903 Jeff Layton    2019-10-16  2736  
f5946bcc5e7903 Jeff Layton    2019-10-16  2737  	if (pos < 0) {
f5946bcc5e7903 Jeff Layton    2019-10-16  2738  		/*
f5946bcc5e7903 Jeff Layton    2019-10-16  2739  		 * A rename didn't occur, but somehow we didn't end up where
f5946bcc5e7903 Jeff Layton    2019-10-16  2740  		 * we thought we would. Throw a warning and try again.
f5946bcc5e7903 Jeff Layton    2019-10-16  2741  		 */
0874db5f86bc5b Jeff Layton    2020-08-07  2742  		pr_warn("build_path did not end path lookup where expected (pos = %d)\n", pos);
2f2dc053404feb Sage Weil      2009-10-06  2743  		goto retry;
2f2dc053404feb Sage Weil      2009-10-06  2744  	}
2f2dc053404feb Sage Weil      2009-10-06  2745  
69a10fb3f4b876 Jeff Layton    2019-04-26  2746  	*pbase = base;
f77f21bb28367d Jeff Layton    2019-04-29  2747  	*plen = PATH_MAX - 1 - pos;
104648ad3f2ebe Sage Weil      2010-03-18  2748  	dout("build_path on %p %d built %llx '%.*s'\n",
f77f21bb28367d Jeff Layton    2019-04-29  2749  	     dentry, d_count(dentry), base, *plen, path + pos);
f77f21bb28367d Jeff Layton    2019-04-29  2750  	return path + pos;
2f2dc053404feb Sage Weil      2009-10-06  2751  }
2f2dc053404feb Sage Weil      2009-10-06  2752  

:::::: The code at line 2639 was first introduced by commit
:::::: 2f2dc053404febedc9c273452d9d518fb31fde72 ceph: MDS client

:::::: TO: Sage Weil <sage@newdream.net>
:::::: CC: Sage Weil <sage@newdream.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2023-08-21 13:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-21 13:03 kernel test robot [this message]
2023-08-21 13:29 ` [ceph-client:testing 78/96] fs/ceph/mds_client.c:2639: warning: Function parameter or member 'mdsc' not described in 'ceph_mdsc_build_path' Xiubo Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202308212002.IYVp010T-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pdonnell@redhat.com \
    --cc=xiubli@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.