static struct dentry *batadv_debugfs;
 
+/**
+ * batadv_debugfs_deprecated() - Log use of deprecated batadv debugfs access
+ * @file: file which was accessed
+ * @alt: explanation what can be used as alternative
+ */
+void batadv_debugfs_deprecated(struct file *file, const char *alt)
+{
+       struct dentry *dentry = file_dentry(file);
+       const char *name = dentry->d_name.name;
+
+       pr_warn_ratelimited(DEPRECATED "%s (pid %d) Use of debugfs file \"%s\".\n%s",
+                           current->comm, task_pid_nr(current), name, alt);
+}
+
 static int batadv_algorithms_open(struct inode *inode, struct file *file)
 {
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_ROUTING_ALGOS instead\n");
        return single_open(file, batadv_algo_seq_print_text, NULL);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_NEIGHBORS instead\n");
        return single_open(file, batadv_hardif_neigh_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_ORIGINATORS instead\n");
        return single_open(file, batadv_orig_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_HARDIFS instead\n");
        return single_open(file, batadv_orig_hardif_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_GATEWAYS instead\n");
        return single_open(file, batadv_gw_client_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_TRANSTABLE_GLOBAL instead\n");
        return single_open(file, batadv_tt_global_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_BLA_CLAIM instead\n");
        return single_open(file, batadv_bla_claim_table_seq_print_text,
                           net_dev);
 }
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_BLA_BACKBONE instead\n");
        return single_open(file, batadv_bla_backbone_table_seq_print_text,
                           net_dev);
 }
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_DAT_CACHE instead\n");
        return single_open(file, batadv_dat_cache_seq_print_text, net_dev);
 }
 #endif
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_TRANSTABLE_LOCAL instead\n");
        return single_open(file, batadv_tt_local_seq_print_text, net_dev);
 }
 
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file, "");
        return single_open(file, batadv_nc_nodes_seq_print_text, net_dev);
 }
 #endif
 {
        struct net_device *net_dev = (struct net_device *)inode->i_private;
 
+       batadv_debugfs_deprecated(file,
+                                 "Use genl command BATADV_CMD_GET_MCAST_FLAGS instead\n");
        return single_open(file, batadv_mcast_flags_seq_print_text, net_dev);
 }
 #endif