diff options
author | Tejun Heo <tj@kernel.org> | 2019-11-04 15:54:30 -0800 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2019-11-12 08:18:04 -0800 |
commit | 33c5ac9175195c36a0b7005aaf503a2e81f117a1 (patch) | |
tree | 15d6857075452a053ad701ae4bb564135ad14998 /include/linux/exportfs.h | |
parent | fe0f726c9fb626b1092a9ea3bf75f57f2eed676e (diff) | |
download | linux-33c5ac9175195c36a0b7005aaf503a2e81f117a1.tar.gz linux-33c5ac9175195c36a0b7005aaf503a2e81f117a1.tar.bz2 linux-33c5ac9175195c36a0b7005aaf503a2e81f117a1.zip |
kernfs: implement custom exportfs ops and fid type
The current kernfs exportfs implementation uses the generic_fh_*()
helpers and FILEID_INO32_GEN[_PARENT] which limits ino to 32bits.
Let's implement custom exportfs operations and fid type to remove the
restriction.
* FILEID_KERNFS is a single u64 value whose content is
kernfs_node->id. This is the only native fid type.
* For backward compatibility with blk_log_action() path which exposes
(ino,gen) pairs which userland assembles into FILEID_INO32_GEN keys,
combine the generic keys into 64bit IDs in the same order.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'include/linux/exportfs.h')
-rw-r--r-- | include/linux/exportfs.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h index cf6571fc9c01..d896b8657085 100644 --- a/include/linux/exportfs.h +++ b/include/linux/exportfs.h @@ -105,6 +105,11 @@ enum fid_type { FILEID_LUSTRE = 0x97, /* + * 64 bit unique kernfs id + */ + FILEID_KERNFS = 0xfe, + + /* * Filesystems must not use 0xff file ID. */ FILEID_INVALID = 0xff, |