Loading fs/dcache.c +0 −31 Original line number Diff line number Diff line Loading @@ -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 Loading include/linux/dcache.h +0 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
fs/dcache.c +0 −31 Original line number Diff line number Diff line Loading @@ -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 Loading
include/linux/dcache.h +0 −3 Original line number Diff line number Diff line Loading @@ -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