list_for_each_entry(info, &kernfs_root(kn)->supers, node) {
                struct kernfs_node *parent;
                struct inode *inode;
+               struct qstr name;
 
                /*
                 * We want fsnotify_modify() on @kn but as the
                if (!inode)
                        continue;
 
+               name = (struct qstr)QSTR_INIT(kn->name, strlen(kn->name));
                parent = kernfs_get_parent(kn);
                if (parent) {
                        struct inode *p_inode;
                        p_inode = ilookup(info->sb, parent->id.ino);
                        if (p_inode) {
                                fsnotify(p_inode, FS_MODIFY | FS_EVENT_ON_CHILD,
-                                        inode, FSNOTIFY_EVENT_INODE, kn->name, 0);
+                                        inode, FSNOTIFY_EVENT_INODE, &name, 0);
                                iput(p_inode);
                        }
 
                }
 
                fsnotify(inode, FS_MODIFY, inode, FSNOTIFY_EVENT_INODE,
-                        kn->name, 0);
+                        &name, 0);
                iput(inode);
        }
 
 
                take_dentry_name_snapshot(&name, dentry);
                if (path)
                        ret = fsnotify(p_inode, mask, path, FSNOTIFY_EVENT_PATH,
-                                      name.name.name, 0);
+                                      &name.name, 0);
                else
                        ret = fsnotify(p_inode, mask, dentry->d_inode, FSNOTIFY_EVENT_INODE,
-                                      name.name.name, 0);
+                                      &name.name, 0);
                release_dentry_name_snapshot(&name);
        }
 
  * notification event in whatever means they feel necessary.
  */
 int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
-            const unsigned char *file_name, u32 cookie)
+            const struct qstr *file_name, u32 cookie)
 {
        struct fsnotify_iter_info iter_info = {};
        struct super_block *sb = to_tell->i_sb;
         */
        while (fsnotify_iter_select_report_types(&iter_info)) {
                ret = send_to_group(to_tell, mask, data, data_is, cookie,
-                                   file_name, &iter_info);
+                                   file_name->name, &iter_info);
 
                if (ret && (mask & ALL_FSNOTIFY_PERM_EVENTS))
                        goto out;
 
                                  __u32 mask)
 {
        return fsnotify(dir, mask, d_inode(dentry), FSNOTIFY_EVENT_INODE,
-                       dentry->d_name.name, 0);
+                       &dentry->d_name, 0);
 }
 
 /* Notify this dentry's parent about a child's events. */
        __u32 old_dir_mask = FS_MOVED_FROM;
        __u32 new_dir_mask = FS_MOVED_TO;
        __u32 mask = FS_MOVE_SELF;
-       const unsigned char *new_name = moved->d_name.name;
+       const struct qstr *new_name = &moved->d_name;
 
        if (old_dir == new_dir)
                old_dir_mask |= FS_DN_RENAME;
                mask |= FS_ISDIR;
        }
 
-       fsnotify(old_dir, old_dir_mask, source, FSNOTIFY_EVENT_INODE, old_name->name,
+       fsnotify(old_dir, old_dir_mask, source, FSNOTIFY_EVENT_INODE, old_name,
                 fs_cookie);
        fsnotify(new_dir, new_dir_mask, source, FSNOTIFY_EVENT_INODE, new_name,
                 fs_cookie);
        take_dentry_name_snapshot(&name, dentry);
 
        fsnotify(d_inode(parent), mask, d_inode(dentry), FSNOTIFY_EVENT_INODE,
-                name.name.name, 0);
+                &name.name, 0);
 
        release_dentry_name_snapshot(&name);
        dput(parent);
        fsnotify_link_count(inode);
        audit_inode_child(dir, new_dentry, AUDIT_TYPE_CHILD_CREATE);
 
-       fsnotify(dir, FS_CREATE, inode, FSNOTIFY_EVENT_INODE, new_dentry->d_name.name, 0);
+       fsnotify(dir, FS_CREATE, inode, FSNOTIFY_EVENT_INODE, &new_dentry->d_name, 0);
 }
 
 /*
 
 
 /* main fsnotify call to send events */
 extern int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
-                   const unsigned char *name, u32 cookie);
+                   const struct qstr *name, u32 cookie);
 extern int __fsnotify_parent(const struct path *path, struct dentry *dentry, __u32 mask);
 extern void __fsnotify_inode_delete(struct inode *inode);
 extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt);
 #else
 
 static inline int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
-                          const unsigned char *name, u32 cookie)
+                          const struct qstr *name, u32 cookie)
 {
        return 0;
 }