Chris Lu
3514925581
filer: let a nested path rule turn worm off ( #10503 )
...
* filer: let a nested path rule turn worm off
mergePathConf ORs the booleans, so worm set on a bucket could never be
lifted on a directory under it, while every string field is overridden by
the more specific rule. Make worm tri-state instead: unset inherits, set
wins. readOnly, fsync and disableChunkDeletion keep the OR, so a nested
rule still cannot escape a lock the bucket set.
Configurations written before this carry an explicit "worm": false on
every rule, because they are marshalled with EmitUnpopulated. Reading
those back as an override would quietly drop worm from nested paths, so
filer.conf is now stamped with a version and the flag is dropped to unset
when the version predates it.
* filer: copy the worm value out of the matched rule
mergePathConf aliased the pointer into the merged result, so a caller that
wrote through it would reach into the stored rule.
2026-07-31 00:34:22 -07:00
..
2026-07-23 17:44:02 -07:00
2026-05-06 15:26:56 -07:00
2026-02-20 18:42:00 -08:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-03-23 13:35:16 -07:00
2026-07-23 17:44:02 -07:00
2026-03-30 18:25:11 -07:00
2026-07-31 00:34:22 -07:00
2026-06-25 19:17:32 -07:00
2026-06-25 19:17:32 -07:00
2026-01-07 13:06:08 -08:00
2026-07-23 17:44:02 -07:00
2026-06-24 19:54:03 -07:00
2026-06-24 14:24:22 -07:00
2026-06-16 09:16:24 -07:00
2026-06-16 09:16:24 -07:00
2026-04-16 00:44:24 -07:00
2026-04-18 20:03:34 -07:00
2026-04-18 20:03:34 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-18 21:42:36 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-18 20:18:38 -07:00
2026-04-19 00:53:12 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-05-01 19:51:27 -07:00
2026-05-01 19:51:27 -07:00
2026-04-03 16:04:27 -07:00
2026-06-18 17:38:28 -07:00
2026-06-18 17:38:28 -07:00
2026-07-23 17:44:02 -07:00
2026-06-24 14:24:22 -07:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-05-24 23:49:41 -07:00
2026-07-23 17:44:02 -07:00
2026-04-16 00:44:24 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-03-29 13:33:17 -07:00
2026-03-29 13:33:17 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-16 11:37:52 -07:00
2026-06-24 14:24:22 -07:00
2026-05-24 23:56:37 -07:00
2026-01-06 10:50:54 -08:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-01-06 10:50:54 -08:00
2026-06-24 19:54:03 -07:00
2026-07-23 17:44:02 -07:00
2026-07-15 22:01:19 -07:00
2026-07-23 17:44:02 -07:00
2026-06-02 14:43:46 -07:00
2026-01-07 13:06:08 -08:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-05-24 23:56:37 -07:00
2026-07-23 17:44:02 -07:00
2026-01-07 13:06:08 -08:00
2026-07-27 14:28:29 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-27 14:28:29 -07:00
2026-07-27 14:28:29 -07:00
2026-03-25 20:06:34 -07:00
2026-04-10 13:05:48 -07:00
2026-07-23 17:44:02 -07:00
2026-03-24 11:43:41 -07:00
2026-04-15 14:06:06 -07:00
2026-06-30 20:45:43 -07:00
2026-01-06 10:50:54 -08:00
2026-07-23 17:44:02 -07:00
2026-06-23 01:31:14 -07:00
2026-07-27 14:28:29 -07:00
2026-06-01 15:11:02 -07:00
2026-04-23 19:17:35 -07:00
2026-07-23 17:44:02 -07:00