This is the correct one. Signed-off-by: Itaru Kitayama <kitay...@cl.bb4.ne.jp>
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index efb044e..c032dbe 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3712,8 +3712,9 @@ static void shrink_delalloc(struct btrfs_root *root, u64 to_reclaim, u64 orig, while (delalloc_bytes && loops < 3) { max_reclaim = min(delalloc_bytes, to_reclaim); nr_pages = max_reclaim >> PAGE_CACHE_SHIFT; - writeback_inodes_sb_nr_if_idle(root->fs_info->sb, nr_pages, - WB_REASON_FS_FREE_SPACE); + if (!bdi_write_congested(root->fs_info->sb->s_bdi)) + writeback_inodes_sb_nr_if_idle(root->fs_info, nr_pages, + WB_REASON_FS_FREE_SPACE); /* * We need to wait for the async pages to actually start before On Sun, Sep 30, 2012 at 10:28 AM, Itaru Kitayama <kitay...@cl.bb4u.ne.jp> wrote: > Resubmit this after the checkpatch test. > > In srhink_delalloc(), writeback starts if idle, also check the bdi is > not write congested. > The patch is against the head of the btrfs-next. > > Signed-off-by: Itaru Kitayama <kitay...@cl.bb4.ne.jp> > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index efb044e..1aae046 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -3712,8 +3712,9 @@ static void shrink_delalloc(struct btrfs_root > *root, u64 to_reclaim, u64 orig, > while (delalloc_bytes && loops < 3) { > max_reclaim = min(delalloc_bytes, to_reclaim); > nr_pages = max_reclaim >> PAGE_CACHE_SHIFT; > - writeback_inodes_sb_nr_if_idle(root->fs_info->sb, nr_pages, > - WB_REASON_FS_FREE_SPACE); > + if (!bdi_write_congested(root->fs_info->sb->s_bdi)) > + writeback_inodes_sb_nr_if_idle(root->fs_info, nr_page, > + > WB_REASON_FS_FREE_SPACE); > > /* > * We need to wait for the async pages to actually start > before > > > On Sun, Sep 30, 2012 at 1:21 AM, David Sterba <d...@jikos.cz> wrote: >> On Sat, Sep 29, 2012 at 10:20:09PM +0900, Itaru Kitayama wrote: >>> --- a/fs/btrfs/extent-tree.c >>> +++ b/fs/btrfs/extent-tree.c >>> @@ -3712,7 +3712,7 @@ static void shrink_delalloc(struct btrfs_root *root, >>> u64 t >>> while (delalloc_bytes && loops < 3) { >>> max_reclaim = min(delalloc_bytes, to_reclaim); >>> nr_pages = max_reclaim >> PAGE_CACHE_SHIFT; >>> - writeback_inodes_sb_nr_if_idle(root->fs_info->sb, nr_pages, >>> + if (!bdi_write_congested(root->fs_info->sb->s_bdi)) >>> writeback_in >>> WB_REASON_FS_FREE_SPACE); >> >> malformed patch -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html