this is one of the cases where we need to use d_real() - we are
using more than the name of dentry here.  ->d_sb is used as well,
so in case of hostfs being used as a layer we get the wrong
superblock.
Reported-by: Johannes Berg <johannes@sipsolutions.net>
Tested-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
        if (mode & FMODE_WRITE)
                r = w = 1;
 
-       name = dentry_name(file->f_path.dentry);
+       name = dentry_name(d_real(file->f_path.dentry, file->f_inode));
        if (name == NULL)
                return -ENOMEM;