Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp7692901rwb; Wed, 23 Nov 2022 09:31:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf6ceGKoO5zn5vkQYwwFvsMCOLgVzhSEJwKAEfkp8HR83OZzjt8fX3mnRb/lI/9Rnnsfx9N9 X-Received: by 2002:aa7:d80a:0:b0:46a:711b:478 with SMTP id v10-20020aa7d80a000000b0046a711b0478mr693347edq.246.1669224666997; Wed, 23 Nov 2022 09:31:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669224666; cv=none; d=google.com; s=arc-20160816; b=MsgGX5/WgI/zQOxApORGxIqGNJa7o7xOv9etbJjRHhW1UajDAeWqdJNkcbrVqgFaCM JLek+wr0w07LjjbRSweGXwlycci/dvUEdDsegju6ETYhGZvISEFcvqQf2UDAfdx9GnV+ bNb/hXgHwoNsfl5NlHRIDJVYxJ8Q98zkJddinIOqXAjLi0x7PlCfxddPgcRAb+0rPVS8 /0vdj4QvxJvO8GgkH6utPHPo2/pJohpsGyGVxvmW4J5wmtFLdnhGnxFfQbtXaFrcvOt0 aR9fg49CN01qTEje01ekLD0XF8SuuQT/01JmQ0W3Xs5T4FK8ywXJQN9nLXTYNxeWkLa4 QTJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=YevBAAtpcyC4KopXo8P+2Pmmv9IPImzfWIr+liZ80yE=; b=rXmXicpPeuILpio707glJl14/JqpLF8KkfpcTVmNQFzSTLd1QtzzWazrSwYBt2KkJF SMdrFfc44I9mQFO3WULTGyUUf6lbkhI1fgsNY1N+4vIPN8NwAY98cSlQ3ufImnCaLkBV bU4l4EdOcWLQ7zn/nNNAoO5/hYPGD+LRPAJqr0pJFUSg87cam8nllEfJ26jSg5GolAxM MVPTKH7I6CR2sfZ3FnvGhOiZu/4rTv4Yxg10sZ4VBuHrKZNA7KSgwfaznn/qcIbD+fhZ cN31y5FRBFMhO/zvUJVjcvdO9jZ+DTZzR7EfJW4kBe5eCnsvPCI18/lcIE9HAbtC8Sjg vd8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=RXC1jgdc; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dp17-20020a170906c15100b007ae8b1704d0si180602ejc.68.2022.11.23.09.30.29; Wed, 23 Nov 2022 09:31:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=RXC1jgdc; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238997AbiKWR37 (ORCPT + 99 others); Wed, 23 Nov 2022 12:29:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238590AbiKWR3j (ORCPT ); Wed, 23 Nov 2022 12:29:39 -0500 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [IPv6:2a03:a000:7:0:5054:ff:fe1c:15ff]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C3B28CFE3; Wed, 23 Nov 2022 09:29:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=YevBAAtpcyC4KopXo8P+2Pmmv9IPImzfWIr+liZ80yE=; b=RXC1jgdcCJXoq+vGLY4+2wL2UC GjFpuDlW6ur89/+FLok/2SD5UQh8MccEKtEbkdrAe6h+7Uf54ifnfPfx5b2Lnk4HAR+JlcB8DvQYk Islk6CQZRGw54vQlKkKBzjTl6MkoCizS+9lFgRbm9QibAIdgH25/PTAbPshF6q/j3WwJCBhSM7ejV Y8nbja0W3WFmf3TAfZypIfVYkhRH4WkFshJlhcEbgAZXgh7M4GWklfQqxCYYK26xetT5by4LqoLJL gjcdC4dYYmk0bEZoQG4xGRX0r3PVOp8kg5+QMi4L2xoMh3emOZc6kueUeqI8ya0i5vOZebIcaFgiD 33Z+ZccA==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1oxtYl-006FZ3-2Q; Wed, 23 Nov 2022 17:29:19 +0000 Date: Wed, 23 Nov 2022 17:29:19 +0000 From: Al Viro To: Anders Blomdell Cc: linux-nfs@vger.kernel.org, Chuck Lever , Jeff Layton , linux-kernel@vger.kernel.org, Anna Schumaker , Trond Myklebust , Benjamin Coddington Subject: Re: Kernel 6.0.5 breaks virtual machines that boot from nfs mounted qcow2 images Message-ID: References: <65115206-ec17-443e-8495-91661a2fd9be@control.lth.se> <0abaa41e-79e1-3c0c-6d1b-47d4e21f2296@control.lth.se> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0abaa41e-79e1-3c0c-6d1b-47d4e21f2296@control.lth.se> Sender: Al Viro X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Wed, Nov 23, 2022 at 11:08:42AM +0100, Anders Blomdell wrote: > Our problems turned out to be a fallout of Al Viros's splice rework, where nfsd reads with non-zero offsets and not ending > on a page boundary failed to remap the last page. I belive that this is a decent fix for that problem (tested on v6.1-rc6, > 6.0.7 and 6.0.9) > > ---- a/fs/nfsd/vfs.c > +++ b/fs/nfsd/vfs.c > @@ -873,7 +873,7 @@ nfsd_splice_actor(struct pipe_inode_info *pipe, struct pipe_buffer *buf, > unsigned offset = buf->offset; > page += offset / PAGE_SIZE; > - for (int i = sd->len; i > 0; i -= PAGE_SIZE) > + for (int i = sd->len + offset % PAGE_SIZE; i > 0; i -= PAGE_SIZE) > svc_rqst_replace_page(rqstp, page++); Hmm... A minor nit: last_page = page + (offset + sd->len - 1) / PAGE_SIZE; for (page += offset / PAGE_SIZE; page <= last_page; page++) svc_rqst_replace_page(rqstp, page); might be easier to follow. Matter of taste, though...