BB_OFFSET
} else if (s > BB_OFFSET(p[prev])) {
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
s - BB_OFFSET(p[prev]),
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
s - BB_OFFSET(p[prev]),
len = BB_OFFSET(p[0]) - s;
if (badblocks_full(bb) && (BB_OFFSET(p[prev]) < bad.start) &&
if ((BB_OFFSET(p[prev]) < bad.start) &&
len = BB_OFFSET(p[prev + 1]) - bad.start;
*first_bad = BB_OFFSET(p[prev]);
len = BB_OFFSET(p[prev + 1]) - bad.start;
sector_t start = BB_OFFSET(p[i]);
sector_t s = BB_OFFSET(p[i]);
(BB_OFFSET(p[hint]) <= s)) {
if ((hint + 1) == bb->count || BB_OFFSET(p[hint + 1]) > s) {
if (BB_OFFSET(p[lo]) > s)
if (BB_OFFSET(p[hi - 1]) <= s)
sector_t a = BB_OFFSET(p[mid]);
if (BB_OFFSET(p[lo]) <= s)
merged > (BB_OFFSET(p[prev + 1]) - BB_END(p[prev]))) {
merged = BB_OFFSET(p[prev + 1]) - BB_END(p[prev]);
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
(BB_OFFSET(p[prev]) == bad->start) &&
(BB_END(p[prev - 1]) == BB_OFFSET(p[prev])) &&
p[prev - 1] = BB_MAKE(BB_OFFSET(p[prev - 1]),
if (bad->start >= BB_OFFSET(p[front]) &&
if (bad->start < BB_OFFSET(p[behind]) &&
(bad->start + bad->len) > BB_OFFSET(p[behind]))
if (BB_OFFSET(p[prev]) == bad->start)
if (BB_OFFSET(p[prev]) == bad->start)
p[prev] = BB_MAKE(BB_OFFSET(p[prev]), BB_LEN(p[prev]),
if (BB_OFFSET(p[prev]) == bad->start) {
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
bad->start - BB_OFFSET(p[prev]),
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
bad->start - BB_OFFSET(p[prev]),
BB_END(p[prev]) == BB_OFFSET(p[prev + 1]) &&
p[prev] = BB_MAKE(BB_OFFSET(p[prev]),
if (bad.len > (BB_OFFSET(p[0]) - bad.start))
bad.len = BB_OFFSET(p[0]) - bad.start;
bad.len, BB_OFFSET(p[prev + 1]) - bad.start);
if (s == BB_OFFSET(p[prev])) {
p[prev] = BB_MAKE(BB_OFFSET(p[prev]) + sectors,
u64 store_bb = ((BB_OFFSET(internal_bb) << 10)
#define BB_END(x) (BB_OFFSET(x) + BB_LEN(x))