]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
expfs: Fix exportfs_can_encode_fh() for EXPORT_FH_FID
authorJan Kara <jack@suse.cz>
Wed, 1 Oct 2025 13:19:07 +0000 (15:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:10:15 +0000 (14:10 +0100)
[ Upstream commit 48b77733d0dbaf8cd0a122712072f92b2d95d894 ]

After commit 5402c4d4d200 ("exportfs: require ->fh_to_parent() to encode
connectable file handles") we will fail to create non-decodable file
handles for filesystems without export operations. Fix it.

Fixes: 5402c4d4d200 ("exportfs: require ->fh_to_parent() to encode connectable file handles")
Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/exportfs.h

index cfb0dd1ea49c70cb0851d55821222b16acd9d9c3..b80286a73d0a9aefc537a3675afbb82eba076842 100644 (file)
@@ -314,9 +314,6 @@ 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.
@@ -324,6 +321,10 @@ static inline bool exportfs_can_encode_fh(const struct export_operations *nop,
        if (fh_flags & EXPORT_FH_FID)
                return exportfs_can_encode_fid(nop);
 
+       /* Normal file handles cannot be created without export ops */
+       if (!nop)
+               return false;
+
        /*
         * If a connectable file handle was requested, we need to make sure that
         * filesystem can also decode connected file handles.