From patchwork Sun Oct 7 23:27:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Brandenburg X-Patchwork-Id: 10629763 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3093B14D6 for ; Sun, 7 Oct 2018 23:28:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 23E21287FB for ; Sun, 7 Oct 2018 23:28:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1876828807; Sun, 7 Oct 2018 23:28:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1A2A287FB for ; Sun, 7 Oct 2018 23:28:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728520AbeJHGhO (ORCPT ); Mon, 8 Oct 2018 02:37:14 -0400 Received: from mail-qk1-f194.google.com ([209.85.222.194]:40589 "EHLO mail-qk1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728511AbeJHGhN (ORCPT ); Mon, 8 Oct 2018 02:37:13 -0400 Received: by mail-qk1-f194.google.com with SMTP id a13-v6so6446133qkc.7 for ; Sun, 07 Oct 2018 16:28:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omnibond-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JxqdOd9EE4Ud6puwZksYGvYwfqlVV7E/378up8LtBB8=; b=eZ98C133Cg6t4d/yvCyQe/cGvBE5x653m4uYQeiFz7NsdRMIUMrUdXAIjhUcwnsOdN zuTOR7Bb0vaAhD6L2Sv/XiR7eWXN76EiNZTIn6u8dNgc6hJVy5d3sqR3tP6AXgCUSRaB dN9oQrOEKJZENOey4TN3pxX7b+yOfn8Nv48i15QX5FfXZz0Uj09iubgZdAnT4ZcKv3Fg ldwiVUq99Rjn4JT3aN2dY6gizwI42BKVJjfoAhb3G/k2oASU27toCx+Tdm3D6Oj1aKwh BOAM20DSyDXIBE2moID6ElGXT24ZfP40S6zF0aBGNJ6IjPcZMaod4o2BBiCwmqNiJiXd 4nxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JxqdOd9EE4Ud6puwZksYGvYwfqlVV7E/378up8LtBB8=; b=c8ElbrAjKIg92y6hoKDalJxIHDEoqZFmSbonj8CNOMxenRo6j4g0yk9GmNM8bP/Iut dsv0+U3VD5qSBpSz6BGaA2jKpgeQmQ49muNEpIJG+8syzile1NPQ7F91SKSBQADHr3mm 7ZmCoP7CxsWbPx3C84L79ZbChdYH6wIPN0tlWjNaamhVRZR1AYK8+vzvhR8fKaa01995 K8MfZc65VuNXwNGNV7Hjfua5kw6fBU20U7uUIso6Jl9Ap2hY6LQREPz1lEmI3uBN3GFu UPT9DbZgvRhk7TioYr2bNHwaJNcGTJf3CchhrKCHro1qKvWx1Vxt9q2ZJ5ekaCeoygGr 1JpA== X-Gm-Message-State: ABuFfohlrVOMsa31uRC+9BKeNo98ZogDQcf1uZ8bg13QkQezeBCYvKTg sv3IDjpoQ1M67QzRhilFWiZjNw== X-Google-Smtp-Source: ACcGV63vsfGDqknILwS/ZrX5g32lqkNO38GFafasozFY5YR6KLeC/a04+EH62gQ7ON6uFZ5DbwE87w== X-Received: by 2002:a37:8245:: with SMTP id e66-v6mr16947463qkd.335.1538954900623; Sun, 07 Oct 2018 16:28:20 -0700 (PDT) Received: from ip-172-31-22-34.ec2.internal (ec2-35-153-175-159.compute-1.amazonaws.com. [35.153.175.159]) by smtp.gmail.com with ESMTPSA id x38-v6sm6793915qtc.39.2018.10.07.16.28.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 07 Oct 2018 16:28:19 -0700 (PDT) From: Martin Brandenburg To: devel@lists.orangefs.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, hubcap@omnibond.com Cc: Martin Brandenburg Subject: [PATCH 19/19] orangefs: do writepages_work if a single page must be written Date: Sun, 7 Oct 2018 23:27:36 +0000 Message-Id: <20181007232736.3780-20-martin@omnibond.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181007232736.3780-1-martin@omnibond.com> References: <20181007232736.3780-1-martin@omnibond.com> MIME-Version: 1.0 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Otherwise the next page can't possibly be an append and it'll just sit there and write pages one by one until it flushes the saved region at the very end. Signed-off-by: Martin Brandenburg --- fs/orangefs/inode.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c index 20950f3f758a..cd1263c45bb2 100644 --- a/fs/orangefs/inode.c +++ b/fs/orangefs/inode.c @@ -307,6 +307,10 @@ static int orangefs_writepages_callback(struct page *page, wr = (struct orangefs_write_request *)page_private(page); if (wr->len != PAGE_SIZE) { + if (ow->npages) { + orangefs_writepages_work(ow, wbc); + ow->npages = 0; + } ret = orangefs_writepage_locked(page, wbc); mapping_set_error(page->mapping, ret); unlock_page(page); @@ -335,6 +339,10 @@ static int orangefs_writepages_callback(struct page *page, } done: if (ret == -1) { + if (ow->npages) { + orangefs_writepages_work(ow, wbc); + ow->npages = 0; + } ret = orangefs_writepage_locked(page, wbc); mapping_set_error(page->mapping, ret); unlock_page(page);