From patchwork Wed Aug 9 04:28:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugh Dickins X-Patchwork-Id: 13347411 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 5D820C001B0 for ; Wed, 9 Aug 2023 04:28:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 970D16B0071; Wed, 9 Aug 2023 00:28:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 923208D0001; Wed, 9 Aug 2023 00:28:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7E8916B0075; Wed, 9 Aug 2023 00:28:22 -0400 (EDT) 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 6AE2B6B0071 for ; Wed, 9 Aug 2023 00:28:22 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 377D41C943A for ; Wed, 9 Aug 2023 04:28:22 +0000 (UTC) X-FDA: 81103284444.18.3D08984 Received: from mail-yb1-f169.google.com (mail-yb1-f169.google.com [209.85.219.169]) by imf02.hostedemail.com (Postfix) with ESMTP id 7E16E8000D for ; Wed, 9 Aug 2023 04:28:20 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Lp5IxKL3; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of hughd@google.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691555300; 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: references:dkim-signature; bh=LNX2gVTfjhVTAgrxowx/Ja6Ynr5BMCRl3aEeyLA/OyA=; b=KDJ5Hgts88hHVBImlFX9U9Cf3+OlhP2QN+WtQb7ExnuIj5iNqUTVUQCbKoAt9W+1aO73Ax d1VCO7rwNP7OkrHqXL6A8nW7ssUhn/+uT8iRCiHG8tMErNTakMj87A9QisyvMKcjcFszRw g3nvCxIaXHnpJoQ95nblRipXT0JhY+A= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Lp5IxKL3; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf02.hostedemail.com: domain of hughd@google.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691555300; a=rsa-sha256; cv=none; b=NzzB2ZCsvKq8BxJdhAuH8J/IbiXAEOC4LTLTOSgKtd45LtjORb+9cvU2jAT8Edojkqg2Ql lpDP3pFya1Vy9GpNOp7F/VXrpE4KHtDMmebZXdZLwht/eKl0JQh+hTTiyvJM49i6QuvYvJ B7/xEtnJ3G55dM7b8Lhes7nidUUTrYo= Received: by mail-yb1-f169.google.com with SMTP id 3f1490d57ef6-c5ffb6cda23so6839634276.0 for ; Tue, 08 Aug 2023 21:28:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691555299; x=1692160099; h=mime-version:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=LNX2gVTfjhVTAgrxowx/Ja6Ynr5BMCRl3aEeyLA/OyA=; b=Lp5IxKL3QYN8alsy4CzPCKT8uDmwrXUjy4IjlkWKHsQwI2AgxbPfVYMFJrLzg0eaLn 2j7MUtFRjz6MVSIYk9zRHgl8UTP1ibj5IL+1MVpf3LVlJ9s9tCh1dF1wZxVgSge5tgR7 XU4uI+BdhotRicWNYP31bFkaVUGeOWjscPGqH6+YqhnhBSWEFrOg3/ociku8hPyXejnq mEkQlFIJfiQ15uYTZNSjvWklnkDAeig9vP0CJ5DH5gFV7uyrlO++L0+wrqlhWPQ0QXM2 mD45hj/KDLX8tDEXT9ULdh6oSgJklKLlmek2eEupUUOXBHX1dlP0YlUSsXvsO2FmKfkD afcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691555299; x=1692160099; h=mime-version:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=LNX2gVTfjhVTAgrxowx/Ja6Ynr5BMCRl3aEeyLA/OyA=; b=O8ijhX5p4QB/5YkT4DHwP2cnlzU/GWQX4LUjjmuY7ktCsPF14x+Xj9ZnEx49D8jSUz /tbAnZD8c4DJR5xaAo21XZTdDPmVtGs4RcT9Zh6fpGu4I+FLGs/GQZHT3zcJY0SReGFF WRz9HSTJk2NUAz0hGTVt/O/sz8m9tasUAejoxt2snCUb4FYCV5JzHeD3+eaRluPgVAPd zjbtV/yigAMGeqQ/Dj/o8BZJNw61rxwuU0606I0Hq82+1masRgR5hhnaMplcRgNOlzCy sm1QIKU0wvL8vKuR1sy6Ep5gPsYFg/5SXAcp+8wUIE7NjlJJB2JRBGZ1LWGKvCdXCFc2 d5+A== X-Gm-Message-State: AOJu0YwPOeJISi4rKag1jtbFjCcykL64uCf1keh7mCJEeLePkHT3WrSL d8zavS0U8dZs/4Z+qj+ZYy5fUw== X-Google-Smtp-Source: AGHT+IGdENtZZLPLv1rOUsSWfPNXi+awN4YQgBXL+LsGL+tZPvcj5kvheolqqxPSLvIXTwHMcHAsWQ== X-Received: by 2002:a25:dfc1:0:b0:d47:d267:26d0 with SMTP id w184-20020a25dfc1000000b00d47d26726d0mr1531341ybg.38.1691555299507; Tue, 08 Aug 2023 21:28:19 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id t5-20020a25c305000000b00c5ec980da48sm3192362ybf.9.2023.08.08.21.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 21:28:18 -0700 (PDT) Date: Tue, 8 Aug 2023 21:28:08 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Christian Brauner cc: Andrew Morton , Oleksandr Tymoshenko , Carlos Maiolino , Jeff Layton , Chuck Lever , Jan Kara , Miklos Szeredi , Daniel Xu , Chris Down , Tejun Heo , Greg Kroah-Hartman , Matthew Wilcox , Christoph Hellwig , Pete Zaitcev , Helge Deller , Topi Miettinen , Yu Kuai , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH vfs.tmpfs 0/5] tmpfs: user xattrs and direct IO Message-ID: MIME-Version: 1.0 X-Rspamd-Queue-Id: 7E16E8000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: qyuahrrnqi38k33gqcmosd86tjkfiw9y X-HE-Tag: 1691555300-777576 X-HE-Meta: U2FsdGVkX1+U/w7Au1ieLAuAWJD2usLW/PnONoDBuyFfpP+u8cNSIQPGHFwOdwy2ygYeKABE5KjZs2fpxeaYrrqqi0zdU4ms5+yxfSqTih21oSMxCInHZrZ9mHN1lAZZyq3VUnsZHx69PETEGdXz0LPGyL1MQLQdzn7HxLPcchIMPwrB1yeN3XQ2W7PcoZ8I4qjPYCHvw892pgh+Cg90eU/WL0lr44nGdx2KeOiUZrp95Tgs9N+daG6w7Cg4pTmunsxs8a5NCmPJwyv06W4F4ldz20G6N3Yeb1wpJQElF6/+bBwD7wtgIhraKtBG+3qQH056zDTu+DGK5PUtsc78TVhXDq3ZpWTlBju+mVyfrXC2mYhwccD91Ktr2iGeZFxfFq+Vuwj6Zcj3JjP6b/vqfu3r3f2tCfKUo2zR5X6QuJqWxokvlqkm8c2r5+51L17GRfJIA/TwuCrVeaFl2wCYRSod6+Lf2QNCEUxWUaUHKote0SiBxUQgm2QUFrYor0jTCPyc4moDdZ9Phu0hKRsHbaAMMuoVl7B1gyzRyaXlBJDX4iZYa06cfTrX30wlWsPbaT04og4CP4nX5QBDT2MS2bGtNDT3rrmJRASpi8OihqAXIiRHDxXBHPXsc7QgSg3pAwK8IRQJZ3neGYOFk0VShyuNWSUwFgyMoznPLivkMbyiCirVKEO+0fKMNFeZ35m3wj7lVOQfGCxjPjV/9JqT9tVaMv1zKD5ha/reNtOka9YnMRwJo83OlBt5CT61zRZDKwWjwFPSxVru32lxohpTz8JOQq99MiRautMvVVz3rOWewFoPjFn0OJaQ3yyZfXjew5u3MK19SEnVu03kFiI+BUDo1DsiqEPiZFPo/CSpjNItS9TNO98rvobe0o5BnfIRDpFAI66SqmioKICrSSF8Zt/LaOusTx8kbDLjs1SUQ3ndaQzuhRhp6zfUjMNoUHodcGwtA38mk3GVc8AeM8Q 6AqdUWQR 1GwosSk44HPLRlk3zlp2VEO7ahFzOO+3zBvD1dI4xTX8jFEKDKuKwl5ePLRtvZMzBV4DW4LLVGbE4kbC4mvYiI+/uIgQqSPF6GUKaJUOT2SEZj6duQYNzbvQ/6JvroZ3BJCEY14lYROSW3sGmeii9bHYpaTTau1eN4e7J2NKWboyo4grVLKC0ElF8qyxQWfAUxoxkthlVG353Eju+IqyJeTiRjsFC5SfMWitBvd4faoJRmBsHSD5VgfM4Oq+XQrJlVkmBC5GeC144Cy7kR+ff2NbMOsMrAUHU2Rz8yNdxePOBhLWkP3ux5w5sOr0g5m0Is+vbO1rFmzZ6ggj4Tvy7PZ7rR9KFiSUoFmznI8VFDMihmrS70V47pGjHJ5s02lbHi/tq 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: This series enables and limits user extended attributes on tmpfs, and independently provides a trivial direct IO stub for tmpfs. It is here based on the vfs.tmpfs branch in vfs.git in next-20230808 but with a cherry-pick of v6.5-rc4's commit 253e5df8b8f0 ("tmpfs: fix Documentation of noswap and huge mount options") first: since the vfs.tmpfs branch is based on v6.5-rc1, but 3/5 in this series updates tmpfs.rst in a way which depends on that commit. IIUC the right thing to do would be to cherry-pick 253e5df8b8f0 into vfs.tmpfs before applying this series. I'm sorry that the series as posted does not apply cleanly to any known tree! but I think posting it against v6.5-rc5 or next-20230808 would be even less helpful. There is one "conflict" between this series and the final next-20230808: Jeff Layton's vfs.ctime mods update a line of shmem_xattr_handler_set(), where neighbouring lines are modified by 1/5 and 3/5 here: easily resolved in the merge commit, I hope. 1/5 xattr: simple_xattr_set() return old_xattr to be freed 2/5 tmpfs: track free_ispace instead of free_inodes 3/5 tmpfs,xattr: enable limited user extended attributes 4/5 tmpfs: trivial support for direct IO 5/5 mm: invalidation check mapping before folio_contains Documentation/filesystems/tmpfs.rst | 7 +- fs/Kconfig | 4 +- fs/kernfs/dir.c | 2 +- fs/kernfs/inode.c | 46 +++++++---- fs/xattr.c | 79 +++++++++++------- include/linux/shmem_fs.h | 2 +- include/linux/xattr.h | 10 ++- mm/shmem.c | 130 +++++++++++++++++++++++------- mm/truncate.c | 4 +- 9 files changed, 197 insertions(+), 87 deletions(-) Hugh