Lines Matching full:upper

171 		 * upper file handle could become stale when upper file is  in ovl_decode_real_fh()
447 is_upper ? "upper" : "origin", real, in ovl_verify_set_fh()
452 /* Get upper dentry from index */
456 struct dentry *upper; in ovl_index_upper() local
465 upper = ovl_decode_real_fh(fh, ofs->upper_mnt, true); in ovl_index_upper()
468 if (IS_ERR_OR_NULL(upper)) in ovl_index_upper()
469 return upper ?: ERR_PTR(-ESTALE); in ovl_index_upper()
471 if (!d_is_dir(upper)) { in ovl_index_upper()
472 pr_warn_ratelimited("overlayfs: invalid index upper (%pd2, upper=%pd2).\n", in ovl_index_upper()
473 index, upper); in ovl_index_upper()
474 dput(upper); in ovl_index_upper()
478 return upper; in ovl_index_upper()
498 struct dentry *upper = NULL; in ovl_verify_index() local
543 * Directory index entries should have 'upper' xattr pointing to the in ovl_verify_index()
544 * real upper dir. Non-dir index entries are hardlinks to the upper in ovl_verify_index()
547 * decode the upper directory. in ovl_verify_index()
549 upper = ovl_index_upper(ofs, index); in ovl_verify_index()
550 if (IS_ERR_OR_NULL(upper)) { in ovl_verify_index()
551 err = PTR_ERR(upper); in ovl_verify_index()
553 * Directory index entries with no 'upper' xattr need to be in ovl_verify_index()
554 * removed. When dir index entry has a stale 'upper' xattr, in ovl_verify_index()
555 * we assume that upper dir was removed and we treat the dir in ovl_verify_index()
565 err = ovl_verify_fh(upper, OVL_XATTR_ORIGIN, fh); in ovl_verify_index()
566 dput(upper); in ovl_verify_index()
623 * to an inode different than the upper inode, then either the upper inode
675 struct dentry *ovl_lookup_index(struct ovl_fs *ofs, struct dentry *upper, in ovl_lookup_index() argument
729 if (!upper) { in ovl_lookup_index()
735 /* Verify that dir index 'upper' xattr points to upper dir */ in ovl_lookup_index()
736 err = ovl_verify_upper(index, upper, false); in ovl_lookup_index()
739 …pr_warn_ratelimited("overlayfs: suspected multiply redirected dir found (upper=%pd2, origin=%pd2, … in ovl_lookup_index()
740 upper, origin, index); in ovl_lookup_index()
744 } else if (upper && d_inode(upper) != inode) { in ovl_lookup_index()
786 struct dentry *upper) in ovl_fix_origin() argument
790 if (ovl_check_origin_xattr(upper)) in ovl_fix_origin()
797 err = ovl_set_origin(dentry, lower, upper); in ovl_fix_origin()
799 err = ovl_set_impure(dentry->d_parent, upper->d_parent); in ovl_fix_origin()
908 * If no origin fh is stored in upper of a merge dir, store fh in ovl_lookup()
909 * of lower dir and set upper parent "impure". in ovl_lookup()
959 * This is only a problem if the upper layer is untrusted (e.g in ovl_lookup()
1010 * Lookup index by lower inode and verify it matches upper inode. in ovl_lookup()
1015 * For non-dir upper metacopy dentry, we already set "origin" if we in ovl_lookup()
1016 * verified that lower matched upper origin. If upper origin was in ovl_lookup()
1019 * index. This case should be handled in same way as a non-dir upper in ovl_lookup()
1022 * Always lookup index of non-dir non-metacopy and non-upper. in ovl_lookup()
1124 /* Negative upper -> positive lower */ in ovl_lower_positive()
1129 /* Positive upper -> have to look up lower to see whether it exists */ in ovl_lower_positive()