X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Fio.c;h=11914b3c76b639f63e89442758e259b21aeeb5fe;hp=a9016c4f38ea17a3148d9585302eae792dadc05c;hb=b72a2ee12f033abd049111d90a2066b1151bc25d;hpb=323a9473c0aef80b8e18ef0c53529c8dfc29ec45 diff --git a/ccan/tdb2/io.c b/ccan/tdb2/io.c index a9016c4f..11914b3c 100644 --- a/ccan/tdb2/io.c +++ b/ccan/tdb2/io.c @@ -236,11 +236,6 @@ static enum TDB_ERROR tdb_write(struct tdb_context *tdb, tdb_off_t off, "Write to read-only database"); } - /* FIXME: Bogus optimization? */ - if (len == 0) { - return TDB_SUCCESS; - } - ecode = tdb->methods->oob(tdb, off + len, 0); if (ecode != TDB_SUCCESS) { return ecode; @@ -251,7 +246,7 @@ static enum TDB_ERROR tdb_write(struct tdb_context *tdb, tdb_off_t off, } else { ssize_t ret; ret = pwrite(tdb->fd, buf, len, off); - if (ret < len) { + if (ret != len) { /* This shouldn't happen: we avoid sparse files. */ if (ret >= 0) errno = ENOSPC; @@ -380,7 +375,7 @@ static enum TDB_ERROR fill(struct tdb_context *tdb, while (len) { size_t n = len > size ? size : len; ssize_t ret = pwrite(tdb->fd, buf, n, off); - if (ret < n) { + if (ret != n) { if (ret >= 0) errno = ENOSPC;