Any file under /proc/net opened more than once leaked the refcounter
on the module it belongs to.
The problem is that module_get is called for each file opening while
module_put is called only when /proc inode is destroyed. So, lets put
module counter if we are dealing with already initialised inode.
Addresses http://bugzilla.kernel.org/show_bug.cgi?id=10737
Signed-off-by: Denis V. Lunev <[email protected]>
Cc: David Miller <[email protected]>
Cc: Patrick McHardy <[email protected]>
Acked-by: Pavel Emelyanov <[email protected]>
Acked-by: Robert Olsson <[email protected]>
Acked-by: Eric W. Biederman <[email protected]>
Reported-by: Roland Kletzing <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
}
}
unlock_new_inode(inode);
- }
+ } else
+ module_put(de->owner);
return inode;
out_ino: