* Slice off a piece of a read request and submit an I/O request for it.
  */
 static bool netfs_rreq_submit_slice(struct netfs_io_request *rreq,
-                                   struct iov_iter *io_iter,
-                                   unsigned int *_debug_index)
+                                   struct iov_iter *io_iter)
 {
        struct netfs_io_subrequest *subreq;
        enum netfs_io_source source;
        if (!subreq)
                return false;
 
-       subreq->debug_index     = (*_debug_index)++;
        subreq->start           = rreq->start + rreq->submitted;
        subreq->len             = io_iter->count;
 
 int netfs_begin_read(struct netfs_io_request *rreq, bool sync)
 {
        struct iov_iter io_iter;
-       unsigned int debug_index = 0;
        int ret;
 
        _enter("R=%x %llx-%llx",
                if (rreq->origin == NETFS_DIO_READ &&
                    rreq->start + rreq->submitted >= rreq->i_size)
                        break;
-               if (!netfs_rreq_submit_slice(rreq, &io_iter, &debug_index))
+               if (!netfs_rreq_submit_slice(rreq, &io_iter))
                        break;
                if (test_bit(NETFS_RREQ_BLOCKED, &rreq->flags) &&
                    test_bit(NETFS_RREQ_NONBLOCK, &rreq->flags))
 
                INIT_LIST_HEAD(&subreq->rreq_link);
                refcount_set(&subreq->ref, 2);
                subreq->rreq = rreq;
+               subreq->debug_index = atomic_inc_return(&rreq->subreq_counter);
                netfs_get_request(rreq, netfs_rreq_trace_get_subreq);
                netfs_stat(&netfs_n_rh_sreq);
        }