Lines Matching refs:dir
153 int ceph_fscrypt_prepare_context(struct inode *dir, struct inode *inode, in ceph_fscrypt_prepare_context() argument
160 ret = fscrypt_prepare_new_inode(dir, inode, &encrypted); in ceph_fscrypt_prepare_context()
216 struct inode *dir = NULL; in parse_longname() local
246 dir = ceph_find_inode(parent->i_sb, vino); in parse_longname()
247 if (!dir) { in parse_longname()
249 dir = ceph_get_inode(parent->i_sb, vino, NULL); in parse_longname()
250 if (IS_ERR(dir)) in parse_longname()
253 return dir; in parse_longname()
259 struct inode *dir = parent; in ceph_encode_encrypted_dname() local
267 if (ceph_snap(dir) == CEPH_SNAPDIR && *p == '_') { in ceph_encode_encrypted_dname()
268 dir = parse_longname(parent, p, &name_len); in ceph_encode_encrypted_dname()
269 if (IS_ERR(dir)) in ceph_encode_encrypted_dname()
270 return PTR_ERR(dir); in ceph_encode_encrypted_dname()
274 if (!fscrypt_has_encryption_key(dir)) in ceph_encode_encrypted_dname()
283 if (!fscrypt_fname_encrypted_size(dir, name_len, NAME_MAX, &len)) { in ceph_encode_encrypted_dname()
296 ret = fscrypt_fname_encrypt(dir, in ceph_encode_encrypted_dname()
324 if (dir != parent) // leading _ is already there; append _<inum> in ceph_encode_encrypted_dname()
325 elen += 1 + sprintf(p + elen, "_%ld", dir->i_ino); in ceph_encode_encrypted_dname()
329 if (dir != parent) { in ceph_encode_encrypted_dname()
330 if ((dir->i_state & I_NEW)) in ceph_encode_encrypted_dname()
331 discard_new_inode(dir); in ceph_encode_encrypted_dname()
333 iput(dir); in ceph_encode_encrypted_dname()
356 struct inode *dir = fname->dir; in ceph_fname_to_usr() local
368 if ((ceph_snap(dir) == CEPH_SNAPDIR) && (name_len > 0) && in ceph_fname_to_usr()
370 dir = parse_longname(dir, name, &name_len); in ceph_fname_to_usr()
371 if (IS_ERR(dir)) in ceph_fname_to_usr()
372 return PTR_ERR(dir); in ceph_fname_to_usr()
376 if (!IS_ENCRYPTED(dir)) { in ceph_fname_to_usr()
383 ret = ceph_fscrypt_prepare_readdir(dir); in ceph_fname_to_usr()
391 if (!fscrypt_has_encryption_key(dir)) { in ceph_fname_to_usr()
425 ret = fscrypt_fname_disk_to_usr(dir, 0, 0, &iname, oname); in ceph_fname_to_usr()
426 if (!ret && (dir != fname->dir)) { in ceph_fname_to_usr()
430 oname->len, oname->name, dir->i_ino); in ceph_fname_to_usr()
438 if (dir != fname->dir) { in ceph_fname_to_usr()
439 if ((dir->i_state & I_NEW)) in ceph_fname_to_usr()
440 discard_new_inode(dir); in ceph_fname_to_usr()
442 iput(dir); in ceph_fname_to_usr()
459 int ceph_fscrypt_prepare_readdir(struct inode *dir) in ceph_fscrypt_prepare_readdir() argument
461 bool had_key = fscrypt_has_encryption_key(dir); in ceph_fscrypt_prepare_readdir()
464 if (!IS_ENCRYPTED(dir)) in ceph_fscrypt_prepare_readdir()
467 err = __fscrypt_prepare_readdir(dir); in ceph_fscrypt_prepare_readdir()
470 if (!had_key && fscrypt_has_encryption_key(dir)) { in ceph_fscrypt_prepare_readdir()
472 ceph_dir_clear_complete(dir); in ceph_fscrypt_prepare_readdir()