diff --git a/vendor/smb-server/src/handlers/close.rs b/vendor/smb-server/src/handlers/close.rs index 6707640..10ec359 100644 --- a/vendor/smb-server/src/handlers/close.rs +++ b/vendor/smb-server/src/handlers/close.rs @@ -44,6 +44,7 @@ pub async fn handle( let path = open.last_path.clone(); let delete_on_close = open.delete_on_close; let oplock_level = open.oplock_level; + let lease_key = open.lease_key.clone(); // Phase 4: for lease unregister let want_attrs = req.flags & FLAG_POSTQUERY_ATTRIB != 0; drop(open); @@ -51,6 +52,11 @@ pub async fn handle( if oplock_level > 0 { server.oplock_manager.unregister(&path, &req.file_id).await; } + + // Phase 4: Unregister from LeaseManager if lease was granted + if let Some(lease_key) = lease_key { + server.lease_manager.unregister(&lease_key).await; + } // Phase 7: Clear all byte-range locks for this file server.lock_manager.clear(&req.file_id).await;