aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2010-10-29 11:16:17 -0400
committerChris Mason <chris.mason@oracle.com>2010-10-29 11:25:29 -0400
commit3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e (patch)
tree5f06f6c83413ca2fc7aec85ba0811a8c91904097 /include
parentBtrfs: don't loop forever on bad btree blocks (diff)
downloadlinux-dev-3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e.tar.xz
linux-dev-3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e.zip
Add new functions for triggering inode writeback
When btrfs is running low on metadata space, it needs to force delayed allocation pages to disk. It currently does this with a suboptimal walk of a private list of inodes with delayed allocation, and it would be much better if we used the generic flusher threads. writeback_inodes_sb_if_idle would be ideal, but it waits for the flusher thread to start IO on all the dirty pages in the FS before it returns. This adds variants of writeback_inodes_sb* that allow the caller to control how many pages get sent down. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/writeback.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index 72a5d647a5f2..a4cf84511e79 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -60,7 +60,9 @@ struct writeback_control {
struct bdi_writeback;
int inode_wait(void *);
void writeback_inodes_sb(struct super_block *);
+void writeback_inodes_sb_nr(struct super_block *, unsigned long nr);
int writeback_inodes_sb_if_idle(struct super_block *);
+int writeback_inodes_sb_nr_if_idle(struct super_block *, unsigned long nr);
void sync_inodes_sb(struct super_block *);
void writeback_inodes_wb(struct bdi_writeback *wb,
struct writeback_control *wbc);