Merge tag 'ceph-for-5.12-rc1' of git://github.com/ceph/ceph-client
[linux-2.6-microblaze.git] / fs / xfs / xfs_buf.c
index 99ee8b0..f6e5235 100644 (file)
@@ -1815,14 +1815,13 @@ xfs_buftarg_drain_rele(
        return LRU_REMOVED;
 }
 
+/*
+ * Wait for outstanding I/O on the buftarg to complete.
+ */
 void
-xfs_buftarg_drain(
+xfs_buftarg_wait(
        struct xfs_buftarg      *btp)
 {
-       LIST_HEAD(dispose);
-       int                     loop = 0;
-       bool                    write_fail = false;
-
        /*
         * First wait on the buftarg I/O count for all in-flight buffers to be
         * released. This is critical as new buffers do not make the LRU until
@@ -1838,6 +1837,17 @@ xfs_buftarg_drain(
        while (percpu_counter_sum(&btp->bt_io_count))
                delay(100);
        flush_workqueue(btp->bt_mount->m_buf_workqueue);
+}
+
+void
+xfs_buftarg_drain(
+       struct xfs_buftarg      *btp)
+{
+       LIST_HEAD(dispose);
+       int                     loop = 0;
+       bool                    write_fail = false;
+
+       xfs_buftarg_wait(btp);
 
        /* loop until there is nothing left on the lru list. */
        while (list_lru_count(&btp->bt_lru)) {