Lines Matching full:fc

35 void fuse_backing_files_init(struct fuse_conn *fc)  in fuse_backing_files_init()  argument
37 idr_init(&fc->backing_files_map); in fuse_backing_files_init()
40 static int fuse_backing_id_alloc(struct fuse_conn *fc, struct fuse_backing *fb) in fuse_backing_id_alloc() argument
45 spin_lock(&fc->lock); in fuse_backing_id_alloc()
47 id = idr_alloc_cyclic(&fc->backing_files_map, fb, 1, 0, GFP_ATOMIC); in fuse_backing_id_alloc()
48 spin_unlock(&fc->lock); in fuse_backing_id_alloc()
55 static struct fuse_backing *fuse_backing_id_remove(struct fuse_conn *fc, in fuse_backing_id_remove() argument
60 spin_lock(&fc->lock); in fuse_backing_id_remove()
61 fb = idr_remove(&fc->backing_files_map, id); in fuse_backing_id_remove()
62 spin_unlock(&fc->lock); in fuse_backing_id_remove()
76 void fuse_backing_files_free(struct fuse_conn *fc) in fuse_backing_files_free() argument
78 idr_for_each(&fc->backing_files_map, fuse_backing_id_free, NULL); in fuse_backing_files_free()
79 idr_destroy(&fc->backing_files_map); in fuse_backing_files_free()
82 int fuse_backing_open(struct fuse_conn *fc, struct fuse_backing_map *map) in fuse_backing_open() argument
93 if (!fc->passthrough || !capable(CAP_SYS_ADMIN)) in fuse_backing_open()
112 if (backing_sb->s_stack_depth >= fc->max_stack_depth) in fuse_backing_open()
124 res = fuse_backing_id_alloc(fc, fb); in fuse_backing_open()
140 int fuse_backing_close(struct fuse_conn *fc, int backing_id) in fuse_backing_close() argument
149 if (!fc->passthrough || !capable(CAP_SYS_ADMIN)) in fuse_backing_close()
157 fb = fuse_backing_id_remove(fc, backing_id); in fuse_backing_close()
169 struct fuse_backing *fuse_backing_lookup(struct fuse_conn *fc, int backing_id) in fuse_backing_lookup() argument
174 fb = idr_find(&fc->backing_files_map, backing_id); in fuse_backing_lookup()