tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: fffe3ae0ee84e25d2befe2ae59bc32aa2b6bc77b commit: a62a8ef9d97da23762a588592c8b8eb50a8deb6a virtio-fs: add virtiofs filesystem date: 11 months ago compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot cppcheck warnings: (new ones prefixed by >>) >> fs/fuse/virtio_fs.c:1009:6: warning: Variable 'err' is reassigned a value before the old one has been used. [redundantAssignment] err = -ENOMEM; ^ fs/fuse/virtio_fs.c:1003:6: note: Variable 'err' is reassigned a value before the old one has been used. err = -EINVAL; ^ fs/fuse/virtio_fs.c:1009:6: note: Variable 'err' is reassigned a value before the old one has been used. err = -ENOMEM; ^ fs/fuse/virtio_fs.c:1020:6: warning: Variable 'err' is reassigned a value before the old one has been used. [redundantAssignment] err = fuse_fill_super_common(sb, &ctx); ^ fs/fuse/virtio_fs.c:1009:6: note: Variable 'err' is reassigned a value before the old one has been used. err = -ENOMEM; ^ fs/fuse/virtio_fs.c:1020:6: note: Variable 'err' is reassigned a value before the old one has been used. err = fuse_fill_super_common(sb, &ctx); ^ vim +/err +1009 fs/fuse/virtio_fs.c 979 980 static int virtio_fs_fill_super(struct super_block *sb) 981 { 982 struct fuse_conn *fc = get_fuse_conn_super(sb); 983 struct virtio_fs *fs = fc->iq.priv; 984 unsigned int i; 985 int err; 986 struct fuse_fs_context ctx = { 987 .rootmode = S_IFDIR, 988 .default_permissions = 1, 989 .allow_other = 1, 990 .max_read = UINT_MAX, 991 .blksize = 512, 992 .destroy = true, 993 .no_control = true, 994 .no_force_umount = true, 995 }; 996 997 mutex_lock(&virtio_fs_mutex); 998 999 /* After holding mutex, make sure virtiofs device is still there. 1000 * Though we are holding a reference to it, drive ->remove might 1001 * still have cleaned up virtual queues. In that case bail out. 1002 */ 1003 err = -EINVAL; 1004 if (list_empty(&fs->list)) { 1005 pr_info("virtio-fs: tag <%s> not found\n", fs->tag); 1006 goto err; 1007 } 1008 > 1009 err = -ENOMEM; 1010 /* Allocate fuse_dev for hiprio and notification queues */ 1011 for (i = 0; i < VQ_REQUEST; i++) { 1012 struct virtio_fs_vq *fsvq = &fs->vqs[i]; 1013 1014 fsvq->fud = fuse_dev_alloc(); 1015 if (!fsvq->fud) 1016 goto err_free_fuse_devs; 1017 } 1018 1019 ctx.fudptr = (void **)&fs->vqs[VQ_REQUEST].fud; 1020 err = fuse_fill_super_common(sb, &ctx); 1021 if (err < 0) 1022 goto err_free_fuse_devs; 1023 1024 fc = fs->vqs[VQ_REQUEST].fud->fc; 1025 1026 for (i = 0; i < fs->nvqs; i++) { 1027 struct virtio_fs_vq *fsvq = &fs->vqs[i]; 1028 1029 if (i == VQ_REQUEST) 1030 continue; /* already initialized */ 1031 fuse_dev_install(fsvq->fud, fc); 1032 } 1033 1034 /* Previous unmount will stop all queues. Start these again */ 1035 virtio_fs_start_all_queues(fs); 1036 fuse_send_init(fc); 1037 mutex_unlock(&virtio_fs_mutex); 1038 return 0; 1039 1040 err_free_fuse_devs: 1041 virtio_fs_free_devs(fs); 1042 err: 1043 mutex_unlock(&virtio_fs_mutex); 1044 return err; 1045 } 1046 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org