Lines Matching full:fb

12 struct fuse_backing *fuse_backing_get(struct fuse_backing *fb)  in fuse_backing_get()  argument
14 if (fb && refcount_inc_not_zero(&fb->count)) in fuse_backing_get()
15 return fb; in fuse_backing_get()
19 static void fuse_backing_free(struct fuse_backing *fb) in fuse_backing_free() argument
21 pr_debug("%s: fb=0x%p\n", __func__, fb); in fuse_backing_free()
23 if (fb->file) in fuse_backing_free()
24 fput(fb->file); in fuse_backing_free()
25 put_cred(fb->cred); in fuse_backing_free()
26 kfree_rcu(fb, rcu); in fuse_backing_free()
29 void fuse_backing_put(struct fuse_backing *fb) in fuse_backing_put() argument
31 if (fb && refcount_dec_and_test(&fb->count)) in fuse_backing_put()
32 fuse_backing_free(fb); in fuse_backing_put()
40 static int fuse_backing_id_alloc(struct fuse_conn *fc, struct fuse_backing *fb) in fuse_backing_id_alloc() argument
47 id = idr_alloc_cyclic(&fc->backing_files_map, fb, 1, 0, GFP_ATOMIC); in fuse_backing_id_alloc()
58 struct fuse_backing *fb; in fuse_backing_id_remove() local
61 fb = idr_remove(&fc->backing_files_map, id); in fuse_backing_id_remove()
64 return fb; in fuse_backing_id_remove()
69 struct fuse_backing *fb = p; in fuse_backing_id_free() local
71 WARN_ON_ONCE(refcount_read(&fb->count) != 1); in fuse_backing_id_free()
72 fuse_backing_free(fb); in fuse_backing_id_free()
86 struct fuse_backing *fb = NULL; in fuse_backing_open() local
115 fb = kmalloc(sizeof(struct fuse_backing), GFP_KERNEL); in fuse_backing_open()
117 if (!fb) in fuse_backing_open()
120 fb->file = file; in fuse_backing_open()
121 fb->cred = prepare_creds(); in fuse_backing_open()
122 refcount_set(&fb->count, 1); in fuse_backing_open()
124 res = fuse_backing_id_alloc(fc, fb); in fuse_backing_open()
126 fuse_backing_free(fb); in fuse_backing_open()
127 fb = NULL; in fuse_backing_open()
131 pr_debug("%s: fb=0x%p, ret=%i\n", __func__, fb, res); in fuse_backing_open()
142 struct fuse_backing *fb = NULL; in fuse_backing_close() local
157 fb = fuse_backing_id_remove(fc, backing_id); in fuse_backing_close()
158 if (!fb) in fuse_backing_close()
161 fuse_backing_put(fb); in fuse_backing_close()
164 pr_debug("%s: fb=0x%p, err=%i\n", __func__, fb, err); in fuse_backing_close()
171 struct fuse_backing *fb; in fuse_backing_lookup() local
174 fb = idr_find(&fc->backing_files_map, backing_id); in fuse_backing_lookup()
175 fb = fuse_backing_get(fb); in fuse_backing_lookup()
178 return fb; in fuse_backing_lookup()