From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:34458 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965350AbcDLSoE (ORCPT ); Tue, 12 Apr 2016 14:44:04 -0400 From: Jens Axboe To: , CC: , Jens Axboe Subject: [PATCH 1/3] writeback: propagate the various reasons for writeback Date: Tue, 12 Apr 2016 12:43:51 -0600 Message-ID: <1460486633-26099-2-git-send-email-axboe@fb.com> In-Reply-To: <1460486633-26099-1-git-send-email-axboe@fb.com> References: <1460486633-26099-1-git-send-email-axboe@fb.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Avoid losing context by propagating the various reason why we initiate writeback. If we are doing more important reclaim or synchronous writeback, the lower levels should know about it. No intended functional changes in this patch. Signed-off-by: Jens Axboe --- fs/fs-writeback.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index fee81e8768c9..4300ee7b1139 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -52,6 +52,7 @@ struct wb_writeback_work { unsigned int range_cyclic:1; unsigned int for_background:1; unsigned int for_sync:1; /* sync(2) WB_SYNC_ALL writeback */ + unsigned int for_reclaim:1; /* for mem reclaim */ unsigned int auto_free:1; /* free on completion */ enum wb_reason reason; /* why was writeback initiated? */ @@ -944,6 +945,17 @@ void wb_start_writeback(struct bdi_writeback *wb, long nr_pages, work->reason = reason; work->auto_free = 1; + switch (reason) { + case WB_REASON_TRY_TO_FREE_PAGES: + case WB_REASON_FREE_MORE_MEM: + work->for_reclaim = 1; + case WB_REASON_SYNC: + work->for_sync = 1; + break; + default: + break; + } + wb_queue_work(wb, work); } @@ -1446,6 +1458,7 @@ static long writeback_sb_inodes(struct super_block *sb, .for_kupdate = work->for_kupdate, .for_background = work->for_background, .for_sync = work->for_sync, + .for_reclaim = work->for_reclaim, .range_cyclic = work->range_cyclic, .range_start = 0, .range_end = LLONG_MAX, -- 2.8.0.rc4.6.g7e4ba36