bdi: separate out congested state into a separate struct
[deliverable/linux.git] / mm / backing-dev.c
index 805b2870ca4e712ab73b893842791efcb39e092a..5ec7658cb984cc258927196c6c45f2bf2e56e1f0 100644 (file)
@@ -383,6 +383,9 @@ int bdi_init(struct backing_dev_info *bdi)
        if (err)
                return err;
 
+       bdi->wb_congested.state = 0;
+       bdi->wb.congested = &bdi->wb_congested;
+
        return 0;
 }
 EXPORT_SYMBOL(bdi_init);
@@ -504,7 +507,7 @@ void clear_bdi_congested(struct backing_dev_info *bdi, int sync)
        wait_queue_head_t *wqh = &congestion_wqh[sync];
 
        bit = sync ? WB_sync_congested : WB_async_congested;
-       if (test_and_clear_bit(bit, &bdi->wb.state))
+       if (test_and_clear_bit(bit, &bdi->wb.congested->state))
                atomic_dec(&nr_bdi_congested[sync]);
        smp_mb__after_atomic();
        if (waitqueue_active(wqh))
@@ -517,7 +520,7 @@ void set_bdi_congested(struct backing_dev_info *bdi, int sync)
        enum wb_state bit;
 
        bit = sync ? WB_sync_congested : WB_async_congested;
-       if (!test_and_set_bit(bit, &bdi->wb.state))
+       if (!test_and_set_bit(bit, &bdi->wb.congested->state))
                atomic_inc(&nr_bdi_congested[sync]);
 }
 EXPORT_SYMBOL(set_bdi_congested);
This page took 0.02378 seconds and 5 git commands to generate.