All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Paul Lawrence <paullawrence@google.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	GNU/Weeb Mailing List <gwml@gnuweeb.org>,
	linux-kernel@vger.kernel.org
Subject: [ammarfaizi2-block:google/android/kernel/common/android13-5.10 9999/9999] fs/fuse/dir.c:1579:44: error: no member named 'backing_inode' in 'struct fuse_inode'
Date: Wed, 12 Jan 2022 07:24:46 +0800	[thread overview]
Message-ID: <202201120452.MMoH70oo-lkp@intel.com> (raw)

tree:   https://github.com/ammarfaizi2/linux-block google/android/kernel/common/android13-5.10
head:   34957d1e9236e27df4fc1e4cfbbaf271271f05ff
commit: 34957d1e9236e27df4fc1e4cfbbaf271271f05ff [9999/9999] ANDROID: fuse-bpf: Fix perms on readdir
config: arm-randconfig-c002-20220111 (https://download.01.org/0day-ci/archive/20220112/202201120452.MMoH70oo-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/ammarfaizi2/linux-block/commit/34957d1e9236e27df4fc1e4cfbbaf271271f05ff
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block google/android/kernel/common/android13-5.10
        git checkout 34957d1e9236e27df4fc1e4cfbbaf271271f05ff
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm 

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

All errors (new ones prefixed by >>):

   In file included from fs/fuse/dir.c:9:
   In file included from fs/fuse/fuse_i.h:16:
   In file included from include/linux/filter.h:21:
   In file included from include/linux/if_vlan.h:10:
   In file included from include/linux/netdevice.h:42:
   In file included from include/net/netprio_cgroup.h:11:
   In file included from include/linux/cgroup.h:29:
   include/linux/cgroup-defs.h:505:16: warning: field 'cgrp' with variable sized type 'struct cgroup' not at the end of a struct or class is a GNU extension [-Wgnu-variable-sized-type-not-at-end]
           struct cgroup cgrp;
                         ^
>> fs/fuse/dir.c:1579:44: error: no member named 'backing_inode' in 'struct fuse_inode'
           } else if (!(mask & MAY_NOT_BLOCK) && fi->backing_inode) {
                                                 ~~  ^
   1 warning and 1 error generated.


vim +1579 fs/fuse/dir.c

  1508	
  1509	/*
  1510	 * Check permission.  The two basic access models of FUSE are:
  1511	 *
  1512	 * 1) Local access checking ('default_permissions' mount option) based
  1513	 * on file mode.  This is the plain old disk filesystem permission
  1514	 * modell.
  1515	 *
  1516	 * 2) "Remote" access checking, where server is responsible for
  1517	 * checking permission in each inode operation.  An exception to this
  1518	 * is if ->permission() was invoked from sys_access() in which case an
  1519	 * access request is sent.  Execute permission is still checked
  1520	 * locally based on file mode.
  1521	 */
  1522	static int fuse_permission(struct inode *inode, int mask)
  1523	{
  1524		struct fuse_conn *fc = get_fuse_conn(inode);
  1525		bool refreshed = false;
  1526		int err = 0;
  1527		struct fuse_inode *fi = get_fuse_inode(inode);
  1528	
  1529		if (fuse_is_bad(inode))
  1530			return -EIO;
  1531	
  1532		if (!fuse_allow_current_process(fc))
  1533			return -EACCES;
  1534	
  1535		/*
  1536		 * If attributes are needed, refresh them before proceeding
  1537		 */
  1538		if (fc->default_permissions ||
  1539		    ((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) {
  1540			u32 perm_mask = STATX_MODE | STATX_UID | STATX_GID;
  1541	
  1542			if (perm_mask & READ_ONCE(fi->inval_mask) ||
  1543			    time_before64(fi->i_time, get_jiffies_64())) {
  1544				refreshed = true;
  1545	
  1546				err = fuse_perm_getattr(inode, mask);
  1547				if (err)
  1548					return err;
  1549			}
  1550		}
  1551	
  1552		if (fc->default_permissions) {
  1553			err = generic_permission(inode, mask);
  1554	
  1555			/* If permission is denied, try to refresh file
  1556			   attributes.  This is also needed, because the root
  1557			   node will at first have no permissions */
  1558			if (err == -EACCES && !refreshed) {
  1559				err = fuse_perm_getattr(inode, mask);
  1560				if (!err)
  1561					err = generic_permission(inode, mask);
  1562			}
  1563	
  1564			/* Note: the opposite of the above test does not
  1565			   exist.  So if permissions are revoked this won't be
  1566			   noticed immediately, only after the attribute
  1567			   timeout has expired */
  1568		} else if (mask & (MAY_ACCESS | MAY_CHDIR)) {
  1569			err = fuse_access(inode, mask);
  1570		} else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) {
  1571			if (!(inode->i_mode & S_IXUGO)) {
  1572				if (refreshed)
  1573					return -EACCES;
  1574	
  1575				err = fuse_perm_getattr(inode, mask);
  1576				if (!err && !(inode->i_mode & S_IXUGO))
  1577					return -EACCES;
  1578			}
> 1579		} else if (!(mask & MAY_NOT_BLOCK) && fi->backing_inode) {
  1580			err = fuse_access(inode, mask);
  1581		}
  1582		return err;
  1583	}
  1584	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [ammarfaizi2-block:google/android/kernel/common/android13-5.10 9999/9999] fs/fuse/dir.c:1579:44: error: no member named 'backing_inode' in 'struct fuse_inode'
Date: Wed, 12 Jan 2022 07:24:46 +0800	[thread overview]
Message-ID: <202201120452.MMoH70oo-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5273 bytes --]

tree:   https://github.com/ammarfaizi2/linux-block google/android/kernel/common/android13-5.10
head:   34957d1e9236e27df4fc1e4cfbbaf271271f05ff
commit: 34957d1e9236e27df4fc1e4cfbbaf271271f05ff [9999/9999] ANDROID: fuse-bpf: Fix perms on readdir
config: arm-randconfig-c002-20220111 (https://download.01.org/0day-ci/archive/20220112/202201120452.MMoH70oo-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/ammarfaizi2/linux-block/commit/34957d1e9236e27df4fc1e4cfbbaf271271f05ff
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block google/android/kernel/common/android13-5.10
        git checkout 34957d1e9236e27df4fc1e4cfbbaf271271f05ff
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm 

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

All errors (new ones prefixed by >>):

   In file included from fs/fuse/dir.c:9:
   In file included from fs/fuse/fuse_i.h:16:
   In file included from include/linux/filter.h:21:
   In file included from include/linux/if_vlan.h:10:
   In file included from include/linux/netdevice.h:42:
   In file included from include/net/netprio_cgroup.h:11:
   In file included from include/linux/cgroup.h:29:
   include/linux/cgroup-defs.h:505:16: warning: field 'cgrp' with variable sized type 'struct cgroup' not at the end of a struct or class is a GNU extension [-Wgnu-variable-sized-type-not-at-end]
           struct cgroup cgrp;
                         ^
>> fs/fuse/dir.c:1579:44: error: no member named 'backing_inode' in 'struct fuse_inode'
           } else if (!(mask & MAY_NOT_BLOCK) && fi->backing_inode) {
                                                 ~~  ^
   1 warning and 1 error generated.


vim +1579 fs/fuse/dir.c

  1508	
  1509	/*
  1510	 * Check permission.  The two basic access models of FUSE are:
  1511	 *
  1512	 * 1) Local access checking ('default_permissions' mount option) based
  1513	 * on file mode.  This is the plain old disk filesystem permission
  1514	 * modell.
  1515	 *
  1516	 * 2) "Remote" access checking, where server is responsible for
  1517	 * checking permission in each inode operation.  An exception to this
  1518	 * is if ->permission() was invoked from sys_access() in which case an
  1519	 * access request is sent.  Execute permission is still checked
  1520	 * locally based on file mode.
  1521	 */
  1522	static int fuse_permission(struct inode *inode, int mask)
  1523	{
  1524		struct fuse_conn *fc = get_fuse_conn(inode);
  1525		bool refreshed = false;
  1526		int err = 0;
  1527		struct fuse_inode *fi = get_fuse_inode(inode);
  1528	
  1529		if (fuse_is_bad(inode))
  1530			return -EIO;
  1531	
  1532		if (!fuse_allow_current_process(fc))
  1533			return -EACCES;
  1534	
  1535		/*
  1536		 * If attributes are needed, refresh them before proceeding
  1537		 */
  1538		if (fc->default_permissions ||
  1539		    ((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) {
  1540			u32 perm_mask = STATX_MODE | STATX_UID | STATX_GID;
  1541	
  1542			if (perm_mask & READ_ONCE(fi->inval_mask) ||
  1543			    time_before64(fi->i_time, get_jiffies_64())) {
  1544				refreshed = true;
  1545	
  1546				err = fuse_perm_getattr(inode, mask);
  1547				if (err)
  1548					return err;
  1549			}
  1550		}
  1551	
  1552		if (fc->default_permissions) {
  1553			err = generic_permission(inode, mask);
  1554	
  1555			/* If permission is denied, try to refresh file
  1556			   attributes.  This is also needed, because the root
  1557			   node will at first have no permissions */
  1558			if (err == -EACCES && !refreshed) {
  1559				err = fuse_perm_getattr(inode, mask);
  1560				if (!err)
  1561					err = generic_permission(inode, mask);
  1562			}
  1563	
  1564			/* Note: the opposite of the above test does not
  1565			   exist.  So if permissions are revoked this won't be
  1566			   noticed immediately, only after the attribute
  1567			   timeout has expired */
  1568		} else if (mask & (MAY_ACCESS | MAY_CHDIR)) {
  1569			err = fuse_access(inode, mask);
  1570		} else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) {
  1571			if (!(inode->i_mode & S_IXUGO)) {
  1572				if (refreshed)
  1573					return -EACCES;
  1574	
  1575				err = fuse_perm_getattr(inode, mask);
  1576				if (!err && !(inode->i_mode & S_IXUGO))
  1577					return -EACCES;
  1578			}
> 1579		} else if (!(mask & MAY_NOT_BLOCK) && fi->backing_inode) {
  1580			err = fuse_access(inode, mask);
  1581		}
  1582		return err;
  1583	}
  1584	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2022-01-11 23:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-11 23:24 kernel test robot [this message]
2022-01-11 23:24 ` [ammarfaizi2-block:google/android/kernel/common/android13-5.10 9999/9999] fs/fuse/dir.c:1579:44: error: no member named 'backing_inode' in 'struct fuse_inode' kernel test robot

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=202201120452.MMoH70oo-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=gwml@gnuweeb.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=paullawrence@google.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.