/linux/fs/netfs/ |
H A D | read_collect.c | 33 if (subreq->start + subreq->transferred >= subreq->rreq->i_size) in netfs_clear_unread() 42 static void netfs_unlock_read_folio(struct netfs_io_request *rreq, in netfs_unlock_read_folio() argument 49 if (unlikely(folio_pos(folio) < rreq->abandon_to)) { in netfs_unlock_read_folio() 57 if (!test_bit(NETFS_RREQ_USE_PGPRIV2, &rreq->flags)) { in netfs_unlock_read_folio() 68 if (test_bit(NETFS_RREQ_FOLIO_COPY_TO_CACHE, &rreq->flags)) { in netfs_unlock_read_folio() 81 if (test_bit(NETFS_RREQ_FOLIO_COPY_TO_CACHE, &rreq->flags)) in netfs_unlock_read_folio() 82 netfs_pgpriv2_copy_to_cache(rreq, folio); in netfs_unlock_read_folio() 86 if (!test_bit(NETFS_RREQ_DONT_UNLOCK_FOLIOS, &rreq->flags)) { in netfs_unlock_read_folio() 87 if (folio->index == rreq->no_unlock_folio && in netfs_unlock_read_folio() 88 test_bit(NETFS_RREQ_NO_UNLOCK_FOLIO, &rreq->flags)) { in netfs_unlock_read_folio() [all …]
|
H A D | objects.c | 24 struct netfs_io_request *rreq; in netfs_alloc_request() local 30 rreq = mempool_alloc(mempool, GFP_KERNEL); in netfs_alloc_request() 31 if (rreq) in netfs_alloc_request() 36 memset(rreq, 0, kmem_cache_size(cache)); in netfs_alloc_request() 37 rreq->start = start; in netfs_alloc_request() 38 rreq->len = len; in netfs_alloc_request() 39 rreq->origin = origin; in netfs_alloc_request() 40 rreq->netfs_ops = ctx->ops; in netfs_alloc_request() 41 rreq->mapping = mapping; in netfs_alloc_request() 42 rreq->inode = inode; in netfs_alloc_request() [all …]
|
H A D | direct_read.c | 21 struct netfs_io_request *rreq = subreq->rreq; in netfs_prepare_dio_read_iterator() local 24 rsize = umin(subreq->len, rreq->io_streams[0].sreq_max_len); in netfs_prepare_dio_read_iterator() 27 if (unlikely(rreq->io_streams[0].sreq_max_segs)) { in netfs_prepare_dio_read_iterator() 28 size_t limit = netfs_limit_iter(&rreq->buffer.iter, 0, rsize, in netfs_prepare_dio_read_iterator() 29 rreq->io_streams[0].sreq_max_segs); in netfs_prepare_dio_read_iterator() 39 subreq->io_iter = rreq->buffer.iter; in netfs_prepare_dio_read_iterator() 41 iov_iter_advance(&rreq->buffer.iter, subreq->len); in netfs_prepare_dio_read_iterator() 48 static int netfs_dispatch_unbuffered_reads(struct netfs_io_request *rreq) in netfs_dispatch_unbuffered_reads() argument 50 struct netfs_io_stream *stream = &rreq->io_streams[0]; in netfs_dispatch_unbuffered_reads() 51 unsigned long long start = rreq->start; in netfs_dispatch_unbuffered_reads() [all …]
|
H A D | buffered_read.c | 12 static void netfs_cache_expand_readahead(struct netfs_io_request *rreq, in netfs_cache_expand_readahead() argument 17 struct netfs_cache_resources *cres = &rreq->cache_resources; in netfs_cache_expand_readahead() 23 static void netfs_rreq_expand(struct netfs_io_request *rreq, in netfs_rreq_expand() argument 29 netfs_cache_expand_readahead(rreq, &rreq->start, &rreq->len, rreq->i_size); in netfs_rreq_expand() 34 if (rreq->netfs_ops->expand_readahead) in netfs_rreq_expand() 35 rreq->netfs_ops->expand_readahead(rreq); in netfs_rreq_expand() 46 if (rreq->start != readahead_pos(ractl) || in netfs_rreq_expand() 47 rreq->len != readahead_length(ractl)) { in netfs_rreq_expand() 48 readahead_expand(ractl, rreq->start, rreq->len); in netfs_rreq_expand() 49 rreq->start = readahead_pos(ractl); in netfs_rreq_expand() [all …]
|
H A D | read_single.c | 56 static int netfs_single_begin_cache_read(struct netfs_io_request *rreq, struct netfs_inode *ctx) in netfs_single_begin_cache_read() argument 58 return fscache_begin_read_operation(&rreq->cache_resources, netfs_i_cookie(ctx)); in netfs_single_begin_cache_read() 61 static void netfs_single_cache_prepare_read(struct netfs_io_request *rreq, in netfs_single_cache_prepare_read() argument 64 struct netfs_cache_resources *cres = &rreq->cache_resources; in netfs_single_cache_prepare_read() 70 subreq->source = cres->ops->prepare_read(subreq, rreq->i_size); in netfs_single_cache_prepare_read() 75 static void netfs_single_read_cache(struct netfs_io_request *rreq, in netfs_single_read_cache() argument 78 struct netfs_cache_resources *cres = &rreq->cache_resources; in netfs_single_read_cache() 80 _enter("R=%08x[%x]", rreq->debug_id, subreq->debug_index); in netfs_single_read_cache() 90 static int netfs_single_dispatch_read(struct netfs_io_request *rreq) in netfs_single_dispatch_read() argument 92 struct netfs_io_stream *stream = &rreq->io_streams[0]; in netfs_single_dispatch_read() [all …]
|
H A D | read_retry.c | 12 static void netfs_reissue_read(struct netfs_io_request *rreq, in netfs_reissue_read() argument 18 subreq->rreq->netfs_ops->issue_read(subreq); in netfs_reissue_read() 25 static void netfs_retry_read_subrequests(struct netfs_io_request *rreq) in netfs_retry_read_subrequests() argument 28 struct netfs_io_stream *stream = &rreq->io_streams[0]; in netfs_retry_read_subrequests() 31 _enter("R=%x", rreq->debug_id); in netfs_retry_read_subrequests() 36 if (rreq->netfs_ops->retry_request) in netfs_retry_read_subrequests() 37 rreq->netfs_ops->retry_request(rreq, NULL); in netfs_retry_read_subrequests() 42 if (!rreq->netfs_ops->prepare_read && in netfs_retry_read_subrequests() 43 !rreq->cache_resources.ops) { in netfs_retry_read_subrequests() 52 netfs_reissue_read(rreq, subreq); in netfs_retry_read_subrequests() [all …]
|
H A D | internal.h | 40 static inline void netfs_proc_add_rreq(struct netfs_io_request *rreq) in netfs_proc_add_rreq() argument 43 list_add_tail_rcu(&rreq->proc_link, &netfs_io_requests); in netfs_proc_add_rreq() 46 static inline void netfs_proc_del_rreq(struct netfs_io_request *rreq) in netfs_proc_del_rreq() argument 48 if (!list_empty(&rreq->proc_link)) { in netfs_proc_del_rreq() 50 list_del_rcu(&rreq->proc_link); in netfs_proc_del_rreq() 55 static inline void netfs_proc_add_rreq(struct netfs_io_request *rreq) {} in netfs_proc_add_rreq() argument 56 static inline void netfs_proc_del_rreq(struct netfs_io_request *rreq) {} in netfs_proc_del_rreq() argument 62 struct folio_queue *netfs_buffer_make_space(struct netfs_io_request *rreq, 73 void netfs_get_request(struct netfs_io_request *rreq, enum netfs_rreq_ref_trace what); 74 void netfs_clear_subrequests(struct netfs_io_request *rreq, bool was_async); [all …]
|
H A D | main.c | 56 struct netfs_io_request *rreq; in netfs_requests_seq_show() local 66 rreq = list_entry(v, struct netfs_io_request, proc_link); in netfs_requests_seq_show() 69 rreq->debug_id, in netfs_requests_seq_show() 70 netfs_origins[rreq->origin], in netfs_requests_seq_show() 71 refcount_read(&rreq->ref), in netfs_requests_seq_show() 72 rreq->flags, in netfs_requests_seq_show() 73 rreq->error, in netfs_requests_seq_show() 75 rreq->start, rreq->submitted, rreq->len); in netfs_requests_seq_show()
|
H A D | read_pgpriv2.c | 98 struct netfs_io_request *rreq, struct folio *folio) in netfs_pgpriv2_begin_copy_to_cache() argument 102 if (!fscache_resources_valid(&rreq->cache_resources)) in netfs_pgpriv2_begin_copy_to_cache() 105 creq = netfs_create_write_req(rreq->mapping, NULL, folio_pos(folio), in netfs_pgpriv2_begin_copy_to_cache() 115 rreq->copy_to_cache = creq; in netfs_pgpriv2_begin_copy_to_cache() 121 rreq->copy_to_cache = ERR_PTR(-ENOBUFS); in netfs_pgpriv2_begin_copy_to_cache() 122 clear_bit(NETFS_RREQ_FOLIO_COPY_TO_CACHE, &rreq->flags); in netfs_pgpriv2_begin_copy_to_cache() 130 void netfs_pgpriv2_copy_to_cache(struct netfs_io_request *rreq, struct folio *folio) in netfs_pgpriv2_copy_to_cache() argument 132 struct netfs_io_request *creq = rreq->copy_to_cache; in netfs_pgpriv2_copy_to_cache() 135 creq = netfs_pgpriv2_begin_copy_to_cache(rreq, folio); in netfs_pgpriv2_copy_to_cache() 147 void netfs_pgpriv2_end_copy_to_cache(struct netfs_io_request *rreq) in netfs_pgpriv2_end_copy_to_cache() argument [all …]
|
H A D | write_collect.c | 24 static void netfs_dump_request(const struct netfs_io_request *rreq) in netfs_dump_request() argument 27 rreq->debug_id, refcount_read(&rreq->ref), rreq->flags, in netfs_dump_request() 28 rreq->origin, rreq->error); in netfs_dump_request() 30 rreq->start, rreq->transferred, rreq->submitted, rreq->len); in netfs_dump_request() 32 rreq->cleaned_to, rreq->collected_to, atomic64_read(&rreq->issued_to)); in netfs_dump_request() 33 pr_err(" iw=%pSR\n", rreq->netfs_ops->issue_write); in netfs_dump_request() 36 const struct netfs_io_stream *s = &rreq->io_streams[i]; in netfs_dump_request() 485 struct netfs_io_request *wreq = subreq->rreq; in netfs_write_subrequest_terminated()
|
/linux/fs/9p/ |
H A D | vfs_addr.c | 56 struct p9_fid *fid = subreq->rreq->netfs_priv; in v9fs_issue_write() 71 struct netfs_io_request *rreq = subreq->rreq; in v9fs_issue_read() local 72 struct p9_fid *fid = rreq->netfs_priv; in v9fs_issue_read() 80 if (subreq->rreq->origin != NETFS_DIO_READ) in v9fs_issue_read() 82 if (pos + total >= i_size_read(rreq->inode)) in v9fs_issue_read() 98 static int v9fs_init_request(struct netfs_io_request *rreq, struct file *file) in v9fs_init_request() argument 101 bool writing = (rreq->origin == NETFS_READ_FOR_WRITE || in v9fs_init_request() 102 rreq->origin == NETFS_WRITETHROUGH || in v9fs_init_request() 103 rreq->origin == NETFS_UNBUFFERED_WRITE || in v9fs_init_request() 104 rreq->origin == NETFS_DIO_WRITE); in v9fs_init_request() [all …]
|
/linux/include/trace/events/ |
H A D | netfs.h | 277 TP_PROTO(struct netfs_io_request *rreq, 281 TP_ARGS(rreq, start, len, what), 284 __field(unsigned int, rreq) 294 __entry->rreq = rreq->debug_id; 295 __entry->cookie = rreq->cache_resources.debug_id; 296 __entry->i_size = rreq->i_size; 300 __entry->netfs_inode = rreq->inode->i_ino; 304 __entry->rreq, 312 TP_PROTO(struct netfs_io_request *rreq, 315 TP_ARGS(rreq, what), [all …]
|
/linux/fs/nfs/ |
H A D | fscache.c | 264 static int nfs_netfs_init_request(struct netfs_io_request *rreq, struct file *file) in nfs_netfs_init_request() argument 267 if (WARN_ON_ONCE(rreq->origin != NETFS_PGPRIV2_COPY_TO_CACHE)) in nfs_netfs_init_request() 272 rreq->netfs_priv = get_nfs_open_context(nfs_file_open_context(file)); in nfs_netfs_init_request() 273 rreq->debug_id = atomic_inc_return(&nfs_netfs_debug_id); in nfs_netfs_init_request() 275 __set_bit(NETFS_RREQ_USE_PGPRIV2, &rreq->flags); in nfs_netfs_init_request() 276 rreq->io_streams[0].sreq_max_len = NFS_SB(rreq->inode->i_sb)->rsize; in nfs_netfs_init_request() 281 static void nfs_netfs_free_request(struct netfs_io_request *rreq) in nfs_netfs_free_request() argument 283 if (rreq->netfs_priv) in nfs_netfs_free_request() 284 put_nfs_open_context(rreq->netfs_priv); in nfs_netfs_free_request() 303 struct inode *inode = sreq->rreq->inode; in nfs_netfs_issue_read() [all …]
|
/linux/drivers/infiniband/sw/siw/ |
H A D | siw_qp.c | 294 struct siw_sqe *rreq = NULL; in siw_qp_mpa_rts() local 301 rreq = orq_get_free(qp); in siw_qp_mpa_rts() 302 if (rreq) { in siw_qp_mpa_rts() 303 siw_read_to_orq(rreq, &wqe->sqe); in siw_qp_mpa_rts() 464 struct iwarp_rdma_rreq *rreq; in siw_send_terminate() local 472 rreq = (struct iwarp_rdma_rreq *)err_hdr; in siw_send_terminate() 474 memcpy(&rreq->ctrl, in siw_send_terminate() 478 rreq->rsvd = 0; in siw_send_terminate() 479 rreq->ddp_qn = in siw_send_terminate() 483 rreq->ddp_msn = htonl(wqe->sqe.sge[0].length); in siw_send_terminate() [all …]
|
H A D | siw_qp_rx.c | 661 uint64_t raddr = be64_to_cpu(srx->hdr.rreq.sink_to), in siw_init_rresp() 662 laddr = be64_to_cpu(srx->hdr.rreq.source_to); in siw_init_rresp() 663 uint32_t length = be32_to_cpu(srx->hdr.rreq.read_size), in siw_init_rresp() 664 lkey = be32_to_cpu(srx->hdr.rreq.source_stag), in siw_init_rresp() 665 rkey = be32_to_cpu(srx->hdr.rreq.sink_stag), in siw_init_rresp() 666 msn = be32_to_cpu(srx->hdr.rreq.ddp_msn); in siw_init_rresp() 1133 struct siw_sqe *rreq; in siw_check_tx_fence() local 1140 rreq = orq_get_current(qp); in siw_check_tx_fence() 1141 WRITE_ONCE(rreq->flags, 0); in siw_check_tx_fence() 1157 rreq = orq_get_free(qp); in siw_check_tx_fence() [all …]
|
H A D | siw_qp_tx.c | 130 c_tx->pkt.rreq.rsvd = 0; in siw_qp_prepare_tx() 131 c_tx->pkt.rreq.ddp_qn = htonl(RDMAP_UNTAGGED_QN_RDMA_READ); in siw_qp_prepare_tx() 132 c_tx->pkt.rreq.ddp_msn = in siw_qp_prepare_tx() 134 c_tx->pkt.rreq.ddp_mo = 0; in siw_qp_prepare_tx() 135 c_tx->pkt.rreq.sink_stag = htonl(wqe->sqe.sge[0].lkey); in siw_qp_prepare_tx() 136 c_tx->pkt.rreq.sink_to = in siw_qp_prepare_tx() 138 c_tx->pkt.rreq.source_stag = htonl(wqe->sqe.rkey); in siw_qp_prepare_tx() 139 c_tx->pkt.rreq.source_to = cpu_to_be64(wqe->sqe.raddr); in siw_qp_prepare_tx() 140 c_tx->pkt.rreq.read_size = htonl(wqe->sqe.sge[0].length); in siw_qp_prepare_tx()
|
/linux/fs/afs/ |
H A D | file.c | 335 struct afs_vnode *vnode = AFS_FS_I(subreq->rreq->inode); in afs_issue_read() 336 struct key *key = subreq->rreq->netfs_priv; in afs_issue_read() 359 if (subreq->rreq->origin == NETFS_READAHEAD || in afs_issue_read() 360 subreq->rreq->iocb) { in afs_issue_read() 380 static int afs_init_request(struct netfs_io_request *rreq, struct file *file) in afs_init_request() argument 382 struct afs_vnode *vnode = AFS_FS_I(rreq->inode); in afs_init_request() 385 rreq->netfs_priv = key_get(afs_file_key(file)); in afs_init_request() 386 rreq->rsize = 256 * 1024; in afs_init_request() 387 rreq->wsize = 256 * 1024 * 1024; in afs_init_request() 389 switch (rreq->origin) { in afs_init_request() [all …]
|
H A D | write.c | 92 struct netfs_io_stream *stream = &subreq->rreq->io_streams[subreq->stream_nr]; in afs_prepare_write() 106 struct netfs_io_request *wreq = subreq->rreq; in afs_issue_write_worker()
|
/linux/net/9p/ |
H A D | trans_fd.c | 119 struct p9_req_t *rreq; member 313 if ((!m->rreq) && (m->rc.offset == m->rc.capacity)) { in p9_read_work() 329 m->rreq = p9_tag_lookup(m->client, m->rc.tag); in p9_read_work() 330 if (!m->rreq || (m->rreq->status != REQ_STATUS_SENT)) { in p9_read_work() 337 if (m->rc.size > m->rreq->rc.capacity) { in p9_read_work() 340 m->rc.size, m->rc.tag, m->rreq->rc.capacity); in p9_read_work() 345 if (!m->rreq->rc.sdata) { in p9_read_work() 348 m->rc.tag, m->rreq); in p9_read_work() 349 p9_req_put(m->client, m->rreq); in p9_read_work() 350 m->rreq = NULL; in p9_read_work() [all …]
|
/linux/fs/ceph/ |
H A D | addr.c | 165 static void ceph_netfs_expand_readahead(struct netfs_io_request *rreq) in ceph_netfs_expand_readahead() argument 167 struct inode *inode = rreq->inode; in ceph_netfs_expand_readahead() 171 loff_t end = rreq->start + rreq->len, new_end; in ceph_netfs_expand_readahead() 172 struct ceph_netfs_request_data *priv = rreq->netfs_priv; in ceph_netfs_expand_readahead() 196 new_end = umin(round_up(end, lo->stripe_unit), rreq->i_size); in ceph_netfs_expand_readahead() 197 if (new_end > end && new_end <= rreq->start + max_len) in ceph_netfs_expand_readahead() 198 rreq->len = new_end - rreq->start; in ceph_netfs_expand_readahead() 201 div_u64_rem(rreq->start, lo->stripe_unit, &blockoff); in ceph_netfs_expand_readahead() 202 if (rreq->len + blockoff <= max_len) { in ceph_netfs_expand_readahead() 203 rreq->start -= blockoff; in ceph_netfs_expand_readahead() [all …]
|
/linux/tools/net/ynl/samples/ |
H A D | ethtool.c | 14 struct ethtool_rings_get_req_dump rreq = {}; in main() local 41 rreq._present.header = 1; /* ethtool needs an empty nest.. */ in main() 42 rings = ethtool_rings_get_dump(ys, &rreq); in main()
|
/linux/fs/smb/client/ |
H A D | file.c | 52 struct netfs_io_stream *stream = &req->rreq.io_streams[subreq->stream_nr]; in cifs_prepare_write() 55 size_t wsize = req->rreq.wsize; in cifs_prepare_write() 84 wdata->credits.rreq_debug_id = subreq->rreq->debug_id; in cifs_prepare_write() 87 trace_smb3_rw_credits(wdata->rreq->debug_id, in cifs_prepare_write() 107 struct cifs_sb_info *sbi = CIFS_SB(subreq->rreq->inode->i_sb); in cifs_issue_write() 147 struct netfs_io_request *rreq = subreq->rreq; in cifs_prepare_read() local 149 struct cifs_io_request *req = container_of(subreq->rreq, struct cifs_io_request, rreq); in cifs_prepare_read() 151 struct cifs_sb_info *cifs_sb = CIFS_SB(rreq->inode->i_sb); in cifs_prepare_read() 173 rreq->io_streams[0].sreq_max_len = size; in cifs_prepare_read() 176 rdata->credits.rreq_debug_id = rreq->debug_id; in cifs_prepare_read() [all …]
|
/linux/include/linux/ |
H A D | netfs.h | 177 struct netfs_io_request *rreq; /* Supervising I/O request */ member 294 int (*init_request)(struct netfs_io_request *rreq, struct file *file); 295 void (*free_request)(struct netfs_io_request *rreq); 296 void (*free_subrequest)(struct netfs_io_subrequest *rreq); 299 void (*expand_readahead)(struct netfs_io_request *rreq); 302 bool (*is_still_valid)(struct netfs_io_request *rreq); 305 void (*done)(struct netfs_io_request *rreq);
|
/linux/fs/cachefiles/ |
H A D | io.c | 501 return cachefiles_do_prepare_read(&subreq->rreq->cache_resources, in cachefiles_prepare_read() 503 &subreq->flags, subreq->rreq->inode->i_ino); in cachefiles_prepare_read() 630 struct netfs_io_request *wreq = subreq->rreq; in cachefiles_prepare_write_subreq() 649 struct netfs_io_request *wreq = subreq->rreq; in cachefiles_issue_write() 711 cachefiles_write(&subreq->rreq->cache_resources, in cachefiles_issue_write()
|
/linux/Documentation/filesystems/ |
H A D | netfs_library.rst | 239 struct netfs_io_request *rreq; 251 * ``rreq`` 296 void (*init_request)(struct netfs_io_request *rreq, struct file *file); 297 void (*free_request)(struct netfs_io_request *rreq); 298 void (*expand_readahead)(struct netfs_io_request *rreq); 301 bool (*is_still_valid)(struct netfs_io_request *rreq); 304 void (*done)(struct netfs_io_request *rreq); 451 int fscache_begin_read_operation(struct netfs_io_request *rreq,
|