firmware/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-fs_squashfs_cache.c.p...

22 lines
645 B
Diff

diff -drupN a/fs/squashfs/cache.c b/fs/squashfs/cache.c
--- a/fs/squashfs/cache.c 2018-08-06 17:23:04.000000000 +0300
+++ b/fs/squashfs/cache.c 2022-06-12 05:28:14.000000000 +0300
@@ -191,6 +191,17 @@ void squashfs_cache_put(struct squashfs_
entry->refcount--;
if (entry->refcount == 0) {
cache->unused++;
+
+ /*
+ * If error of this entry is occured, we need to
+ * mark it to SQUASHFS_INVALID_BLK, and clear the
+ * error variable.
+ */
+ if (entry->error) {
+ entry->error = 0;
+ entry->block = SQUASHFS_INVALID_BLK;
+ }
+
/*
* If there's any processes waiting for a block to become
* available, wake one up.