From patchwork Fri Aug 23 17:33:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Almeida?= X-Patchwork-Id: 13775616 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 9FFA4C531DC for ; Fri, 23 Aug 2024 17:34:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA244800BA; Fri, 23 Aug 2024 13:34:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0438800B4; Fri, 23 Aug 2024 13:34:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B5CBA800BA; Fri, 23 Aug 2024 13:34:01 -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 8C2F6800B4 for ; Fri, 23 Aug 2024 13:34:01 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2AD50A0AEE for ; Fri, 23 Aug 2024 17:34:01 +0000 (UTC) X-FDA: 82484208282.18.9D59693 Received: from fanzine2.igalia.com (fanzine.igalia.com [178.60.130.6]) by imf03.hostedemail.com (Postfix) with ESMTP id 7C96920025 for ; Fri, 23 Aug 2024 17:33:59 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=ma3Xhzs3; spf=pass (imf03.hostedemail.com: domain of andrealmeid@igalia.com designates 178.60.130.6 as permitted sender) smtp.mailfrom=andrealmeid@igalia.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724434330; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=zap4iol6rqGSjG5PpDRAFuTwCuOL01NSJqIIbGm2kbw=; b=VVGr/TGbD+FQmWTC2lrzwCLJHACAo0B2I0D5R/pYeSe5AbqS0KCjajhnIRFxfFW/4CgeGK fxCkQ2MgmOz/cE2IwguKms3osC8xI5MCt3h8BjQBUU7vIppbC0KnqBWxHvQqEqtF0Mh39+ hmTvhxYaVXa4TqxhIYX+t5gFMRvC7OI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=ma3Xhzs3; spf=pass (imf03.hostedemail.com: domain of andrealmeid@igalia.com designates 178.60.130.6 as permitted sender) smtp.mailfrom=andrealmeid@igalia.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724434330; a=rsa-sha256; cv=none; b=6ThBddoaNOHAQHb+tGSAdBnlUUmBK4vL3pj6fJk1M7pwfyhLP16gFlEMdcGjSHCRo8155x Az+VfPe+yQidynPcqtPEd0f6K4+W4iIMDEtZrIwqSi9IWBYWGub6JyUtp3gY/rgdd2gpZv yf+y5j7W6SYSx2WEmk53YW0fK9YG0j4= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=zap4iol6rqGSjG5PpDRAFuTwCuOL01NSJqIIbGm2kbw=; b=ma3Xhzs3EwKomj3mpglFRwcABm abpsMnv+HGliRBrfAeREW4zYsafdnHo80mfj+l0CnjSX0kFp/aBnkN8w8WfuU/be7Rfj4RXbN4UiT gIBa9vYSVbaAHcRm60M3BeSNazFmJtScWkAV4emfUMWDIocYFhxQ0Yo32MR1/xvsGg4q77vk2kFaT wuVBFl4Z0Vy6wWRk8cgnfivmp3BEQHW/cDf2xwKHWFmhIosfhPZpDDxzEvOs/cD0QMWf+v2VB9+kg rq2TOD5vgs/K6zW7MmrTryws+94SffwMgyL21J5JMcLrd+rBnEPavyd0LNxej8vw5mE/rYY00xTKx fMbvGxGw==; Received: from [179.118.186.198] (helo=localhost.localdomain) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1shYAa-0048Ww-Pr; Fri, 23 Aug 2024 19:33:52 +0200 From: =?utf-8?q?Andr=C3=A9_Almeida?= To: Hugh Dickins , Andrew Morton , Alexander Viro , Christian Brauner , Jan Kara Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, kernel-dev@igalia.com, krisman@kernel.org, Daniel Rosenberg , smcv@collabora.com, =?utf-8?q?Andr?= =?utf-8?q?=C3=A9_Almeida?= Subject: [PATCH 4/5] tmpfs: Expose filesystem features via sysfs Date: Fri, 23 Aug 2024 14:33:31 -0300 Message-ID: <20240823173332.281211-5-andrealmeid@igalia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240823173332.281211-1-andrealmeid@igalia.com> References: <20240823173332.281211-1-andrealmeid@igalia.com> MIME-Version: 1.0 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 7C96920025 X-Stat-Signature: 4mjww7p7u7goe3pnua63gtmfrxjbtxg3 X-Rspam-User: X-HE-Tag: 1724434439-744056 X-HE-Meta: U2FsdGVkX1+GWAbILYzVP5iEA1ms1KtssnY4vNoCvuvOFA9eVDKicroEwZyEwMqJe69hT7n3Mh4/2PPa4D16MKdh//1kQmWH2ZGEGH7HfJcA/OqZbSAq1nHT4HdCq7mmwmcVp2fB4ek5J6/MUhyCN5GfzYjtca5xMCuWDws8qWe7rNqHOb8uUnNybOg8wEEvscYssG6mYhyjbjYvgQ8KYFGJPYMHO15JR27xLInJoCNmR/sK+ddnC9WYps9lfH3QLlKr7bnCi3NAahlctezUFAlglbswcL3gnSXJmVhj7fgwD76p0gz9QlvLbfr/M4INNE3iaAZG2kRFIzytR5PtC1lD9+T+WykRBLZpJGCYyCbEcEYt60jyz4bn9hOIOJrk7McVNFI247wDKrnIDBlhXTVef90LnjL8n2Lzgp9w/qC8dpSyKkGpo7UMP1y+ycAazs27CvA0kWpOHIZ5o8A+SvCiud1dUJELyidj5Sv/Jh73KP1kQjFfTkcGjyoH3/ECl5yzjjPM+XIk2Z7AJ2CibFRNFDqeMq2h/TC5vASkiadxI2p5e5a2WADYiDXl7LI85rbmYCWP/Ws28PZBOEKh+x/QVx45pO9FChxu9KYMHac4KSexVENLnVVhD+B1brQaLo/310GtiTYweRJGSooqNOkQBdZw3gvoeI4Rr51quUna0tFmN3hx+7K6k93fjfibKdQzG2TG+9d3sNwUtGBWBctJb+7X/a/vEkeDaQ36PR+aw037EDxljHnxCe8/w9CEE143tTN56FkIDHdnSrlV7h0aCnc1LudaAbaOO7tDEhbXE/3ZGA01qizwZnmcv6hsRmt3bHJs+caCvttEjA2FluFm/RaLNa4DG53nTpnwphFNSOL8HpdBj15g2USjAgSqa3ThMRWMEdpP7QuQvafVoxkaOn2NAqeU7CFC8MfSO/jncIjQbgyJ47hp37lnkFl1F/F1DoeAJEO93ulK6mo FjA/ZFTs ADIz6t8Q7riKuvqyhd0Sf6bdOFoIV26KiT47Zm91r007AW73N8jqxxGWO01u3rnfuM1W1evlD2+yizWSslXotMfacpSg/wGYgzdqqOLWdTQS6HiG3k8EnYK+8lDdL395JYORjS8CzUHh1u/aRNBx+vJn4zvhYjcgnHbtzo1wXf1sYL9Z+Ur0RYBAdfR+2ug7zO49LkJAPIR0QDJPx7E/8x5KJoU2mbkn85geCM+2AnNpAJGAdGVaQrF4fC1/Mxxfg0201CZn7XO56v8ol8DyhA11HGAYv98PCgK9i 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: Expose filesystem features through sysfs, so userspace can query if tmpfs support casefold. This follows the same setup as defined by ext4 and f2fs to expose casefold support to userspace. Signed-off-by: André Almeida --- mm/shmem.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/mm/shmem.c b/mm/shmem.c index 5c77b4e73204..f6e19b88d647 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -5384,3 +5384,40 @@ struct page *shmem_read_mapping_page_gfp(struct address_space *mapping, return page; } EXPORT_SYMBOL_GPL(shmem_read_mapping_page_gfp); + +#if defined(CONFIG_SYSFS) && defined(CONFIG_TMPFS) +#if IS_ENABLED(CONFIG_UNICODE) +DEVICE_STRING_ATTR_RO(casefold, 0444, "supported"); +#endif + +static struct attribute *tmpfs_attributes[] = { +#if IS_ENABLED(CONFIG_UNICODE) + &dev_attr_casefold.attr.attr, +#endif + NULL +}; + +static const struct attribute_group tmpfs_attribute_group = { + .attrs = tmpfs_attributes, + .name = "features" +}; + +static struct kobject *tmpfs_kobj; + +static int __init tmpfs_sysfs_init(void) +{ + int ret; + + tmpfs_kobj = kobject_create_and_add("tmpfs", fs_kobj); + if (!tmpfs_kobj) + return -ENOMEM; + + ret = sysfs_create_group(tmpfs_kobj, &tmpfs_attribute_group); + if (ret) + kobject_put(tmpfs_kobj); + + return ret; +} + +fs_initcall(tmpfs_sysfs_init); +#endif /* CONFIG_SYSFS && CONFIG_TMPFS */