mirror of
https://github.com/eledio-devices/thirdparty-littlefs.git
synced 2025-11-01 16:14:13 +01:00
Compare commits
4 Commits
v2.0.2
...
fix-read-h
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c64bf1a17b | ||
|
|
f35fb8c148 | ||
|
|
0a1f706ca2 | ||
|
|
fdd239fe21 |
@@ -136,6 +136,7 @@ jobs:
|
||||
env:
|
||||
- STAGE=test
|
||||
- NAME=littlefs-migration
|
||||
if: branch !~ -prefix$
|
||||
install:
|
||||
- sudo apt-get install libfuse-dev
|
||||
- git clone --depth 1 https://github.com/geky/littlefs-fuse -b v2-alpha v2
|
||||
|
||||
24
lfs.c
24
lfs.c
@@ -80,28 +80,16 @@ static int lfs_bd_read(lfs_t *lfs,
|
||||
diff = lfs_min(diff, rcache->off-off);
|
||||
}
|
||||
|
||||
if (size >= hint && off % lfs->cfg->read_size == 0 &&
|
||||
size >= lfs->cfg->read_size) {
|
||||
// bypass cache?
|
||||
diff = lfs_aligndown(diff, lfs->cfg->read_size);
|
||||
int err = lfs->cfg->read(lfs->cfg, block, off, data, diff);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
data += diff;
|
||||
off += diff;
|
||||
size -= diff;
|
||||
continue;
|
||||
}
|
||||
|
||||
// load to cache, first condition can no longer fail
|
||||
LFS_ASSERT(block < lfs->cfg->block_count);
|
||||
rcache->block = block;
|
||||
rcache->off = lfs_aligndown(off, lfs->cfg->read_size);
|
||||
rcache->size = lfs_min(lfs_alignup(off+hint, lfs->cfg->read_size),
|
||||
lfs_min(lfs->cfg->block_size - rcache->off,
|
||||
lfs->cfg->cache_size));
|
||||
rcache->size = lfs_min(
|
||||
lfs_min(
|
||||
lfs_alignup(off+hint, lfs->cfg->read_size),
|
||||
lfs->cfg->block_size)
|
||||
- rcache->off,
|
||||
lfs->cfg->cache_size);
|
||||
int err = lfs->cfg->read(lfs->cfg, rcache->block,
|
||||
rcache->off, rcache->buffer, rcache->size);
|
||||
if (err) {
|
||||
|
||||
Reference in New Issue
Block a user