@@ -258,17 +258,18 @@ static bool netfs_consume_read_data(struct netfs_io_subrequest *subreq, bool was
258
258
*/
259
259
if (!subreq -> consumed &&
260
260
!prev_donated &&
261
- !list_is_first (& subreq -> rreq_link , & rreq -> subrequests ) &&
262
- subreq -> start == prev -> start + prev -> len ) {
261
+ !list_is_first (& subreq -> rreq_link , & rreq -> subrequests )) {
263
262
prev = list_prev_entry (subreq , rreq_link );
264
- WRITE_ONCE (prev -> next_donated , prev -> next_donated + subreq -> len );
265
- subreq -> start += subreq -> len ;
266
- subreq -> len = 0 ;
267
- subreq -> transferred = 0 ;
268
- trace_netfs_donate (rreq , subreq , prev , subreq -> len ,
269
- netfs_trace_donate_to_prev );
270
- trace_netfs_sreq (subreq , netfs_sreq_trace_donate_to_prev );
271
- goto remove_subreq_locked ;
263
+ if (subreq -> start == prev -> start + prev -> len ) {
264
+ WRITE_ONCE (prev -> next_donated , prev -> next_donated + subreq -> len );
265
+ subreq -> start += subreq -> len ;
266
+ subreq -> len = 0 ;
267
+ subreq -> transferred = 0 ;
268
+ trace_netfs_donate (rreq , subreq , prev , subreq -> len ,
269
+ netfs_trace_donate_to_prev );
270
+ trace_netfs_sreq (subreq , netfs_sreq_trace_donate_to_prev );
271
+ goto remove_subreq_locked ;
272
+ }
272
273
}
273
274
274
275
/* If we can't donate down the chain, donate up the chain instead. */
0 commit comments