Showing error 1749

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


Source:

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)
Show full sources