From: Gabriel Krisman Bertazi <krisman@suse.de>
To: Eric Biggers <ebiggers@kernel.org>
Cc: viro@zeniv.linux.org.uk, brauner@kernel.org, tytso@mit.edu,
jaegeuk@kernel.org, linux-fsdevel@vger.kernel.org,
linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH v2 4/7] libfs: Support revalidation of encrypted case-insensitive dentries
Date: Tue, 18 Jul 2023 15:34:13 -0400 [thread overview]
Message-ID: <87h6q1580a.fsf@suse.de> (raw)
In-Reply-To: <20230714053135.GD913@sol.localdomain> (Eric Biggers's message of "Thu, 13 Jul 2023 22:31:35 -0700")
Eric Biggers <ebiggers@kernel.org> writes:
> On Fri, Apr 21, 2023 at 08:03:07PM -0400, Gabriel Krisman Bertazi wrote:
>> From: Gabriel Krisman Bertazi <krisman@collabora.com>
>>
>> Preserve the existing behavior for encrypted directories, by rejecting
>> negative dentries of encrypted+casefolded directories. This allows
>> generic_ci_d_revalidate to be used by filesystems with both features
>> enabled, as long as the directory is either casefolded or encrypted, but
>> not both at the same time.
>>
>> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
>> ---
>> fs/libfs.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/libfs.c b/fs/libfs.c
>> index f8881e29c5d5..0886044db593 100644
>> --- a/fs/libfs.c
>> +++ b/fs/libfs.c
>> @@ -1478,6 +1478,9 @@ static inline int generic_ci_d_revalidate(struct dentry *dentry,
>> const struct inode *dir = READ_ONCE(parent->d_inode);
>>
>> if (dir && needs_casefold(dir)) {
>> + if (IS_ENCRYPTED(dir))
>> + return 0;
>> +
>
> Why not allow negative dentries in case-insensitive encrypted directories?
> I can't think any reason why it wouldn't just work.
TBH, I'm not familiar with the details of combined encrypted+casefold
support to be confident it works. This patch preserves the current
behavior of disabling them for encrypted+casefold directories.
I suspect it might require extra work that I'm not focusing on this
patchset. For instance, what should be the order of
fscrypt_d_revalidate and the checks I'm adding here? Note we will start
creating negative dentries in casefold directories after patch 6/7, so
unless we disable it here, we will start calling fscrypt_d_revalidate
for negative+casefold.
Should I just drop this hunk? Unless you are confident it works as is, I
prefer to add this support in stages and keep negative dentries of
encrypted+casefold directories disabled for now.
--
Gabriel Krisman Bertazi
WARNING: multiple messages have this Message-ID (diff)
From: Gabriel Krisman Bertazi <krisman@suse.de>
To: Eric Biggers <ebiggers@kernel.org>
Cc: brauner@kernel.org, tytso@mit.edu,
linux-f2fs-devel@lists.sourceforge.net, viro@zeniv.linux.org.uk,
linux-fsdevel@vger.kernel.org, jaegeuk@kernel.org,
linux-ext4@vger.kernel.org
Subject: Re: [f2fs-dev] [PATCH v2 4/7] libfs: Support revalidation of encrypted case-insensitive dentries
Date: Tue, 18 Jul 2023 15:34:13 -0400 [thread overview]
Message-ID: <87h6q1580a.fsf@suse.de> (raw)
In-Reply-To: <20230714053135.GD913@sol.localdomain> (Eric Biggers's message of "Thu, 13 Jul 2023 22:31:35 -0700")
Eric Biggers <ebiggers@kernel.org> writes:
> On Fri, Apr 21, 2023 at 08:03:07PM -0400, Gabriel Krisman Bertazi wrote:
>> From: Gabriel Krisman Bertazi <krisman@collabora.com>
>>
>> Preserve the existing behavior for encrypted directories, by rejecting
>> negative dentries of encrypted+casefolded directories. This allows
>> generic_ci_d_revalidate to be used by filesystems with both features
>> enabled, as long as the directory is either casefolded or encrypted, but
>> not both at the same time.
>>
>> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
>> ---
>> fs/libfs.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/libfs.c b/fs/libfs.c
>> index f8881e29c5d5..0886044db593 100644
>> --- a/fs/libfs.c
>> +++ b/fs/libfs.c
>> @@ -1478,6 +1478,9 @@ static inline int generic_ci_d_revalidate(struct dentry *dentry,
>> const struct inode *dir = READ_ONCE(parent->d_inode);
>>
>> if (dir && needs_casefold(dir)) {
>> + if (IS_ENCRYPTED(dir))
>> + return 0;
>> +
>
> Why not allow negative dentries in case-insensitive encrypted directories?
> I can't think any reason why it wouldn't just work.
TBH, I'm not familiar with the details of combined encrypted+casefold
support to be confident it works. This patch preserves the current
behavior of disabling them for encrypted+casefold directories.
I suspect it might require extra work that I'm not focusing on this
patchset. For instance, what should be the order of
fscrypt_d_revalidate and the checks I'm adding here? Note we will start
creating negative dentries in casefold directories after patch 6/7, so
unless we disable it here, we will start calling fscrypt_d_revalidate
for negative+casefold.
Should I just drop this hunk? Unless you are confident it works as is, I
prefer to add this support in stages and keep negative dentries of
encrypted+casefold directories disabled for now.
--
Gabriel Krisman Bertazi
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2023-07-18 19:34 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-22 0:03 [PATCH v2 0/7] Support negative dentries on case-insensitive ext4 and f2fs Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-04-22 0:03 ` [PATCH v2 1/7] fs: Expose name under lookup to d_revalidate hook Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 4:40 ` Eric Biggers
2023-07-14 4:40 ` [f2fs-dev] " Eric Biggers
2023-04-22 0:03 ` [PATCH v2 2/7] fs: Add DCACHE_CASEFOLD_LOOKUP flag Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 5:55 ` Eric Biggers
2023-07-14 5:55 ` [f2fs-dev] " Eric Biggers
2023-04-22 0:03 ` [PATCH v2 3/7] libfs: Validate negative dentries in case-insensitive directories Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 5:00 ` Eric Biggers
2023-07-14 5:00 ` [f2fs-dev] " Eric Biggers
2023-07-18 16:47 ` Gabriel Krisman Bertazi
2023-07-18 16:47 ` Gabriel Krisman Bertazi
2023-04-22 0:03 ` [PATCH v2 4/7] libfs: Support revalidation of encrypted case-insensitive dentries Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 5:31 ` Eric Biggers
2023-07-14 5:31 ` [f2fs-dev] " Eric Biggers
2023-07-18 19:34 ` Gabriel Krisman Bertazi [this message]
2023-07-18 19:34 ` Gabriel Krisman Bertazi
2023-07-18 22:10 ` Eric Biggers
2023-07-18 22:10 ` [f2fs-dev] " Eric Biggers
2023-07-19 18:27 ` Gabriel Krisman Bertazi
2023-07-19 18:27 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-04-22 0:03 ` [PATCH v2 5/7] libfs: Merge encrypted_ci_dentry_ops and ci_dentry_ops Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 5:40 ` Eric Biggers
2023-07-14 5:40 ` [f2fs-dev] " Eric Biggers
2023-04-22 0:03 ` [PATCH v2 6/7] ext4: Enable negative dentries on case-insensitive lookup Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-04-22 0:03 ` [PATCH v2 7/7] f2fs: " Gabriel Krisman Bertazi
2023-04-22 0:03 ` [f2fs-dev] " Gabriel Krisman Bertazi
2023-07-14 5:49 ` Eric Biggers
2023-07-14 5:49 ` [f2fs-dev] " Eric Biggers
2023-06-07 18:35 ` [f2fs-dev] [PATCH v2 0/7] Support negative dentries on case-insensitive ext4 and f2fs Gabriel Krisman Bertazi
2023-06-07 18:35 ` Gabriel Krisman Bertazi
-- strict thread matches above, loose matches on Subject: below --
2023-02-03 21:00 Gabriel Krisman Bertazi
2023-02-03 21:00 ` [PATCH v2 4/7] libfs: Support revalidation of encrypted case-insensitive dentries Gabriel Krisman Bertazi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h6q1580a.fsf@suse.de \
--to=krisman@suse.de \
--cc=brauner@kernel.org \
--cc=ebiggers@kernel.org \
--cc=jaegeuk@kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.