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
next 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.