diff --git a/mm/shmem.c b/mm/shmem.c index 4f552f01557f..ccba85ed1be9 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1926,7 +1926,8 @@ restart: } if (need_resched()) { - cond_resched_rcu(); + rcu_read_unlock(); + rcu_read_lock(); start = iter.index + 1; goto restart; } @@ -1996,7 +1997,8 @@ restart: spin_unlock_irq(&mapping->tree_lock); continue_resched: if (need_resched()) { - cond_resched_rcu(); + rcu_read_unlock(); + rcu_read_lock(); start = iter.index + 1; goto restart; }