Lines Matching +full:y +full:- +full:origin
1 /* SPDX-License-Identifier: GPL-2.0-only */
31 #define OVL_XATTR_TRUSTED_PREFIX_LEN (sizeof(OVL_XATTR_TRUSTED_PREFIX) - 1)
33 #define OVL_XATTR_USER_PREFIX_LEN (sizeof(OVL_XATTR_USER_PREFIX) - 1)
36 #define OVL_XATTR_ESCAPE_PREFIX_LEN (sizeof(OVL_XATTR_ESCAPE_PREFIX) - 1)
38 #define OVL_XATTR_ESCAPE_TRUSTED_PREFIX_LEN (sizeof(OVL_XATTR_ESCAPE_TRUSTED_PREFIX) - 1)
40 #define OVL_XATTR_ESCAPE_USER_PREFIX_LEN (sizeof(OVL_XATTR_ESCAPE_USER_PREFIX) - 1)
58 /* Non-merge dir that may contain whiteout entries */
103 * The tuple (fh,uuid) is a universal unique identifier for a copy up origin,
105 * origin.fh - exported file handle of the lower file
106 * origin.uuid - uuid of the lower filesystem
133 /* On-disk format for "origin" file handle */
141 u32 fid[]; /* file identifier should be 32bit aligned in-memory */
144 /* In-memory and on-wire format for overlay file handle */
154 #define OVL_FH_LEN(fh) (OVL_FH_WIRE_OFFSET + (fh)->fb.len)
158 /* On-disk format for "metacopy" xattr (if non-zero size) */
168 #define OVL_METACOPY_MIN_SIZE (OVL_METACOPY_MAX_SIZE - FS_VERITY_MAX_DIGEST_SIZE)
173 if (metacopy->len < OVL_METACOPY_MIN_SIZE) in ovl_metadata_digest_size()
175 return (int)metacopy->len - OVL_METACOPY_MIN_SIZE; in ovl_metadata_digest_size()
184 return ovl_xattr_table[ox][ofs->config.userxattr]; in ovl_xattr()
190 * that are stored on-disk as owned by id 1001 to id 1000 this means stat on
194 * called on an idmapped upper mount the value written to disk - i.e., the
195 * value stored in ia_*id - must 1001. The mount mapping helper will thus take
281 WARN_ON(path->dentry->d_sb != path->mnt->mnt_sb); in ovl_do_getxattr()
283 err = vfs_getxattr(mnt_idmap(path->mnt), path->dentry, in ovl_do_getxattr()
288 path->dentry, name, min(len, 48), value, size, err); in ovl_do_getxattr()
430 inode_unlock(parent->d_inode); in ovl_parent_unlock()
444 return OVL_FS(sb)->creator_cred; in ovl_creds()
467 return sb_has_encoding(dentry->d_sb) && IS_CASEFOLDED(d_inode(dentry)); in ovl_dentry_casefolded()
575 set_bit(flag, &OVL_I(inode)->flags); in ovl_set_flag()
580 clear_bit(flag, &OVL_I(inode)->flags); in ovl_clear_flag()
585 return test_bit(flag, &OVL_I(inode)->flags); in ovl_test_flag()
597 return ovl_get_dir_xattr_val(ofs, &upperpath, OVL_XATTR_IMPURE) == 'y'; in ovl_is_impuredir()
608 return ofs->config.redirect_mode != OVL_REDIRECT_NOFOLLOW; in ovl_redirect_follow()
613 return ofs->config.redirect_mode == OVL_REDIRECT_ON; in ovl_redirect_dir()
618 return ofs->config.uuid != OVL_UUID_OFF; in ovl_origin_uuid()
623 return ofs->config.uuid == OVL_UUID_ON || in ovl_has_fsid()
624 ofs->config.uuid == OVL_UUID_AUTO; in ovl_has_fsid()
634 return ofs->config.xino == OVL_XINO_ON; in ovl_xino_warn()
643 return (!ofs->config.index && !ofs->config.metacopy && in ovl_allow_offline_changes()
650 return ofs->xino_mode == 0; in ovl_same_fs()
656 return ofs->xino_mode >= 0; in ovl_same_dev()
661 return ovl_same_dev(ofs) ? ofs->xino_mode : 0; in ovl_xino_bits()
666 mutex_lock(&OVL_I(inode)->lock); in ovl_inode_lock()
671 return mutex_lock_interruptible(&OVL_I(inode)->lock); in ovl_inode_lock_interruptible()
676 mutex_unlock(&OVL_I(inode)->lock); in ovl_inode_unlock()
686 return -EINVAL; in ovl_check_fh_len()
688 return ovl_check_fb_len(&fh->fb, fh_len - OVL_FH_WIRE_OFFSET); in ovl_check_fh_len()
705 int ovl_get_index_name(struct ovl_fs *ofs, struct dentry *origin,
709 struct dentry *origin, bool verify);
724 struct dentry *origin, bool set) in ovl_verify_origin() argument
726 return ovl_verify_origin_xattr(ofs, upper, OVL_XATTR_ORIGIN, origin, in ovl_verify_origin()
753 * Non-merge dir may contain whiteouts from a time it was a merge upper, before
832 * We cannot copy up immutable/append-only flags, because that would prevent
848 inode_set_flags(to, from->i_flags & mask, mask); in ovl_copyflags()
891 struct ovl_fh *ovl_get_origin_fh(struct ovl_fs *ofs, struct dentry *origin);
905 return (!ovl_upper_mnt(ofs) || !ofs->workdir); in ovl_force_readonly()