Commit ee3804d9 authored by Dave Chinner's avatar Dave Chinner

Merge branch 'xfs-misc-fixes-for-4.5-3' into for-next

parents 4c931f77 85bec546
...@@ -1527,6 +1527,16 @@ xfs_wait_buftarg( ...@@ -1527,6 +1527,16 @@ xfs_wait_buftarg(
LIST_HEAD(dispose); LIST_HEAD(dispose);
int loop = 0; int loop = 0;
/*
* We need to flush the buffer workqueue to ensure that all IO
* completion processing is 100% done. Just waiting on buffer locks is
* not sufficient for async IO as the reference count held over IO is
* not released until after the buffer lock is dropped. Hence we need to
* ensure here that all reference counts have been dropped before we
* start walking the LRU list.
*/
drain_workqueue(btp->bt_mount->m_buf_workqueue);
/* loop until there is nothing left on the lru list. */ /* loop until there is nothing left on the lru list. */
while (list_lru_count(&btp->bt_lru)) { while (list_lru_count(&btp->bt_lru)) {
list_lru_walk(&btp->bt_lru, xfs_buftarg_wait_rele, list_lru_walk(&btp->bt_lru, xfs_buftarg_wait_rele,
......
...@@ -497,7 +497,6 @@ xfsaild( ...@@ -497,7 +497,6 @@ xfsaild(
long tout = 0; /* milliseconds */ long tout = 0; /* milliseconds */
current->flags |= PF_MEMALLOC; current->flags |= PF_MEMALLOC;
set_freezable();
while (!kthread_should_stop()) { while (!kthread_should_stop()) {
if (tout && tout <= 20) if (tout && tout <= 20)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment