*参照元 [#y2cb722e] #backlinks *説明 [#c2517eb0] -パス: 複数あり --CONFIG_PROC_FS 有効: [[linux-4.4.1/fs/proc/generic.c]] --CONFIG_PROC_FS 無効: [[linux-4.4.1/include/linux/proc_fs.h]] -FIXME: これは何? --説明 **引数 [#oe0e17db] -const char *name -- -struct proc_dir_entry *parent -- --[[linux-4.4.1/proc_dir_entry]] **返り値 [#sd1351bc] -なし **参考 [#fbd978c6] *実装 [#e49d0a67] **CONFIG_PROC_FS 有効: fs/proc/generic.c [#x26676fb] /* * Remove a /proc entry and free it if it's not currently in use. */ void remove_proc_entry(const char *name, struct proc_dir_entry *parent) { struct proc_dir_entry *de = NULL; const char *fn = name; unsigned int len; write_lock(&proc_subdir_lock); if (__xlate_proc_name(name, &parent, &fn) != 0) { write_unlock(&proc_subdir_lock); return; } len = strlen(fn); - --[[linux-4.4.1/write_lock()]] --[[linux-4.4.1/proc_subdir_lock(global)]] --[[linux-4.4.1/__xlate_proc_name()]] --[[linux-4.4.1/write_unlock()]] --[[linux-4.4.1/strlem()]] de = pde_subdir_find(parent, fn, len); if (de) rb_erase(&de->subdir_node, &parent->subdir); write_unlock(&proc_subdir_lock); if (!de) { WARN(1, "name '%s'\n", name); return; } - --[[linux-4.4.1/pde_subdir_find()]] --[[linux-4.4.1/rb_erase()]] --[[linux-4.4.1/write_unlock()]] --[[linux-4.4.1/WARN()]] proc_entry_rundown(de); - --[[linux-4.4.1/proc_entry_rundown()]] if (S_ISDIR(de->mode)) parent->nlink--; de->nlink = 0; - --[[linux-4.4.1/S_ISDIR()]] WARN(pde_subdir_first(de), "%s: removing non-empty directory '%s/%s', leaking at least '%s'\n", __func__, de->parent->name, de->name, pde_subdir_first(de)->name); pde_put(de); - --[[linux-4.4.1/pde_subdir_first()]] --[[linux-4.4.1/pde_put()]] } EXPORT_SYMBOL(remove_proc_entry); - --[[linux-4.4.1/EXPORT_SYMBOL()]] **CONFIG_PROC_FS 無効: include/linux/proc_fs.h [#bb99af98] #define remove_proc_entry(name, parent) do {} while (0) -何もしない。 *コメント [#e4e7f6c5]