/fs/netfs/ |
D | io.c | 22 static void netfs_clear_unread(struct netfs_io_subrequest *subreq) in netfs_clear_unread() argument 26 iov_iter_xarray(&iter, ITER_DEST, &subreq->rreq->mapping->i_pages, in netfs_clear_unread() 27 subreq->start + subreq->transferred, in netfs_clear_unread() 28 subreq->len - subreq->transferred); in netfs_clear_unread() 35 struct netfs_io_subrequest *subreq = priv; in netfs_cache_read_terminated() local 37 netfs_subreq_terminated(subreq, transferred_or_error, was_async); in netfs_cache_read_terminated() 45 struct netfs_io_subrequest *subreq, in netfs_read_from_cache() argument 53 subreq->start + subreq->transferred, in netfs_read_from_cache() 54 subreq->len - subreq->transferred); in netfs_read_from_cache() 56 cres->ops->read(cres, subreq->start, &iter, read_hole, in netfs_read_from_cache() [all …]
|
D | objects.c | 62 struct netfs_io_subrequest *subreq; in netfs_clear_subrequests() local 65 subreq = list_first_entry(&rreq->subrequests, in netfs_clear_subrequests() 67 list_del(&subreq->rreq_link); in netfs_clear_subrequests() 68 netfs_put_subrequest(subreq, was_async, in netfs_clear_subrequests() 113 struct netfs_io_subrequest *subreq; in netfs_alloc_subrequest() local 115 subreq = kzalloc(sizeof(struct netfs_io_subrequest), GFP_KERNEL); in netfs_alloc_subrequest() 116 if (subreq) { in netfs_alloc_subrequest() 117 INIT_LIST_HEAD(&subreq->rreq_link); in netfs_alloc_subrequest() 118 refcount_set(&subreq->ref, 2); in netfs_alloc_subrequest() 119 subreq->rreq = rreq; in netfs_alloc_subrequest() [all …]
|
D | buffered_read.c | 18 struct netfs_io_subrequest *subreq; in netfs_rreq_unlock_folios() local 29 list_for_each_entry(subreq, &rreq->subrequests, rreq_link) { in netfs_rreq_unlock_folios() 30 __clear_bit(NETFS_SREQ_COPY_TO_CACHE, &subreq->flags); in netfs_rreq_unlock_folios() 40 subreq = list_first_entry(&rreq->subrequests, in netfs_rreq_unlock_folios() 42 subreq_failed = (subreq->error < 0); in netfs_rreq_unlock_folios() 61 if (!subreq) { in netfs_rreq_unlock_folios() 65 if (!folio_started && test_bit(NETFS_SREQ_COPY_TO_CACHE, &subreq->flags)) { in netfs_rreq_unlock_folios() 70 sreq_end = subreq->start + subreq->len - 1; in netfs_rreq_unlock_folios() 74 account += subreq->transferred; in netfs_rreq_unlock_folios() 75 if (!list_is_last(&subreq->rreq_link, &rreq->subrequests)) { in netfs_rreq_unlock_folios() [all …]
|
/fs/afs/ |
D | file.c | 245 struct netfs_io_subrequest *subreq = req->subreq; in afs_fetch_data_notify() local 252 if (subreq) { in afs_fetch_data_notify() 253 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in afs_fetch_data_notify() 254 netfs_subreq_terminated(subreq, error ?: req->actual_len, false); in afs_fetch_data_notify() 255 req->subreq = NULL; in afs_fetch_data_notify() 303 if (req->subreq) in afs_fetch_data() 304 netfs_subreq_terminated(req->subreq, PTR_ERR(op), false); in afs_fetch_data() 315 static void afs_issue_read(struct netfs_io_subrequest *subreq) in afs_issue_read() argument 317 struct afs_vnode *vnode = AFS_FS_I(subreq->rreq->inode); in afs_issue_read() 322 return netfs_subreq_terminated(subreq, -ENOMEM, false); in afs_issue_read() [all …]
|
D | internal.h | 210 struct netfs_io_subrequest *subreq; /* Fscache helper read request this belongs to */ member
|
/fs/nfs/ |
D | write.c | 455 struct nfs_page *subreq = destroy_list; in nfs_destroy_unlinked_subrequests() local 457 destroy_list = (subreq->wb_this_page == old_head) ? in nfs_destroy_unlinked_subrequests() 458 NULL : subreq->wb_this_page; in nfs_destroy_unlinked_subrequests() 461 nfs_page_set_headlock(subreq); in nfs_destroy_unlinked_subrequests() 462 WARN_ON_ONCE(old_head != subreq->wb_head); in nfs_destroy_unlinked_subrequests() 465 subreq->wb_this_page = subreq; in nfs_destroy_unlinked_subrequests() 466 subreq->wb_head = subreq; in nfs_destroy_unlinked_subrequests() 468 clear_bit(PG_REMOVE, &subreq->wb_flags); in nfs_destroy_unlinked_subrequests() 471 if (!kref_read(&subreq->wb_kref)) { in nfs_destroy_unlinked_subrequests() 473 if (test_and_clear_bit(PG_TEARDOWN, &subreq->wb_flags)) { in nfs_destroy_unlinked_subrequests() [all …]
|
D | pagelist.c | 240 nfs_page_group_lock_subreq(struct nfs_page *head, struct nfs_page *subreq) in nfs_page_group_lock_subreq() argument 244 if (!kref_get_unless_zero(&subreq->wb_kref)) in nfs_page_group_lock_subreq() 246 while (!nfs_lock_request(subreq)) { in nfs_page_group_lock_subreq() 248 ret = nfs_wait_on_request(subreq); in nfs_page_group_lock_subreq() 252 nfs_unroll_locks(head, subreq); in nfs_page_group_lock_subreq() 253 nfs_release_request(subreq); in nfs_page_group_lock_subreq() 269 struct nfs_page *subreq; in nfs_page_group_lock_subrequests() local 276 for (subreq = head->wb_this_page; subreq != head; in nfs_page_group_lock_subrequests() 277 subreq = subreq->wb_this_page) { in nfs_page_group_lock_subrequests() 278 ret = nfs_page_group_lock_subreq(head, subreq); in nfs_page_group_lock_subrequests() [all …]
|
D | direct.c | 504 struct nfs_page *req, *subreq; in nfs_direct_join_group() local 511 subreq = req->wb_this_page; in nfs_direct_join_group() 512 if (subreq == req) in nfs_direct_join_group() 519 if (!list_empty(&subreq->wb_list)) { in nfs_direct_join_group() 520 nfs_list_remove_request(subreq); in nfs_direct_join_group() 521 nfs_release_request(subreq); in nfs_direct_join_group() 523 } while ((subreq = subreq->wb_this_page) != req); in nfs_direct_join_group()
|
/fs/9p/ |
D | vfs_addr.c | 32 static void v9fs_issue_read(struct netfs_io_subrequest *subreq) in v9fs_issue_read() argument 34 struct netfs_io_request *rreq = subreq->rreq; in v9fs_issue_read() 37 loff_t pos = subreq->start + subreq->transferred; in v9fs_issue_read() 38 size_t len = subreq->len - subreq->transferred; in v9fs_issue_read() 47 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in v9fs_issue_read() 49 netfs_subreq_terminated(subreq, err ?: total, false); in v9fs_issue_read()
|
/fs/ceph/ |
D | addr.c | 229 static bool ceph_netfs_clamp_length(struct netfs_io_subrequest *subreq) in ceph_netfs_clamp_length() argument 231 struct inode *inode = subreq->rreq->inode; in ceph_netfs_clamp_length() 238 ceph_calc_file_object_mapping(&ci->i_layout, subreq->start, subreq->len, in ceph_netfs_clamp_length() 240 subreq->len = min(xlen, fsc->mount_options->rsize); in ceph_netfs_clamp_length() 249 struct netfs_io_subrequest *subreq = req->r_priv; in finish_netfs_read() local 258 subreq->len, i_size_read(req->r_inode)); in finish_netfs_read() 269 if (err < subreq->len) in finish_netfs_read() 270 __set_bit(NETFS_SREQ_CLEAR_TAIL, &subreq->flags); in finish_netfs_read() 273 osd_data->pages, subreq->start, in finish_netfs_read() 276 if (err > subreq->len) in finish_netfs_read() [all …]
|
/fs/cachefiles/ |
D | io.c | 496 static enum netfs_io_source cachefiles_prepare_read(struct netfs_io_subrequest *subreq, in cachefiles_prepare_read() argument 499 return cachefiles_do_prepare_read(&subreq->rreq->cache_resources, in cachefiles_prepare_read() 500 subreq->start, &subreq->len, i_size, in cachefiles_prepare_read() 501 &subreq->flags, subreq->rreq->inode->i_ino); in cachefiles_prepare_read()
|