• Home
  • Raw
  • Download

Lines Matching refs:ofs

33 	struct ovl_fs *ofs = OVL_FS(d->sb);  in ovl_check_redirect()  local
35 buf = ovl_get_redirect_xattr(ofs, dentry, prelen + strlen(post)); in ovl_check_redirect()
108 static struct ovl_fh *ovl_get_fh(struct ovl_fs *ofs, struct dentry *dentry, in ovl_get_fh() argument
114 res = ovl_do_getxattr(ofs, dentry, ox, NULL, 0); in ovl_get_fh()
128 res = ovl_do_getxattr(ofs, dentry, ox, fh->buf, res); in ovl_get_fh()
342 int ovl_check_origin_fh(struct ovl_fs *ofs, struct ovl_fh *fh, bool connected, in ovl_check_origin_fh() argument
348 for (i = 1; i < ofs->numlayer; i++) { in ovl_check_origin_fh()
353 if (ofs->layers[i].fsid && in ovl_check_origin_fh()
354 ofs->layers[i].fs->bad_uuid) in ovl_check_origin_fh()
357 origin = ovl_decode_real_fh(fh, ofs->layers[i].mnt, in ovl_check_origin_fh()
380 .layer = &ofs->layers[i] in ovl_check_origin_fh()
393 static int ovl_check_origin(struct ovl_fs *ofs, struct dentry *upperdentry, in ovl_check_origin() argument
396 struct ovl_fh *fh = ovl_get_fh(ofs, upperdentry, OVL_XATTR_ORIGIN); in ovl_check_origin()
402 err = ovl_check_origin_fh(ofs, fh, false, upperdentry, stackp); in ovl_check_origin()
418 static int ovl_verify_fh(struct ovl_fs *ofs, struct dentry *dentry, in ovl_verify_fh() argument
421 struct ovl_fh *ofh = ovl_get_fh(ofs, dentry, ox); in ovl_verify_fh()
445 int ovl_verify_set_fh(struct ovl_fs *ofs, struct dentry *dentry, in ovl_verify_set_fh() argument
460 err = ovl_verify_fh(ofs, dentry, ox, fh); in ovl_verify_set_fh()
462 err = ovl_do_setxattr(ofs, dentry, ox, fh->buf, fh->fb.len); in ovl_verify_set_fh()
479 struct dentry *ovl_index_upper(struct ovl_fs *ofs, struct dentry *index) in ovl_index_upper() argument
487 fh = ovl_get_fh(ofs, index, OVL_XATTR_UPPER); in ovl_index_upper()
491 upper = ovl_decode_real_fh(fh, ovl_upper_mnt(ofs), true); in ovl_index_upper()
512 int ovl_verify_index(struct ovl_fs *ofs, struct dentry *index) in ovl_verify_index() argument
554 if (d_is_dir(index) && !ofs->config.nfs_export) in ovl_verify_index()
564 upper = ovl_index_upper(ofs, index); in ovl_verify_index()
580 err = ovl_verify_fh(ofs, upper, OVL_XATTR_ORIGIN, fh); in ovl_verify_index()
587 err = ovl_check_origin_fh(ofs, fh, false, index, &stack); in ovl_verify_index()
591 if (ovl_get_nlink(ofs, origin.dentry, index, 0) == 0) in ovl_verify_index()
659 struct dentry *ovl_get_index_fh(struct ovl_fs *ofs, struct ovl_fh *fh) in ovl_get_index_fh() argument
669 index = lookup_positive_unlocked(name.name, ofs->indexdir, name.len); in ovl_get_index_fh()
688 struct dentry *ovl_lookup_index(struct ovl_fs *ofs, struct dentry *upper, in ovl_lookup_index() argument
701 index = lookup_positive_unlocked(name.name, ofs->indexdir, name.len); in ovl_lookup_index()
747 err = ovl_verify_upper(ofs, index, upper, false); in ovl_lookup_index()
796 static int ovl_fix_origin(struct ovl_fs *ofs, struct dentry *dentry, in ovl_fix_origin() argument
801 if (ovl_check_origin_xattr(ofs, upper)) in ovl_fix_origin()
821 struct ovl_fs *ofs = dentry->d_sb->s_fs_info; in ovl_lookup() local
842 .last = ofs->config.redirect_follow ? false : !poe->numlower, in ovl_lookup()
847 if (dentry->d_name.len > ofs->namelen) in ovl_lookup()
873 err = ovl_check_origin(ofs, upperdentry, &origin_path); in ovl_lookup()
894 stack = kcalloc(ofs->numlayer - 1, sizeof(struct ovl_path), in ovl_lookup()
903 if (!ofs->config.redirect_follow) in ovl_lookup()
915 if ((uppermetacopy || d.metacopy) && !ofs->config.metacopy) { in ovl_lookup()
926 if (upperdentry && !ctr && !ofs->noxattr && d.is_dir) { in ovl_lookup()
927 err = ovl_fix_origin(ofs, dentry, this, upperdentry); in ovl_lookup()
945 (!d.is_dir && ofs->config.index && origin_path))) { in ovl_lookup()
946 err = ovl_verify_origin(ofs, upperdentry, this, false); in ovl_lookup()
982 if (d.redirect && !ofs->config.redirect_follow) { in ovl_lookup()
1046 index = ovl_lookup_index(ofs, upperdentry, origin, true); in ovl_lookup()
1069 upperredirect = ovl_get_redirect_xattr(ofs, upperdentry, 0); in ovl_lookup()
1075 err = ovl_check_metacopy_xattr(ofs, upperdentry); in ovl_lookup()