code: func (s *Session) EnsureSafe(safe *Safe) {
  	s.m.Lock()
  	s.ensureSafe(safe)
  	s.m.Unlock()
  }
docs: // EnsureSafe compares the provided safety parameters with the ones
  // currently in use by the session and picks the most conservative
  // choice for each setting.
  //
  // That is:
  //
  //     - safe.WMode is always used if set.
  //     - safe.W is used if larger than the current W and WMode is empty.
  //     - safe.FSync is always used if true.
  //     - safe.J is used if FSync is false.
  //     - safe.WTimeout is used if set and smaller than the current WTimeout.
  //
  // For example, the following statement will ensure the session is
  // at least checking for errors, without enforcing further constraints.
  // If a more conservative SetSafe or EnsureSafe call was previously done,
  // the following call will be ignored.
  //
  //     session.EnsureSafe(&mgo.Safe{})
  //
  // See also the SetSafe method for details on what each option means.
  //
  // Relevant documentation:
  //
  //     http://www.mongodb.org/display/DOCS/getLastError+Command
  //     http://www.mongodb.org/display/DOCS/Verifying+Propagation+of+Writes+with+getLastError
  //     http://www.mongodb.org/display/DOCS/Data+Center+Awareness
  //