diff options
author | Ingo Huerner <ingo_huerner@mentor.com> | 2017-03-29 09:16:31 +0200 |
---|---|---|
committer | Ingo Huerner <ingo_huerner@mentor.com> | 2017-03-29 09:16:31 +0200 |
commit | 445fc7836f886964a48947b1302db4dc4e7172d3 (patch) | |
tree | 99b2cb17cb91572e18888e5a97bee041d73656cd | |
parent | b4bb5e120b71438bad2c45934e10b3058a0b7ee2 (diff) | |
download | persistence-common-object-445fc7836f886964a48947b1302db4dc4e7172d3.tar.gz |
Added fdatasync for writethrough keys to make sure data will be synced to non-volatile memory device
-rw-r--r-- | src/key-value-store/pers_low_level_db_access.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/key-value-store/pers_low_level_db_access.c b/src/key-value-store/pers_low_level_db_access.c index 0d843fc..f1c1a42 100644 --- a/src/key-value-store/pers_low_level_db_access.c +++ b/src/key-value-store/pers_low_level_db_access.c @@ -1004,6 +1004,8 @@ static sint_t DeleteDataFromKissDB(sint_t dbHandler, pconststr_t key) DLT_STRING("Error Message: "); DLT_STRING(strerror(errno))); } } + + fdatasync(pLldbHandler->kissDb.fd); } Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock); } @@ -1076,6 +1078,8 @@ static sint_t DeleteDataFromKissRCT(sint_t dbHandler, pconststr_t key) DLT_STRING("Error Message: "); DLT_STRING(strerror(errno))); } } + + fdatasync(pLldbHandler->kissDb.fd); } Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock); } @@ -1295,6 +1299,8 @@ static sint_t SetDataInKissLocalDB(sint_t dbHandler, pconststr_t key, pconststr_ DLT_LOG(persComLldbDLTCtx, DLT_LOG_ERROR, DLT_STRING(__FUNCTION__); DLT_STRING(":"); DLT_STRING("KISSDB_put: key=<"); DLT_STRING(metaKey); DLT_STRING(">, "); DLT_STRING("WriteThrough to file failed with retval=<"); DLT_INT(bytesWritten); DLT_STRING(">")); } + + fdatasync(pLldbHandler->kissDb.fd); } } Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock); @@ -1380,6 +1386,8 @@ static sint_t SetDataInKissRCT(sint_t dbHandler, pconststr_t key, PersistenceCon DLT_LOG(persComLldbDLTCtx, DLT_LOG_ERROR, DLT_STRING(__FUNCTION__); DLT_STRING(":"); DLT_STRING("KISSDB_put: RCT key=<"); DLT_STRING(metaKey); DLT_STRING(">, "); DLT_STRING("WriteThrough to file failed with retval=<"); DLT_INT(bytesWritten); DLT_STRING(">")); } + + fdatasync(pLldbHandler->kissDb.fd); } } Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock); |