Lines Matching refs:ft
287 static void __ksmbd_remove_fd(struct ksmbd_file_table *ft, struct ksmbd_file *fp)
296 write_lock(&ft->lock);
297 idr_remove(ft->idr, fp->volatile_id);
298 write_unlock(&ft->lock);
301 static void __ksmbd_close_fd(struct ksmbd_file_table *ft, struct ksmbd_file *fp)
308 __ksmbd_remove_fd(ft, fp);
345 static struct ksmbd_file *__ksmbd_lookup_fd(struct ksmbd_file_table *ft,
353 read_lock(&ft->lock);
354 fp = idr_find(ft->idr, id);
357 read_unlock(&ft->lock);
383 struct ksmbd_file_table *ft;
388 ft = &work->sess->file_table;
389 write_lock(&ft->lock);
390 fp = idr_find(ft->idr, id);
402 write_unlock(&ft->lock);
529 static int __open_id(struct ksmbd_file_table *ft, struct ksmbd_file *fp,
541 write_lock(&ft->lock);
542 ret = idr_alloc_cyclic(ft->idr, fp, 0, INT_MAX - 1, GFP_NOWAIT);
552 write_unlock(&ft->lock);
607 void ksmbd_update_fstate(struct ksmbd_file_table *ft, struct ksmbd_file *fp,
613 write_lock(&ft->lock);
615 write_unlock(&ft->lock);
619 __close_file_table_ids(struct ksmbd_file_table *ft,
628 idr_for_each_entry(ft->idr, fp, id) {
636 __ksmbd_close_fd(ft, fp);
690 int ksmbd_init_file_table(struct ksmbd_file_table *ft)
692 ft->idr = kzalloc(sizeof(struct idr), GFP_KERNEL);
693 if (!ft->idr)
696 idr_init(ft->idr);
697 rwlock_init(&ft->lock);
701 void ksmbd_destroy_file_table(struct ksmbd_file_table *ft)
703 if (!ft->idr)
706 __close_file_table_ids(ft, NULL, session_fd_check);
707 idr_destroy(ft->idr);
708 kfree(ft->idr);
709 ft->idr = NULL;