diff options
Diffstat (limited to 'fs/coda/cnode.c')
| -rw-r--r-- | fs/coda/cnode.c | 38 | 
1 files changed, 16 insertions, 22 deletions
| diff --git a/fs/coda/cnode.c b/fs/coda/cnode.c index 6475877b076..911cf30d057 100644 --- a/fs/coda/cnode.c +++ b/fs/coda/cnode.c @@ -88,24 +88,21 @@ struct inode * coda_iget(struct super_block * sb, struct CodaFid * fid,     - link the two up if this is needed     - fill in the attributes  */ -int coda_cnode_make(struct inode **inode, struct CodaFid *fid, struct super_block *sb) +struct inode *coda_cnode_make(struct CodaFid *fid, struct super_block *sb)  {          struct coda_vattr attr; +	struct inode *inode;          int error;  	/* We get inode numbers from Venus -- see venus source */  	error = venus_getattr(sb, fid, &attr); -	if ( error ) { -	    *inode = NULL; -	    return error; -	}  +	if (error) +		return ERR_PTR(error); -	*inode = coda_iget(sb, fid, &attr); -	if ( IS_ERR(*inode) ) { +	inode = coda_iget(sb, fid, &attr); +	if (IS_ERR(inode))  		printk("coda_cnode_make: coda_iget failed\n"); -                return PTR_ERR(*inode); -        } -	return 0; +	return inode;  } @@ -156,19 +153,16 @@ struct inode *coda_fid_to_inode(struct CodaFid *fid, struct super_block *sb)  }  /* the CONTROL inode is made without asking attributes from Venus */ -int coda_cnode_makectl(struct inode **inode, struct super_block *sb) +struct inode *coda_cnode_makectl(struct super_block *sb)  { -	int error = -ENOMEM; - -	*inode = new_inode(sb); -	if (*inode) { -		(*inode)->i_ino = CTL_INO; -		(*inode)->i_op = &coda_ioctl_inode_operations; -		(*inode)->i_fop = &coda_ioctl_operations; -		(*inode)->i_mode = 0444; -		error = 0; +	struct inode *inode = new_inode(sb); +	if (inode) { +		inode->i_ino = CTL_INO; +		inode->i_op = &coda_ioctl_inode_operations; +		inode->i_fop = &coda_ioctl_operations; +		inode->i_mode = 0444; +		return inode;  	} - -	return error; +	return ERR_PTR(-ENOMEM);  } | 
