mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 22:24:11 +08:00
kill d_validate()
no users left Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
5e993e2534
commit
d6cb125b99
31
fs/dcache.c
31
fs/dcache.c
@ -2187,37 +2187,6 @@ struct dentry *d_hash_and_lookup(struct dentry *dir, struct qstr *name)
|
||||
}
|
||||
EXPORT_SYMBOL(d_hash_and_lookup);
|
||||
|
||||
/**
|
||||
* d_validate - verify dentry provided from insecure source (deprecated)
|
||||
* @dentry: The dentry alleged to be valid child of @dparent
|
||||
* @dparent: The parent dentry (known to be valid)
|
||||
*
|
||||
* An insecure source has sent us a dentry, here we verify it and dget() it.
|
||||
* This is used by ncpfs in its readdir implementation.
|
||||
* Zero is returned in the dentry is invalid.
|
||||
*
|
||||
* This function is slow for big directories, and deprecated, do not use it.
|
||||
*/
|
||||
int d_validate(struct dentry *dentry, struct dentry *dparent)
|
||||
{
|
||||
struct dentry *child;
|
||||
|
||||
spin_lock(&dparent->d_lock);
|
||||
list_for_each_entry(child, &dparent->d_subdirs, d_child) {
|
||||
if (dentry == child) {
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
__dget_dlock(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
spin_unlock(&dparent->d_lock);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
spin_unlock(&dparent->d_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(d_validate);
|
||||
|
||||
/*
|
||||
* When a file is deleted, we have two options:
|
||||
* - turn this dentry into a negative dentry
|
||||
|
@ -319,9 +319,6 @@ static inline unsigned d_count(const struct dentry *dentry)
|
||||
return dentry->d_lockref.count;
|
||||
}
|
||||
|
||||
/* validate "insecure" dentry pointer */
|
||||
extern int d_validate(struct dentry *, struct dentry *);
|
||||
|
||||
/*
|
||||
* helper function for dentry_operations.d_dname() members
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user