Files
kernel_xiaomi_sm8250/include/linux
Al Viro dfef6dcd35 unfuck proc_sysctl ->d_compare()
a) struct inode is not going to be freed under ->d_compare();
however, the thing PROC_I(inode)->sysctl points to just might.
Fortunately, it's enough to make freeing that sucker delayed,
provided that we don't step on its ->unregistering, clear
the pointer to it in PROC_I(inode) before dropping the reference
and check if it's NULL in ->d_compare().

b) I'm not sure that we *can* walk into NULL inode here (we recheck
dentry->seq between verifying that it's still hashed / fetching
dentry->d_inode and passing it to ->d_compare() and there's no
negative hashed dentries in /proc/sys/*), but if we can walk into
that, we really should not have ->d_compare() return 0 on it!
Said that, I really suspect that this check can be simply killed.
Nick?

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-03-08 02:22:27 -05:00
..
2011-01-20 18:30:17 -08:00
2011-01-20 18:30:17 -08:00
2011-01-10 08:51:44 -08:00
2011-01-15 20:07:45 -05:00
2011-01-13 08:03:12 -08:00
2011-01-10 08:51:44 -08:00
2011-01-12 20:16:43 -05:00
2011-01-17 03:26:26 -05:00
2011-01-10 08:51:44 -08:00
2011-01-24 14:45:11 +10:30
2011-01-10 22:11:23 +01:00
2011-01-21 11:55:31 +01:00
2011-01-13 17:32:31 -08:00
2011-02-01 08:23:22 +10:00
2011-01-13 17:32:47 -08:00
2011-02-13 16:54:24 -08:00
2011-01-24 14:45:11 +10:30
2011-01-14 13:12:45 +00:00
2011-01-13 17:32:41 -08:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:43 -08:00
2011-01-16 13:47:07 -05:00
2011-01-13 21:44:34 -08:00
2011-01-10 15:40:52 -05:00
2011-01-13 17:32:43 -08:00
2011-01-16 13:47:07 -05:00
2011-01-13 08:03:21 -08:00
2011-01-14 02:36:43 +00:00
2011-01-13 08:03:18 -08:00
2011-01-13 17:32:42 -08:00
2011-01-13 08:03:19 -08:00
2011-01-13 17:32:42 -08:00
2011-03-08 02:22:27 -05:00
2011-02-28 18:00:31 -08:00
2011-01-13 08:03:20 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 08:03:24 -08:00