if ((inode = sysfs_new_inode(mode))) { 
struct sysfs_dirent * sd = dentry->d_fsdata; if ((inode = sysfs_new_inode(mode, sd))) { 
int sysfs_create(struct dentry * dentry, int mode, int (*init)(struct inode *)){	int error = 0;	struct inode * inode = NULL;	if (dentry) {		if (!dentry->d_inode) {			if ((inode = sysfs_new_inode(mode))) {				if (dentry->d_parent && dentry->d_parent->d_inode) {					struct inode *p_inode = dentry->d_parent->d_inode;					p_inode->i_mtime = p_inode->i_ctime = CURRENT_TIME;				}				goto Proceed;			}			else 				error = -ENOMEM;		} else			error = -EEXIST;	} else 		error = -ENOENT;	goto Done; Proceed:	if (init)		error = init(inode);	if (!error) {		d_instantiate(dentry, inode);		if (S_ISDIR(mode))			dget(dentry);  /* pin only directory dentry in core */	} else		iput(inode); Done:	return error;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8215534ce7d073423bfa9c17405c43ab7636ca03/inode.c/buggy/fs/sysfs/inode.c