Lines Matching refs:subreq

384 		struct nfs_page *subreq = destroy_list;  in nfs_destroy_unlinked_subrequests()  local
386 destroy_list = (subreq->wb_this_page == old_head) ? in nfs_destroy_unlinked_subrequests()
387 NULL : subreq->wb_this_page; in nfs_destroy_unlinked_subrequests()
390 nfs_page_set_headlock(subreq); in nfs_destroy_unlinked_subrequests()
391 WARN_ON_ONCE(old_head != subreq->wb_head); in nfs_destroy_unlinked_subrequests()
394 subreq->wb_this_page = subreq; in nfs_destroy_unlinked_subrequests()
395 subreq->wb_head = subreq; in nfs_destroy_unlinked_subrequests()
397 clear_bit(PG_REMOVE, &subreq->wb_flags); in nfs_destroy_unlinked_subrequests()
400 if (!kref_read(&subreq->wb_kref)) { in nfs_destroy_unlinked_subrequests()
402 if (test_and_clear_bit(PG_TEARDOWN, &subreq->wb_flags)) { in nfs_destroy_unlinked_subrequests()
403 nfs_page_clear_headlock(subreq); in nfs_destroy_unlinked_subrequests()
404 nfs_free_request(subreq); in nfs_destroy_unlinked_subrequests()
406 nfs_page_clear_headlock(subreq); in nfs_destroy_unlinked_subrequests()
409 nfs_page_clear_headlock(subreq); in nfs_destroy_unlinked_subrequests()
413 if (test_and_clear_bit(PG_INODE_REF, &subreq->wb_flags)) { in nfs_destroy_unlinked_subrequests()
414 nfs_release_request(subreq); in nfs_destroy_unlinked_subrequests()
420 nfs_unlock_and_release_request(subreq); in nfs_destroy_unlinked_subrequests()
438 struct nfs_page *subreq; in nfs_join_page_group() local
445 for (subreq = head->wb_this_page; subreq != head; in nfs_join_page_group()
446 subreq = subreq->wb_this_page) { in nfs_join_page_group()
448 if (pgbase > subreq->wb_pgbase) { in nfs_join_page_group()
449 off -= pgbase - subreq->wb_pgbase; in nfs_join_page_group()
450 bytes += pgbase - subreq->wb_pgbase; in nfs_join_page_group()
451 pgbase = subreq->wb_pgbase; in nfs_join_page_group()
453 bytes = max(subreq->wb_pgbase + subreq->wb_bytes in nfs_join_page_group()
464 subreq = head; in nfs_join_page_group()
466 nfs_clear_request_commit(cinfo, subreq); in nfs_join_page_group()
467 subreq = subreq->wb_this_page; in nfs_join_page_group()
468 } while (subreq != head); in nfs_join_page_group()
528 nfs_page_group_lock_subreq(struct nfs_page *head, struct nfs_page *subreq) in nfs_page_group_lock_subreq() argument
532 if (!kref_get_unless_zero(&subreq->wb_kref)) in nfs_page_group_lock_subreq()
534 while (!nfs_lock_request(subreq)) { in nfs_page_group_lock_subreq()
536 ret = nfs_wait_on_request(subreq); in nfs_page_group_lock_subreq()
540 nfs_unroll_locks(head, subreq); in nfs_page_group_lock_subreq()
541 nfs_release_request(subreq); in nfs_page_group_lock_subreq()
566 struct nfs_page *head, *subreq; in nfs_lock_and_join_requests() local
603 for (subreq = head->wb_this_page; in nfs_lock_and_join_requests()
604 subreq != head; in nfs_lock_and_join_requests()
605 subreq = subreq->wb_this_page) { in nfs_lock_and_join_requests()
606 ret = nfs_page_group_lock_subreq(head, subreq); in nfs_lock_and_join_requests()