Skip to contentSkip to conversation

break out of ext4_num_dirty_pages() when we hit max_pages

PATCH In review Eric Sandeen 2 participants 2 messages Sep 9, 2010 – Sep 13, 2010 ext4 file system

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 break out of ext4_num_dirty_pages() when we hit max_pages

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.

---

fs/ext4/inode.c +3 -1
index 4b8debe..d88ba4a 100644
@@ -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);
 	}
maintainer
#1 lore raw
Quoted 7 lines · Eric Sandeen

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.

Added to the ext4 tree, thanks.

- Ted