Lines Matching refs:work
360 static void __put_fd_final(struct ksmbd_work *work, struct ksmbd_file *fp) in __put_fd_final() argument
362 __ksmbd_close_fd(&work->sess->file_table, fp); in __put_fd_final()
363 atomic_dec(&work->conn->stats.open_files_count); in __put_fd_final()
379 int ksmbd_close_fd(struct ksmbd_work *work, u64 id) in ksmbd_close_fd() argument
387 ft = &work->sess->file_table; in ksmbd_close_fd()
406 __put_fd_final(work, fp); in ksmbd_close_fd()
410 void ksmbd_fd_put(struct ksmbd_work *work, struct ksmbd_file *fp) in ksmbd_fd_put() argument
417 __put_fd_final(work, fp); in ksmbd_fd_put()
429 struct ksmbd_file *ksmbd_lookup_foreign_fd(struct ksmbd_work *work, u64 id) in ksmbd_lookup_foreign_fd() argument
431 return __ksmbd_lookup_fd(&work->sess->file_table, id); in ksmbd_lookup_foreign_fd()
434 struct ksmbd_file *ksmbd_lookup_fd_fast(struct ksmbd_work *work, u64 id) in ksmbd_lookup_fd_fast() argument
436 struct ksmbd_file *fp = __ksmbd_lookup_fd(&work->sess->file_table, id); in ksmbd_lookup_fd_fast()
438 if (__sanity_check(work->tcon, fp)) in ksmbd_lookup_fd_fast()
441 ksmbd_fd_put(work, fp); in ksmbd_lookup_fd_fast()
445 struct ksmbd_file *ksmbd_lookup_fd_slow(struct ksmbd_work *work, u64 id, in ksmbd_lookup_fd_slow() argument
451 id = work->compound_fid; in ksmbd_lookup_fd_slow()
452 pid = work->compound_pfid; in ksmbd_lookup_fd_slow()
455 fp = __ksmbd_lookup_fd(&work->sess->file_table, id); in ksmbd_lookup_fd_slow()
456 if (!__sanity_check(work->tcon, fp)) { in ksmbd_lookup_fd_slow()
457 ksmbd_fd_put(work, fp); in ksmbd_lookup_fd_slow()
461 ksmbd_fd_put(work, fp); in ksmbd_lookup_fd_slow()
562 struct ksmbd_file *ksmbd_open_fd(struct ksmbd_work *work, struct file *filp) in ksmbd_open_fd() argument
580 fp->conn = work->conn; in ksmbd_open_fd()
581 fp->tcon = work->tcon; in ksmbd_open_fd()
592 ret = __open_id(&work->sess->file_table, fp, OPEN_ID_TYPE_VOLATILE_ID); in ksmbd_open_fd()
598 atomic_inc(&work->conn->stats.open_files_count); in ksmbd_open_fd()
653 void ksmbd_close_tree_conn_fds(struct ksmbd_work *work) in ksmbd_close_tree_conn_fds() argument
655 int num = __close_file_table_ids(&work->sess->file_table, in ksmbd_close_tree_conn_fds()
656 work->tcon, in ksmbd_close_tree_conn_fds()
659 atomic_sub(num, &work->conn->stats.open_files_count); in ksmbd_close_tree_conn_fds()
662 void ksmbd_close_session_fds(struct ksmbd_work *work) in ksmbd_close_session_fds() argument
664 int num = __close_file_table_ids(&work->sess->file_table, in ksmbd_close_session_fds()
665 work->tcon, in ksmbd_close_session_fds()
668 atomic_sub(num, &work->conn->stats.open_files_count); in ksmbd_close_session_fds()