The commit c3b1a35 "debugfs: make sure that debugfs_create_file() gets used only for regulars" doesn't allow to use debugfs_create_file() for creating directory, and the current debugfs_create_dir() cannot take the private data from caller. There are some cases that we want to pass some client data to dir, especially when dir is nested deeply. We can work around to pass all necessary data with some invented data structure to the end files, but if directory itself had private data, we could avoid to introduce new structures just to pass data to end files. For example, tegra iommu(smmu) case, debugfs structure could be as below. sys/ └── kernel └── debug ├── smmu.0 │ ├── mc │ │ ├── ptc │ │ └── tlb │ └── mc0 │ ├── ptc │ └── tlb └── smmu.1 ├── mc │ ├── ptc │ └── tlb ├── mc0 │ ├── ptc │ └── tlb └── mc1 ├── ptc └── tlb The end files, {ptc,tlb} depend on which mc? to belong to, and which smmu.? to belong to. The parent data can be accessed from those end files if necessary. dent = d_find_alias(s->private); cache = (int)dent->d_inode->i_private; mc = (int)dent->d_parent->d_inode->i_private; smmu = dent->d_parent->d_parent->d_inode->i_private; The original tegra smmu debugfs patch is: http://lists.linuxfoundation.org/pipermail/iommu/2012-August/004507.html Hiroshi Doyu (2): debugfs: Allow debugfs_create_dir() to take data iommu/tegra: smmu: Use __debugfs_create_dir drivers/iommu/tegra-smmu.c | 4 +--- fs/debugfs/inode.c | 7 ++++--- include/linux/debugfs.h | 9 ++++++++- 3 files changed, 13 insertions(+), 7 deletions(-) -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html