diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2023-01-20 11:04:28 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-01-20 11:04:28 +0100 |
commit | f2c0052746ba6dacb6ce0fd3af3d390893fdc9f7 (patch) | |
tree | 53af334e75c42bbd49e518332443d18c724d3151 /common | |
parent | 434891b29e0a9e5c40fba1b38f8223154c0f3f88 (diff) | |
parent | 2f8590c438e6870a366ab1a1672a0bbe789ea4ed (diff) | |
download | barebox-f2c0052746ba6dacb6ce0fd3af3d390893fdc9f7.tar.gz barebox-f2c0052746ba6dacb6ce0fd3af3d390893fdc9f7.tar.xz |
Merge branch 'for-next/struct-rename'
Diffstat (limited to 'common')
-rw-r--r-- | common/state/backend_bucket_direct.c | 4 | ||||
-rw-r--r-- | common/state/backend_storage.c | 2 | ||||
-rw-r--r-- | common/state/state.c | 6 | ||||
-rw-r--r-- | common/state/state.h | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/common/state/backend_bucket_direct.c b/common/state/backend_bucket_direct.c index 3818c6f0b0..f06e142778 100644 --- a/common/state/backend_bucket_direct.c +++ b/common/state/backend_bucket_direct.c @@ -164,12 +164,12 @@ static void state_backend_bucket_direct_free(struct int state_backend_bucket_direct_create(struct device *dev, const char *path, struct state_backend_storage_bucket **bucket, - off_t offset, ssize_t max_size) + off_t offset, ssize_t max_size, bool readonly) { int fd; struct state_backend_storage_bucket_direct *direct; - fd = open(path, O_RDWR); + fd = open(path, readonly ? O_RDONLY : O_RDWR); if (fd < 0) { dev_err(dev, "Failed to open file '%s', %d\n", path, -errno); return -errno; diff --git a/common/state/backend_storage.c b/common/state/backend_storage.c index c55d22e37f..df81902bf7 100644 --- a/common/state/backend_storage.c +++ b/common/state/backend_storage.c @@ -332,7 +332,7 @@ static int state_storage_file_buckets_init(struct state_backend_storage *storage offset = storage->offset + n * stridesize; ret = state_backend_bucket_direct_create(storage->dev, storage->path, &bucket, offset, - stridesize); + stridesize, storage->readonly); if (ret) { dev_warn(storage->dev, "Failed to create direct bucket at '%s' offset %lld\n", storage->path, (long long) offset); diff --git a/common/state/state.c b/common/state/state.c index a614c849c7..cabe285fbd 100644 --- a/common/state/state.c +++ b/common/state/state.c @@ -653,14 +653,14 @@ struct state *state_new_from_node(struct device_node *node, bool readonly) if (ret) goto out_release_state; + if (readonly) + state_backend_set_readonly(state); + ret = state_storage_init(state, state->backend_path, offset, size, stridesize, storage_type); if (ret) goto out_release_state; - if (readonly) - state_backend_set_readonly(state); - ret = state_from_node(state, node, 1); if (ret) { goto out_release_state; diff --git a/common/state/state.h b/common/state/state.h index 7eb51bbdb5..f0c5b1de41 100644 --- a/common/state/state.h +++ b/common/state/state.h @@ -226,7 +226,7 @@ void state_backend_set_readonly(struct state *state); void state_storage_free(struct state_backend_storage *storage); int state_backend_bucket_direct_create(struct device *dev, const char *path, struct state_backend_storage_bucket **bucket, - off_t offset, ssize_t max_size); + off_t offset, ssize_t max_size, bool readonly); int state_storage_write(struct state_backend_storage *storage, const void * buf, ssize_t len); int state_storage_read(struct state_backend_storage *storage, |