Il 30/10/2013 17:23, Greg KH ha scritto: >> > static inline struct dentry *debugfs_create_dir(const char *name, >> > struct dentry *parent) >> > { >> > return ERR_PTR(-ENODEV); >> > } >> > >> > which would oops a lot of the current callers. > It will oops? Really? Where? That shouldn't happen at all. Doh, it obviously won't because the bogus pointer value will never be dereferenced by the dummy debugfs_create_file. >> > Very few places use the currently correct idiom >> > >> > if (IS_ERR(root) || !root) >> > >> > but it's very ugly... Perhaps debugfs_create_dir *should* return an >> > error-valued pointer after all. > Or just don't care about the return value, and all will work out just > fine, right? Debugfs files would then be created in the debugfs root, which is not nice. /* If the parent is not specified, we create it in the root. * We need the root dentry to do this, which is in the super * block. A pointer to that is in the struct vfsmount that we * have around. */ if (!parent) parent = debugfs_mount->mnt_root; This is all documented right: /** * debugfs_create_file - create a file in the debugfs filesystem * ... * This function will return a pointer to a dentry if it succeeds. This * pointer must be passed to the debugfs_remove() function when the file is * to be removed (no automatic cleanup happens if your module is unloaded, * you are responsible here.) If an error occurs, %NULL will be returned. * * If debugfs is not enabled in the kernel, the value -%ENODEV will be * returned. */ so I guess it's just part of the API. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html