diff --git a/common/state/Makefile b/common/state/Makefile index 23f7286..3e0e2c6 100644 --- a/common/state/Makefile +++ b/common/state/Makefile @@ -5,5 +5,5 @@ obj-y += backend_format_raw.o obj-y += backend_storage.o obj-y += backend_bucket_direct.o -obj-y += backend_bucket_circular.o +obj-$(CONFIG_MTD) += backend_bucket_circular.o obj-y += backend_bucket_cached.o diff --git a/common/state/backend_storage.c b/common/state/backend_storage.c index c4508a8..5dc8c50 100644 --- a/common/state/backend_storage.c +++ b/common/state/backend_storage.c @@ -471,7 +471,7 @@ off_t offset, size_t max_size, uint32_t stridesize, const char *storagetype) { - int ret; + int ret = -ENODEV; struct mtd_info_user meminfo; INIT_LIST_HEAD(&storage->buckets); @@ -479,7 +479,9 @@ storage->name = storagetype; storage->stridesize = stridesize; - ret = mtd_get_meminfo(path, &meminfo); + if (IS_ENABLED(CONFIG_MTD)) + ret = mtd_get_meminfo(path, &meminfo); + if (!ret && !(meminfo.flags & MTD_NO_ERASE)) { bool non_circular = false; if (!storagetype) {