Lines Matching refs:index
480 struct dentry *ovl_index_upper(struct ovl_fs *ofs, struct dentry *index) in ovl_index_upper() argument
485 if (!d_is_dir(index)) in ovl_index_upper()
486 return dget(index); in ovl_index_upper()
488 fh = ovl_get_fh(ofs, index, OVL_XATTR_UPPER); in ovl_index_upper()
500 index, upper); in ovl_index_upper()
513 int ovl_verify_index(struct ovl_fs *ofs, struct dentry *index) in ovl_verify_index() argument
522 if (!d_inode(index)) in ovl_verify_index()
526 if (index->d_name.len < sizeof(struct ovl_fb)*2) in ovl_verify_index()
530 len = index->d_name.len / 2; in ovl_verify_index()
536 if (hex2bin(fh->buf, index->d_name.name, len)) in ovl_verify_index()
548 if (ovl_is_whiteout(index)) in ovl_verify_index()
555 if (d_is_dir(index) && !ofs->config.nfs_export) in ovl_verify_index()
565 upper = ovl_index_upper(ofs, index); in ovl_verify_index()
587 if (!d_is_dir(index) && d_inode(index)->i_nlink == 1) { in ovl_verify_index()
588 err = ovl_check_origin_fh(ofs, fh, false, index, &stack); in ovl_verify_index()
592 if (ovl_get_nlink(ofs, origin.dentry, index, 0) == 0) in ovl_verify_index()
603 index, d_inode(index)->i_mode & S_IFMT, err); in ovl_verify_index()
608 index, d_inode(index)->i_mode & S_IFMT, in ovl_verify_index()
609 d_inode(index)->i_nlink); in ovl_verify_index()
662 struct dentry *index; in ovl_get_index_fh() local
670 index = lookup_positive_unlocked(name.name, ofs->indexdir, name.len); in ovl_get_index_fh()
672 if (IS_ERR(index)) { in ovl_get_index_fh()
673 if (PTR_ERR(index) == -ENOENT) in ovl_get_index_fh()
674 index = NULL; in ovl_get_index_fh()
675 return index; in ovl_get_index_fh()
678 if (ovl_is_whiteout(index)) in ovl_get_index_fh()
680 else if (ovl_dentry_weird(index)) in ovl_get_index_fh()
683 return index; in ovl_get_index_fh()
685 dput(index); in ovl_get_index_fh()
692 struct dentry *index; in ovl_lookup_index() local
702 index = lookup_positive_unlocked(name.name, ofs->indexdir, name.len); in ovl_lookup_index()
703 if (IS_ERR(index)) { in ovl_lookup_index()
704 err = PTR_ERR(index); in ovl_lookup_index()
706 index = NULL; in ovl_lookup_index()
716 inode = d_inode(index); in ovl_lookup_index()
717 if (ovl_is_whiteout(index) && !verify) { in ovl_lookup_index()
724 dput(index); in ovl_lookup_index()
725 index = ERR_PTR(-ESTALE); in ovl_lookup_index()
727 } else if (ovl_dentry_weird(index) || ovl_is_whiteout(index) || in ovl_lookup_index()
737 index, d_inode(index)->i_mode & S_IFMT, in ovl_lookup_index()
743 origin, index); in ovl_lookup_index()
748 err = ovl_verify_upper(ofs, index, upper, false); in ovl_lookup_index()
752 upper, origin, index); in ovl_lookup_index()
761 return index; in ovl_lookup_index()
764 dput(index); in ovl_lookup_index()
765 index = NULL; in ovl_lookup_index()
769 dput(index); in ovl_lookup_index()
770 index = ERR_PTR(-EIO); in ovl_lookup_index()
828 struct dentry *index = NULL; in ovl_lookup() local
946 (!d.is_dir && ofs->config.index && origin_path))) { in ovl_lookup()
1045 index = ovl_lookup_index(ofs, upperdentry, origin, true); in ovl_lookup()
1046 if (IS_ERR(index)) { in ovl_lookup()
1047 err = PTR_ERR(index); in ovl_lookup()
1048 index = NULL; in ovl_lookup()
1066 else if (index) { in ovl_lookup()
1067 upperdentry = dget(index); in ovl_lookup()
1084 .index = index, in ovl_lookup()
1107 dput(index); in ovl_lookup()
1116 dput(index); in ovl_lookup()