aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch')
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch65
1 files changed, 0 insertions, 65 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch
deleted file mode 100644
index d38cc4d3f4..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/fix-icache.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-inode.c: only update the icache for ext2_inode
-
-We only read the cache when:
-
-bufsize == sizeof(struct ext2_inode)
-
-then we should only update the cache in the same condition, otherwise
-there would be errors, for example:
-
-cache[0]: cached ino 14 when bufsize = 128 by ext2fs_write_inode_full()
-cache[1]: cached ino 14 when bufsize = 156 by ext2fs_read_inode_full()
-
-Then update the cache:
-cache[0]: cached ino 15 when bufsize = 156 by ext2fs_read_inode_full()
-
-Then the ino 14 would hit the cache[1] when bufsize = 128 (but it was
-cached by bufsize = 156), so there would be errors.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- lib/ext2fs/inode.c | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c
---- a/lib/ext2fs/inode.c
-+++ b/lib/ext2fs/inode.c
-@@ -612,10 +612,12 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino,
- #endif
-
- /* Update the inode cache */
-- fs->icache->cache_last = (fs->icache->cache_last + 1) %
-- fs->icache->cache_size;
-- fs->icache->cache[fs->icache->cache_last].ino = ino;
-- fs->icache->cache[fs->icache->cache_last].inode = *inode;
-+ if (bufsize == sizeof(struct ext2_inode)) {
-+ fs->icache->cache_last = (fs->icache->cache_last + 1) %
-+ fs->icache->cache_size;
-+ fs->icache->cache[fs->icache->cache_last].ino = ino;
-+ fs->icache->cache[fs->icache->cache_last].inode = *inode;
-+ }
-
- return 0;
- }
-@@ -648,10 +650,12 @@ errcode_t ext2fs_write_inode_full(ext2_filsys fs, ext2_ino_t ino,
-
- /* Check to see if the inode cache needs to be updated */
- if (fs->icache) {
-- for (i=0; i < fs->icache->cache_size; i++) {
-- if (fs->icache->cache[i].ino == ino) {
-- fs->icache->cache[i].inode = *inode;
-- break;
-+ if (bufsize == sizeof(struct ext2_inode)) {
-+ for (i=0; i < fs->icache->cache_size; i++) {
-+ if (fs->icache->cache[i].ino == ino) {
-+ fs->icache->cache[i].inode = *inode;
-+ break;
-+ }
- }
- }
- } else {
---
-1.8.1.2
-