macOS Time Machine AFP monitoring: backup_time update on file modification

- Added afp_monitor.rs module to track AFP_AfpInfo backup_time
- Open struct now has 'modified' flag to track file modifications
- write.rs sets modified=true on successful write
- close.rs calls AfpMonitor::update_backup_time() on modified files
- create.rs calls AfpMonitor::init_afp_info() on new file creation
- AFP_AfpInfo stored as xattr com.apple.aapl.AfpInfo
- backup_time updated to current epoch time on modification

Also includes:
- LZ4 compression using lz4_flex crate
- Case sensitivity conditional on backend capabilities
- LDAP cfg feature gate fix
- RAID rebuild reconstruction implementation
- DOS attributes xattr persistence
- Snapshot disk persistence

Tests: 201 smb-server, 452 markbase-core (653 total)
This commit is contained in:
Warren
2026-06-24 00:46:33 +08:00
parent 5300b672cb
commit 57fd6a475f
33 changed files with 1211 additions and 253 deletions
+3 -2
View File
@@ -27,7 +27,7 @@ impl Compressor {
.map_err(|e| VfsError::Io(format!("ZSTD compression failed: {}", e)))
}
VfsCompression::Lz4 => {
Err(VfsError::Unsupported("LZ4 compression not yet implemented".to_string()))
Ok(lz4_flex::compress_prepend_size(data))
}
}
}
@@ -40,7 +40,8 @@ impl Compressor {
.map_err(|e| VfsError::Io(format!("ZSTD decompression failed: {}", e)))
}
VfsCompression::Lz4 => {
Err(VfsError::Unsupported("LZ4 decompression not yet implemented".to_string()))
lz4_flex::decompress_size_prepended(data)
.map_err(|e| VfsError::Io(format!("LZ4 decompression failed: {}", e)))
}
}
}