Commit ca45275c authored by Vyacheslav Yurkov's avatar Vyacheslav Yurkov Committed by Miklos Szeredi
Browse files

ovl: add ovl_allow_offline_changes() helper



Allows to check whether any of extended features are enabled

Signed-off-by: default avatarVyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
Reviewed-by: default avatarAmir Goldstein <amir73il@gmail.com>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent e4522bc8
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -263,6 +263,18 @@ static inline bool ovl_open_flags_need_copy_up(int flags)
	return ((OPEN_FMODE(flags) & FMODE_WRITE) || (flags & O_TRUNC));
}

static inline bool ovl_allow_offline_changes(struct ovl_fs *ofs)
{
	/*
	 * To avoid regressions in existing setups with overlay lower offline
	 * changes, we allow lower changes only if none of the new features
	 * are used.
	 */
	return (!ofs->config.index && !ofs->config.metacopy &&
		!ofs->config.redirect_dir && ofs->config.xino != OVL_XINO_ON);
}


/* util.c */
int ovl_want_write(struct dentry *dentry);
void ovl_drop_write(struct dentry *dentry);
+1 −3
Original line number Diff line number Diff line
@@ -1599,9 +1599,7 @@ static bool ovl_lower_uuid_ok(struct ovl_fs *ofs, const uuid_t *uuid)
	 * user opted-in to one of the new features that require following the
	 * lower inode of non-dir upper.
	 */
	if (!ofs->config.index && !ofs->config.metacopy &&
	    !ofs->config.redirect_dir && ofs->config.xino != OVL_XINO_ON &&
	    uuid_is_null(uuid))
	if (ovl_allow_offline_changes(ofs) && uuid_is_null(uuid))
		return false;

	for (i = 0; i < ofs->numfs; i++) {