On Tue, Jan 17, 2023 at 1:35 AM Paulo Alcantara <pc@xxxxxx> wrote: > - down_write(&htable_rw_lock); > + down_read(&htable_rw_lock); > > ce = lookup_cache_entry(path); > - if (!IS_ERR(ce)) { > - if (!cache_entry_expired(ce)) { > - dump_ce(ce); > - up_write(&htable_rw_lock); > - return 0; > - } > - } else { > - newent = true; > + if (!IS_ERR(ce) && !cache_entry_expired(ce)) { > + up_read(&htable_rw_lock); > + return 0; > } > > + up_read(&htable_rw_lock); Please add a comment before the up_read() to say why you do it here and where is the dead lock. Otherwise looks good