simple_recursive_removal(): kernel-side rm -rf for ramfs-style filesystems

two requirements: no file creations in IS_DEADDIR and no cross-directory
renames whatsoever.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro
2019-11-18 09:43:10 -05:00
parent e42617b825
commit a3d1e7eb5a
9 changed files with 104 additions and 218 deletions

View File

@@ -697,7 +697,7 @@ static void remove_subsystem(struct trace_subsystem_dir *dir)
return;
if (!--dir->nr_events) {
tracefs_remove_recursive(dir->entry);
tracefs_remove(dir->entry);
list_del(&dir->list);
__put_system_dir(dir);
}
@@ -716,7 +716,7 @@ static void remove_event_file_dir(struct trace_event_file *file)
}
spin_unlock(&dir->d_lock);
tracefs_remove_recursive(dir);
tracefs_remove(dir);
}
list_del(&file->list);
@@ -3064,7 +3064,7 @@ int event_trace_del_tracer(struct trace_array *tr)
down_write(&trace_event_sem);
__trace_remove_event_dirs(tr);
tracefs_remove_recursive(tr->event_dir);
tracefs_remove(tr->event_dir);
up_write(&trace_event_sem);
tr->event_dir = NULL;