tree: https://github.com/0day-ci/linux/commits/UPDATE-20200818-215429/Alessio-Balsini/fuse-Add-support-for-passthrough-read-write/20200813-001731 head: db983424acd984ba063ea00211c5c1b8a9a85b22 commit: db983424acd984ba063ea00211c5c1b8a9a85b22 [2/2] fuse: Add support for passthrough read/write config: x86_64-randconfig-m001-20200818 (attached as .config) 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 <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: fs/fuse/passthrough.c:140 fuse_passthrough_write_iter() warn: inconsistent returns 'fuse_inode->i_rwsem'. # https://github.com/0day-ci/linux/commit/db983424acd984ba063ea00211c5c1b8a9a85b22 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review UPDATE-20200818-215429/Alessio-Balsini/fuse-Add-support-for-passthrough-read-write/20200813-001731 git checkout db983424acd984ba063ea00211c5c1b8a9a85b22 vim +140 fs/fuse/passthrough.c db983424acd984 Alessio Balsini 2020-08-18 92 ssize_t fuse_passthrough_write_iter(struct kiocb *iocb_fuse, db983424acd984 Alessio Balsini 2020-08-18 93 struct iov_iter *iter) db983424acd984 Alessio Balsini 2020-08-18 94 { db983424acd984 Alessio Balsini 2020-08-18 95 struct file *fuse_filp = iocb_fuse->ki_filp; db983424acd984 Alessio Balsini 2020-08-18 96 struct fuse_file *ff = fuse_filp->private_data; db983424acd984 Alessio Balsini 2020-08-18 97 struct file *passthrough_filp = ff->passthrough_filp; db983424acd984 Alessio Balsini 2020-08-18 98 struct inode *passthrough_inode = file_inode(passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 99 struct inode *fuse_inode = file_inode(fuse_filp); db983424acd984 Alessio Balsini 2020-08-18 100 ssize_t ret; db983424acd984 Alessio Balsini 2020-08-18 101 db983424acd984 Alessio Balsini 2020-08-18 102 if (!iov_iter_count(iter)) db983424acd984 Alessio Balsini 2020-08-18 103 return 0; db983424acd984 Alessio Balsini 2020-08-18 104 db983424acd984 Alessio Balsini 2020-08-18 105 inode_lock(fuse_inode); ^^^^^^^^^^^^^^^^^^^^^^ db983424acd984 Alessio Balsini 2020-08-18 106 db983424acd984 Alessio Balsini 2020-08-18 107 if (is_sync_kiocb(iocb_fuse)) { db983424acd984 Alessio Balsini 2020-08-18 108 struct kiocb iocb; db983424acd984 Alessio Balsini 2020-08-18 109 db983424acd984 Alessio Balsini 2020-08-18 110 kiocb_clone(&iocb, iocb_fuse, passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 111 db983424acd984 Alessio Balsini 2020-08-18 112 file_start_write(passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 113 ret = call_write_iter(passthrough_filp, &iocb, iter); db983424acd984 Alessio Balsini 2020-08-18 114 file_end_write(passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 115 db983424acd984 Alessio Balsini 2020-08-18 116 iocb_fuse->ki_pos = iocb.ki_pos; db983424acd984 Alessio Balsini 2020-08-18 117 fuse_copyattr(fuse_filp, passthrough_filp, true); db983424acd984 Alessio Balsini 2020-08-18 118 } else { db983424acd984 Alessio Balsini 2020-08-18 119 struct fuse_aio_req *aio_req; db983424acd984 Alessio Balsini 2020-08-18 120 db983424acd984 Alessio Balsini 2020-08-18 121 aio_req = db983424acd984 Alessio Balsini 2020-08-18 122 kmem_cache_zalloc(fuse_aio_request_cachep, GFP_KERNEL); db983424acd984 Alessio Balsini 2020-08-18 123 if (!aio_req) db983424acd984 Alessio Balsini 2020-08-18 124 return -ENOMEM; Need to unlock. db983424acd984 Alessio Balsini 2020-08-18 125 db983424acd984 Alessio Balsini 2020-08-18 126 file_start_write(passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 127 __sb_writers_release(passthrough_inode->i_sb, SB_FREEZE_WRITE); db983424acd984 Alessio Balsini 2020-08-18 128 db983424acd984 Alessio Balsini 2020-08-18 129 aio_req->iocb_fuse = iocb_fuse; db983424acd984 Alessio Balsini 2020-08-18 130 kiocb_clone(&aio_req->iocb, iocb_fuse, passthrough_filp); db983424acd984 Alessio Balsini 2020-08-18 131 aio_req->iocb.ki_complete = fuse_aio_rw_complete; db983424acd984 Alessio Balsini 2020-08-18 132 ret = vfs_iocb_iter_write(passthrough_filp, &aio_req->iocb, db983424acd984 Alessio Balsini 2020-08-18 133 iter); db983424acd984 Alessio Balsini 2020-08-18 134 if (ret != -EIOCBQUEUED) db983424acd984 Alessio Balsini 2020-08-18 135 fuse_aio_cleanup_handler(aio_req); db983424acd984 Alessio Balsini 2020-08-18 136 } db983424acd984 Alessio Balsini 2020-08-18 137 db983424acd984 Alessio Balsini 2020-08-18 138 inode_unlock(fuse_inode); ^^^^^^^^^^^^^^^^^^^^^^^^ db983424acd984 Alessio Balsini 2020-08-18 139 db983424acd984 Alessio Balsini 2020-08-18 @140 return ret; db983424acd984 Alessio Balsini 2020-08-18 141 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
