[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202204230625.XcIM7EPi-lkp@intel.com>
Date: Sat, 23 Apr 2022 06:41:11 +0800
From: kernel test robot <lkp@...el.com>
To: David Howells <dhowells@...hat.com>
Cc: llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
linux-kernel@...r.kernel.org
Subject: [ammarfaizi2-block:dhowells/linux-fs/netfs-maple 30/44]
fs/netfs/direct_read.c:199:22: warning: mixing declarations and code is
incompatible with standards before C99
tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/netfs-maple
head: 931e50676c6598d0eda1954ead465519ff91874d
commit: d1c47ebbbed8921181b4573ba5736595bc3b787c [30/44] netfs: Support decryption on DIO read
config: x86_64-randconfig-a016 (https://download.01.org/0day-ci/archive/20220423/202204230625.XcIM7EPi-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 5bd87350a5ae429baf8f373cb226a57b62f87280)
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
# https://github.com/ammarfaizi2/linux-block/commit/d1c47ebbbed8921181b4573ba5736595bc3b787c
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/netfs-maple
git checkout d1c47ebbbed8921181b4573ba5736595bc3b787c
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/netfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
fs/netfs/direct_read.c:198:3: error: expected expression
unsigned int min_bsize = 1ULL << ctx->min_bshift;
^
fs/netfs/direct_read.c:199:54: error: use of undeclared identifier 'min_bsize'
unsigned long long start = round_down(rreq->start, min_bsize);
^
fs/netfs/direct_read.c:201:47: error: use of undeclared identifier 'min_bsize'
round_up(rreq->start + rreq->len, min_bsize),
^
fs/netfs/direct_read.c:201:47: error: use of undeclared identifier 'min_bsize'
>> fs/netfs/direct_read.c:199:22: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement]
unsigned long long start = round_down(rreq->start, min_bsize);
^
1 warning and 4 errors generated.
vim +199 fs/netfs/direct_read.c
116
117 /**
118 * netfs_direct_read_iter - Perform a direct I/O read
119 * @iocb: The I/O control descriptor describing the read
120 * @iter: The output buffer (also specifies read length)
121 */
122 ssize_t netfs_direct_read_iter(struct kiocb *iocb, struct iov_iter *iter)
123 {
124 struct netfs_io_request *rreq;
125 struct netfs_i_context *ctx;
126 ssize_t n, ret;
127
128 _enter("");
129
130 rreq = netfs_alloc_request(iocb->ki_filp->f_mapping, iocb->ki_filp,
131 iocb->ki_pos, iov_iter_count(iter),
132 NETFS_DIO_READ);
133 if (IS_ERR(rreq))
134 return PTR_ERR(rreq);
135
136 ctx = netfs_i_context(rreq->inode);
137 netfs_stat(&netfs_n_rh_dio_read);
138 trace_netfs_read(rreq, rreq->start, rreq->len, netfs_read_trace_dio_read);
139
140 rreq->buffering = NETFS_DIRECT;
141 if (test_bit(NETFS_RREQ_CONTENT_ENCRYPTION, &rreq->flags)) {
142 static const enum netfs_buffering buffering[2][2] = {
143 /* [async][aligned] */
144 [false][false] = NETFS_BOUNCE_DEC_COPY,
145 [false][true] = NETFS_BOUNCE_DEC_TO_DIRECT,
146 [true ][false] = NETFS_BOUNCE_DEC_COPY_BV,
147 [true ][true] = NETFS_BOUNCE_DEC_TO_DIRECT_BV,
148 };
149 bool aligned = netfs_is_crypto_aligned(rreq, iter);
150 bool async = !is_sync_kiocb(iocb);
151
152 rreq->buffering = buffering[async][aligned];
153 }
154
155 kdebug("remote_i %llx %llx %llx",
156 ctx->remote_i_size, rreq->i_size, i_size_read(netfs_inode(ctx)));
157
158 /* If this is an async op, we have to keep track of the destination
159 * buffer for ourselves as the caller's iterator will be trashed when
160 * we return.
161 *
162 * In such a case, extract an iterator to represent as much of the the
163 * output buffer as we can manage. Note that the extraction might not
164 * be able to allocate a sufficiently large bvec array and may shorten
165 * the request.
166 */
167 switch (rreq->buffering) {
168 case NETFS_DIRECT:
169 case NETFS_BOUNCE_DEC_TO_DIRECT:
170 case NETFS_BOUNCE_DEC_COPY:
171 rreq->direct_iter = *iter;
172 rreq->len = iov_iter_count(&rreq->direct_iter);
173 break;
174 case NETFS_DIRECT_BV:
175 case NETFS_BOUNCE_DEC_TO_DIRECT_BV:
176 case NETFS_BOUNCE_DEC_COPY_BV:
177 n = extract_iter_to_iter(iter, rreq->len, &rreq->direct_iter,
178 &rreq->direct_bv);
179 if (n < 0) {
180 ret = n;
181 goto out;
182 }
183 rreq->direct_bv_count = n;
184 rreq->len = iov_iter_count(&rreq->direct_iter);
185 break;
186 default:
187 BUG();
188 }
189
190 /* If we're going to use a bounce buffer, we need to set it up. We
191 * will then need to pad the request out to the minimum block size.
192 */
193 switch (rreq->buffering) {
194 case NETFS_BOUNCE_DEC_TO_DIRECT:
195 case NETFS_BOUNCE_DEC_COPY:
196 case NETFS_BOUNCE_DEC_TO_DIRECT_BV:
197 case NETFS_BOUNCE_DEC_COPY_BV:
198 unsigned int min_bsize = 1ULL << ctx->min_bshift;
> 199 unsigned long long start = round_down(rreq->start, min_bsize);
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Powered by blists - more mailing lists