diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 17defbf4f332c5267b5cc38e94c25e54a5246d6a..2da615b45b3144b8b6eaebef600627ccae572476 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -152,6 +152,12 @@ static void brd_free_pages(struct brd_device *brd) pos++; + /* + * It takes 3.4 seconds to remove 80GiB ramdisk. + * So, we need cond_resched to avoid stalling the CPU. + */ + cond_resched(); + /* * This assumes radix_tree_gang_lookup always returns as * many pages as possible. If the radix-tree code changes,