summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/smb/client/compress/lz77.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/smb/client/compress/lz77.c b/fs/smb/client/compress/lz77.c
index 96e8a8057a77..e32a9bd9a94f 100644
--- a/fs/smb/client/compress/lz77.c
+++ b/fs/smb/client/compress/lz77.c
@@ -51,11 +51,11 @@ static __always_inline void lz77_write32(u32 *ptr, u32 v)
static __always_inline u32 lz77_match_len(const void *wnd, const void *cur, const void *end)
{
const void *start = cur;
- u64 diff;
/* Safe for a do/while because otherwise we wouldn't reach here from the main loop. */
do {
- diff = lz77_read64(cur) ^ lz77_read64(wnd);
+ const u64 diff = lz77_read64(cur) ^ lz77_read64(wnd);
+
if (!diff) {
cur += LZ77_STEP_SIZE;
wnd += LZ77_STEP_SIZE;
@@ -69,8 +69,10 @@ static __always_inline u32 lz77_match_len(const void *wnd, const void *cur, cons
return (cur - start);
} while (likely(cur + LZ77_STEP_SIZE < end));
- while (cur < end && lz77_read8(cur++) == lz77_read8(wnd++))
- ;
+ while (cur < end && lz77_read8(cur) == lz77_read8(wnd)) {
+ cur++;
+ wnd++;
+ }
return (cur - start);
}