debugfs: add support for more elaborate ->d_fsdata
authorNicolai Stange <nicstange@gmail.com>
Mon, 30 Oct 2017 23:15:47 +0000 (00:15 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Nov 2017 19:25:02 +0000 (20:25 +0100)
commit7c8d469877b16d2c1cecf101a0abb7b218db85bc
treea6d2637db3d3d721e0079fd70e9f95ede449b942
parent2ec16150179888b81717d1d3ce84e634f4736af2
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>
fs/debugfs/file.c
fs/debugfs/inode.c
fs/debugfs/internal.h
include/linux/debugfs.h