lkml.org 
[lkml]   [2015]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [RFC v7 14/41] richacl: Create-time inheritance
    From
    2015-09-18 19:58 GMT+02:00 J. Bruce Fields <bfields@fieldses.org>:
    > On Sat, Sep 05, 2015 at 12:27:09PM +0200, Andreas Gruenbacher wrote:
    >> + if (dir_ace->e_flags & RICHACE_NO_PROPAGATE_INHERIT_ACE)
    >> + ace->e_flags &= ~RICHACE_INHERITANCE_FLAGS;
    >> + else if ((dir_ace->e_flags & RICHACE_FILE_INHERIT_ACE) &&
    >> + !(dir_ace->e_flags & RICHACE_DIRECTORY_INHERIT_ACE))
    >
    > The FILE_INHERIT_ACE check there is redundant since we already know
    > dir_ace is inheritable.
    >
    > (So, OK, it isn't wrong to check it again but let's not make this
    > condition any more complicated than necessary.)

    Indeed, we can turn it into:

    if (dir_ace->e_flags & RICHACE_NO_PROPAGATE_INHERIT_ACE)
    ace->e_flags &= ~RICHACE_INHERITANCE_FLAGS;
    else if (!(dir_ace->e_flags & RICHACE_DIRECTORY_INHERIT_ACE))
    ace->e_flags |= RICHACE_INHERIT_ONLY_ACE;

    >> +static struct richacl *
    >> +richacl_inherit_inode(const struct richacl *dir_acl, struct inode *inode)
    >> +{
    >> + struct richacl *acl;
    >> + mode_t mask;
    >> +
    >> + acl = richacl_inherit(dir_acl, S_ISDIR(inode->i_mode));
    >> + if (acl) {
    >> + mask = inode->i_mode;
    >> + if (richacl_equiv_mode(acl, &mask) == 0) {
    >> + richacl_put(acl);
    >> + acl = NULL;
    >
    > Why is it correct to ignore entirely the inherited acl in this case?
    >
    > Oh, I see, I'm forgetting that richacl_equiv_mode is setting the mask,
    > which will get applied at the end of this function. In my defense,
    > maybe it's easy to overlook a side effect in an if condition.... But I
    > don't have a better idea. OK.

    Yes. I'll leave that as it is.

    > So, nits aside:
    >
    > Reviewed-by: J. Bruce Fields <bfields@redhat.com>

    Thanks,
    Andreas


    \
     
     \ /
      Last update: 2015-09-21 23:01    [W:2.378 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site