Lines Matching refs:origin

74 	 * A non-dir origin may be disconnected, which is fine, because
92 * Return -ENODATA for "origin unknown".
103 /* Treat larger version and unknown flags as "origin unknown" */
107 /* Treat endianness mismatch as "origin unknown" */
127 /* Zero size value means "copied up but origin unknown" */
153 pr_warn_ratelimited("failed to get origin (%i)\n", res);
156 pr_warn_ratelimited("invalid origin (%*phN)\n", res, fh);
185 * Treat stale file handle to lower file as "origin unknown".
418 struct dentry *origin = NULL;
430 origin = ovl_decode_real_fh(ofs, fh, ofs->layers[i].mnt,
432 if (origin)
436 if (!origin)
438 else if (IS_ERR(origin))
439 return PTR_ERR(origin);
442 inode_wrong_type(d_inode(upperdentry), d_inode(origin)->i_mode))
448 dput(origin);
452 .dentry = origin,
459 pr_warn_ratelimited("invalid origin (%pd2, ftype=%x, origin ftype=%x).\n",
461 d_inode(origin)->i_mode & S_IFMT);
462 dput(origin);
546 is_upper ? "upper" : "origin", real,
582 * Verify that an index entry name matches the origin file handle stored in
583 * OVL_XATTR_ORIGIN and that origin file handle can be decoded to lower path.
584 * Return 0 on match, -ESTALE on mismatch or stale origin, < 0 on error.
590 struct ovl_path origin = { };
591 struct ovl_path *stack = &origin;
619 * of the overlay inode). These entries contain no origin xattr.
634 * real inode. For non-dir index, we can read the copy up origin xattr
665 if (ovl_get_nlink(ofs, origin.dentry, index, 0) == 0)
670 dput(origin.dentry);
704 * origin inode. The index entry name is the hex representation of the lower
711 * If the index dentry for a copy up origin inode is positive, but points
717 int ovl_get_index_name(struct ovl_fs *ofs, struct dentry *origin,
723 fh = ovl_encode_real_fh(ofs, origin, false);
764 struct dentry *origin, bool verify)
769 bool is_dir = d_is_dir(origin);
772 err = ovl_get_index_name(ofs, origin, &name);
786 d_inode(origin)->i_ino, name.len, name.name,
803 inode_wrong_type(inode, d_inode(origin)->i_mode)) {
805 * Index should always be of the same file type as origin
808 * unlinked, which means that finding a lower origin on lookup
811 pr_warn_ratelimited("bad index found (index=%pd2, ftype=%x, origin ftype=%x).\n",
813 d_inode(origin)->i_mode & S_IFMT);
817 pr_warn_ratelimited("suspected uncovered redirected dir found (origin=%pd2, index=%pd2).\n",
818 origin, index);
826 pr_warn_ratelimited("suspected multiply redirected dir found (upper=%pd2, origin=%pd2, index=%pd2).\n",
827 upper, origin, index);
872 /* Fix missing 'origin' xattr */
1010 struct dentry *origin = NULL;
1050 * Lookup copy up origin by decoding origin file handle.
1052 * because we only need to hold the origin inode in
1105 pr_warn_ratelimited("refusing to follow metacopy origin for (%pd2)\n", dentry);
1110 * If no origin fh is stored in upper of a merge dir, store fh
1123 * lower dir that does not match a stored origin xattr. In any
1124 * case, only verified origin is used for index lookup.
1126 * For non-dir dentry, if index=on, then ensure origin
1140 origin = this;
1214 origin = origin_path->dentry;
1221 * For the case of upperdentry, we have set origin by now if it
1226 * matches origin, otherwise dir index entries may be inconsistent
1229 * For regular upper, we already set origin if upper had ORIGIN
1233 * For metacopy upper, we set a verified origin already if index
1238 origin = stack[0].dentry;
1240 if (origin && ovl_indexdir(dentry->d_sb) &&
1242 index = ovl_lookup_index(ofs, upperdentry, origin, true);