proc: rename de_get() to pde_get() and inline it

* de_get() is trivial -- make inline, save a few bits of code, drop
  "refcount is 0" check -- it should be done in some generic refcount
  code, don't recall it's was helpful

* rename GET and PUT functions to pde_get(), pde_put() for cool prefix!

* remove obvious and incorrent comments

* in remove_proc_entry() use pde_put(), when I fixed PDE refcounting to
  be normal one, remove_proc_entry() was supposed to do "-1" and code now
  reflects that.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Alexey Dobriyan 2009-12-15 16:45:39 -08:00 committed by Linus Torvalds
parent f065f41f48
commit 135d5655dc
3 changed files with 23 additions and 39 deletions

View file

@ -429,7 +429,7 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
unsigned int ino;
ino = de->low_ino;
de_get(de);
pde_get(de);
spin_unlock(&proc_subdir_lock);
error = -EINVAL;
inode = proc_get_inode(dir->i_sb, ino, de);
@ -445,7 +445,7 @@ out_unlock:
return NULL;
}
if (de)
de_put(de);
pde_put(de);
return ERR_PTR(error);
}
@ -509,17 +509,17 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
struct proc_dir_entry *next;
/* filldir passes info to user space */
de_get(de);
pde_get(de);
spin_unlock(&proc_subdir_lock);
if (filldir(dirent, de->name, de->namelen, filp->f_pos,
de->low_ino, de->mode >> 12) < 0) {
de_put(de);
pde_put(de);
goto out;
}
spin_lock(&proc_subdir_lock);
filp->f_pos++;
next = de->next;
de_put(de);
pde_put(de);
de = next;
} while (de);
spin_unlock(&proc_subdir_lock);
@ -763,7 +763,7 @@ out:
return NULL;
}
void free_proc_entry(struct proc_dir_entry *de)
static void free_proc_entry(struct proc_dir_entry *de)
{
unsigned int ino = de->low_ino;
@ -777,6 +777,12 @@ void free_proc_entry(struct proc_dir_entry *de)
kfree(de);
}
void pde_put(struct proc_dir_entry *pde)
{
if (atomic_dec_and_test(&pde->count))
free_proc_entry(pde);
}
/*
* Remove a /proc entry and free it if it's not currently in use.
*/
@ -845,6 +851,5 @@ continue_removing:
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);
pde_put(de);
}