1. Mar 16, 2011
  2. Mar 10, 2011
  3. Mar 09, 2011
  4. Mar 08, 2011
    • Al Viro's avatar
      unfuck proc_sysctl ->d_compare() · dfef6dcd
      Al Viro authored
      
      
      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: default avatarAl Viro <viro@zeniv.linux.org.uk>
      dfef6dcd
    • Linus Torvalds's avatar
      Linux 2.6.38-rc8 · a5abba98
      Linus Torvalds authored
      a5abba98