Lines Matching full:fsd

58 	struct debugfs_fsdata *fsd = F_DENTRY(filp)->d_fsdata;  in debugfs_real_fops()  local
60 if (!fsd) { in debugfs_real_fops()
69 return fsd->real_fops; in debugfs_real_fops()
81 struct debugfs_fsdata *fsd; in __debugfs_file_get() local
94 fsd = d_fsd; in __debugfs_file_get()
102 fsd = kmalloc(sizeof(*fsd), GFP_KERNEL); in __debugfs_file_get()
103 if (!fsd) in __debugfs_file_get()
108 ops = fsd->short_fops = DEBUGFS_I(inode)->short_fops; in __debugfs_file_get()
115 fsd->real_fops = NULL; in __debugfs_file_get()
118 ops = fsd->real_fops = DEBUGFS_I(inode)->real_fops; in __debugfs_file_get()
129 fsd->short_fops = NULL; in __debugfs_file_get()
131 fsd->methods = methods; in __debugfs_file_get()
132 refcount_set(&fsd->active_users, 1); in __debugfs_file_get()
133 init_completion(&fsd->active_users_drained); in __debugfs_file_get()
134 INIT_LIST_HEAD(&fsd->cancellations); in __debugfs_file_get()
135 mutex_init(&fsd->cancellations_mtx); in __debugfs_file_get()
137 d_fsd = cmpxchg(&dentry->d_fsdata, NULL, fsd); in __debugfs_file_get()
139 mutex_destroy(&fsd->cancellations_mtx); in __debugfs_file_get()
140 kfree(fsd); in __debugfs_file_get()
141 fsd = d_fsd; in __debugfs_file_get()
156 if (!refcount_inc_not_zero(&fsd->active_users)) in __debugfs_file_get()
194 struct debugfs_fsdata *fsd = READ_ONCE(dentry->d_fsdata); in debugfs_file_put() local
196 if (refcount_dec_and_test(&fsd->active_users)) in debugfs_file_put()
197 complete(&fsd->active_users_drained); in debugfs_file_put()
226 struct debugfs_fsdata *fsd; in debugfs_enter_cancellation() local
237 fsd = READ_ONCE(dentry->d_fsdata); in debugfs_enter_cancellation()
238 if (WARN_ON(!fsd)) in debugfs_enter_cancellation()
241 mutex_lock(&fsd->cancellations_mtx); in debugfs_enter_cancellation()
242 list_add(&cancellation->list, &fsd->cancellations); in debugfs_enter_cancellation()
243 mutex_unlock(&fsd->cancellations_mtx); in debugfs_enter_cancellation()
247 complete(&fsd->active_users_drained); in debugfs_enter_cancellation()
262 struct debugfs_fsdata *fsd; in debugfs_leave_cancellation() local
268 fsd = READ_ONCE(dentry->d_fsdata); in debugfs_leave_cancellation()
269 if (WARN_ON(!fsd)) in debugfs_leave_cancellation()
272 mutex_lock(&fsd->cancellations_mtx); in debugfs_leave_cancellation()
275 mutex_unlock(&fsd->cancellations_mtx); in debugfs_leave_cancellation()
354 struct debugfs_fsdata *fsd = dentry->d_fsdata; \
358 if (!(fsd->methods & bit)) \
373 struct debugfs_fsdata *fsd = dentry->d_fsdata; \
376 if (!(fsd->methods & bit)) \
381 if (fsd->real_fops) \
382 r = fsd->real_fops->name(args); \
384 r = fsd->short_fops->name(args); \
411 struct debugfs_fsdata *fsd = dentry->d_fsdata; in full_proxy_poll() local
415 if (!(fsd->methods & HAS_POLL)) in full_proxy_poll()
448 struct debugfs_fsdata *fsd; in full_proxy_open_regular() local
455 fsd = dentry->d_fsdata; in full_proxy_open_regular()
456 real_fops = fsd->real_fops; in full_proxy_open_regular()