code: func (l *lockServer) lockMaintenance(interval time.Duration) {
  	l.mutex.Lock()
  	// Get list of long lived locks to check for staleness.
  	nlripLongLived := getLongLivedLocks(l.lockMap, interval)
  	l.mutex.Unlock()
  
  	// Validate if long lived locks are indeed clean.
  	for _, nlrip := range nlripLongLived {
  		// Initialize client based on the long live locks.
  		c := newClient(nlrip.lri.serverAddr, nlrip.lri.rpcPath)
  
  		var expired bool
  
  		// Call back to original server to verify whether the lock is still active (based on name & uid)
  		// We will ignore any errors (see above for reasons), such locks will be retried later to get resolved
  		c.Call("Dsync.Expired", &dsync.LockArgs{
  			Resource: nlrip.name,
  			UID:      nlrip.lri.uid,
  		}, &expired)
  		c.Close()
  
  		if expired {
  			// The lock is no longer active at server that originated the lock
  			// So remove the lock from the map.
  			l.mutex.Lock()
  			l.removeEntryIfExists(nlrip) // Purge the stale entry if it exists.
  			l.mutex.Unlock()
  		}
  	}
  }
docs: // lockMaintenance loops over locks that have been active for some time and checks back
  // with the original server whether it is still alive or not
  //
  // Following logic inside ignores the errors generated for Dsync.Expired operation.
  // - server at client down
  // - some network error (and server is up normally)
  //
  // We will ignore the error, and we will retry later to get a resolve on this lock