mongos sends the authSchemaUpgrade command to each individual shard here, but provides a 30sec wtimeout and writeConcern majority rather than passing on what the user gave it. The command object is built here:
BSONObjBuilder cmdObjBuilder;
cmdObjBuilder.append("authSchemaUpgrade", 1);
cmdObjBuilder.append("maxSteps", maxSteps);
cmdObjBuilder.append("writeConcern", kMajorityWriteConcern.toBSON());
with the following hard-coded writeConcern:
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// Note: Even though we're setting UNSET here,
// kMajority implies JOURNAL if journaling is
// supported by this mongod.
WriteConcernOptions::SyncMode::UNSET,
Seconds(30));