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
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
copyrangemethod.pb.go
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
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
filesystem_copy_range_standard.go
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
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
types.pb.go
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