diff options
author | Amir Goldstein <amir73il@gmail.com> | 2023-10-26 23:45:40 +0300 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2023-10-28 16:16:19 +0200 |
commit | d9e5d9221d7f82a2736f091bbc5b54ab8d6ef701 (patch) | |
tree | 1c56890185ebd228e662a3bf92235c1e012840f7 /fs/exportfs | |
parent | ceb33880431c8284b58de5602b15dfb7ac0a4aa5 (diff) |
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 <lkp@intel.com>
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 <arnd@arndb.de>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Link: https://lore.kernel.org/r/20231026204540.143217-1-amir73il@gmail.com
Tested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/exportfs')
-rw-r--r-- | fs/exportfs/expfs.c | 41 |
1 files changed, 0 insertions, 41 deletions
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 /** |