From d9e5d9221d7f82a2736f091bbc5b54ab8d6ef701 Mon Sep 17 00:00:00 2001 From: Amir Goldstein Date: Thu, 26 Oct 2023 23:45:40 +0300 Subject: fs: fix build error with CONFIG_EXPORTFS=m or not defined Many of the filesystems that call the generic exportfs helpers do not select the EXPORTFS config. Move generic_encode_ino32_fh() to libfs.c, same as generic_fh_to_*() to avoid having to fix all those config dependencies. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202310262151.renqMvme-lkp@intel.com/ Fixes: dfaf653dc415 ("exportfs: make ->encode_fh() a mandatory method for NFS export") Suggested-by: Arnd Bergmann Signed-off-by: Amir Goldstein Link: https://lore.kernel.org/r/20231026204540.143217-1-amir73il@gmail.com Tested-by: Arnd Bergmann Signed-off-by: Christian Brauner --- fs/exportfs/expfs.c | 41 ----------------------------------------- 1 file changed, 41 deletions(-) (limited to 'fs/exportfs') diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c index 7d9fdcc187b7..3ae0154c5680 100644 --- a/fs/exportfs/expfs.c +++ b/fs/exportfs/expfs.c @@ -342,47 +342,6 @@ out: return error; } -/** - * generic_encode_ino32_fh - generic export_operations->encode_fh function - * @inode: the object to encode - * @fh: where to store the file handle fragment - * @max_len: maximum length to store there (in 4 byte units) - * @parent: parent directory inode, if wanted - * - * This generic encode_fh function assumes that the 32 inode number - * is suitable for locating an inode, and that the generation number - * can be used to check that it is still valid. It places them in the - * filehandle fragment where export_decode_fh expects to find them. - */ -int generic_encode_ino32_fh(struct inode *inode, __u32 *fh, int *max_len, - struct inode *parent) -{ - struct fid *fid = (void *)fh; - int len = *max_len; - int type = FILEID_INO32_GEN; - - if (parent && (len < 4)) { - *max_len = 4; - return FILEID_INVALID; - } else if (len < 2) { - *max_len = 2; - return FILEID_INVALID; - } - - len = 2; - fid->i32.ino = inode->i_ino; - fid->i32.gen = inode->i_generation; - if (parent) { - fid->i32.parent_ino = parent->i_ino; - fid->i32.parent_gen = parent->i_generation; - len = 4; - type = FILEID_INO32_GEN_PARENT; - } - *max_len = len; - return type; -} -EXPORT_SYMBOL_GPL(generic_encode_ino32_fh); - #define FILEID_INO64_GEN_LEN 3 /** -- cgit