Lines Matching refs:dirent
170 struct bkey_i_dirent *dirent; in dirent_create_key() local
178 dirent = bch2_trans_kmalloc(trans, u64s * sizeof(u64)); in dirent_create_key()
179 if (IS_ERR(dirent)) in dirent_create_key()
180 return dirent; in dirent_create_key()
182 bkey_dirent_init(&dirent->k_i); in dirent_create_key()
183 dirent->k.u64s = u64s; in dirent_create_key()
186 dirent->v.d_inum = cpu_to_le64(dst); in dirent_create_key()
188 dirent->v.d_parent_subvol = cpu_to_le32(dir.subvol); in dirent_create_key()
189 dirent->v.d_child_subvol = cpu_to_le32(dst); in dirent_create_key()
192 dirent->v.d_type = type; in dirent_create_key()
194 memcpy(dirent->v.d_name, name->name, name->len); in dirent_create_key()
195 memset(dirent->v.d_name + name->len, 0, in dirent_create_key()
196 bkey_val_bytes(&dirent->k) - in dirent_create_key()
200 EBUG_ON(bch2_dirent_name_bytes(dirent_i_to_s_c(dirent)) != name->len); in dirent_create_key()
202 return dirent; in dirent_create_key()
213 struct bkey_i_dirent *dirent; in bch2_dirent_create_snapshot() local
216 dirent = dirent_create_key(trans, dir_inum, type, name, dst_inum); in bch2_dirent_create_snapshot()
217 ret = PTR_ERR_OR_ZERO(dirent); in bch2_dirent_create_snapshot()
221 dirent->k.p.inode = dir; in bch2_dirent_create_snapshot()
222 dirent->k.p.snapshot = snapshot; in bch2_dirent_create_snapshot()
225 dir_inum, snapshot, &dirent->k_i, in bch2_dirent_create_snapshot()
227 *dir_offset = dirent->k.p.offset; in bch2_dirent_create_snapshot()
238 struct bkey_i_dirent *dirent; in bch2_dirent_create() local
241 dirent = dirent_create_key(trans, dir, type, name, dst_inum); in bch2_dirent_create()
242 ret = PTR_ERR_OR_ZERO(dirent); in bch2_dirent_create()
247 dir, &dirent->k_i, flags); in bch2_dirent_create()
248 *dir_offset = dirent->k.p.offset; in bch2_dirent_create()
561 struct bkey_s_c_dirent dirent = bkey_i_to_s_c_dirent(sk.k); in bch2_readdir()
564 int ret2 = bch2_dirent_read_target(trans, inum, dirent, &target); in bch2_readdir()
568 ret2 ?: drop_locks_do(trans, bch2_dir_emit(ctx, dirent, target)); in bch2_readdir()