Re: UTF-8 and case-insensitivity

Jamie Lokier
2004-02-19T18:30:55Z

Linus Torvalds wrote:
> > > For example, the rule can be that _any_ regular dentry create will
> > > invalidate all the "case-insensitive" dentries. Just to be simple about
> > > it.
> >
> > If that's the rule, then with exactly the same algorithmic efficiency,
> > readdir+dnotify can be used to maintain the cache in userspace
> > instead. There is nothing gained by using the helper module in that case.
>
> Wrong.
> Because the dnotify would trigger EVEN FOR SAMBA OPERATIONS.

Ah, I didn't know you meant "_any_ regular dentry create (except for
Samba operations)".

To apply that rule, you either need alternate versions of rename() and
other file syscalls, or something akin to a process-specific flag (set
by the helper module) saying that this is a Samba process and dentry
creation _by this process_ shouldn't invalidate case-insensitive
dentries.

And if you have either of those, the bit of code which says "don't
invalidate case-insenitive dentries because this is a Samba process"
can just as easily say "don't send dnotify events to the current
process".

And once you've done that, it's easier just to add a DN_IGNORE_SELF
flag to dnotify meaning to ignore events caused by the current
process, and forget about the helper module. That'd be useful for
other programs, too.

-- Jamie