WebDAV improvements: flush fix, RwLock recovery, expired lock cleanup, atomic set_times
Some checks failed
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled

P0 fixes:
- flush(): add flushed flag, proper error logging, Drop warning for data loss
- props_data RwLock: replace unwrap() with try_read/try_write recovery
- PersistedLs: add is_expired() + cleanup_expired_locks() helper

P1 improvements:
- Props persistence via VFS (load_props/save_props/patch_props)
- COPY/MOVE sync dead props (copy on COPY, move key on rename)
- Atomic set_atime/set_mtime via filetime crate (no race condition)

New files:
- webdav_locks.rs: PersistedLs with lock persistence + expiry cleanup

Tests: 288 passed, 0 failed
This commit is contained in:
Warren
2026-06-21 16:07:12 +08:00
parent 614275f77a
commit 9acd174388
9 changed files with 1940 additions and 112 deletions

2
Cargo.lock generated
View File

@@ -2890,6 +2890,7 @@ dependencies = [
"futures-util",
"hex",
"hmac 0.12.1",
"http",
"log",
"md5 0.8.0",
"nix 0.29.0",
@@ -2926,6 +2927,7 @@ dependencies = [
"url",
"uuid",
"x25519-dalek",
"xmltree",
"xz2",
"zip",
"zstd 0.13.3",