On Thu, Oct 12, 2023 at 11:26 AM Christian Brauner <brauner@xxxxxxxxxx> wrote: > > > > Christian, > > > > > > Do you know any userspace that already uses your new append prefixes? > > > Do we have any good reason to support "lowerdir_first" > > > so a lower dir stack could be reset before creating the sb? > > > > If that is a requirement, I suggest extending fsconfig(2) to allow > > resetting an option. > > Overlayfs does already support this. If you pass: > fsconfig(FSCONFIG_SET_STRING, "lowerdir", "", ...) > then the lower layer stack is reset. I've implemented it that way in > ovl_parse_param_lowerdir(). > Yes, I noticed that. Cool. > > > > > > > > > > > > > > > > Anyway, let's focus on what you would like best. > > > > > > > If you prefer to just fix the regression, it is doable. > > > > > > > If you prefer the upperdirfd, workdirfd, lowerdirfd API, I think we can > > > > > > > find a volunteer to write it up. > > > > Can't the existing option names be overloaded if a separate cmd > > (FSCONFIG_SET_PATH or FSCONFIG_SET_PATH_EMPTY) is used in fsconfig()? > > Yes, they can and filesystems do do that today depending on whether they > want to e.g., take an fd or a path or something. Nice. It seems like Miklos has volunteered to implement the dirfd and/or unescaped API variants for the new mount API :) What is your opinion about the original regression report regarding escaping of commas in ->parse_monolithic()? It's easy to implement ovl_parse_monolithic() that will conform to the old ovl_next_opt() behavior, but it does not solve the problem long term. If there are currently setups in the wild that pass arguments like [lowerdir=/tmp/a\,b/], even if I do fix up ovl_parse_monolithic() those setups will regress when they upgrade to libmount v2.39, because AFAICT, libmount does not respect "\," to escape option split, it respects [lowerdir="/tmp/a,b/"] to escape option split. If we do decide that we need to or want to fix ->parse_monolithic() then do you think it would make sense to respect "\," escaping in generic_parse_monolithic()? I cannot imagine any workload that would get regressed by this (famous last words). Thoughts? Thanks, Amir.