int zero_out(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len)
{
char buf[8192] = { 0 };
- void *p = tdb->methods->direct(tdb, off, len);
+ void *p = tdb->methods->direct(tdb, off, len, true);
assert(!tdb->read_only);
if (p) {
tdb_off_t ret;
if (likely(!(tdb->flags & TDB_CONVERT))) {
- tdb_off_t *p = tdb->methods->direct(tdb, off, sizeof(*p));
+ tdb_off_t *p = tdb->methods->direct(tdb, off, sizeof(*p),
+ false);
if (p)
return *p;
}
}
if (likely(!(tdb->flags & TDB_CONVERT))) {
- tdb_off_t *p = tdb->methods->direct(tdb, off, sizeof(*p));
+ tdb_off_t *p = tdb->methods->direct(tdb, off, sizeof(*p),
+ true);
if (p) {
*p = val;
return 0;
const void *ret = NULL;
if (likely(!(tdb->flags & TDB_CONVERT)))
- ret = tdb->methods->direct(tdb, off, len);
+ ret = tdb->methods->direct(tdb, off, len, false);
if (!ret) {
struct tdb_access_hdr *hdr;
}
if (likely(!(tdb->flags & TDB_CONVERT)))
- ret = tdb->methods->direct(tdb, off, len);
+ ret = tdb->methods->direct(tdb, off, len, true);
if (!ret) {
struct tdb_access_hdr *hdr;
return ret;
}
-static void *tdb_direct(struct tdb_context *tdb, tdb_off_t off, size_t len)
+static void *tdb_direct(struct tdb_context *tdb, tdb_off_t off, size_t len,
+ bool write)
{
if (unlikely(!tdb->map_ptr))
return NULL;