Lines Matching refs:fc
170 void fuse_backing_files_init(struct fuse_conn *fc) in fuse_backing_files_init() argument
172 idr_init(&fc->backing_files_map); in fuse_backing_files_init()
175 static int fuse_backing_id_alloc(struct fuse_conn *fc, struct fuse_backing *fb) in fuse_backing_id_alloc() argument
180 spin_lock(&fc->lock); in fuse_backing_id_alloc()
182 id = idr_alloc_cyclic(&fc->backing_files_map, fb, 1, 0, GFP_ATOMIC); in fuse_backing_id_alloc()
183 spin_unlock(&fc->lock); in fuse_backing_id_alloc()
190 static struct fuse_backing *fuse_backing_id_remove(struct fuse_conn *fc, in fuse_backing_id_remove() argument
195 spin_lock(&fc->lock); in fuse_backing_id_remove()
196 fb = idr_remove(&fc->backing_files_map, id); in fuse_backing_id_remove()
197 spin_unlock(&fc->lock); in fuse_backing_id_remove()
211 void fuse_backing_files_free(struct fuse_conn *fc) in fuse_backing_files_free() argument
213 idr_for_each(&fc->backing_files_map, fuse_backing_id_free, NULL); in fuse_backing_files_free()
214 idr_destroy(&fc->backing_files_map); in fuse_backing_files_free()
217 int fuse_backing_open(struct fuse_conn *fc, struct fuse_backing_map *map) in fuse_backing_open() argument
228 if (!fc->passthrough || !capable(CAP_SYS_ADMIN)) in fuse_backing_open()
242 if (backing_sb->s_stack_depth >= fc->max_stack_depth) in fuse_backing_open()
254 res = fuse_backing_id_alloc(fc, fb); in fuse_backing_open()
270 int fuse_backing_close(struct fuse_conn *fc, int backing_id) in fuse_backing_close() argument
279 if (!fc->passthrough || !capable(CAP_SYS_ADMIN)) in fuse_backing_close()
287 fb = fuse_backing_id_remove(fc, backing_id); in fuse_backing_close()
309 struct fuse_conn *fc = ff->fm->fc; in fuse_passthrough_open() local
319 fb = idr_find(&fc->backing_files_map, backing_id); in fuse_passthrough_open()