ext4: yield during large unlinks
During large unlink operations on files with extents, we can use a lot of CPU time. This adds a cond_resched() call when starting to examine the next level of a multi-level extent tree. Multi-level extent trees are rare in the first place, and this should rarely be executed. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
@@ -2835,6 +2835,9 @@ again:
|
|||||||
err = -EIO;
|
err = -EIO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
/* Yield here to deal with large extent trees.
|
||||||
|
* Should be a no-op if we did IO above. */
|
||||||
|
cond_resched();
|
||||||
if (WARN_ON(i + 1 > depth)) {
|
if (WARN_ON(i + 1 > depth)) {
|
||||||
err = -EIO;
|
err = -EIO;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user