Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp4033608imm; Mon, 8 Oct 2018 13:44:44 -0700 (PDT) X-Google-Smtp-Source: ACcGV60hM8DkxaW3TwJrk+MhlerjrMMM8shmxF39ccaMHOrMRdVaSlThLHYaMlt4owFqurLajqHE X-Received: by 2002:a17:902:3fa5:: with SMTP id a34-v6mr25785461pld.244.1539031484669; Mon, 08 Oct 2018 13:44:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539031484; cv=none; d=google.com; s=arc-20160816; b=s76jqtDzM6JzZzRFMip9vdvWGZiFeESC9uM01RlcVGTSIKbI4tfMQqbUg5Hu1BDJrU dmngvIqZ6ZQKDiEnANG491fbpFES003vlDD72CnotgrFsktrsRYNqKERraUe83B3XM6B DVUljRjUOzhg6JQnMQkPofhzyNCd6fXBfeJRQTQwVLeL739XyWDsti+2j59sPKr4SRle IJeDH8MDPM3MgtsvkC6Cyr1BCjzhOp9VdP3gdkk/QTkRjv0eJOq6yQcU8nS7J37NInE5 hWo8bRd6Lzi5XsVLjwIRGHpcuJWSbttHt4nKOqTdG8Zkvk7K2ukG5Gii8tgatX9J0MMj QlPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=SofTPVKrem4Eo86PYDtaVpAOpLJ/n1mtpBidSMh7xO0=; b=l4MRZ1IxKX6lzfHeq/WB38dQ0wAYAcJsyXuTMR+aaPJKGV1Bmb1aYqJKKVNCHrIzac WMvCr4EPKuOR7MvWESUwplgccqa+I6sNa25MSRlX+xvDtJnLjEliJwQX+I+EcbHVo9CA UyQ8bOEqcwMuTWGkvhRpbG3kV9zbmkCFVmYBk1EnlpdMkjwvx8NINQZwtktjydOSmZfa kPRHqg17zjNs+h3Qezm7j2cLCMKrrk/fahjn6QIdBng386rOF+jARYSNzlFljWngnd7A c2DlCSpMXRfXj81DFvOHzDT9l4uZFEJjyAF1cgovCfgVeIE+2iQ8WE7YcMGPJQngCaiX iuHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@omnibond-com.20150623.gappssmtp.com header.s=20150623 header.b=wkdUaX0n; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7-v6si18572809plt.112.2018.10.08.13.44.29; Mon, 08 Oct 2018 13:44:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@omnibond-com.20150623.gappssmtp.com header.s=20150623 header.b=wkdUaX0n; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726761AbeJID5W (ORCPT + 99 others); Mon, 8 Oct 2018 23:57:22 -0400 Received: from mail-yb1-f196.google.com ([209.85.219.196]:40676 "EHLO mail-yb1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726445AbeJID5W (ORCPT ); Mon, 8 Oct 2018 23:57:22 -0400 Received: by mail-yb1-f196.google.com with SMTP id w7-v6so8839966ybm.7 for ; Mon, 08 Oct 2018 13:43:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omnibond-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SofTPVKrem4Eo86PYDtaVpAOpLJ/n1mtpBidSMh7xO0=; b=wkdUaX0nTYAnQgFsC/7MAHJhMpL+KCPS/rODPBPp4cbKdLA8JiTdECsO5KR6DMZEdX yLtJCKXFLCD4HjVkGEh68kjgeHDIvwBOy6E9ApRLRR1coCX6m7/7O/LTZ7QIepMUApRy zwlSsMYAr+fE6xukkFFoXhG8xMOSLHfOUUe8wLFg8K8rOYo8rq97ep+KfRkjtErRLUC0 Ny1UrSGGdiQYns+DI879Uyt0zZqEyXlHktwFVD+jmALb9qOa8kngLHToMPF8oIQePM1p 5IyDXfHeyW74cQYwzGIrY21RHxjB4t6yoro/jReziMz6bsdkvhSt6aveBKsiVOutXs7i ZWzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SofTPVKrem4Eo86PYDtaVpAOpLJ/n1mtpBidSMh7xO0=; b=iEGVe/ho5O4I/38fTZqkrvZrILm7i73ZuqtzlDLSXtQT+spHA4P4JfEoYXmKM7n91E J2Jws3Qce4eKpR6nGruz223k8HzRaTjd1XPK9QAfXRw6Hu9WzetOh81zmhpwfXyKRJmr jLtE8tauFBx7EYrwPMgZkX372FJgpR4ZVC28CBTaTVR8rlcdCcwpGNi003wA58HqOiTo 4oLlt2CcW77oVzvGVQ2RzZHuu437gRrX3JhMmuTDZFExjc3LD6HN6PmyJQzDq8N3ob+c z83lwk5I0MKJO/PebWkdHNVkEB+LV/MtyRGxti67yrjHDDoZ6du7H7kPs29kNlVwSMpd 9kig== X-Gm-Message-State: ABuFfohGTn6sNo9AY3v2z1bJ/Srbmkfyt/5OzXeo2Pusm/SvYuEiYf1t riQVkx7yWqYRItXni/i22YtY2RitG+Q/HFeqZ4NYBA== X-Received: by 2002:a25:9191:: with SMTP id w17-v6mr13763123ybl.316.1539031427797; Mon, 08 Oct 2018 13:43:47 -0700 (PDT) MIME-Version: 1.0 References: <20181007232736.3780-1-martin@omnibond.com> In-Reply-To: <20181007232736.3780-1-martin@omnibond.com> From: Mike Marshall Date: Mon, 8 Oct 2018 16:43:36 -0400 Message-ID: Subject: Re: [PATCH 00/19] [V2] orangefs: page cache To: Martin Brandenburg Cc: devel@lists.orangefs.org, linux-fsdevel , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I still hit writepages_callback not private! on xfstests generic/127... -Mike On Sun, Oct 7, 2018 at 7:27 PM Martin Brandenburg wrote: > > V2... see https://marc.info/?l=linux-fsdevel&m=153721507330730&w=2 > > One important change is the following, without which an unaligned write > may end up written to the beginning of its page. Surprisingly xfstests > did not catch this. This was caught by an invalidate_inode_pages2 call > in read_iter (not part of this patch series) which exposed the bug. > > diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c > index 34b98d2ed377..cd1263c45bb2 100644 > --- a/fs/orangefs/inode.c > +++ b/fs/orangefs/inode.c > @@ -56,7 +54,7 @@ static int orangefs_writepage_locked(struct page *page, > > bv.bv_page = page; > bv.bv_len = wlen; > - bv.bv_offset = 0; > + bv.bv_offset = off % PAGE_SIZE; > iov_iter_bvec(&iter, ITER_BVEC | WRITE, &bv, 1, wlen); > > ret = wait_for_direct_io(ORANGEFS_IO_WRITE, inode, &off, &iter, wlen, > > The other big thing is an improved releasepage implementation and a > launder_page implementation. > > We also size the writepages buffer based on the client core buffer. > However I'm not happy with the memory allocation in writepages. > > Mike, I know you've had some trouble with the original series. I'd like > to know if this fixes that. > > Martin Brandenburg (19): > orangefs: implement xattr cache > orangefs: do not invalidate attributes on inode create > orangefs: simplify orangefs_inode_getattr interface > orangefs: update attributes rather than relying on server > orangefs: hold i_lock during inode_getattr > orangefs: set up and use backing_dev_info > orangefs: let setattr write to cached inode > orangefs: reorganize setattr functions to track attribute changes > orangefs: remove orangefs_readpages > orangefs: service ops done for writeback are not killable > orangefs: migrate to generic_file_read_iter > orangefs: implement writepage > orangefs: skip inode writeout if nothing to write > orangefs: write range tracking > orangefs: avoid fsync service operation on flush > orangefs: use kmem_cache for orangefs_write_request > orangefs: implement writepages > orangefs: use client-core buffer size to determine writepages count > orangefs: do writepages_work if a single page must be written > > fs/orangefs/acl.c | 4 +- > fs/orangefs/file.c | 194 +++-------- > fs/orangefs/inode.c | 628 ++++++++++++++++++++++++++++------ > fs/orangefs/namei.c | 41 +-- > fs/orangefs/orangefs-cache.c | 24 +- > fs/orangefs/orangefs-kernel.h | 56 ++- > fs/orangefs/orangefs-mod.c | 10 +- > fs/orangefs/orangefs-utils.c | 181 +++++----- > fs/orangefs/super.c | 38 +- > fs/orangefs/waitqueue.c | 18 +- > fs/orangefs/xattr.c | 104 ++++++ > 11 files changed, 893 insertions(+), 405 deletions(-) > > -- > 2.19.0 >