return -ERESTARTSYS;
return -EINTR;
int fuse_fsync_common(struct file *file, struct dentry *de, int datasync,		      int isdir){	struct inode *inode = de->d_inode;	struct fuse_conn *fc = get_fuse_conn(inode);	struct fuse_file *ff = file->private_data;	struct fuse_req *req;	struct fuse_fsync_in inarg;	int err;	if ((!isdir && fc->no_fsync) || (isdir && fc->no_fsyncdir))		return 0;	req = fuse_get_request(fc);	if (!req)		return -ERESTARTSYS;	memset(&inarg, 0, sizeof(inarg));	inarg.fh = ff->fh;	inarg.fsync_flags = datasync ? 1 : 0;	req->in.h.opcode = isdir ? FUSE_FSYNCDIR : FUSE_FSYNC;	req->in.h.nodeid = get_node_id(inode);	req->inode = inode;	req->file = file;	req->in.numargs = 1;	req->in.args[0].size = sizeof(inarg);	req->in.args[0].value = &inarg;	request_send(fc, req);	err = req->out.h.error;	fuse_put_request(fc, req);	if (err == -ENOSYS) {		if (isdir)			fc->no_fsyncdir = 1;		else			fc->no_fsync = 1;		err = 0;	}	return err;}