Proc文件系统(二)

2014-11-24 09:18:31 · 作者: · 浏览: 1
ck(&de->pde_unload_lock);
while (!list_empty(&de->pde_openers)) {
struct pde_opener *pdeo;

pdeo = list_first_entry(&de->pde_openers, struct pde_opener, lh);
list_del(&pdeo->lh);
spin_unlock(&de->pde_unload_lock);
pdeo->release(pdeo->inode, pdeo->file);
kfree(pdeo);
spin_lock(&de->pde_unload_lock);
}
spin_unlock(&de->pde_unload_lock);

if (S_ISDIR(de->mode))
parent->nlink--;
de->nlink = 0;
WARN(de->subdir, KERN_WARNING "%s: removing non-empty directory "
"'%s/%s', leaking at least '%s'\n", __func__,
de->parent->name, de->name, de->subdir->name);
if (atomic_dec_and_test(&de->count))
free_proc_entry(de);
}

流程:
<1>、调用creat_proc_entry创建一个struct proc_dir_entry
<2>、对创建的struct proc_dir_entry进行赋值:read_proc、mode、owner、size、write_proc