mbox series

[0/2] fs/dcache: fix cache inconsistency on case-insensitive lookups

Message ID 20240705062621.630604-1-eugen.hristev@collabora.com (mailing list archive)
Headers show
Series fs/dcache: fix cache inconsistency on case-insensitive lookups | expand

Message

Eugen Hristev July 5, 2024, 6:26 a.m. UTC
Hello,

This is an attempt to go back to this old patch series here :

https://lore.kernel.org/lkml/cover.1632909358.git.shreeya.patel@collabora.com/

First patch fixes a possible hang when d_add_ci is called from a filesystem's
lookup function (like xfs is doing)
d_alloc_parallel -> lookup -> d_add_ci -> d_alloc_parallel

Second patch solves the issue of having the dcache saving the entry with
the same case as it's being looked up instead of saving the real file name
from the storage.
Please check above thread for motivation on why this should be changed.

Some further old discussions here as well:
https://patchwork.ozlabs.org/project/linux-ext4/patch/20180924215655.3676-20-krisman@collabora.co.uk/

I am not sure whether this is the right way to fix this, but I think
I have considered all cases discussed in previous threads.

Thank you for your review and consideration,
Eugen


Eugen Hristev (2):
  fs/dcache: introduce d_alloc_parallel_check_existing
  ext4: in lookup call d_add_ci if there is a case mismatch

 fs/dcache.c            | 29 +++++++++++++++++++++++------
 fs/ext4/namei.c        | 13 +++++++++++++
 include/linux/dcache.h |  4 ++++
 3 files changed, 40 insertions(+), 6 deletions(-)

Comments

Eugen Hristev Aug. 15, 2024, 6:02 a.m. UTC | #1
On 7/5/24 09:26, Eugen Hristev wrote:
> Hello,
> 
> This is an attempt to go back to this old patch series here :
> 
> https://lore.kernel.org/lkml/cover.1632909358.git.shreeya.patel@collabora.com/
> 
> First patch fixes a possible hang when d_add_ci is called from a filesystem's
> lookup function (like xfs is doing)
> d_alloc_parallel -> lookup -> d_add_ci -> d_alloc_parallel
> 
> Second patch solves the issue of having the dcache saving the entry with
> the same case as it's being looked up instead of saving the real file name
> from the storage.
> Please check above thread for motivation on why this should be changed.
> 
> Some further old discussions here as well:
> https://patchwork.ozlabs.org/project/linux-ext4/patch/20180924215655.3676-20-krisman@collabora.co.uk/
> 
> I am not sure whether this is the right way to fix this, but I think
> I have considered all cases discussed in previous threads.
> 
> Thank you for your review and consideration,
> Eugen
> 

Hello,

I have sent this series a while back, anyone has any opinion on whether it's a good
way to solve the problem ?

Thank you,
Eugen

> 
> Eugen Hristev (2):
>   fs/dcache: introduce d_alloc_parallel_check_existing
>   ext4: in lookup call d_add_ci if there is a case mismatch
> 
>  fs/dcache.c            | 29 +++++++++++++++++++++++------
>  fs/ext4/namei.c        | 13 +++++++++++++
>  include/linux/dcache.h |  4 ++++
>  3 files changed, 40 insertions(+), 6 deletions(-)
>