fs_path
static int __copy_first_ref(u64 dir, struct fs_path *p, void *ctx)
struct fs_path *pt = ctx;
u64 ino, struct fs_path *path)
struct fs_path *dest)
struct fs_path *dest)
u64 *dir, u64 *dir_gen, struct fs_path *name)
struct fs_path *tmp_name __free(fs_path_free) = NULL;
struct fs_path *name __free(fs_path_free) = NULL;
struct fs_path *dest)
struct fs_path *dest)
struct fs_path *name __free(fs_path_free) = NULL;
static struct fs_path *get_cur_inode_path(struct send_ctx *sctx)
static struct fs_path *get_path_for_command(struct send_ctx *sctx, u64 ino, u64 gen)
struct fs_path *path;
static void free_path_for_command(const struct send_ctx *sctx, struct fs_path *path)
struct fs_path *p;
struct fs_path *p;
struct fs_path *p;
struct fs_path *p;
struct fs_path *p = NULL;
struct fs_path *p __free(fs_path_free) = NULL;
struct fs_path *full_path;
static void set_ref_path(struct recorded_ref *ref, struct fs_path *path)
struct fs_path *path)
struct fs_path *orphan __free(fs_path_free) = NULL;
struct fs_path cur_inode_path;
static int path_loop(struct send_ctx *sctx, struct fs_path *name,
struct fs_path *from_path __free(fs_path_free) = NULL;
struct fs_path *to_path __free(fs_path_free) = NULL;
struct fs_path *name __free(fs_path_free) = NULL;
struct fs_path *fs_path)
fs_path_reset(fs_path);
ret = get_first_ref(root, ino, &parent, &parent_gen, fs_path);
struct fs_path *fs_path)
if (!fs_path) {
fs_path = fs_path_alloc();
if (!fs_path)
parent, parent_gen, fs_path);
fs_path_free(fs_path);
struct fs_path *path_before = NULL;
struct fs_path *path_after = NULL;
struct fs_path *new_path;
struct fs_path *current_path,
struct fs_path *new_path)
struct fs_path *valid_path = NULL;
static void fs_path_reset(struct fs_path *p)
static void init_path(struct fs_path *p)
static struct fs_path *fs_path_alloc(void)
struct fs_path *p;
struct fs_path *name, u64 dir, u64 dir_gen,
struct fs_path *path = NULL;
static struct fs_path *fs_path_alloc_reversed(void)
struct fs_path *p;
static int record_new_ref_if_needed(u64 dir, struct fs_path *name, void *ctx)
static int record_deleted_ref_if_needed(u64 dir, struct fs_path *name, void *ctx)
static void fs_path_free(struct fs_path *p)
struct fs_path *path;
static inline int fs_path_len(const struct fs_path *p)
struct fs_path *path,
static int fs_path_ensure_buf(struct fs_path *p, int len)
struct fs_path *p;
static int send_verity(struct send_ctx *sctx, struct fs_path *path,
struct fs_path *p;
struct fs_path *p;
struct fs_path *p;
struct fs_path *cur_inode_path;
struct fs_path *p;
struct fs_path *path;
static int fs_path_prepare_for_add(struct fs_path *p, int name_len,
struct fs_path *p = NULL;
struct fs_path *fspath;
struct fs_path *fspath;
static int fs_path_add(struct fs_path *p, const char *name, int name_len)
static inline int fs_path_add_path(struct fs_path *p, const struct fs_path *p2)
static int fs_path_add_from_extent_buffer(struct fs_path *p,
static int fs_path_copy(struct fs_path *p, struct fs_path *from)
static void fs_path_unreverse(struct fs_path *p)
const struct fs_path *path)
const struct fs_path *cur = &sctx->cur_inode_path;
sizeof_field(struct fs_path, inline_buf)
static void fs_path_free(struct fs_path *p);
DEFINE_FREE(fs_path_free, struct fs_path *, fs_path_free(_T))
struct fs_path *from, struct fs_path *to)
struct fs_path *path, struct fs_path *lnk)
static int send_unlink(struct send_ctx *sctx, struct fs_path *path)
static int send_rmdir(struct send_ctx *sctx, struct fs_path *path)
typedef int (*iterate_inode_ref_t)(u64 dir, struct fs_path *p, void *ctx);
struct fs_path *p __free(fs_path_free) = NULL;
char *fs_path;
fs_path = nfs4_pathname_string(&locations->fs_path, &len);
if (IS_ERR(fs_path)) {
return PTR_ERR(fs_path);
n = strncmp(path, fs_path, len);
kfree(fs_path);
fs_locations->fs_path.ncomponents <= 0)
if (!_is_same_nfs4_pathname(&locations->fs_path,
status = decode_pathname(xdr, &res->fs_path);
struct nfs4_pathname fs_path;