----- Original Message ----- > From: "Sage Weil" <sage@xxxxxxxxxxxx> > > The mode for the newly created object is being passed to the mds for > each > request as part of the args struct/union. And it looks like it's being > used on the MDS for everything except symlink (which always gets 0777 > + > the type bits). For example, for mkdir, it's > > unsigned mode = req->head.args.mkdir.mode; > mode &= ~S_IFMT; > mode |= S_IFDIR; Since S_IFDIR (for example) is added by the MDS and the ACL is computed before the initial MDS request is made (and the final mode is available), the ACL code ends up looking like: if (req->op == CEPH_MDS_OP_MKDIR) { ... rather than if (S_ISDIR(mode)) { ... which, I suppose isn't a big deal. Should we go with the this, or is there a potential to fully compute the mode arguments on the client to allow reuse of the nice S_ISDIR (etc...) macros? > and on the client there is > > req->r_args.mkdir.mode = cpu_to_le32(mode); > > in ceph_mkdir() in dir.c. Thanks, this is the part I originally was wondering about. Twas right under my nose. -Noah -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html