[kvdb] interrupt iteraotor when read_section_info fails (#251)
* interrupt iteraotor when read_section_info failed * Update src/fdb_kvdb.c Co-authored-by: 朱天龙 (Armink) <armink.ztl@gmail.com> * Update src/fdb_kvdb.c Co-authored-by: 朱天龙 (Armink) <armink.ztl@gmail.com> --------- Co-authored-by: 朱天龙 (Armink) <armink.ztl@gmail.com>
This commit is contained in:
parent
deae3d1d3f
commit
7b2557f3e7
|
@ -837,10 +837,12 @@ static void sector_iterator(fdb_kvdb_t db, kv_sec_info_t sector, fdb_sector_stor
|
||||||
sec_addr = db_oldest_addr(db);
|
sec_addr = db_oldest_addr(db);
|
||||||
do {
|
do {
|
||||||
traversed_len += db_sec_size(db);
|
traversed_len += db_sec_size(db);
|
||||||
read_sector_info(db, sec_addr, sector, false);
|
if (FDB_NO_ERR != read_sector_info(db, sec_addr, sector, false))
|
||||||
|
return;
|
||||||
if (status == FDB_SECTOR_STORE_UNUSED || status == sector->status.store) {
|
if (status == FDB_SECTOR_STORE_UNUSED || status == sector->status.store) {
|
||||||
if (traversal_kv) {
|
if (traversal_kv) {
|
||||||
read_sector_info(db, sec_addr, sector, true);
|
if (FDB_NO_ERR != read_sector_info(db, sec_addr, sector, true))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
/* iterator is interrupted when callback return true */
|
/* iterator is interrupted when callback return true */
|
||||||
if (callback && callback(sector, arg1, arg2)) {
|
if (callback && callback(sector, arg1, arg2)) {
|
||||||
|
|
Loading…
Reference in New Issue