linux_dsm_epyc7002/drivers/block/drbd
Lars Ellenberg 4a521cca9b drbd: debugfs: deal with destructor racing with open of debugfs file
Try to close the race between open() and debugfs_remove_recursive()
from inside an object destructor.
Once open succeeds, the object should stay around.
Open should not succeed if the object has already reached its destructor.

This may be overkill, but to make that happen, we check for existence of
a parent directory, "stale-ness" of "this" dentry, and serialize
kref_get_unless_zero() on the outermost object relevant for this file
with d_delete() on this dentry (using the parent's i_mutex).

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2014-07-10 18:35:17 +02:00
..
drbd_actlog.c drbd: improve throttling decisions of background resynchronisation 2014-07-10 18:35:13 +02:00
drbd_bitmap.c drbd: track details of bitmap IO 2014-07-10 18:35:15 +02:00
drbd_debugfs.c drbd: debugfs: deal with destructor racing with open of debugfs file 2014-07-10 18:35:17 +02:00
drbd_debugfs.h drbd: debugfs: add basic hierarchy 2014-07-10 18:35:16 +02:00
drbd_int.h drbd: debugfs: add basic hierarchy 2014-07-10 18:35:16 +02:00
drbd_interval.c Merge branch 'drbd-8.4_ed6' into for-3.8-drivers-drbd-8.4_ed6 2012-11-09 14:20:23 +01:00
drbd_interval.h drbd: application writes may set-in-sync in protocol != C 2014-07-10 18:35:02 +02:00
drbd_main.c drbd: debugfs: add basic hierarchy 2014-07-10 18:35:16 +02:00
drbd_nl.c drbd: track meta data IO intent, start and submit time 2014-07-10 18:35:10 +02:00
drbd_nla.c drbd: Remove drbd_wrappers.h 2014-04-30 13:46:54 -06:00
drbd_nla.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_proc.c drbd: improve throttling decisions of background resynchronisation 2014-07-10 18:35:13 +02:00
drbd_protocol.h drbd: Enable QUEUE_FLAG_DISCARD only if the peer can recieve P_TRIM 2014-04-30 13:46:55 -06:00
drbd_receiver.c drbd: register peer requests on read_ee early 2014-07-10 18:35:14 +02:00
drbd_req.c drbd: improve throttling decisions of background resynchronisation 2014-07-10 18:35:13 +02:00
drbd_req.h drbd: silence -Wmissing-prototypes warnings 2014-07-10 18:34:57 +02:00
drbd_state.c drbd: clear CRASHED_PRIMARY only after successful resync 2014-07-10 18:35:05 +02:00
drbd_state.h drbd: Rename drbd_tconn -> drbd_connection 2014-02-17 16:44:47 +01:00
drbd_strings.c drbd: Move string function prototypes from linux/drbd.h to drbd_string.h 2014-02-17 16:50:37 +01:00
drbd_strings.h drbd: Move string function prototypes from linux/drbd.h to drbd_string.h 2014-02-17 16:50:37 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: track timing details of peer_requests 2014-07-10 18:35:14 +02:00
Kconfig drbd: update Kconfig to match current dependencies 2012-12-06 13:08:29 +01:00
Makefile drbd: debugfs: add basic hierarchy 2014-07-10 18:35:16 +02:00