ext4_num_dirty_pages() will continue scanning after we accumulate max_pages, possibly for a very long time without doing anything useful at all. When we hit max_pages, we should set done=1 so that the break will release the pagevec, exit the loop, and return from the function. Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> --- diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 4b8debe..d88ba4a 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1207,8 +1207,10 @@ static pgoff_t ext4_num_dirty_pages(struct inode *inode, pgoff_t idx, break; idx++; num++; - if (num >= max_pages) + if (num >= max_pages) { + done = 1; break; + } } pagevec_release(&pvec); } -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html