From patchwork Thu Feb 2 20:44:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13126702 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 07AAEC64ED8 for ; Thu, 2 Feb 2023 20:44:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6AA116B0080; Thu, 2 Feb 2023 15:44:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 60C626B0074; Thu, 2 Feb 2023 15:44:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 399566B007D; Thu, 2 Feb 2023 15:44:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 265F16B0074 for ; Thu, 2 Feb 2023 15:44:40 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DF854C0FFE for ; Thu, 2 Feb 2023 20:44:39 +0000 (UTC) X-FDA: 80423530278.03.BC4CB9C Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf02.hostedemail.com (Postfix) with ESMTP id 4AD1D80010 for ; Thu, 2 Feb 2023 20:44:38 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=f4UYhP5S; dmarc=none; spf=none (imf02.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=1675370678; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=N5DDGPQCQApO6zBKJzZWPvZ6faGorf6EH2GURRa+zbA=; b=2roXmW5HsBpSupVBDY1O8Y+qbvh+LdqCgGp76KZNCprcJifETIOAMTic6WE/luwngqBAig pSW0Qi0pJeBf1MYGqU/bMZtTh88AHeGeC3iHnQ/1oR9KVfNEslAzSUs89uCI6l/pDEnc3F yPIdzV0AUaglnZCVYNVNpLqlR6O6Ch0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=f4UYhP5S; dmarc=none; spf=none (imf02.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=1675370678; a=rsa-sha256; cv=none; b=5UC8L1BIbC7k4UoVP6XHvPCqaqP6FcYp8LGTatg8CNrUZsdtbYMYDmiL5OLJsXXHhT/5N8 Wc8esELqox2lPng4eylHv4QEipGL8LDgzSYVE6rLZNz8eGByuQtBNYOmH5uvgl9cfvv8zh d3ttoXmBnptJX7estMN8Ss4P8AMXnd0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=N5DDGPQCQApO6zBKJzZWPvZ6faGorf6EH2GURRa+zbA=; b=f4UYhP5SSJPpuEBQlMz7006pDd WeQsd33O7QvKUktKYkseuuQqIsrRzMbMano2OEp7/OVp1r4Ju5WDAzuV18VtLzT1zpKgn8X3LiS+X 0KZ440PySw2UE0+App6GnHcRpyR1dv6db6hSXFy10sM/IrIvqjprUdz1/eMCYBlcPNdK62mwSV4Qo fWcmX/9pX+GGhMX3t9j4AI+3LzBfgZQywwgfU8HlnpzVU2kTuewBcClrYN230HBQ8fY8ayQUEM4e7 hUvYLBXkHgKja0q7ZQVy1jDr9XdCj/gydOTLtWUeEBJt41cTkeTBvK7mPXfYvHbapXcjikAganER/ KyJPX82A==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pNgRa-00Di7J-HD; Thu, 02 Feb 2023 20:44:30 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-afs@lists.infradead.org, linux-btrfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-mm@kvack.org, Hugh Dickins , linux-kernel@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH 0/5] Fix a minor POSIX conformance problem Date: Thu, 2 Feb 2023 20:44:22 +0000 Message-Id: <20230202204428.3267832-1-willy@infradead.org> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4AD1D80010 X-Stat-Signature: qd9g8me1tn787pcebe6aj4g7bn9oqh8r X-HE-Tag: 1675370678-120089 X-HE-Meta: U2FsdGVkX18brwzOFzIovY3k1XirKJfL248TZITPAeiVYANpTZHyK1RB4yVmseyY9ut7FLGZDNZA3q7xow7Yex5NoUBVpjbjJ+SqJDP5TNx2iqgEISvp9aRr9iEPqOLn1piIRp2UeI3+P6fKitDb+a8RlxXFpGVX+VPwbbax8ZemhAT8PKWEypu5T6et7NNpXsRfDTj3pRgWXzbzuW20ZTDxB1prpFvhyjNFWKCKpNRp3oDeX/l03ljmEgqULqrrezfz7J26RX0do7Yf4FBb1IRu683ZkUEMNO/NMdC/zf9QijrpMwXc0hLy5UjuTjcuuZnuKz3AAPDWk68HzRSB2MFkuyNxg8gmkbTJFyawVw9WaKC7yxXMd1yBfIhAtyA4IuKQ/9ycTkzvOPBc98EKom6ZybrM3D91GKuOA25hjLaScoLyKA4WTIiinA8ykqei2N9d0WiZziQI3Lg4C4/7up0HIcOX7aOUoxOs10egDpVawSZynmcjHAB2TaAlYTZFjpMlaVC2ZODmcIUfkgkhvtOHGIhuA3BEYnW7EAWQw0pqOoQFVDJQZqt67ZXm/eRRzC6t2ioBBo68TxNzbYr5bwK3HDBnFt51Y/hwjnObShlt7mA2kjyO03hlR3lPpjofLvmU3Lf7zg+165vYEE5vLNocS9CKpfZdonRP5v38fdoMdSYWu3PoRsbTH3cPdr0WXalUvoYlPhIGF0Spk5KEASch4x71SjinOGYQLkD64nBW8qY9z9ROVtPddUHB9wovYpS069JeXq27ZM5YwvZoTwOcZoe8dJEC+S1HmxFdZvOaRzaxuOuHFDhfoGuPlzcAIgyc8PVc8VzkCCwFNnNRixOSJCIr0aF/DWQLH/4edf+l43NOOR18hAsv7aieh8+X2WN4OVRBeMEF1IvLOQKZ5fZ7t6OBpCelk0JrOUOBWaRdKmv0a2rOo/ePHclxVXSe6Z2WX8+ylF4Nlvha5Xu vXYHXSW+ pkNDIEL3t7GJvezbt1lOka9AHS716eEZuRcSM1muWZEOzki55Bcti5wgr/DBfQS/9OsawGGaQC3RqkrgoD+65ccyMflwXyL5v1hVJZXDcHMMRsaHjRyrlw7afc2HguzZp8VIqXqP17EVPQBc= 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: POSIX requires that on ftruncate() expansion, the new bytes must read as zeroes. If someone's mmap()ed the file and stored past EOF, for most filesystems the bytes in that page will be not-zero. It's a pretty minor violation; someone could race you and write to the file between the ftruncate() call and you reading from it, but it's a bit of a QOI violation. I've tested xfs (passes before & after), ext4 and tmpfs (both fail before, pass after). Testing from other FS developers appreciated. fstest to follow; not sure how to persuade git-send-email to work on multiple repositories Matthew Wilcox (Oracle) (5): truncate: Zero bytes after 'oldsize' if we're expanding the file ext4: Zero bytes after 'oldsize' if we're expanding the file tmpfs: Zero bytes after 'oldsize' if we're expanding the file afs: Zero bytes after 'oldsize' if we're expanding the file btrfs: Zero bytes after 'oldsize' if we're expanding the file fs/afs/inode.c | 2 ++ fs/btrfs/inode.c | 1 + fs/ext4/inode.c | 1 + mm/shmem.c | 2 ++ mm/truncate.c | 7 +++++-- 5 files changed, 11 insertions(+), 2 deletions(-)