Lines Matching refs:pm
3391 struct pending_dir_move *entry = NULL, *pm; in add_pending_dir_move() local
3396 pm = kmalloc(sizeof(*pm), GFP_KERNEL); in add_pending_dir_move()
3397 if (!pm) in add_pending_dir_move()
3399 pm->parent_ino = parent_ino; in add_pending_dir_move()
3400 pm->ino = ino; in add_pending_dir_move()
3401 pm->gen = ino_gen; in add_pending_dir_move()
3402 INIT_LIST_HEAD(&pm->list); in add_pending_dir_move()
3403 INIT_LIST_HEAD(&pm->update_refs); in add_pending_dir_move()
3404 RB_CLEAR_NODE(&pm->node); in add_pending_dir_move()
3420 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3425 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3430 ret = add_waiting_dir_move(sctx, pm->ino, is_orphan); in add_pending_dir_move()
3435 list_add_tail(&pm->list, &entry->list); in add_pending_dir_move()
3437 rb_link_node(&pm->node, parent, p); in add_pending_dir_move()
3438 rb_insert_color(&pm->node, &sctx->pending_dir_moves); in add_pending_dir_move()
3443 __free_recorded_refs(&pm->update_refs); in add_pending_dir_move()
3444 kfree(pm); in add_pending_dir_move()
3509 static int apply_dir_move(struct send_ctx *sctx, struct pending_dir_move *pm) in apply_dir_move() argument
3531 dm = get_waiting_dir_move(sctx, pm->ino); in apply_dir_move()
3539 ret = gen_unique_name(sctx, pm->ino, in apply_dir_move()
3540 pm->gen, from_path); in apply_dir_move()
3542 ret = get_first_ref(sctx->parent_root, pm->ino, in apply_dir_move()
3556 ret = path_loop(sctx, name, pm->ino, pm->gen, &ancestor); in apply_dir_move()
3562 ret = add_pending_dir_move(sctx, pm->ino, pm->gen, ancestor, in apply_dir_move()
3563 &pm->update_refs, &deleted_refs, in apply_dir_move()
3568 dm = get_waiting_dir_move(sctx, pm->ino); in apply_dir_move()
3578 ret = get_cur_path(sctx, pm->ino, pm->gen, to_path); in apply_dir_move()
3617 ret = cache_dir_utimes(sctx, pm->ino, pm->gen); in apply_dir_move()
3625 list_for_each_entry(cur, &pm->update_refs, list) { in apply_dir_move()
3681 struct pending_dir_move *pm; in apply_children_dir_moves() local
3686 pm = get_pending_dir_moves(sctx, parent_ino); in apply_children_dir_moves()
3687 if (!pm) in apply_children_dir_moves()
3690 tail_append_pending_moves(sctx, pm, &stack); in apply_children_dir_moves()
3693 pm = list_first_entry(&stack, struct pending_dir_move, list); in apply_children_dir_moves()
3694 parent_ino = pm->ino; in apply_children_dir_moves()
3695 ret = apply_dir_move(sctx, pm); in apply_children_dir_moves()
3696 free_pending_move(sctx, pm); in apply_children_dir_moves()
3699 pm = get_pending_dir_moves(sctx, parent_ino); in apply_children_dir_moves()
3700 if (pm) in apply_children_dir_moves()
3701 tail_append_pending_moves(sctx, pm, &stack); in apply_children_dir_moves()
3707 pm = list_first_entry(&stack, struct pending_dir_move, list); in apply_children_dir_moves()
3708 free_pending_move(sctx, pm); in apply_children_dir_moves()
8311 struct pending_dir_move *pm; in btrfs_ioctl_send() local
8314 pm = rb_entry(n, struct pending_dir_move, node); in btrfs_ioctl_send()
8315 while (!list_empty(&pm->list)) { in btrfs_ioctl_send()
8318 pm2 = list_first_entry(&pm->list, in btrfs_ioctl_send()
8322 free_pending_move(sctx, pm); in btrfs_ioctl_send()