* [ammarfaizi2-block:google/android/kernel/common/android13-5.10 9677/9999] fs/fuse/backing.c:984:35: warning: variable 'fc' set but not used
@ 2022-09-20 5:00 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-09-20 5:00 UTC (permalink / raw)
To: Ammar Faizi, GNU/Weeb Mailing List; +Cc: kbuild-all
Hi Paul,
FYI, the error/warning still remains.
tree: https://github.com/ammarfaizi2/linux-block google/android/kernel/common/android13-5.10
head: aadf7ad9db2f7d93ecfb34d0e4f328519460c94e
commit: 8efdff35e3052e44d519ccfb9d50594f5df0240b [9677/9999] ANDROID: fuse-bpf: Move fd operations to be synchronous
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220920/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/ammarfaizi2/linux-block/commit/8efdff35e3052e44d519ccfb9d50594f5df0240b
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 8efdff35e3052e44d519ccfb9d50594f5df0240b
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/fuse/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
All warnings (new ones prefixed by >>):
fs/fuse/backing.c: In function 'fuse_lookup_finalize':
>> fs/fuse/backing.c:984:35: warning: variable 'fc' set but not used [-Wunused-but-set-variable]
984 | struct fuse_conn *fc;
| ^~
fs/fuse/backing.c: In function 'fuse_statfs_initialize':
fs/fuse/backing.c:1771:32: warning: initialized field overwritten [-Woverride-init]
1771 | .out_numargs = 1,
| ^
fs/fuse/backing.c:1771:32: note: (near initialization for '(anonymous).out_numargs')
vim +/fc +984 fs/fuse/backing.c
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 911
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 912 struct dentry *fuse_lookup_finalize(struct fuse_args *fa, struct inode *dir,
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 913 struct dentry *entry, unsigned int flags)
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 914 {
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 915 struct fuse_dentry *fd;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 916 struct dentry *bd;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 917 struct inode *inode, *backing_inode;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 918 struct fuse_entry_out *feo = fa->out_args[0].value;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 919 struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 920
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 921 fd = get_fuse_dentry(entry);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 922 if (!fd)
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 923 return ERR_PTR(-EIO);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 924 bd = fd->backing_path.dentry;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 925 if (!bd)
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 926 return ERR_PTR(-ENOENT);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 927 backing_inode = bd->d_inode;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 928 if (!backing_inode)
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 929 return 0;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 930
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 931 inode = fuse_iget_backing(dir->i_sb, backing_inode);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 932
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 933 if (IS_ERR(inode))
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 934 return ERR_PTR(PTR_ERR(inode));
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 935
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 936 /* TODO Make sure this handles invalid handles */
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 937 /* TODO Do we need the same code in revalidate */
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 938 if (get_fuse_inode(inode)->bpf) {
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 939 bpf_prog_put(get_fuse_inode(inode)->bpf);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 940 get_fuse_inode(inode)->bpf = NULL;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 941 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 942
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 943 switch (febo->bpf_action) {
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 944 case FUSE_ACTION_KEEP:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 945 get_fuse_inode(inode)->bpf = get_fuse_inode(dir)->bpf;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 946 if (get_fuse_inode(inode)->bpf)
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 947 bpf_prog_inc(get_fuse_inode(inode)->bpf);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 948 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 949
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 950 case FUSE_ACTION_REMOVE:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 951 get_fuse_inode(inode)->bpf = NULL;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 952 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 953
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 954 case FUSE_ACTION_REPLACE: {
8efdff35e3052e4 Paul Lawrence 2022-03-04 955 struct file *bpf_file = (struct file*) febo->bpf_fd;
8efdff35e3052e4 Paul Lawrence 2022-03-04 956 struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
8efdff35e3052e4 Paul Lawrence 2022-03-04 957
8efdff35e3052e4 Paul Lawrence 2022-03-04 958 if (bpf_file && !IS_ERR(bpf_file))
8efdff35e3052e4 Paul Lawrence 2022-03-04 959 bpf_prog = fuse_get_bpf_prog(bpf_file);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 960
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 961 if (IS_ERR(bpf_prog))
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 962 return ERR_PTR(PTR_ERR(bpf_prog));
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 963
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 964 get_fuse_inode(inode)->bpf = bpf_prog;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 965 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 966 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 967
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 968 default:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 969 return ERR_PTR(-EIO);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 970 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 971
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 972 switch (febo->backing_action) {
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 973 case FUSE_ACTION_KEEP:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 974 /* backing inode/path are added in fuse_lookup_backing */
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 975 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 976
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 977 case FUSE_ACTION_REMOVE:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 978 iput(get_fuse_inode(inode)->backing_inode);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 979 get_fuse_inode(inode)->backing_inode = NULL;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 980 path_put_init(&get_fuse_dentry(entry)->backing_path);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 981 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 982
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 983 case FUSE_ACTION_REPLACE: {
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 @984 struct fuse_conn *fc;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 985 struct file *backing_file;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 986
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 987 fc = get_fuse_mount(dir)->fc;
8efdff35e3052e4 Paul Lawrence 2022-03-04 988 backing_file = (struct file *) febo->backing_fd;
8efdff35e3052e4 Paul Lawrence 2022-03-04 989 if (!backing_file || IS_ERR(backing_file))
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 990 return ERR_PTR(-EIO);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 991
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 992 iput(get_fuse_inode(inode)->backing_inode);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 993 get_fuse_inode(inode)->backing_inode =
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 994 backing_file->f_inode;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 995 ihold(get_fuse_inode(inode)->backing_inode);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 996
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 997 path_put(&get_fuse_dentry(entry)->backing_path);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 998 get_fuse_dentry(entry)->backing_path = backing_file->f_path;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 999 path_get(&get_fuse_dentry(entry)->backing_path);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1000
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1001 fput(backing_file);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1002 break;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1003 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1004
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1005 default:
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1006 return ERR_PTR(-EIO);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1007 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1008
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1009 get_fuse_inode(inode)->nodeid = feo->nodeid;
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1010
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1011 return d_splice_alias(inode, entry);
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1012 }
6be5b06e4195b00 Daniel Rosenberg 2021-12-02 1013
:::::: The code at line 984 was first introduced by commit
:::::: 6be5b06e4195b002c52a1c2c82573ea7a76ce111 ANDROID: fuse-bpf v1
:::::: TO: Daniel Rosenberg <[email protected]>
:::::: CC: Paul Lawrence <[email protected]>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-09-20 5:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-20 5:00 [ammarfaizi2-block:google/android/kernel/common/android13-5.10 9677/9999] fs/fuse/backing.c:984:35: warning: variable 'fc' set but not used kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox