[PATCH 1/4] pseudofs: add support for export_ops

Erin Shepherd posted 4 patches 3 weeks, 2 days ago
There is a newer version of this series
[PATCH 1/4] pseudofs: add support for export_ops
Posted by Erin Shepherd 3 weeks, 2 days ago
Pseudo-filesystems might reasonably wish to implement the export ops
(particularly for name_to_handle_at/open_by_handle_at); plumb this
through pseudo_fs_context

Signed-off-by: Erin Shepherd <erin.shepherd@e43.eu>
---
 fs/libfs.c                | 1 +
 include/linux/pseudo_fs.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/fs/libfs.c b/fs/libfs.c
index 46966fd8bcf9..698a2ddfd0cb 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -669,6 +669,7 @@ static int pseudo_fs_fill_super(struct super_block *s, struct fs_context *fc)
 	s->s_blocksize_bits = PAGE_SHIFT;
 	s->s_magic = ctx->magic;
 	s->s_op = ctx->ops ?: &simple_super_operations;
+	s->s_export_op = ctx->eops;
 	s->s_xattr = ctx->xattr;
 	s->s_time_gran = 1;
 	root = new_inode(s);
diff --git a/include/linux/pseudo_fs.h b/include/linux/pseudo_fs.h
index 730f77381d55..2503f7625d65 100644
--- a/include/linux/pseudo_fs.h
+++ b/include/linux/pseudo_fs.h
@@ -5,6 +5,7 @@
 
 struct pseudo_fs_context {
 	const struct super_operations *ops;
+	const struct export_operations *eops;
 	const struct xattr_handler * const *xattr;
 	const struct dentry_operations *dops;
 	unsigned long magic;
-- 
2.46.1
Re: [PATCH 1/4] pseudofs: add support for export_ops
Posted by Amir Goldstein 1 week, 5 days ago
On Fri, Nov 1, 2024 at 2:55 PM Erin Shepherd <erin.shepherd@e43.eu> wrote:
>
> Pseudo-filesystems might reasonably wish to implement the export ops
> (particularly for name_to_handle_at/open_by_handle_at); plumb this
> through pseudo_fs_context
>
> Signed-off-by: Erin Shepherd <erin.shepherd@e43.eu>

Reviewed-by: Amir Goldstein <amir73il@gmail.com>

> ---
>  fs/libfs.c                | 1 +
>  include/linux/pseudo_fs.h | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/fs/libfs.c b/fs/libfs.c
> index 46966fd8bcf9..698a2ddfd0cb 100644
> --- a/fs/libfs.c
> +++ b/fs/libfs.c
> @@ -669,6 +669,7 @@ static int pseudo_fs_fill_super(struct super_block *s, struct fs_context *fc)
>         s->s_blocksize_bits = PAGE_SHIFT;
>         s->s_magic = ctx->magic;
>         s->s_op = ctx->ops ?: &simple_super_operations;
> +       s->s_export_op = ctx->eops;
>         s->s_xattr = ctx->xattr;
>         s->s_time_gran = 1;
>         root = new_inode(s);
> diff --git a/include/linux/pseudo_fs.h b/include/linux/pseudo_fs.h
> index 730f77381d55..2503f7625d65 100644
> --- a/include/linux/pseudo_fs.h
> +++ b/include/linux/pseudo_fs.h
> @@ -5,6 +5,7 @@
>
>  struct pseudo_fs_context {
>         const struct super_operations *ops;
> +       const struct export_operations *eops;
>         const struct xattr_handler * const *xattr;
>         const struct dentry_operations *dops;
>         unsigned long magic;
> --
> 2.46.1
>
>