diff options
Diffstat (limited to 'packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch')
-rw-r--r-- | packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch b/packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch index f88dbbae8e..6fec9eba03 100644 --- a/packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch +++ b/packages/linux/linux-openzaurus-2.6.17/squashfs3.0-2.6.15.patch @@ -533,7 +533,7 @@ diff --new-file -urp linux-2.6.15/fs/squashfs/inode.c linux-2.6.15-squashfs3.0/f + *s, long long start_block, + int length) +{ -+ int i, n; ++ int i, n, nf; + struct squashfs_sb_info *msblk = s->s_fs_info; + + while ( 1 ) { @@ -543,6 +543,8 @@ diff --new-file -urp linux-2.6.15/fs/squashfs/inode.c linux-2.6.15-squashfs3.0/f + msblk->fragment[i].block != start_block; i++); + + if (i == SQUASHFS_CACHED_FRAGMENTS) { ++ nf = (msblk->next_fragment + 1) % ++ SQUASHFS_CACHED_FRAGMENTS; + for (i = msblk->next_fragment, n = + SQUASHFS_CACHED_FRAGMENTS; n && + msblk->fragment[i].locked; n--, i = (i + 1) % @@ -562,8 +564,7 @@ diff --new-file -urp linux-2.6.15/fs/squashfs/inode.c linux-2.6.15-squashfs3.0/f + &wait); + continue; + } -+ msblk->next_fragment = (msblk->next_fragment + 1) % -+ SQUASHFS_CACHED_FRAGMENTS; ++ msblk->next_fragment = nf; + + if (msblk->fragment[i].data == NULL) + if (!(msblk->fragment[i].data = SQUASHFS_ALLOC |