Como você descobriu, o xattrs funcionará, mas existem arestas ásperas.
Às vezes, você precisa abordar o código-fonte aberto como um antropólogo. Se isso não for útil por si só, talvez isso provoque algumas contribuições melhores (ou, eventualmente, correções de código!)
Eu encontrei isso no código-fonte:
/*
* Register property callbacks.
*
* It would probably be fine to just check for i/o error from
* the first prop_register(), but I guess I like to go
* overboard...
*/
error = dsl_prop_register(ds,
zfs_prop_to_name(ZFS_PROP_ATIME), atime_changed_cb, zfsvfs);
error = error ? error : dsl_prop_register(ds,
zfs_prop_to_name(ZFS_PROP_XATTR), xattr_changed_cb, zfsvfs);
error = error ? error : dsl_prop_register(ds,
zfs_prop_to_name(ZFS_PROP_RECORDSIZE), blksz_changed_cb, zfsvfs);
e isso link
e ainda assim você pausa: link
Então, o que acho que está realmente acontecendo é que xattrs funcionam , mas a funcionalidade de desativá-las (ou ativadas) pelas propriedades do conjunto de dados do ZFS é interrompida, então a mensagem "não suportada" significa "você" por conta própria. "
Existe algum código lá que define o MNTOPT_XATTR, mas eu não o tracei. tentar alterá-lo usando o zfs set faz com que você receba a mensagem sem suporte. Meu palpite é que explica a estranheza da propriedade zat xattr com /, / usr, / var e a configuração / comportamento conflitante de / home.
Isso lança alguma luz sobre as coisas. link