From patchwork Wed Oct 2 23:44:43 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: 13820562 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 671DECF8547 for ; Wed, 2 Oct 2024 23:45:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF5126B04EF; Wed, 2 Oct 2024 19:45:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA6E96B04F0; Wed, 2 Oct 2024 19:45:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D94D46B04F1; Wed, 2 Oct 2024 19:45:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id AB97E6B04EF for ; Wed, 2 Oct 2024 19:45:47 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5324AA0C83 for ; Wed, 2 Oct 2024 23:45:47 +0000 (UTC) X-FDA: 82630297134.12.E567536 Received: from fanzine2.igalia.com (fanzine.igalia.com [178.60.130.6]) by imf08.hostedemail.com (Postfix) with ESMTP id AAF0416001B for ; Wed, 2 Oct 2024 23:45:45 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=YUXfIqOm; dmarc=pass (policy=none) header.from=igalia.com; spf=pass (imf08.hostedemail.com: domain of andrealmeid@igalia.com designates 178.60.130.6 as permitted sender) smtp.mailfrom=andrealmeid@igalia.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727912641; a=rsa-sha256; cv=none; b=mreUxZ5m+Aja49h+9cYvwvraVID7jNRnoLEDuLka7TY66WwcyXNWraOq5aKtGYqBLsJw2o lpMn8NjVl0Y1VlBJmw6FPszWlNzi6N3gu49HWlkgUCr85zEQKB97aqeJ1jdHxQxXTQ6PTe hn78dFhsRZtANd6Ts+iMngMoqPBnBT4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=YUXfIqOm; dmarc=pass (policy=none) header.from=igalia.com; spf=pass (imf08.hostedemail.com: domain of andrealmeid@igalia.com designates 178.60.130.6 as permitted sender) smtp.mailfrom=andrealmeid@igalia.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727912641; 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=IRPMd0h51YpQUBbAAX/wcuH0ZmexRZTVdCGmfxXJDJ4=; b=q5blj9ap2OKWd9esJzwz6ioF6wm8JSI4aJWJFDsi1hW65jYk6SMw/n/R1dpQfWyYKdywA8 92WyTFY2NY85gDzFs0y3pmmbNPcJC0lbnNdPHBk39FqTPgnlRsE+nrwspil1vI6bCmAYIy BfYgie7U0eUtam7lZ6qjDGly6vuHZ0s= 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=IRPMd0h51YpQUBbAAX/wcuH0ZmexRZTVdCGmfxXJDJ4=; b=YUXfIqOmAm+ugm/XutADfo8KPq 852FMkqLH0SDzwTuLviY9XWwuciBiWB4uZfTdN24lUwGI3iZLz9ztLI4yr4ZiyMOkqajRybBp4+6Y ZVNOj6EVyZdjf3mfra9zlRHjbxVuwh3/Z7v79gNubJXqRoQVGVoJi+XcDsmWWGpHG+/pqElH1cuGD jlrxW7RXb3rlOqzNOGq7INMOtQuN2U3xQ1Qpt7V/+XV7ntd24CXQJgXdwHF2fo2xTS1t0RNn6ugun BmWFAlzoQECJH/X4J4E+FfadeI5VAdDMnKrk+E24N09A1HfCdwjjM2faNC5hDeOKzLCKd6vGLTVVO pnqUI3LQ==; Received: from [187.57.199.212] (helo=localhost.localdomain) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1sw92H-0045tc-Rv; Thu, 03 Oct 2024 01:45:38 +0200 From: =?utf-8?q?Andr=C3=A9_Almeida?= To: Hugh Dickins , Andrew Morton , Alexander Viro , Christian Brauner , Jan Kara , krisman@kernel.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, kernel-dev@igalia.com, Daniel Rosenberg , smcv@collabora.com, Christoph Hellwig , Theodore Ts'o , =?utf-8?q?An?= =?utf-8?q?dr=C3=A9_Almeida?= , Gabriel Krisman Bertazi Subject: [PATCH v5 09/10] tmpfs: Expose filesystem features via sysfs Date: Wed, 2 Oct 2024 20:44:43 -0300 Message-ID: <20241002234444.398367-10-andrealmeid@igalia.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241002234444.398367-1-andrealmeid@igalia.com> References: <20241002234444.398367-1-andrealmeid@igalia.com> MIME-Version: 1.0 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: AAF0416001B X-Stat-Signature: tosnyd8z9yesdh9ctsz494dyrhw7ece8 X-Rspam-User: X-HE-Tag: 1727912745-892108 X-HE-Meta: U2FsdGVkX1/ejMOIB/0ZZnhcJPiS5E0x4WF+U8ANhkFl+rOCeHEJdXa1PWXNFWAPW5BT4oH7lyOQqXjn/4sxZKFyGmtT1knxMQriFP7AM1gJGYO+0oiMIc2OBk6Ren4zNufSSDCRF002sF5tSylRRZG4pSjZPNZkgtG2Xy3fEMNH/ovgiVDB1d/S8fTU3LbWNqaJbjypR76GLKlGmfPDyEx1otd7/Q+11r/4/baaw3yGWlJSRwTjGtUu8y2dQBIij6K3Prn16hWkSBdeHLCUGSDHCyla7vqPkg6bMn1piw6c52m8N9/Bv0JvSZoydvt9l9ZY3j8oTGANeKmMte/ibrzmZdu0afHvhdXtoUZP1daCSp0YvxsYpWo74D+kHvyhZTY/8d/XkJgRCeSHmWBkSu9MY71v4YyN5EKdMqd3xor2vEhkkMfELL0MXcFjIgWl/5zNsXbg+SufqUquXh2CsYVJxqB02SwuHcSwJdlCLIrQEND7f7SYmMZitj348owmNoQqrpynbRHqSH+tC5ptT3Nns3pYztVIRAJsfIhzH+LYMDuILzcg2oMrs8gbEfD1kL0Yst5FXuXhfi1uJA62amSILRLXHRU3qP2yQUHdDPuuLjxhnpcsFBz7pZ4JDxSe+0MdPHl5whWpCRTglil1bskR7Fkdxmnu3RSwhZHt4fj9UTqRPT7gum6G1JQkGD5VcMEbIxJJAPQr3AO98gssP7FGb4kFpUFMFldzki1Vpcj2CV7wA08MxbjbsNu+OppjkUOp/iWgOAH82F4q06/G8ofksVB6PEgRpTCXlus5F1drMgYKZ8rhyUTDjUmoh3CDGQJpYTAPC9YqUqoJ+4hpf7X476CqChQaX3cWyS6H4sPImDTMglALEuf0Xg0Sg5reLQYsh4Ut9f7lXYEJ1u1dKNiP8gbSx/0j/+M/PHRUHN4mt4Qtsz2kmy7bnH9OM1tO3Xst1HIopErziZ7ea1G rwhsK+mN py8d7ufsy5f7/qpw894HrQ0kZo2eErwJqzMmIvREI1ufo4w2a+TMHfMSz9ECEMkXSXWAZS3M3oP6rFzRJdypw9aXphV8apPnqyMpNalai3jIIvN1lcb5PdTEV1lwrVm9Sv1HJtsqo7UBEDV0qoX/LnQkTtnL/NRNOZM2iceZExa9f/dUC5UaHItZ8OVNewvrqkVHQbwqBuaZsEXqXDfEG89qDHAXNdROyUfW+SbWHeAyxQ57PDGHnC1GYcSRT6rwMKVX9vhHVR0Wr2m8FgY81eoIQjV1GQPllpmE5Zzv2dSMTqGrlHIjfWBAWZ/TzfXKGf0h05z3/e+HvcjU= 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 Reviewed-by: Gabriel Krisman Bertazi --- mm/shmem.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/mm/shmem.c b/mm/shmem.c index f07b446b3c98..007123019d1c 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -5543,3 +5543,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) +static 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 */