linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] fs: consolidate dt_type() helper definitions
@ 2023-03-29 19:24 Jeff Layton
  2023-03-29 19:29 ` [PATCH] " Chuck Lever III
  2023-03-30  6:02 ` [PATCH] fs: " Greg Kroah-Hartman
  0 siblings, 2 replies; 4+ messages in thread
From: Jeff Layton @ 2023-03-29 19:24 UTC (permalink / raw)
  To: Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, Joel Becker, Christoph Hellwig,
	Greg Kroah-Hartman, Tejun Heo, Alexander Viro, Christian Brauner
  Cc: Chuck Lever, v9fs-developer, linux-kernel, linux-fsdevel

There are 4 functions named dt_type() in the kernel. Consolidate the 3
that are basically identical into one helper function in fs.h that
takes a umode_t argument. The v9fs helper is renamed to distinguish it
from the others.

Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/9p/vfs_dir.c    | 6 +++---
 fs/configfs/dir.c  | 8 +-------
 fs/kernfs/dir.c    | 8 +-------
 fs/libfs.c         | 9 ++-------
 include/linux/fs.h | 6 ++++++
 5 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index 3d74b04fe0de..80b331f7f446 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -41,12 +41,12 @@ struct p9_rdir {
 };
 
 /**
- * dt_type - return file type
+ * v9fs_dt_type - return file type
  * @mistat: mistat structure
  *
  */
 
-static inline int dt_type(struct p9_wstat *mistat)
+static inline int v9fs_dt_type(struct p9_wstat *mistat)
 {
 	unsigned long perm = mistat->mode;
 	int rettype = DT_REG;
@@ -128,7 +128,7 @@ static int v9fs_dir_readdir(struct file *file, struct dir_context *ctx)
 			}
 
 			over = !dir_emit(ctx, st.name, strlen(st.name),
-					 v9fs_qid2ino(&st.qid), dt_type(&st));
+					 v9fs_qid2ino(&st.qid), v9fs_dt_type(&st));
 			p9stat_free(&st);
 			if (over)
 				return 0;
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 4afcbbe63e68..43863a1696eb 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1599,12 +1599,6 @@ static int configfs_dir_close(struct inode *inode, struct file *file)
 	return 0;
 }
 
-/* Relationship between s_mode and the DT_xxx types */
-static inline unsigned char dt_type(struct configfs_dirent *sd)
-{
-	return (sd->s_mode >> 12) & 15;
-}
-
 static int configfs_readdir(struct file *file, struct dir_context *ctx)
 {
 	struct dentry *dentry = file->f_path.dentry;
@@ -1654,7 +1648,7 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
 		name = configfs_get_name(next);
 		len = strlen(name);
 
-		if (!dir_emit(ctx, name, len, ino, dt_type(next)))
+		if (!dir_emit(ctx, name, len, ino, dt_type(next->s_mode)))
 			return 0;
 
 		spin_lock(&configfs_dirent_lock);
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index ef00b5fe8cee..0b7e9b8ee93e 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -1748,12 +1748,6 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
 	return error;
 }
 
-/* Relationship between mode and the DT_xxx types */
-static inline unsigned char dt_type(struct kernfs_node *kn)
-{
-	return (kn->mode >> 12) & 15;
-}
-
 static int kernfs_dir_fop_release(struct inode *inode, struct file *filp)
 {
 	kernfs_put(filp->private_data);
@@ -1831,7 +1825,7 @@ static int kernfs_fop_readdir(struct file *file, struct dir_context *ctx)
 	     pos;
 	     pos = kernfs_dir_next_pos(ns, parent, ctx->pos, pos)) {
 		const char *name = pos->name;
-		unsigned int type = dt_type(pos);
+		unsigned int type = dt_type(pos->mode);
 		int len = strlen(name);
 		ino_t ino = kernfs_ino(pos);
 
diff --git a/fs/libfs.c b/fs/libfs.c
index 4eda519c3002..d0f0cdae9ff7 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -174,12 +174,6 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
 }
 EXPORT_SYMBOL(dcache_dir_lseek);
 
-/* Relationship between i_mode and the DT_xxx types */
-static inline unsigned char dt_type(struct inode *inode)
-{
-	return (inode->i_mode >> 12) & 15;
-}
-
 /*
  * Directory is locked and all positive dentries in it are safe, since
  * for ramfs-type trees they can't go away without unlink() or rmdir(),
@@ -206,7 +200,8 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
 
 	while ((next = scan_positives(cursor, p, 1, next)) != NULL) {
 		if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
-			      d_inode(next)->i_ino, dt_type(d_inode(next))))
+			      d_inode(next)->i_ino,
+			      dt_type(d_inode(next)->i_mode)))
 			break;
 		ctx->pos++;
 		p = &next->d_child;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index c85916e9f7db..777a3641fc5d 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2885,6 +2885,12 @@ extern void iterate_supers(void (*)(struct super_block *, void *), void *);
 extern void iterate_supers_type(struct file_system_type *,
 			        void (*)(struct super_block *, void *), void *);
 
+/* Relationship between i_mode and the DT_xxx types */
+static inline unsigned char dt_type(umode_t mode)
+{
+	return (mode >> 12) & 15;
+}
+
 extern int dcache_dir_open(struct inode *, struct file *);
 extern int dcache_dir_close(struct inode *, struct file *);
 extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] consolidate dt_type() helper definitions
  2023-03-29 19:24 [PATCH] fs: consolidate dt_type() helper definitions Jeff Layton
@ 2023-03-29 19:29 ` Chuck Lever III
  2023-03-29 19:59   ` Jeff Layton
  2023-03-30  6:02 ` [PATCH] fs: " Greg Kroah-Hartman
  1 sibling, 1 reply; 4+ messages in thread
From: Chuck Lever III @ 2023-03-29 19:29 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, Joel Becker, Christoph Hellwig,
	Greg Kroah-Hartman, Tejun Heo, Al Viro, Christian Brauner,
	v9fs-developer, Linux Kernel Mailing List, linux-fsdevel



> On Mar 29, 2023, at 3:24 PM, Jeff Layton <jlayton@kernel.org> wrote:
> 
> There are 4 functions named dt_type() in the kernel. Consolidate the 3
> that are basically identical into one helper function in fs.h that
> takes a umode_t argument. The v9fs helper is renamed to distinguish it
> from the others.
> 
> Cc: Chuck Lever <chuck.lever@oracle.com>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>

Reviewed-by: Chuck Lever <chuck.lever@oracle.com>

One (non-blocking) comment below.


> ---
> fs/9p/vfs_dir.c    | 6 +++---
> fs/configfs/dir.c  | 8 +-------
> fs/kernfs/dir.c    | 8 +-------
> fs/libfs.c         | 9 ++-------
> include/linux/fs.h | 6 ++++++
> 5 files changed, 13 insertions(+), 24 deletions(-)
> 
> diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
> index 3d74b04fe0de..80b331f7f446 100644
> --- a/fs/9p/vfs_dir.c
> +++ b/fs/9p/vfs_dir.c
> @@ -41,12 +41,12 @@ struct p9_rdir {
> };
> 
> /**
> - * dt_type - return file type
> + * v9fs_dt_type - return file type
>  * @mistat: mistat structure
>  *
>  */
> 
> -static inline int dt_type(struct p9_wstat *mistat)
> +static inline int v9fs_dt_type(struct p9_wstat *mistat)
> {
> 	unsigned long perm = mistat->mode;
> 	int rettype = DT_REG;
> @@ -128,7 +128,7 @@ static int v9fs_dir_readdir(struct file *file, struct dir_context *ctx)
> 			}
> 
> 			over = !dir_emit(ctx, st.name, strlen(st.name),
> -					 v9fs_qid2ino(&st.qid), dt_type(&st));
> +					 v9fs_qid2ino(&st.qid), v9fs_dt_type(&st));
> 			p9stat_free(&st);
> 			if (over)
> 				return 0;
> diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
> index 4afcbbe63e68..43863a1696eb 100644
> --- a/fs/configfs/dir.c
> +++ b/fs/configfs/dir.c
> @@ -1599,12 +1599,6 @@ static int configfs_dir_close(struct inode *inode, struct file *file)
> 	return 0;
> }
> 
> -/* Relationship between s_mode and the DT_xxx types */
> -static inline unsigned char dt_type(struct configfs_dirent *sd)
> -{
> -	return (sd->s_mode >> 12) & 15;
> -}
> -
> static int configfs_readdir(struct file *file, struct dir_context *ctx)
> {
> 	struct dentry *dentry = file->f_path.dentry;
> @@ -1654,7 +1648,7 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
> 		name = configfs_get_name(next);
> 		len = strlen(name);
> 
> -		if (!dir_emit(ctx, name, len, ino, dt_type(next)))
> +		if (!dir_emit(ctx, name, len, ino, dt_type(next->s_mode)))
> 			return 0;
> 
> 		spin_lock(&configfs_dirent_lock);
> diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
> index ef00b5fe8cee..0b7e9b8ee93e 100644
> --- a/fs/kernfs/dir.c
> +++ b/fs/kernfs/dir.c
> @@ -1748,12 +1748,6 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
> 	return error;
> }
> 
> -/* Relationship between mode and the DT_xxx types */
> -static inline unsigned char dt_type(struct kernfs_node *kn)
> -{
> -	return (kn->mode >> 12) & 15;
> -}
> -
> static int kernfs_dir_fop_release(struct inode *inode, struct file *filp)
> {
> 	kernfs_put(filp->private_data);
> @@ -1831,7 +1825,7 @@ static int kernfs_fop_readdir(struct file *file, struct dir_context *ctx)
> 	     pos;
> 	     pos = kernfs_dir_next_pos(ns, parent, ctx->pos, pos)) {
> 		const char *name = pos->name;
> -		unsigned int type = dt_type(pos);
> +		unsigned int type = dt_type(pos->mode);
> 		int len = strlen(name);
> 		ino_t ino = kernfs_ino(pos);
> 
> diff --git a/fs/libfs.c b/fs/libfs.c
> index 4eda519c3002..d0f0cdae9ff7 100644
> --- a/fs/libfs.c
> +++ b/fs/libfs.c
> @@ -174,12 +174,6 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
> }
> EXPORT_SYMBOL(dcache_dir_lseek);
> 
> -/* Relationship between i_mode and the DT_xxx types */
> -static inline unsigned char dt_type(struct inode *inode)
> -{
> -	return (inode->i_mode >> 12) & 15;
> -}
> -
> /*
>  * Directory is locked and all positive dentries in it are safe, since
>  * for ramfs-type trees they can't go away without unlink() or rmdir(),
> @@ -206,7 +200,8 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
> 
> 	while ((next = scan_positives(cursor, p, 1, next)) != NULL) {
> 		if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
> -			      d_inode(next)->i_ino, dt_type(d_inode(next))))
> +			      d_inode(next)->i_ino,
> +			      dt_type(d_inode(next)->i_mode)))
> 			break;
> 		ctx->pos++;
> 		p = &next->d_child;
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index c85916e9f7db..777a3641fc5d 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -2885,6 +2885,12 @@ extern void iterate_supers(void (*)(struct super_block *, void *), void *);
> extern void iterate_supers_type(struct file_system_type *,
> 			        void (*)(struct super_block *, void *), void *);
> 
> +/* Relationship between i_mode and the DT_xxx types */
> +static inline unsigned char dt_type(umode_t mode)
> +{
> +	return (mode >> 12) & 15;

Was wondering if there are appropriate symbolic constants
that could be used instead of naked integers? NBD if not.


> +}
> +
> extern int dcache_dir_open(struct inode *, struct file *);
> extern int dcache_dir_close(struct inode *, struct file *);
> extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
> -- 
> 2.39.2
> 

--
Chuck Lever



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] consolidate dt_type() helper definitions
  2023-03-29 19:29 ` [PATCH] " Chuck Lever III
@ 2023-03-29 19:59   ` Jeff Layton
  0 siblings, 0 replies; 4+ messages in thread
From: Jeff Layton @ 2023-03-29 19:59 UTC (permalink / raw)
  To: Chuck Lever III
  Cc: Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, Joel Becker, Christoph Hellwig,
	Greg Kroah-Hartman, Tejun Heo, Al Viro, Christian Brauner,
	v9fs-developer, Linux Kernel Mailing List, linux-fsdevel

On Wed, 2023-03-29 at 19:29 +0000, Chuck Lever III wrote:
> 
> > On Mar 29, 2023, at 3:24 PM, Jeff Layton <jlayton@kernel.org> wrote:
> > 
> > There are 4 functions named dt_type() in the kernel. Consolidate the 3
> > that are basically identical into one helper function in fs.h that
> > takes a umode_t argument. The v9fs helper is renamed to distinguish it
> > from the others.
> > 
> > Cc: Chuck Lever <chuck.lever@oracle.com>
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> 
> Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
> 
> One (non-blocking) comment below.
> 
> 
> > ---
> > fs/9p/vfs_dir.c    | 6 +++---
> > fs/configfs/dir.c  | 8 +-------
> > fs/kernfs/dir.c    | 8 +-------
> > fs/libfs.c         | 9 ++-------
> > include/linux/fs.h | 6 ++++++
> > 5 files changed, 13 insertions(+), 24 deletions(-)
> > 
> > diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
> > index 3d74b04fe0de..80b331f7f446 100644
> > --- a/fs/9p/vfs_dir.c
> > +++ b/fs/9p/vfs_dir.c
> > @@ -41,12 +41,12 @@ struct p9_rdir {
> > };
> > 
> > /**
> > - * dt_type - return file type
> > + * v9fs_dt_type - return file type
> >  * @mistat: mistat structure
> >  *
> >  */
> > 
> > -static inline int dt_type(struct p9_wstat *mistat)
> > +static inline int v9fs_dt_type(struct p9_wstat *mistat)
> > {
> > 	unsigned long perm = mistat->mode;
> > 	int rettype = DT_REG;
> > @@ -128,7 +128,7 @@ static int v9fs_dir_readdir(struct file *file, struct dir_context *ctx)
> > 			}
> > 
> > 			over = !dir_emit(ctx, st.name, strlen(st.name),
> > -					 v9fs_qid2ino(&st.qid), dt_type(&st));
> > +					 v9fs_qid2ino(&st.qid), v9fs_dt_type(&st));
> > 			p9stat_free(&st);
> > 			if (over)
> > 				return 0;
> > diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
> > index 4afcbbe63e68..43863a1696eb 100644
> > --- a/fs/configfs/dir.c
> > +++ b/fs/configfs/dir.c
> > @@ -1599,12 +1599,6 @@ static int configfs_dir_close(struct inode *inode, struct file *file)
> > 	return 0;
> > }
> > 
> > -/* Relationship between s_mode and the DT_xxx types */
> > -static inline unsigned char dt_type(struct configfs_dirent *sd)
> > -{
> > -	return (sd->s_mode >> 12) & 15;
> > -}
> > -
> > static int configfs_readdir(struct file *file, struct dir_context *ctx)
> > {
> > 	struct dentry *dentry = file->f_path.dentry;
> > @@ -1654,7 +1648,7 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
> > 		name = configfs_get_name(next);
> > 		len = strlen(name);
> > 
> > -		if (!dir_emit(ctx, name, len, ino, dt_type(next)))
> > +		if (!dir_emit(ctx, name, len, ino, dt_type(next->s_mode)))
> > 			return 0;
> > 
> > 		spin_lock(&configfs_dirent_lock);
> > diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
> > index ef00b5fe8cee..0b7e9b8ee93e 100644
> > --- a/fs/kernfs/dir.c
> > +++ b/fs/kernfs/dir.c
> > @@ -1748,12 +1748,6 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
> > 	return error;
> > }
> > 
> > -/* Relationship between mode and the DT_xxx types */
> > -static inline unsigned char dt_type(struct kernfs_node *kn)
> > -{
> > -	return (kn->mode >> 12) & 15;
> > -}
> > -
> > static int kernfs_dir_fop_release(struct inode *inode, struct file *filp)
> > {
> > 	kernfs_put(filp->private_data);
> > @@ -1831,7 +1825,7 @@ static int kernfs_fop_readdir(struct file *file, struct dir_context *ctx)
> > 	     pos;
> > 	     pos = kernfs_dir_next_pos(ns, parent, ctx->pos, pos)) {
> > 		const char *name = pos->name;
> > -		unsigned int type = dt_type(pos);
> > +		unsigned int type = dt_type(pos->mode);
> > 		int len = strlen(name);
> > 		ino_t ino = kernfs_ino(pos);
> > 
> > diff --git a/fs/libfs.c b/fs/libfs.c
> > index 4eda519c3002..d0f0cdae9ff7 100644
> > --- a/fs/libfs.c
> > +++ b/fs/libfs.c
> > @@ -174,12 +174,6 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
> > }
> > EXPORT_SYMBOL(dcache_dir_lseek);
> > 
> > -/* Relationship between i_mode and the DT_xxx types */
> > -static inline unsigned char dt_type(struct inode *inode)
> > -{
> > -	return (inode->i_mode >> 12) & 15;
> > -}
> > -
> > /*
> >  * Directory is locked and all positive dentries in it are safe, since
> >  * for ramfs-type trees they can't go away without unlink() or rmdir(),
> > @@ -206,7 +200,8 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
> > 
> > 	while ((next = scan_positives(cursor, p, 1, next)) != NULL) {
> > 		if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
> > -			      d_inode(next)->i_ino, dt_type(d_inode(next))))
> > +			      d_inode(next)->i_ino,
> > +			      dt_type(d_inode(next)->i_mode)))
> > 			break;
> > 		ctx->pos++;
> > 		p = &next->d_child;
> > diff --git a/include/linux/fs.h b/include/linux/fs.h
> > index c85916e9f7db..777a3641fc5d 100644
> > --- a/include/linux/fs.h
> > +++ b/include/linux/fs.h
> > @@ -2885,6 +2885,12 @@ extern void iterate_supers(void (*)(struct super_block *, void *), void *);
> > extern void iterate_supers_type(struct file_system_type *,
> > 			        void (*)(struct super_block *, void *), void *);
> > 
> > +/* Relationship between i_mode and the DT_xxx types */
> > +static inline unsigned char dt_type(umode_t mode)
> > +{
> > +	return (mode >> 12) & 15;
> 
> Was wondering if there are appropriate symbolic constants
> that could be used instead of naked integers? NBD if not.
> 

If there is a way to express that with well-known constants, I don't
know it. It looks like Linus added this to libfs.c back in 2002 (from
linux-fullhistory tree):

commit a12662634bf285a5350a2106301e754652875d2f
Author: Linus Torvalds <torvalds@home.transmeta.com>
Date:   Tue Jul 2 01:37:41 2002 -0700

    Make ramfs/driverfs maintain directory nlink counts.
    
    Make dcache filesystems export directory entry types
    to readdir.

Linus, are there symbolic constants that you know of that we could use
here instead?


> 
> > +}
> > +
> > extern int dcache_dir_open(struct inode *, struct file *);
> > extern int dcache_dir_close(struct inode *, struct file *);
> > extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
> > -- 
> > 2.39.2
> > 
> 
> --
> Chuck Lever
> 
> 

-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] fs: consolidate dt_type() helper definitions
  2023-03-29 19:24 [PATCH] fs: consolidate dt_type() helper definitions Jeff Layton
  2023-03-29 19:29 ` [PATCH] " Chuck Lever III
@ 2023-03-30  6:02 ` Greg Kroah-Hartman
  1 sibling, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2023-03-30  6:02 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
	Christian Schoenebeck, Joel Becker, Christoph Hellwig, Tejun Heo,
	Alexander Viro, Christian Brauner, Chuck Lever, v9fs-developer,
	linux-kernel, linux-fsdevel

On Wed, Mar 29, 2023 at 03:24:23PM -0400, Jeff Layton wrote:
> There are 4 functions named dt_type() in the kernel. Consolidate the 3
> that are basically identical into one helper function in fs.h that
> takes a umode_t argument. The v9fs helper is renamed to distinguish it
> from the others.
> 
> Cc: Chuck Lever <chuck.lever@oracle.com>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  fs/9p/vfs_dir.c    | 6 +++---
>  fs/configfs/dir.c  | 8 +-------
>  fs/kernfs/dir.c    | 8 +-------
>  fs/libfs.c         | 9 ++-------
>  include/linux/fs.h | 6 ++++++
>  5 files changed, 13 insertions(+), 24 deletions(-)

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-30  6:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-29 19:24 [PATCH] fs: consolidate dt_type() helper definitions Jeff Layton
2023-03-29 19:29 ` [PATCH] " Chuck Lever III
2023-03-29 19:59   ` Jeff Layton
2023-03-30  6:02 ` [PATCH] fs: " Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).