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 0710FEEB59D for ; Thu, 12 Sep 2024 19:13:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 734196B0093; Thu, 12 Sep 2024 15:13:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6BD766B0096; Thu, 12 Sep 2024 15:13:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 537246B0098; Thu, 12 Sep 2024 15:13:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3521A6B0093 for ; Thu, 12 Sep 2024 15:13:13 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D37901602AB for ; Thu, 12 Sep 2024 19:13:12 +0000 (UTC) X-FDA: 82557034224.05.4356F39 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by imf18.hostedemail.com (Postfix) with ESMTP id C20B81C000F for ; Thu, 12 Sep 2024 19:13:10 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=krisman.be header.s=gm1 header.b=LmAG0Uum; spf=pass (imf18.hostedemail.com: domain of gabriel@krisman.be designates 217.70.183.195 as permitted sender) smtp.mailfrom=gabriel@krisman.be; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726168338; 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=3XbDAFIYWOpDf3ZnvtGpz/tr6vdDYFyvODcLblGyUz4=; b=A1MhiGkMMRN66PDKtZzvG2yiCC426BSCerS+YdEXCZc3kXconO/t0RUo9BO4uIEqY5RciB +kggpd32yH5zUfxhAZr9PcbbfHwGSG5/osIpPJRwKXtlcOi3O+86cEJjK9uuUutRnU9eFM jkbUHjklZ7wkGnwxRtGedh4++PNFPOo= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=krisman.be header.s=gm1 header.b=LmAG0Uum; spf=pass (imf18.hostedemail.com: domain of gabriel@krisman.be designates 217.70.183.195 as permitted sender) smtp.mailfrom=gabriel@krisman.be; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726168338; a=rsa-sha256; cv=none; b=weoFCg+Q1O+5YMPzGQ3Vh72MuS2SsmaribXFhAqYDPfb11PD3i7SOBRLfqHfAJkSndG5CN jwEqfoxbm3wZA8s39/ltOewxTm3AEkyxUkV2i4TnwH7blXuV9Pqc/S5i7wsRKDU26yIfjh aa6qDQFKUDQvCYu7yaAculio43R52Ng= Received: by mail.gandi.net (Postfix) with ESMTPSA id 249AF60007; Thu, 12 Sep 2024 19:13:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krisman.be; s=gm1; t=1726168388; h=from:from: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; bh=3XbDAFIYWOpDf3ZnvtGpz/tr6vdDYFyvODcLblGyUz4=; b=LmAG0Uumy+pzxdRemWcJZnhzrBS14qCGI9iW4PzzjlsYJcExHrzujLCwEsmAnCuOVInMbw FSe+CBAo4PN2BGOcTdmtQDqnKs8qdqzK0SynIEDSp+riEDU11YgWN/YI+KoFLENLrn9GZH Pvj19z6zwrNlgf8GDsckrz8VKZs+mPHQUi8KL7LovTME5NSETwHpq++Mmca9+M1ROeyaA1 RnkVy/N/vCPILCQcIw+ZQky8EMsb6+cx/kBVwWI8HkN0c1/pVmHjC9AuO2rb3cuydUG6yX QKUE4PLQ3Z11IEYw+L87bFfyE7xS4ZTpbOmBCF76f624Fkr3KAd5Vv4WlbtyDQ== From: Gabriel Krisman Bertazi To: =?utf-8?Q?Andr=C3=A9?= Almeida Cc: Hugh Dickins , Andrew Morton , Alexander Viro , Christian Brauner , Jan Kara , 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 Subject: Re: [PATCH v4 06/10] libfs: Export generic_ci_ dentry functions In-Reply-To: <20240911144502.115260-7-andrealmeid@igalia.com> (=?utf-8?Q?=22Andr=C3=A9?= Almeida"'s message of "Wed, 11 Sep 2024 11:44:58 -0300") References: <20240911144502.115260-1-andrealmeid@igalia.com> <20240911144502.115260-7-andrealmeid@igalia.com> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Thu, 12 Sep 2024 15:13:05 -0400 Message-ID: <87r09ok7ni.fsf@mailhost.krisman.be> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: gabriel@krisman.be X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: C20B81C000F X-Stat-Signature: dmetfj81cgjms4rinjhsnwmki8ccogfz X-HE-Tag: 1726168390-165348 X-HE-Meta: U2FsdGVkX1//ORkgqDBOuSMw8sYt+TOPZvdNulBiKkGT2Y9aa5Ec0I4Q/KX0naymxsNg7iFnJD/4rr8bY7cAYmdEgHkkRd22NpUOykI+8n5ICTSLW3RGMPDBTP5VH6uaKTkmEsmnYSM3U1OC0XS/elMgI06tXiZProeSvYHt53NFvHLTye8tHxC02u3bDwsdZgEqFMe1X17tUPBQ8pUG6W9UBefqT58PDkREDthqWdgXp5oGdelfeEJheObVwfjj00MOoYxOpjUcZQzNse2hA9bXaPiXbQyCZXdCXCmnMi7PmZogTQNMXtgDUapwMhSBFbfh3M68dgHZ0kwcIFrONCdPXs/coS34C/RaTTqfiiZ7dOcJccBdhjGnjq9+Q5Zw43QFXjs3UVnUImkfkM7MEyYCcS31BRxRAFLryOBWY09Tx5VGeMBW7XWvzTOrCEyerDlJduSfpvGX1p69C6gZs7Zj2h9HUyob0b731HiEtXMCjtcC/J4d72WVaBFj5dHCwAaZqjq0wMOI1m+38wBk7JUS9CPsJhdgP+NEfDwv0kC+V8SuSqGCvDeMGtD+wPPCcghnue/XBeZeoUHNavBCDge/NF5O3QK+lwkTo+kJRiF21XWsP89nn7yTVGBMtBxX18TswsQ2K9rr4G7CQgJdaVYoRiL9zh2tIblcdwPO/yfrmHbEvbQDAuBfnYRbueQkn2YK9+KXkltqFoq8cwySHp7lHoahqu6Em9axLUYBqsjAu99hj/RvfuNznFb11Atv6nEr7dqI82UWSoLvhU3io7couHaU62b26LU++c2h+f25HyN0evDshaOl8Jf0lkhq6Hp7TiCk6iFtnpVfrlOuT9yKc4p55kenTwbgUc9dZx6C4MX7/kfJy1DW5lYWlfEiZ5sEgOiVE9Xoz1RgkRKGBpeosP1w57j4POt2djThk2sHvFKQjHmyedd9jVg/gJqV7XQbH77iTmRxl4Z0CXb iYLl1oQo 5c6X85B6aaPCvDP8J8oDMDTnlgRPZbV9JAaqhOtczS8CZOH9ENSB1WtJtU4p0K32Pt7ohwT5Kdahz83pel5YZMBrog3UmC+fxMc8oxoq1KKc8Usgpnm+gD4BkJgu1ILwUlRF+mlFtAk9myXvGyUhBW7BmEovMqUOdrhG5/KTamsNJiQWzsJZNVhdgdC9h07NSh5nwKHQNyt1zKtB6ov63GqjHDnJDuRvevOGJD2hwttuPtFpWOdlKTUzIb04/e3cLKNWPjar8+cCbMNS22+wDgJJp9KvHLqjzYPySkW79dJWdYp4wKx5vUzia6FhYND06MZpQJkYcTBsuY2zEDE9FdQRrOA== 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: Andr=C3=A9 Almeida writes: > Export generic_ci_ dentry functions so they can be used by > case-insensitive filesystems that need something more custom than the > default one set by `struct generic_ci_dentry_ops`. > > Signed-off-by: Andr=C3=A9 Almeida > --- > Changes from v3: > - New patch > --- > fs/libfs.c | 8 +++++--- > include/linux/fs.h | 3 +++ > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/fs/libfs.c b/fs/libfs.c > index 838524314b1b..c09254ecdcdd 100644 > --- a/fs/libfs.c > +++ b/fs/libfs.c > @@ -1783,8 +1783,8 @@ bool is_empty_dir_inode(struct inode *inode) > * > * Return: 0 if names match, 1 if mismatch, or -ERRNO > */ > -static int generic_ci_d_compare(const struct dentry *dentry, unsigned in= t len, > - const char *str, const struct qstr *name) > +int generic_ci_d_compare(const struct dentry *dentry, unsigned int len, > + const char *str, const struct qstr *name) > { > const struct dentry *parent; > const struct inode *dir; > @@ -1827,6 +1827,7 @@ static int generic_ci_d_compare(const struct dentry= *dentry, unsigned int len, >=20=20 > return utf8_strncasecmp(dentry->d_sb->s_encoding, name, &qstr); > } > +EXPORT_SYMBOL(generic_ci_d_compare); >=20=20 > /** > * generic_ci_d_hash - generic d_hash implementation for casefolding fil= esystems > @@ -1835,7 +1836,7 @@ static int generic_ci_d_compare(const struct dentry= *dentry, unsigned int len, > * > * Return: 0 if hash was successful or unchanged, and -EINVAL on error > */ > -static int generic_ci_d_hash(const struct dentry *dentry, struct qstr *s= tr) > +int generic_ci_d_hash(const struct dentry *dentry, struct qstr *str) > { > const struct inode *dir =3D READ_ONCE(dentry->d_inode); > struct super_block *sb =3D dentry->d_sb; > @@ -1850,6 +1851,7 @@ static int generic_ci_d_hash(const struct dentry *d= entry, struct qstr *str) > return -EINVAL; > return 0; > } > +EXPORT_SYMBOL(generic_ci_d_hash); >=20=20 > static const struct dentry_operations generic_ci_dentry_ops =3D { > .d_hash =3D generic_ci_d_hash, > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 937142950dfe..4cd86d36c03d 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -3386,6 +3386,9 @@ extern int generic_ci_match(const struct inode *par= ent, > const struct qstr *folded_name, > const u8 *de_name, u32 de_name_len); > bool generic_ci_validate_strict_name(struct inode *dir, struct qstr *nam= e); > +int generic_ci_d_hash(const struct dentry *dentry, struct qstr *str); > +int generic_ci_d_compare(const struct dentry *dentry, unsigned int len, > + const char *str, const struct qstr *name); guard these with: #if IS_ENABLED(CONFIG_UNICODE) #endif >=20=20 > static inline bool sb_has_encoding(const struct super_block *sb) > { --=20 Gabriel Krisman Bertazi