Re: [PATCH v2 4/7] libfs: Support revalidation of encrypted case-insensitive dentries

Eric Biggers
2023-07-14T05:33:24Z

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.

- Eric