Re: mds: handle xattrs on inode creation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- 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


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux