From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE735C4332F for ; Tue, 12 Dec 2023 04:36:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 227996B027A; Mon, 11 Dec 2023 23:36:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D7F96B027B; Mon, 11 Dec 2023 23:36:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A0496B027C; Mon, 11 Dec 2023 23:36:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id EF00F6B027A for ; Mon, 11 Dec 2023 23:36:58 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C14E7A090D for ; Tue, 12 Dec 2023 04:36:58 +0000 (UTC) X-FDA: 81556906116.08.3396B63 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 055B7180009 for ; Tue, 12 Dec 2023 04:36:55 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YZTKS8kt; dmarc=none; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702355816; a=rsa-sha256; cv=none; b=d0tY7WXoWZTdfl5MYDtr9P+2BtMzzeKYIrQjWyyuHVxFOVPjpkfi96Pb46ql7Lh0amJaA7 Sv72sxB4hx9GKTvUsEdMrcvtKhametWj4B9KPzg7tkWyfxaaMdwvsXuy58w08zw7tH92PK j/OUgwBERYc8nGIoE2bRARYjvS9mN0g= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YZTKS8kt; dmarc=none; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702355816; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=UterbU1lY68chbDZ2KRFpiUZP8yEoxB+cO4YjpDyhgk=; b=t0S7rBpY76e6kO1XudqdxC6ytJyvogLd/01IJxXJcqNk0Kybnaamxn4xweODFNvApkkK/B t9zSHuielGiiHxiASN29alJcXkNIphKn+CSZCA68TspN52UAO5i7fGb6wqO3Mjld6hPojD FP0EchJHhKq6Mi0f09XQV95oc2N7+yc= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=UterbU1lY68chbDZ2KRFpiUZP8yEoxB+cO4YjpDyhgk=; b=YZTKS8ktQn3PVpr4ijYJlRv8d8 Wcxi6WSeFcE8qV1rz/zSjQoCASaX94/5/JjH22enU+grOyzAE9nzAbLPkksSyIBMH3Z6b9ITOsgjl 75H3pcfXBxFRObCMZVievtZQsN2oCPAVYZJVNUZWM8RlNiyQM2EEvJ/EqwVj4w4D4hqpME+/qtinO TKzfYz+Sqf9ZieUatcd/hX3xNiKk8/6Pvdvm8A6kwALWaPkpi7vg+fDpZUymcLeBlb8dZLjco6+Gr ZGevd+JOdMdDH9JsXAiJG4hvdkKZS/BftgjpDMEy5Z9uWeofuDkRlXi4B6IS+N/mLYpPxZ3fR1CmN 8L1aUoGw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1rCuVi-009cuU-0H; Tue, 12 Dec 2023 04:36:46 +0000 Date: Tue, 12 Dec 2023 04:36:45 +0000 From: Matthew Wilcox To: Jan Kara Cc: Baokun Li , linux-mm@kvack.org, linux-ext4@vger.kernel.org, tytso@mit.edu, adilger.kernel@dilger.ca, akpm@linux-foundation.org, ritesh.list@gmail.com, linux-kernel@vger.kernel.org, yi.zhang@huawei.com, yangerkun@huawei.com, yukuai3@huawei.com Subject: Re: [PATCH -RFC 0/2] mm/ext4: avoid data corruption when extending DIO write race with buffered read Message-ID: References: <20231202091432.8349-1-libaokun1@huawei.com> <20231204121120.mpxntey47rluhcfi@quack3> <20231204144106.fk4yxc422gppifsz@quack3> <70b274c2-c19a-103b-4cf4-b106c698ddcc@huawei.com> <20231206193757.k5cppxqew6zjmbx3@quack3> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231206193757.k5cppxqew6zjmbx3@quack3> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 055B7180009 X-Stat-Signature: z9zdtgr4nsks9cr6g8aknn665twqnyyp X-HE-Tag: 1702355815-136196 X-HE-Meta: U2FsdGVkX1/ufRMrlvidrJVKVs+ixwqhUwBI4aBdzeVyEAe+vquANN4b6otYrAM4fnZVsrUTPnZgs+ILGUVVe8Je5c8R3o9Q2Rv0j0L4nY3T4xRHHn85f9kRGDqkmJEcqx0G5bT5ot1ajHFn3tyw4xqdY9lSmXT6fRjYnBjLZyal2Hwbn8bnc+CQESLFuUXcTIsVDOCJYTGSBvWdukxushmj6jMOe76UV2NFShbw4TPnltv4gPFxwMCUI2hBZLbCeUc1twUpjLwxFq3O1IRxkgCcENj4qIEswti8Cw39SBNK+vmQ2v+EdkQvVLqMCUq+Zl11r8u8spGMj/awJSDwjXxbHzYTujQgVF4M/Pkj/JNRBd173+haDo5yvRLKJPbW9Ldtr77iv9BF8CzVYvMcgPE2f2CyJ6oMDZCPv9orQQSPpqtlwxP5crwDOXpiT/JQYKlpDa92LHmBMI/M3/MnjgxrTeLw/fmFu7UfZCgSX/gZTwC3pt6oqw4QjJ1zxCupGNHKoOhuVoWUYZEwYGMDz4/ziMxKpin7XUGo7kVajKDGlCtAL6uy8fBVJv8swjrVCeCejECiwalullmoAmx2ir/ylZDSucxVTkNIoA2f+FVHW1AqIx3NWX1Q5lb2XbbYIpF9LEwN09ZxXj0mEyfZpYBhstZh/rY8Vw0J6fUEfNAUyrPrDZdhEZQLZsRsb0coymV0pxOEscYMFc2qeokOaP8o/4HUXsXix+y5nphDwKPZzHsvtzzEoQwZAWn5xi/bqYZiyCQL8KN2X9ITEE1+N7tGViFFB8S6dBdR2qAANa+ruVlWz8Ik3KQ3AVwFXUZdHYxRJlulxmxddJnmqF9/9YxaxmsjsrTQbU7COQcTY611TWBNUjofuNDXtq21R2hh8/Nb8YHDPoZ+BgSjom74DHCDW01of+ZotycULnKrAH/tbbjwJReuOxjQ40o40qD3CqTQjp9Wfe+wvbmMw1K T4Z4ahJb j6K+bz5Sqrp+IEFDJ8+CdSyX+UI72bLtCiSNUR7QVIho57lbcl00Yy+ptgfv9X+LnH2tMR7he9meC7x5owkVviBr7PDSu3OTaLDjPhh9RAqdUfkjIlHzFiPhn368esPpn51hGlch0hlmFq3ssWWec0UN3r4b09UY5nTe0UPu3TeaLsUZC/kjPqw89WSYQPDMOWMLigrPeHsqWGkb7uQ8pJwDelfC5D/bvYkx/CSg/CraBRXU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Dec 06, 2023 at 08:37:57PM +0100, Jan Kara wrote: > Within the same page buffered reads and writes should be consistent because > they are synchronized by the page lock. However once reads and writes > involve multiple pages, there is no serialization so you can get contents > of some pages before write and some pages after being written. However this > doesn't seem to be your particular case here. I just wanted to point out > that in general even buffered reads vs writes are not fully consistent. Buffered reads don't take the page/folio lock. We only use the folio lock to avoid reading stale data from the page cache while we're fetching the data from storage. Once the uptodate flag is set on the folio, we never take the folio lock for reads.