diff options
-rw-r--r-- | common/state/Makefile | 2 | ||||
-rw-r--r-- | common/state/backend_storage.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/common/state/Makefile b/common/state/Makefile index 23f72862b9..3e0e2c6e55 100644 --- a/common/state/Makefile +++ b/common/state/Makefile @@ -5,5 +5,5 @@ obj-y += backend_format_dtb.o 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 c4508a8aba..5dc8c50267 100644 --- a/common/state/backend_storage.c +++ b/common/state/backend_storage.c @@ -471,7 +471,7 @@ int state_storage_init(struct state_backend_storage *storage, 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 @@ int state_storage_init(struct state_backend_storage *storage, 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) { |