• Home
  • Raw
  • Download

Lines Matching full:upper

44  * Before encoding a non-upper directory file handle from real layer N, we need
56 * copied up and renamed, upper dir /a will be indexed by lower dir /a from
96 /* We can get upper/overlay path from indexed/lower dentry */ in ovl_connectable_layer()
161 * encoding also after copy up. If non-pure upper is not indexed, then it was
163 * about staying consistent with pre copy up encoding and we encode an upper
164 * file handle. Overlay root dentry is a private case of non-indexed upper.
171 * Pure upper | U
172 * Non-indexed upper | U
173 * Indexed upper | L (*)
174 * Non-upper | L (*)
176 * U = upper file handle
184 * Return 0 for upper file handle, > 0 for lower file handle or < 0 on error.
190 /* Upper file handle for pure upper */ in ovl_check_encode_origin()
195 * Upper file handle for non-indexed upper. in ovl_check_encode_origin()
197 * Root is never indexed, so if there's an upper layer, encode upper for in ovl_check_encode_origin()
206 * lower dir or under a non-indexed upper is not always possible. in ovl_check_encode_origin()
213 /* Lower file handle for indexed and non-upper dir/non-dir */ in ovl_check_encode_origin()
223 * Check if we should encode a lower or upper file handle and maybe in ovl_d_to_fh()
230 /* Encode an upper or lower file handle */ in ovl_d_to_fh()
298 struct dentry *upper = upper_alias ?: index; in ovl_obtain_alias() local
309 if (d_is_dir(upper ?: lower)) in ovl_obtain_alias()
312 oip.upperdentry = dget(upper); in ovl_obtain_alias()
315 dput(upper); in ovl_obtain_alias()
319 if (upper) in ovl_obtain_alias()
348 /* Get the upper or lower dentry in stach whose on layer @idx */
367 * dentry is @real. If @real is on upper layer, we lookup a child overlay
445 * Decoding upper dir from index is expensive, so first try to lookup in ovl_lookup_real_inode()
466 /* Get connected upper overlay dir from index */ in ovl_lookup_real_inode()
468 struct dentry *upper = ovl_index_upper(ofs, index); in ovl_lookup_real_inode() local
471 if (IS_ERR_OR_NULL(upper)) in ovl_lookup_real_inode()
472 return upper; in ovl_lookup_real_inode()
476 * ovl_lookup_real() in upper layer. The first level call walks in ovl_lookup_real_inode()
478 * recursive call walks back from indexed upper to the topmost in ovl_lookup_real_inode()
479 * connected/hashed upper parent (or up to root). in ovl_lookup_real_inode()
481 this = ovl_lookup_real(sb, upper, &upper_layer); in ovl_lookup_real_inode()
482 dput(upper); in ovl_lookup_real_inode()
550 * If @real is on upper layer, we lookup a child overlay dentry with the same
653 * Get an overlay dentry from upper/lower real dentries and index.
656 struct dentry *upper, in ovl_get_dentry() argument
662 struct ovl_layer *layer = upper ? &upper_layer : lowerpath->layer; in ovl_get_dentry()
663 struct dentry *real = upper ?: (index ?: lowerpath->dentry); in ovl_get_dentry()
670 return ovl_obtain_alias(sb, upper, lowerpath, index); in ovl_get_dentry()
688 struct dentry *upper; in ovl_upper_fh_to_d() local
693 upper = ovl_decode_real_fh(fh, ofs->upper_mnt, true); in ovl_upper_fh_to_d()
694 if (IS_ERR_OR_NULL(upper)) in ovl_upper_fh_to_d()
695 return upper; in ovl_upper_fh_to_d()
697 dentry = ovl_get_dentry(sb, upper, NULL, NULL); in ovl_upper_fh_to_d()
698 dput(upper); in ovl_upper_fh_to_d()
733 /* Then lookup indexed upper/whiteout by origin fh */ in ovl_lower_fh_to_d()
743 /* Then try to get a connected upper dir by index */ in ovl_lower_fh_to_d()
745 struct dentry *upper = ovl_index_upper(ofs, index); in ovl_lower_fh_to_d() local
747 err = PTR_ERR(upper); in ovl_lower_fh_to_d()
748 if (IS_ERR_OR_NULL(upper)) in ovl_lower_fh_to_d()
751 dentry = ovl_get_dentry(sb, upper, NULL, NULL); in ovl_lower_fh_to_d()
752 dput(upper); in ovl_lower_fh_to_d()
770 /* Get a connected non-upper dir or disconnected non-dir */ in ovl_lower_fh_to_d()