Merge pull request #1068 from littlefs-project/fix-dir-remove-read

Fix dir iteration being broken by concurrent removes
This commit is contained in:
Christopher Haster
2025-03-20 01:24:04 -05:00
committed by GitHub
2 changed files with 78 additions and 1 deletions
+2 -1
View File
@@ -2369,7 +2369,8 @@ fixmlist:;
if (d->m.pair != pair) {
for (int i = 0; i < attrcount; i++) {
if (lfs_tag_type3(attrs[i].tag) == LFS_TYPE_DELETE &&
d->id == lfs_tag_id(attrs[i].tag)) {
d->id == lfs_tag_id(attrs[i].tag) &&
d->type != LFS_TYPE_DIR) {
d->m.pair[0] = LFS_BLOCK_NULL;
d->m.pair[1] = LFS_BLOCK_NULL;
} else if (lfs_tag_type3(attrs[i].tag) == LFS_TYPE_DELETE &&