]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - fs/debugfs/file.c
debugfs: call debugfs_real_fops() only after debugfs_file_get()
authorNicolai Stange <nicstange@gmail.com>
Mon, 30 Oct 2017 23:15:53 +0000 (00:15 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Nov 2017 19:25:03 +0000 (20:25 +0100)
commit154b9d7512ae012aca7b4e90af67a72419ad1941
tree565b3295b5abdf575d519b336b01f1f8c1713224
parentc9afbec27089cd6b4e621b639f41c7fc726c3bf1
debugfs: call debugfs_real_fops() only after debugfs_file_get()

The current implementation of debugfs_real_fops() relies on a
debugfs_fsdata instance to be installed at ->d_fsdata.

With future patches introducing lazy allocation of these, this requirement
will be guaranteed to be fullfilled only inbetween a
debugfs_file_get()/debugfs_file_put() pair.

The full proxies' fops implemented by debugfs happen to be the only
offenders. Fix them up by moving their debugfs_real_fops() calls past those
to debugfs_file_get().

full_proxy_release() is special as it doesn't invoke debugfs_file_get() at
all. Leave it alone for now.

Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/debugfs/file.c