nfs_mark_for_revalidate(dir);
nfs_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr,	       dev_t rdev){	struct nfs_fh fhandle;	struct nfs_fattr fattr;	struct nfs_createargs	arg = {		.fh		= NFS_FH(dir),		.name		= dentry->d_name.name,		.len		= dentry->d_name.len,		.sattr		= sattr	};	struct nfs_diropok	res = {		.fh		= &fhandle,		.fattr		= &fattr	};	int status, mode;	dprintk("NFS call  mknod %s\n", dentry->d_name.name);	mode = sattr->ia_mode;	if (S_ISFIFO(mode)) {		sattr->ia_mode = (mode & ~S_IFMT) | S_IFCHR;		sattr->ia_valid &= ~ATTR_SIZE;	} else if (S_ISCHR(mode) || S_ISBLK(mode)) {		sattr->ia_valid |= ATTR_SIZE;		sattr->ia_size = new_encode_dev(rdev);/* get out your barf bag */	}	nfs_fattr_init(&fattr);	status = rpc_call(NFS_CLIENT(dir), NFSPROC_CREATE, &arg, &res, 0);	if (status == -EINVAL && S_ISFIFO(mode)) {		sattr->ia_mode = mode;		nfs_fattr_init(&fattr);		status = rpc_call(NFS_CLIENT(dir), NFSPROC_CREATE, &arg, &res, 0);	}	if (status == 0)		status = nfs_instantiate(dentry, &fhandle, &fattr);	dprintk("NFS reply mknod: %d\n", status);	return status;}