Lines Matching refs:fc

53 	struct fuse_conn *fc = ring->fc;  in fuse_uring_flush_bg()  local
56 lockdep_assert_held(&fc->bg_lock); in fuse_uring_flush_bg()
64 while ((fc->active_background < fc->max_background || in fuse_uring_flush_bg()
71 fc->active_background++; in fuse_uring_flush_bg()
83 struct fuse_conn *fc = ring->fc; in fuse_uring_req_end() local
90 spin_lock(&fc->bg_lock); in fuse_uring_req_end()
92 spin_unlock(&fc->bg_lock); in fuse_uring_req_end()
124 struct fuse_conn *fc = ring->fc; in fuse_uring_abort_end_requests() local
133 WARN_ON_ONCE(ring->fc->max_background != UINT_MAX); in fuse_uring_abort_end_requests()
135 spin_lock(&fc->bg_lock); in fuse_uring_abort_end_requests()
137 spin_unlock(&fc->bg_lock); in fuse_uring_abort_end_requests()
143 static bool ent_list_request_expired(struct fuse_conn *fc, struct list_head *list) in ent_list_request_expired() argument
155 fc->timeout.req_timeout); in ent_list_request_expired()
158 bool fuse_uring_request_expired(struct fuse_conn *fc) in fuse_uring_request_expired() argument
160 struct fuse_ring *ring = fc->ring; in fuse_uring_request_expired()
173 if (fuse_request_expired(fc, &queue->fuse_req_queue) || in fuse_uring_request_expired()
174 fuse_request_expired(fc, &queue->fuse_req_bg_queue) || in fuse_uring_request_expired()
175 ent_list_request_expired(fc, &queue->ent_w_req_queue) || in fuse_uring_request_expired()
176 ent_list_request_expired(fc, &queue->ent_in_userspace)) { in fuse_uring_request_expired()
186 void fuse_uring_destruct(struct fuse_conn *fc) in fuse_uring_destruct() argument
188 struct fuse_ring *ring = fc->ring; in fuse_uring_destruct()
219 fc->ring = NULL; in fuse_uring_destruct()
225 static struct fuse_ring *fuse_uring_create(struct fuse_conn *fc) in fuse_uring_create() argument
232 ring = kzalloc(sizeof(*fc->ring), GFP_KERNEL_ACCOUNT); in fuse_uring_create()
241 max_payload_size = max(FUSE_MIN_READ_BUFFER, fc->max_write); in fuse_uring_create()
242 max_payload_size = max(max_payload_size, fc->max_pages * PAGE_SIZE); in fuse_uring_create()
244 spin_lock(&fc->lock); in fuse_uring_create()
245 if (fc->ring) { in fuse_uring_create()
247 spin_unlock(&fc->lock); in fuse_uring_create()
248 res = fc->ring; in fuse_uring_create()
255 ring->fc = fc; in fuse_uring_create()
257 smp_store_release(&fc->ring, ring); in fuse_uring_create()
259 spin_unlock(&fc->lock); in fuse_uring_create()
271 struct fuse_conn *fc = ring->fc; in fuse_uring_create_queue() local
299 spin_lock(&fc->lock); in fuse_uring_create_queue()
301 spin_unlock(&fc->lock); in fuse_uring_create_queue()
311 spin_unlock(&fc->lock); in fuse_uring_create_queue()
537 struct fuse_conn *fc) in fuse_uring_out_header_has_err() argument
814 struct fuse_conn *fc = ring->fc; in fuse_uring_commit() local
824 err = fuse_uring_out_header_has_err(&req->out.h, req, fc); in fuse_uring_commit()
875 struct fuse_conn *fc) in fuse_uring_commit_fetch() argument
880 struct fuse_ring *ring = fc->ring; in fuse_uring_commit_fetch()
899 if (!READ_ONCE(fc->connected) || READ_ONCE(queue->stopped)) in fuse_uring_commit_fetch()
982 struct fuse_conn *fc = ring->fc; in fuse_uring_do_register() local
983 struct fuse_iqueue *fiq = &fc->iq; in fuse_uring_do_register()
998 wake_up_all(&fc->blocked_waitq); in fuse_uring_do_register()
1079 unsigned int issue_flags, struct fuse_conn *fc) in fuse_uring_register() argument
1082 struct fuse_ring *ring = smp_load_acquire(&fc->ring); in fuse_uring_register()
1090 ring = fuse_uring_create(fc); in fuse_uring_register()
1128 struct fuse_conn *fc; in fuse_uring_cmd() local
1146 fc = fud->fc; in fuse_uring_cmd()
1149 if (!enable_uring && !fc->io_uring) { in fuse_uring_cmd()
1154 if (fc->aborted) in fuse_uring_cmd()
1156 if (!fc->connected) in fuse_uring_cmd()
1163 if (!fc->initialized) in fuse_uring_cmd()
1168 err = fuse_uring_register(cmd, issue_flags, fc); in fuse_uring_cmd()
1172 fc->io_uring = 0; in fuse_uring_cmd()
1173 wake_up_all(&fc->blocked_waitq); in fuse_uring_cmd()
1178 err = fuse_uring_commit_fetch(cmd, issue_flags, fc); in fuse_uring_cmd()
1260 struct fuse_conn *fc = req->fm->fc; in fuse_uring_queue_fuse_req() local
1261 struct fuse_ring *ring = fc->ring; in fuse_uring_queue_fuse_req()
1304 struct fuse_conn *fc = req->fm->fc; in fuse_uring_queue_bq_req() local
1305 struct fuse_ring *ring = fc->ring; in fuse_uring_queue_bq_req()
1325 spin_lock(&fc->bg_lock); in fuse_uring_queue_bq_req()
1326 fc->num_background++; in fuse_uring_queue_bq_req()
1327 if (fc->num_background == fc->max_background) in fuse_uring_queue_bq_req()
1328 fc->blocked = 1; in fuse_uring_queue_bq_req()
1330 spin_unlock(&fc->bg_lock); in fuse_uring_queue_bq_req()