On Sun 25-05-25 12:47:31, Amir Goldstein wrote: > When user requests a connectable file handle explicitly with the > AT_HANDLE_CONNECTABLE flag, fail the request if filesystem (e.g. nfs) > does not know how to decode a connected non-dir dentry. > > Fixes: c374196b2b9f ("fs: name_to_handle_at() support for "explicit connectable" file handles") > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > include/linux/exportfs.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > Christian, > > This fixes fstest failures with nfs client (re-export) > reported by Zoro [1]. > > Thanks, > Amir. > > [1] https://lore.kernel.org/fstests/20250525053604.k466kgfcumw2s2qx@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ > > diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h > index fc93f0abf513..25c4a5afbd44 100644 > --- a/include/linux/exportfs.h > +++ b/include/linux/exportfs.h > @@ -314,6 +314,9 @@ static inline bool exportfs_can_decode_fh(const struct export_operations *nop) > static inline bool exportfs_can_encode_fh(const struct export_operations *nop, > int fh_flags) > { > + if (!nop) > + return false; > + > /* > * If a non-decodeable file handle was requested, we only need to make > * sure that filesystem did not opt-out of encoding fid. > @@ -321,6 +324,13 @@ static inline bool exportfs_can_encode_fh(const struct export_operations *nop, > if (fh_flags & EXPORT_FH_FID) > return exportfs_can_encode_fid(nop); > > + /* > + * If a connectable file handle was requested, we need to make sure that > + * filesystem can also decode connected file handles. > + */ > + if ((fh_flags & EXPORT_FH_CONNECTABLE) && !nop->fh_to_parent) > + return false; > + > /* > * If a decodeable file handle was requested, we need to make sure that > * filesystem can also decode file handles. > -- > 2.34.1 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR