Subject: Re: [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution

From: Al Viro <[email-masked]>
Date: Sat, 16 Nov 2019 01:03:27 +0000

On Sat, Nov 16, 2019 at 11:27:59AM +1100, Aleksa Sarai wrote:

> +		if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) {
> +			bool m_retry = read_seqretry(&mount_lock, nd->m_seq);
> +			bool r_retry = read_seqretry(&rename_lock, nd->r_seq);
> +
> +			/*
> +			 * If there was a racing rename or mount along our
> +			 * path, then we can't be sure that ".." hasn't jumped
> +			 * above nd->root (and so userspace should retry or use
> +			 * some fallback).
> +			 */
> +			if (unlikely(m_retry || r_retry))
> +				return -EAGAIN;
> +		}
>  	}
>  	return 0;

Elaborate...  Do these boolean variables make any sense now, really?