* the filesystem if the btree root pointers in the AG headers are wrong.
* Dependencies cannot cross scrub groups.
*/
-#define DEP(x) (1U << (x))
-static const unsigned int repair_deps[XFS_SCRUB_TYPE_NR] = {
+#define DEP(x) (1ULL << (x))
+static const uint64_t repair_deps[XFS_SCRUB_TYPE_NR] = {
[XFS_SCRUB_TYPE_BMBTD] = DEP(XFS_SCRUB_TYPE_INODE),
[XFS_SCRUB_TYPE_BMBTA] = DEP(XFS_SCRUB_TYPE_INODE),
[XFS_SCRUB_TYPE_BMBTC] = DEP(XFS_SCRUB_TYPE_INODE),
const struct scrub_item *sri,
unsigned int scrub_type)
{
- unsigned int dep_mask = repair_deps[scrub_type];
+ uint64_t dep_mask = repair_deps[scrub_type];
unsigned int b;
for (b = 0; dep_mask && b < XFS_SCRUB_TYPE_NR; b++, dep_mask >>= 1) {
unsigned int scrub_type;
foreach_scrub_type(scrub_type) {
- unsigned int dep_mask = repair_deps[scrub_type];
+ uint64_t dep_mask = repair_deps[scrub_type];
unsigned int b;
if (repair_item_count_needsrepair(sri) == 0 || !dep_mask)
* Bitmap showing the correctness dependencies between scrub types for scrubs.
* Dependencies cannot cross scrub groups.
*/
-#define DEP(x) (1U << (x))
-static const unsigned int scrub_deps[XFS_SCRUB_TYPE_NR] = {
+#define DEP(x) (1ULL << (x))
+static const uint64_t scrub_deps[XFS_SCRUB_TYPE_NR] = {
[XFS_SCRUB_TYPE_AGF] = DEP(XFS_SCRUB_TYPE_SB),
[XFS_SCRUB_TYPE_AGFL] = DEP(XFS_SCRUB_TYPE_SB) |
DEP(XFS_SCRUB_TYPE_AGF),
scrub_item_schedule_work(
struct scrub_item *sri,
uint8_t state_flags,
- const unsigned int *schedule_deps)
+ const uint64_t *schedule_deps)
{
unsigned int scrub_type;
unsigned int nr = 0;
continue;
foreach_scrub_type(j) {
- if (schedule_deps[scrub_type] & (1U << j))
+ if (schedule_deps[scrub_type] & (1ULL << j))
sri->sri_state[j] |= SCRUB_ITEM_BARRIER;
}
bool scrub_item_call_kernel_again(struct scrub_item *sri, uint8_t work_mask,
const struct scrub_item *old);
bool scrub_item_schedule_work(struct scrub_item *sri, uint8_t state_flags,
- const unsigned int *schedule_deps);
+ const uint64_t *schedule_deps);
#endif /* XFS_SCRUB_SCRUB_PRIVATE_H_ */