- if (xfsbufd_force_sleep)
- return 0;
- xfsbufd_force_flush = 1;
- barrier();
- wake_up_process(xfsbufd_task);
+ xfs_buftarg_t *btp, *n;
+
+ spin_lock(&xfs_buftarg_lock);
+ list_for_each_entry_safe(btp, n, &xfs_buftarg_list, bt_list) {
+ if (test_bit(BT_FORCE_SLEEP, &btp->bt_flags))
+ continue;
+ set_bit(BT_FORCE_FLUSH, &btp->bt_flags);
+ barrier();
+ wake_up_process(btp->bt_task);
+ }
+ spin_unlock(&xfs_buftarg_lock);