• Alexey Dobriyan's avatar
    proc: remove pathetic ->deleted WARN_ON · 578c8183
    Alexey Dobriyan authored
    WARN_ON(de && de->deleted); is sooo unreliable. Why?
    
    proc_lookup				remove_proc_entry
    ===========				=================
    lock_kernel();
    spin_lock(&proc_subdir_lock);
    [find proc entry]
    spin_unlock(&proc_subdir_lock);
    					spin_lock(&proc_subdir_lock);
    					[find proc entry]
    
    proc_get_inode
    ==============
    WARN_ON(de && de->deleted);			...
    
    					if (!atomic_read(&de->count))
    						free_proc_entry(de);
    					else
    						de->deleted = 1;
    
    So, if you have some strange oops [1], and doesn't see this WARN_ON it means
    nothing.
    
    [1] try_module_get() of module which doesn't exist, two lines below
        should suffice, or not?
    Signed-off-by: default avatarAlexey Dobriyan <adobriyan@sw.ru>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    578c8183
inode.c 4.32 KB