linux-4.4.1/remove_proc_entry()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#y2cb722e]
#backlinks
*説明 [#c2517eb0]
-パス: 複数あり
--CONFIG_PROC_FS 有効: [[linux-4.4.1/fs/proc/generic.c]]
--CONFIG_PROC_FS 無効: [[linux-4.4.1/include/linux/proc_f...
-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 currentl...
*/
void remove_proc_entry(const char *name, struct proc_dir...
{
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->subd...
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', ...
__func__, de->parent->name, de->name, pde_s...
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]
終了行:
*参照元 [#y2cb722e]
#backlinks
*説明 [#c2517eb0]
-パス: 複数あり
--CONFIG_PROC_FS 有効: [[linux-4.4.1/fs/proc/generic.c]]
--CONFIG_PROC_FS 無効: [[linux-4.4.1/include/linux/proc_f...
-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 currentl...
*/
void remove_proc_entry(const char *name, struct proc_dir...
{
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->subd...
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', ...
__func__, de->parent->name, de->name, pde_s...
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]
ページ名: