コード例 #1
0
ファイル: gfs_pio_global.c プロジェクト: krichter722/gfarm
static char *
gfs_pio_view_global_read(GFS_File gf, char *buffer, size_t size,
			 size_t *lengthp)
{
	struct gfs_file_global_context *gc = gf->view_context;
	char *e = gfs_pio_view_global_adjust(gf, buffer, &size);
	int length; /* XXX - should be size_t */

	if (e != NULL)
		return (e);
	e = gfs_pio_read(gc->fragment_gf, buffer, size, &length);
	if (e != NULL)
		return (e);
	*lengthp = length;
	return (NULL);
}
コード例 #2
0
ファイル: gfs_pio_global.c プロジェクト: eterps/pwrake
static gfarm_error_t
gfs_pio_view_global_read(GFS_File gf, char *buffer, size_t size,
			 size_t *lengthp)
{
	struct gfs_file_global_context *gc = gf->view_context;
	gfarm_error_t e = gfs_pio_view_global_adjust(gf, buffer, &size);
	int length; /* XXX - should be size_t */

	if (e != GFARM_ERR_NO_ERROR)
		return (e);
	e = gfs_pio_read(gc->fragment_gf, buffer, size, &length);
	if (e != GFARM_ERR_NO_ERROR)
		return (e);
	*lengthp = length;
	return (GFARM_ERR_NO_ERROR);
}
コード例 #3
0
ファイル: gfs_pio_global.c プロジェクト: krichter722/gfarm
static char *
gfs_pio_view_global_write(GFS_File gf, const char *buffer, size_t size,
			  size_t *lengthp)
{
	struct gfs_file_global_context *gc = gf->view_context;
	char *e = gfs_pio_view_global_adjust(gf, buffer, &size);
	int length; /* XXX - should be size_t */

	if (e != NULL)
		return (e);
	e = gfs_pio_write(gc->fragment_gf, buffer, size, &length);
	if (e != NULL)
		return (e);
	if (gc->fragment_index == gf->pi.status.st_nsections - 1 &&
	    gf->io_offset + length > gc->offsets[gf->pi.status.st_nsections])
		gc->offsets[gf->pi.status.st_nsections] =
			gf->io_offset + length;
	*lengthp = length;
	return (NULL);
}
コード例 #4
0
ファイル: gfs_pio_global.c プロジェクト: eterps/pwrake
static gfarm_error_t
gfs_pio_view_global_write(GFS_File gf, const char *buffer, size_t size,
			  size_t *lengthp)
{
	struct gfs_file_global_context *gc = gf->view_context;
	gfarm_error_t e = gfs_pio_view_global_adjust(gf, buffer, &size);
	int length; /* XXX - should be size_t */

	if (e != GFARM_ERR_NO_ERROR)
		return (e);
	e = gfs_pio_write(gc->fragment_gf, buffer, size, &length);
	if (e != GFARM_ERR_NO_ERROR)
		return (e);
	/* XXX - should notify this change to all of the parallel process. */
	if (gc->fragment_index == gf->pi.status.st_nsections - 1 &&
	    gf->io_offset + length > gc->offsets[gf->pi.status.st_nsections])
		gc->offsets[gf->pi.status.st_nsections] =
			gf->io_offset + length;
	*lengthp = length;
	return (GFARM_ERR_NO_ERROR);
}