User: | Jiri Slaby |
Error type: | Invalid Pointer Dereference |
Error type description: | A pointer which is invalid is being dereferenced |
File location: | fs/dcache.c |
Line in file: | 2240 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Smatch
(1.59)
|
Entered: | 2013-09-10 20:24:52 UTC |
2210 if (this_parent != root) { 2211 next = this_parent->d_u.d_child.next; 2212 atomic_dec(&this_parent->d_count); 2213 this_parent = this_parent->d_parent; 2214 goto resume; 2215 } 2216 spin_unlock(&dcache_lock); 2217} 2218 2219/** 2220 * find_inode_number - check for dentry with name 2221 * @dir: directory to check 2222 * @name: Name to find. 2223 * 2224 * Check whether a dentry already exists for the given name, 2225 * and return the inode number if it has an inode. Otherwise 2226 * 0 is returned. 2227 * 2228 * This routine is used to post-process directory listings for 2229 * filesystems using synthetic inode numbers, and is necessary 2230 * to keep getcwd() working. 2231 */ 2232 2233ino_t find_inode_number(struct dentry *dir, struct qstr *name) 2234{ 2235 struct dentry * dentry; 2236 ino_t ino = 0; 2237 2238 dentry = d_hash_and_lookup(dir, name); 2239 if (dentry) { 2240 if (dentry->d_inode) 2241 ino = dentry->d_inode->i_ino; 2242 dput(dentry); 2243 } 2244 return ino; 2245} 2246 2247static __initdata unsigned long dhash_entries; 2248static int __init set_dhash_entries(char *str) 2249{ 2250 if (!str)