/* SMP-safe */ static int debugfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) { struct inode *inode; int error = -EPERM; if (dentry->d_inode) return -EEXIST; inode = debugfs_get_inode(dir->i_sb, mode, dev); if (inode) { d_instantiate(dentry, inode); dget(dentry); error = 0; } return error; }
/* SMP-safe */ static int debugfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev, void *data, const struct file_operations *fops) { struct inode *inode; int error = -EPERM; if (dentry->d_inode) return -EEXIST; inode = debugfs_get_inode(dir->i_sb, mode, dev, data, fops); if (inode) { d_instantiate(dentry, inode); dget(dentry); error = 0; } return error; }