syncthing/lib/fs
Jakob Borg 6cac308bcd
all: Support syncing extended attributes (fixes #2698) (#8513)
This adds support for syncing extended attributes on supported
filesystem on Linux, macOS, FreeBSD and NetBSD. Windows is currently
excluded because the APIs seem onerous and annoying and frankly the uses
cases seem few and far between. On Unixes this also covers ACLs as those
are stored as extended attributes.

Similar to ownership syncing this will optional & opt-in, which two
settings controlling the main behavior: one to "sync" xattrs (read &
write) and another one to "scan" xattrs (only read them so other devices
can "sync" them, but not apply any locally).

Co-authored-by: Tomasz Wilczyński <twilczynski@naver.com>
2022-09-14 09:50:55 +02:00
..
basicfs_copy_range_copyfilerange.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_copy_range_duplicateextents.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_copy_range_ioctl.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_copy_range_sendfile.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_copy_range.go lib/fs: Unwrap mtimeFile, get fd the "correct" way (ref #6875) (#6877) 2020-08-07 07:47:48 +02:00
basicfs_fileinfo_bsdish.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_fileinfo_linuxish.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_fileinfo_unix.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_fileinfo_windows.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_lstat_broken.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_lstat_regular.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_lstat_windows.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_platformdata_unix.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_platformdata_windows.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_test.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_unix.go lib/fs: Cache user lookups (#8496) 2022-08-12 07:48:00 +02:00
basicfs_watch_errors_linux.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch_errors_others.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch_eventtypes_darwin.go lib/fs: Handle permission change events on macos (fixes #7924) (#8150) 2022-01-30 17:21:21 +01:00
basicfs_watch_eventtypes_fen.go lib/fs: Do not follow symlinks in watcher on solaris (fixes #8020) (#8223) 2022-03-24 08:36:43 +01:00
basicfs_watch_eventtypes_inotify.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch_eventtypes_kqueue.go lib/fs, lib/model: Add warning about kqueue resource usage (fixes #7855) (#8249) 2022-04-05 21:32:06 +02:00
basicfs_watch_eventtypes_other.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch_eventtypes_readdcw.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch_notkqueue.go lib/fs, lib/model: Add warning about kqueue resource usage (fixes #7855) (#8249) 2022-04-05 21:32:06 +02:00
basicfs_watch_test.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
basicfs_watch_unsupported.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
basicfs_watch.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00
basicfs_windows_test.go all: use T.TempDir to create temporary test directory (#8280) 2022-04-15 07:44:06 +04:00
basicfs_windows.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
basicfs_xattr_bsdish.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_xattr_linuxish.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_xattr_unix.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs_xattr_unsupported.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
basicfs.go lib/fs: Cache user lookups (#8496) 2022-08-12 07:48:00 +02:00
casefs_test.go all: Fix various user-facing and non-user-facing typos (#8509) 2022-08-23 15:44:11 +02:00
casefs.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00
copyrangemethod.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
copyrangemethod.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
debug_symlink_unix.go all: Update build constraints to Go 1.17 style (#7894) 2021-08-17 10:10:41 +02:00
debug_symlink_windows.go all: Fix Microsoft documentation links in code comments (#7387) 2021-02-20 14:56:45 +01:00
debug.go all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
errorfs.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
fakefs_test.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
fakefs.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
filesystem_copy_range_allwithfallback.go lib/fs: Add support for Windows duplicate extents (#6764) 2020-06-18 22:32:26 +01:00
filesystem_copy_range_standard.go all: Add copy-on-write filesystem support (fixes #4271) (#6746) 2020-06-18 08:15:47 +02:00
filesystem_copy_range_test.go all: Remove usage of deprecated io/ioutil (#7971) 2021-11-22 08:59:47 +01:00
filesystem_copy_range.go all: Add copy-on-write filesystem support (fixes #4271) (#6746) 2020-06-18 08:15:47 +02:00
filesystem_test.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
filesystem.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
folding_test.go lib/fs: Fix UnicodeLowercaseNormalized on lowercase NFD (#7692) 2021-05-17 20:43:07 +02:00
folding.go lib/fs: Fix UnicodeLowercaseNormalized on lowercase NFD (#7692) 2021-05-17 20:43:07 +02:00
logfs.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00
mtimefs_test.go all: Fix various user-facing and non-user-facing typos (#8509) 2022-08-23 15:44:11 +02:00
mtimefs.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00
platform_common.go all: Support syncing extended attributes (fixes #2698) (#8513) 2022-09-14 09:50:55 +02:00
tempname_test.go lib/fs: Optimize TempName + some cosmetic changes (#7911) 2021-08-29 10:47:53 +02:00
tempname.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
types.go all: Use protobuf to generate config structs (fixes #6734) (#6900) 2020-08-25 08:11:14 +02:00
types.pb.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
util_test.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
util.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
walkfs_test.go all: Add build constants for runtime.GOOS comparisons (#8442) 2022-07-28 19:36:39 +02:00
walkfs.go all: Remove unused method receivers (#8462) 2022-07-28 17:32:45 +02:00