On Fri 29-11-24 14:38:03, Christian Brauner wrote: > There's no point in keeping it outside of that helper. This way we have > all the permission pieces in one place. > > Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx> Nice. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/fhandle.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/fs/fhandle.c b/fs/fhandle.c > index c00d88fb14e16654b5cbbb71760c0478eac20384..031ad5592a0beabcc299436f037ad5fe626332e6 100644 > --- a/fs/fhandle.c > +++ b/fs/fhandle.c > @@ -298,6 +298,9 @@ static inline bool may_decode_fh(struct handle_to_path_ctx *ctx, > { > struct path *root = &ctx->root; > > + if (capable(CAP_DAC_READ_SEARCH)) > + return true; > + > /* > * Restrict to O_DIRECTORY to provide a deterministic API that avoids a > * confusing api in the face of disconnected non-dir dentries. > @@ -337,7 +340,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh, > if (retval) > goto out_err; > > - if (!capable(CAP_DAC_READ_SEARCH) && !may_decode_fh(&ctx, o_flags)) { > + if (!may_decode_fh(&ctx, o_flags)) { > retval = -EPERM; > goto out_path; > } > > -- > 2.45.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR