init_special_inode(inode, inode->i_mode, inode->i_rdev); break; 
struct inode *v9fs_get_inode(struct super_block *sb, int mode){	struct inode *inode = NULL;	dprintk(DEBUG_VFS, "super block: %p mode: %o\n", sb, mode);	inode = new_inode(sb);	if (inode) {		inode->i_mode = mode;		inode->i_uid = current->fsuid;		inode->i_gid = current->fsgid;		inode->i_blksize = sb->s_blocksize;		inode->i_blocks = 0;		inode->i_rdev = 0;		inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;		switch (mode & S_IFMT) {		case S_IFIFO:		case S_IFBLK:		case S_IFCHR:		case S_IFSOCK:		case S_IFREG:			inode->i_op = &v9fs_file_inode_operations;			inode->i_fop = &v9fs_file_operations;			break;		case S_IFDIR:			inode->i_nlink++;			inode->i_op = &v9fs_dir_inode_operations;			inode->i_fop = &v9fs_dir_operations;			break;		case S_IFLNK:			inode->i_op = &v9fs_symlink_inode_operations;			break;		default:			dprintk(DEBUG_ERROR, "BAD mode 0x%x S_IFMT 0x%x\n",				mode, mode & S_IFMT);			return ERR_PTR(-EINVAL);		}	} else {		eprintk(KERN_WARNING, "Problem allocating inode\n");		return ERR_PTR(-ENOMEM);	}	return inode;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5d58bec5b7a8b8303df0a4dcb9a18feeefac6091/vfs_inode.c/clean/fs/9p/vfs_inode.c