lkml.org 
[lkml]   [2022]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH v11 19/51] ceph: make d_revalidate call fscrypt revalidator for encrypted dentries
    Date
    If we have a dentry which represents a no-key name, then we need to test
    whether the parent directory's encryption key has since been added. Do
    that before we test anything else about the dentry.

    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    ---
    fs/ceph/dir.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
    index 897f8618151b..caf2547c3fe1 100644
    --- a/fs/ceph/dir.c
    +++ b/fs/ceph/dir.c
    @@ -1709,6 +1709,10 @@ static int ceph_d_revalidate(struct dentry *dentry, unsigned int flags)
    struct inode *dir, *inode;
    struct ceph_mds_client *mdsc;

    + valid = fscrypt_d_revalidate(dentry, flags);
    + if (valid <= 0)
    + return valid;
    +
    if (flags & LOOKUP_RCU) {
    parent = READ_ONCE(dentry->d_parent);
    dir = d_inode_rcu(parent);
    @@ -1721,8 +1725,8 @@ static int ceph_d_revalidate(struct dentry *dentry, unsigned int flags)
    inode = d_inode(dentry);
    }

    - dout("d_revalidate %p '%pd' inode %p offset 0x%llx\n", dentry,
    - dentry, inode, ceph_dentry(dentry)->offset);
    + dout("d_revalidate %p '%pd' inode %p offset 0x%llx nokey %d\n", dentry,
    + dentry, inode, ceph_dentry(dentry)->offset, !!(dentry->d_flags & DCACHE_NOKEY_NAME));

    mdsc = ceph_sb_to_client(dir->i_sb)->mdsc;

    --
    2.35.1
    \
     
     \ /
      Last update: 2022-03-22 15:14    [W:4.151 / U:0.960 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site