Scroll to navigation

G_DATA(9) Kernel Developer's Manual G_DATA(9)


g_read_data, g_write_dataread/write data from/to GEOM consumer


#include <geom/geom.h>

void *
g_read_data(struct g_consumer *cp, off_t offset, off_t length, int *error);

g_write_data(struct g_consumer *cp, off_t offset, void *ptr, off_t length);


The () function reads length bytes of data from the provider attached to consumer cp, starting at offset offset. The buffer returned from g_read_data() is allocated with (), so it should be freed by the caller with () after use. If the operation fails, an error value will be stored in the error argument if it is not NULL.

The () function writes length bytes of data from the buffer pointed to by ptr to the provider attached to consumer cp, starting at offset offset.


The length argument should be a multiple of the provider's sectorsize and less than or equal to DFLTPHYS (DFLTPHYS is defined in <sys/param.h>).

The topology lock must not be held.


The g_read_data() function returns a pointer to a data buffer or NULL if an error occurred. In that case an error value is stored in the error argument unless it is NULL.

The g_write_data() function returns 0 if successful; otherwise an error code is returned.


Possible errors:

An I/O error occurred while reading from or writing to the consumer.
Corrupted data was detected while reading from the consumer.


geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9), g_consumer(9), g_event(9), g_geom(9), g_provider(9), g_provider_by_name(9), g_wither_geom(9)


This manual page was written by Pawel Jakub Dawidek <>.

March 30, 2020 Debian