Qid.type == mode>>24, and since they should agree, they have equal authority. it's the file server or the device driver that ensures equality. dev.c:/^devdir\( does so for many device drivers, based on the type value of the incoming Qid.
it looks like a mistake that devusb.c doesn't set QTEXCL in Qid.type when the mode requires it, but perhaps devdir should also merge the bits both ways (ie, set qid.type |= mode>>24 as well as db->mode |= qid.type<<24)
