Re: [PATCH 1/5] kernfs: implement i_generation

From: Christoph Hellwig
Date: Tue May 23 2017 - 03:41:19 EST


On Mon, May 22, 2017 at 03:53:05PM -0700, Shaohua Li wrote:
> Set i_generation for kernfs inod. This is required to implement exportfs
> operations.
>
> Signed-off-by: Shaohua Li <shli@xxxxxx>
> ---
> fs/kernfs/dir.c | 2 ++
> fs/kernfs/inode.c | 1 +
> include/linux/kernfs.h | 2 ++
> 3 files changed, 5 insertions(+)
>
> diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
> index db5900aaa..09d093e 100644
> --- a/fs/kernfs/dir.c
> +++ b/fs/kernfs/dir.c
> @@ -634,6 +634,7 @@ static struct kernfs_node *__kernfs_new_node(struct kernfs_root *root,
> if (ret < 0)
> goto err_out2;
> kn->ino = ret;
> + kn->generation = atomic_inc_return(&root->next_generation);

i_generation is only supposed to be valid on a per-inode basis, so this
global counter seems really odd.