aboutsummaryrefslogtreecommitdiffstats
path: root/fs/debugfs/internal.h
diff options
context:
space:
mode:
authorNicolai Stange <nicstange@gmail.com>2017-10-31 00:15:47 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-11-07 20:25:02 +0100
commit7c8d469877b16d2c1cecf101a0abb7b218db85bc (patch)
treea6d2637db3d3d721e0079fd70e9f95ede449b942 /fs/debugfs/internal.h
parentdriver core: Move device_links_purge() after bus_remove_device() (diff)
downloadlinux-dev-7c8d469877b16d2c1cecf101a0abb7b218db85bc.tar.xz
linux-dev-7c8d469877b16d2c1cecf101a0abb7b218db85bc.zip
debugfs: add support for more elaborate ->d_fsdata
Currently, the user provided fops, "real_fops", are stored directly into ->d_fsdata. In order to be able to store more per-file state and thus prepare for more granular file removal protection, wrap the real_fops into a dynamically allocated container struct, debugfs_fsdata. A struct debugfs_fsdata gets allocated at file creation and freed from the newly intoduced ->d_release(). Finally, move the implementation of debugfs_real_fops() out of the public debugfs header such that struct debugfs_fsdata's declaration can be kept private. Signed-off-by: Nicolai Stange <nicstange@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/debugfs/internal.h')
-rw-r--r--fs/debugfs/internal.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/debugfs/internal.h b/fs/debugfs/internal.h
index b3e8443a1f47..512601eed3ce 100644
--- a/fs/debugfs/internal.h
+++ b/fs/debugfs/internal.h
@@ -19,4 +19,8 @@ extern const struct file_operations debugfs_noop_file_operations;
extern const struct file_operations debugfs_open_proxy_file_operations;
extern const struct file_operations debugfs_full_proxy_file_operations;
+struct debugfs_fsdata {
+ const struct file_operations *real_fops;
+};
+
#endif /* _DEBUGFS_INTERNAL_H_ */