aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2007-07-16 02:38:14 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:36 -0400
commitfc9a07e7bf1a76e710f5df017abb07628db1781d (patch)
treebf2a288f97cbf9cfd82a4306a7d9c615abc7c887 /include/linux/fs.h
parent45426812d6b601430d560cb6049757b5b0bc71c4 (diff)
invalidate_mapping_pages(): add cond_resched
invalidate_mapping_pages() can sometimes take a long time (millions of pages to free). Long enough for the softlockup detector to trigger. We used to have a cond_resched() in there but I took it out because the drop_caches code calls invalidate_mapping_pages() under inode_lock. The patch adds a nasty flag and puts the cond_resched() back. Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 4f0b3bf5983c..51c938a71dec 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1610,6 +1610,9 @@ extern int __invalidate_device(struct block_device *);
1610extern int invalidate_partition(struct gendisk *, int); 1610extern int invalidate_partition(struct gendisk *, int);
1611#endif 1611#endif
1612extern int invalidate_inodes(struct super_block *); 1612extern int invalidate_inodes(struct super_block *);
1613unsigned long __invalidate_mapping_pages(struct address_space *mapping,
1614 pgoff_t start, pgoff_t end,
1615 bool be_atomic);
1613unsigned long invalidate_mapping_pages(struct address_space *mapping, 1616unsigned long invalidate_mapping_pages(struct address_space *mapping,
1614 pgoff_t start, pgoff_t end); 1617 pgoff_t start, pgoff_t end);
1615 1618