All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Christian Brauner <brauner@kernel.org>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org
Subject: [vfs-idmapping:fs.posix_acl.vfsuid 24/37] fs/posix_acl.c:111:19: warning: no previous prototype for function '__get_acl'
Date: Sat, 10 Sep 2022 04:41:23 +0800	[thread overview]
Message-ID: <202209100432.pAFEMvWb-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git fs.posix_acl.vfsuid
head:   d37e11d9b40fc35810217121aa3205b7975fd4c6
commit: 95fef95c76885cb97f319e5a5060964eb9e96126 [24/37] acl: add vfs_get_acl()
config: x86_64-randconfig-a005 (https://download.01.org/0day-ci/archive/20220910/202209100432.pAFEMvWb-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git/commit/?id=95fef95c76885cb97f319e5a5060964eb9e96126
        git remote add vfs-idmapping https://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git
        git fetch --no-tags vfs-idmapping fs.posix_acl.vfsuid
        git checkout 95fef95c76885cb97f319e5a5060964eb9e96126
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> fs/posix_acl.c:111:19: warning: no previous prototype for function '__get_acl' [-Wmissing-prototypes]
   struct posix_acl *__get_acl(struct user_namespace *mnt_userns,
                     ^
   fs/posix_acl.c:111:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct posix_acl *__get_acl(struct user_namespace *mnt_userns,
   ^
   static 
   1 warning generated.


vim +/__get_acl +111 fs/posix_acl.c

   110	
 > 111	struct posix_acl *__get_acl(struct user_namespace *mnt_userns,
   112				    struct dentry *dentry, struct inode *inode,
   113				    int type)
   114	{
   115		void *sentinel;
   116		struct posix_acl **p;
   117		struct posix_acl *acl;
   118	
   119		/*
   120		 * The sentinel is used to detect when another operation like
   121		 * set_cached_acl() or forget_cached_acl() races with get_acl().
   122		 * It is guaranteed that is_uncached_acl(sentinel) is true.
   123		 */
   124	
   125		acl = get_cached_acl(inode, type);
   126		if (!is_uncached_acl(acl))
   127			return acl;
   128	
   129		if (!IS_POSIXACL(inode))
   130			return NULL;
   131	
   132		sentinel = uncached_acl_sentinel(current);
   133		p = acl_by_type(inode, type);
   134	
   135		/*
   136		 * If the ACL isn't being read yet, set our sentinel.  Otherwise, the
   137		 * current value of the ACL will not be ACL_NOT_CACHED and so our own
   138		 * sentinel will not be set; another task will update the cache.  We
   139		 * could wait for that other task to complete its job, but it's easier
   140		 * to just call ->get_acl to fetch the ACL ourself.  (This is going to
   141		 * be an unlikely race.)
   142		 */
   143		cmpxchg(p, ACL_NOT_CACHED, sentinel);
   144	
   145		/*
   146		 * Normally, the ACL returned by ->get_{dentry_}acl will be cached.
   147		 * A filesystem can prevent that by calling
   148		 * forget_cached_acl(inode, type) in ->get_{dentry_}acl.
   149		 *
   150		 * If the filesystem doesn't have a get_{dentry_}acl() function at all,
   151		 * we'll just create the negative cache entry.
   152		 */
   153		if (dentry) {
   154			if (!inode->i_op->get_dentry_acl) {
   155				set_cached_acl(inode, type, NULL);
   156				return NULL;
   157			}
   158			acl = inode->i_op->get_dentry_acl(mnt_userns, dentry, type);
   159		} else {
   160			if (!inode->i_op->get_acl) {
   161				set_cached_acl(inode, type, NULL);
   162				return NULL;
   163			}
   164			acl = inode->i_op->get_acl(inode, type, false);
   165		}
   166	
   167		if (IS_ERR(acl)) {
   168			/*
   169			 * Remove our sentinel so that we don't block future attempts
   170			 * to cache the ACL.
   171			 */
   172			cmpxchg(p, sentinel, ACL_NOT_CACHED);
   173			return acl;
   174		}
   175	
   176		/*
   177		 * Cache the result, but only if our sentinel is still in place.
   178		 */
   179		posix_acl_dup(acl);
   180		if (unlikely(cmpxchg(p, sentinel, acl) != sentinel))
   181			posix_acl_release(acl);
   182		return acl;
   183	}
   184	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

                 reply	other threads:[~2022-09-09 20:42 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202209100432.pAFEMvWb-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=brauner@kernel.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    /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.