]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Update bcachefs sources to aae76fba15 bcachefs: Use KEY_TYPE_deleted whitouts for...
authorKent Overstreet <kent.overstreet@gmail.com>
Sun, 29 Dec 2019 16:15:34 +0000 (11:15 -0500)
committerKent Overstreet <kent.overstreet@gmail.com>
Sun, 29 Dec 2019 16:15:34 +0000 (11:15 -0500)
.bcachefs_revision
libbcachefs/bkey.c

index 7da3a91d9f0175296bcba836f8570f330e94861b..ead2d1be3762cbbc4af693e35ba01ff2342f531f 100644 (file)
@@ -1 +1 @@
-1569db10e2463f01b322f165b37b5ee784cfd7b8
+aae76fba150894dc6c8b21a58b110413531af287
index 494126aea3212d58692c6055a3aaa189a2bd701b..4d0c9129cd4abcb9cef2dc9543f124f990d872cb 100644 (file)
@@ -173,7 +173,8 @@ static bool set_inc_field(struct pack_state *state, unsigned field, u64 v)
 
        if (bits > state->bits) {
                bits -= state->bits;
-               state->w |= v >> bits;
+               /* avoid shift by 64 if bits is 0 - bits is never 64 here: */
+               state->w |= (v >> 1) >> (bits - 1);
 
                *state->p = state->w;
                state->p = next_word(state->p);
@@ -182,10 +183,7 @@ static bool set_inc_field(struct pack_state *state, unsigned field, u64 v)
        }
 
        state->bits -= bits;
-
-       EBUG_ON(!state->bits);
-       /* avoid shift by 64: */
-       state->w |= (v << 1) << (state->bits - 1);
+       state->w |= v << state->bits;
 
        return true;
 }
@@ -372,7 +370,7 @@ static bool set_inc_field_lossy(struct pack_state *state, unsigned field, u64 v)
 
        if (bits > state->bits) {
                bits -= state->bits;
-               state->w |= v >> bits;
+               state->w |= (v >> 1) >> (bits - 1);
 
                *state->p = state->w;
                state->p = next_word(state->p);
@@ -381,7 +379,7 @@ static bool set_inc_field_lossy(struct pack_state *state, unsigned field, u64 v)
        }
 
        state->bits -= bits;
-       state->w |= (v << 1) << (state->bits - 1);
+       state->w |= v << state->bits;
 
        return ret;
 }