2024-05-07 16:04:20

by Petr Vorel

[permalink] [raw]
Subject: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.

There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
which use UUID_INIT() and are used only in libbcachefs. Therefore move
only BCACHEFS_STATFS_MAGIC value, which can be used outside of
libbcachefs for f_type field in struct statfs in statfs() or fstatfs().

Suggested-by: Su Yue <[email protected]>
Signed-off-by: Petr Vorel <[email protected]>
---
Changes v2->v3:
* Align tab with other entries.

Changes v1->v2 (all suggested by Brian Foster - thanks!):
* rename constant to BCACHEFS_SUPER_MAGIC,
* keep BCACHEFS_STATFS_MAGIC in bcachefs_format.h, just include
<uapi/linux/magic.h> and use BCACHEFS_SUPER_MAGIC definition,
* move the constant to the first chunk.

Kind regards,
Petr

fs/bcachefs/bcachefs_format.h | 3 ++-
include/uapi/linux/magic.h | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
index f7fbfccd2b1e..3b831415409b 100644
--- a/fs/bcachefs/bcachefs_format.h
+++ b/fs/bcachefs/bcachefs_format.h
@@ -76,6 +76,7 @@
#include <asm/byteorder.h>
#include <linux/kernel.h>
#include <linux/uuid.h>
+#include <uapi/linux/magic.h>
#include "vstructs.h"

#ifdef __KERNEL__
@@ -1275,7 +1276,7 @@ enum bch_compression_opts {
UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)

-#define BCACHEFS_STATFS_MAGIC 0xca451a4e
+#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC

#define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
#define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
index 1b40a968ba91..bb575f3ab45e 100644
--- a/include/uapi/linux/magic.h
+++ b/include/uapi/linux/magic.h
@@ -37,6 +37,7 @@
#define HOSTFS_SUPER_MAGIC 0x00c0ffee
#define OVERLAYFS_SUPER_MAGIC 0x794c7630
#define FUSE_SUPER_MAGIC 0x65735546
+#define BCACHEFS_SUPER_MAGIC 0xca451a4e

#define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
#define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
--
2.43.0



2024-05-07 16:14:58

by Brian Foster

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

On Tue, May 07, 2024 at 05:37:57PM +0200, Petr Vorel wrote:
> Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.
>
> There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> which use UUID_INIT() and are used only in libbcachefs. Therefore move
> only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> libbcachefs for f_type field in struct statfs in statfs() or fstatfs().
>
> Suggested-by: Su Yue <[email protected]>
> Signed-off-by: Petr Vorel <[email protected]>
> ---

I was thinking you'd just rename the STATFS_MAGIC def locally as well,
but whatever.. LGTM, thanks for the tweaks!

Acked-by: Brian Foster <[email protected]>

> Changes v2->v3:
> * Align tab with other entries.
>
> Changes v1->v2 (all suggested by Brian Foster - thanks!):
> * rename constant to BCACHEFS_SUPER_MAGIC,
> * keep BCACHEFS_STATFS_MAGIC in bcachefs_format.h, just include
> <uapi/linux/magic.h> and use BCACHEFS_SUPER_MAGIC definition,
> * move the constant to the first chunk.
>
> Kind regards,
> Petr
>
> fs/bcachefs/bcachefs_format.h | 3 ++-
> include/uapi/linux/magic.h | 1 +
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
> index f7fbfccd2b1e..3b831415409b 100644
> --- a/fs/bcachefs/bcachefs_format.h
> +++ b/fs/bcachefs/bcachefs_format.h
> @@ -76,6 +76,7 @@
> #include <asm/byteorder.h>
> #include <linux/kernel.h>
> #include <linux/uuid.h>
> +#include <uapi/linux/magic.h>
> #include "vstructs.h"
>
> #ifdef __KERNEL__
> @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)
>
> -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC
>
> #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> index 1b40a968ba91..bb575f3ab45e 100644
> --- a/include/uapi/linux/magic.h
> +++ b/include/uapi/linux/magic.h
> @@ -37,6 +37,7 @@
> #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> #define FUSE_SUPER_MAGIC 0x65735546
> +#define BCACHEFS_SUPER_MAGIC 0xca451a4e
>
> #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
> #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
> --
> 2.43.0
>


2024-05-07 16:49:10

by Petr Vorel

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

> On Tue, May 07, 2024 at 05:37:57PM +0200, Petr Vorel wrote:
> > Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> > BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> > definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.

> > There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> > which use UUID_INIT() and are used only in libbcachefs. Therefore move
> > only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> > libbcachefs for f_type field in struct statfs in statfs() or fstatfs().

> > Suggested-by: Su Yue <[email protected]>
> > Signed-off-by: Petr Vorel <[email protected]>
> > ---

> I was thinking you'd just rename the STATFS_MAGIC def locally as well,
> but whatever.. LGTM, thanks for the tweaks!

Ah, I thought it'd be more readable this way from bcachefs point.
Kent, just let me know if you prefer Brian's way and I'll send v4.

Kind regards,
Petr

> Acked-by: Brian Foster <[email protected]>

> > Changes v2->v3:
> > * Align tab with other entries.

> > Changes v1->v2 (all suggested by Brian Foster - thanks!):
> > * rename constant to BCACHEFS_SUPER_MAGIC,
> > * keep BCACHEFS_STATFS_MAGIC in bcachefs_format.h, just include
> > <uapi/linux/magic.h> and use BCACHEFS_SUPER_MAGIC definition,
> > * move the constant to the first chunk.

> > Kind regards,
> > Petr

> > fs/bcachefs/bcachefs_format.h | 3 ++-
> > include/uapi/linux/magic.h | 1 +
> > 2 files changed, 3 insertions(+), 1 deletion(-)

> > diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
> > index f7fbfccd2b1e..3b831415409b 100644
> > --- a/fs/bcachefs/bcachefs_format.h
> > +++ b/fs/bcachefs/bcachefs_format.h
> > @@ -76,6 +76,7 @@
> > #include <asm/byteorder.h>
> > #include <linux/kernel.h>
> > #include <linux/uuid.h>
> > +#include <uapi/linux/magic.h>
> > #include "vstructs.h"

> > #ifdef __KERNEL__
> > @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> > UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> > 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)

> > -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> > +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC

> > #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> > #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> > diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> > index 1b40a968ba91..bb575f3ab45e 100644
> > --- a/include/uapi/linux/magic.h
> > +++ b/include/uapi/linux/magic.h
> > @@ -37,6 +37,7 @@
> > #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> > #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> > #define FUSE_SUPER_MAGIC 0x65735546
> > +#define BCACHEFS_SUPER_MAGIC 0xca451a4e

> > #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
> > #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
> > --
> > 2.43.0



2024-05-08 02:08:35

by Glass Su

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h



> On May 7, 2024, at 23:37, Petr Vorel <[email protected]> wrote:
>
> Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.
>
> There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> which use UUID_INIT() and are used only in libbcachefs. Therefore move
> only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> libbcachefs for f_type field in struct statfs in statfs() or fstatfs().
>
> Suggested-by: Su Yue <[email protected]>

Would you kindly amend it to Su Yue <[email protected]> or
Kent can help if the patch is going to be applied.

> Signed-off-by: Petr Vorel <[email protected]>
> ---
> Changes v2->v3:
> * Align tab with other entries.
>
> Changes v1->v2 (all suggested by Brian Foster - thanks!):
> * rename constant to BCACHEFS_SUPER_MAGIC,
> * keep BCACHEFS_STATFS_MAGIC in bcachefs_format.h, just include
> <uapi/linux/magic.h> and use BCACHEFS_SUPER_MAGIC definition,
> * move the constant to the first chunk.
>
> Kind regards,
> Petr
>
> fs/bcachefs/bcachefs_format.h | 3 ++-
> include/uapi/linux/magic.h | 1 +
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
> index f7fbfccd2b1e..3b831415409b 100644
> --- a/fs/bcachefs/bcachefs_format.h
> +++ b/fs/bcachefs/bcachefs_format.h
> @@ -76,6 +76,7 @@
> #include <asm/byteorder.h>
> #include <linux/kernel.h>
> #include <linux/uuid.h>
> +#include <uapi/linux/magic.h>
> #include "vstructs.h"
>
> #ifdef __KERNEL__
> @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)
>
> -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC
>
> #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> index 1b40a968ba91..bb575f3ab45e 100644
> --- a/include/uapi/linux/magic.h
> +++ b/include/uapi/linux/magic.h
> @@ -37,6 +37,7 @@
> #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> #define FUSE_SUPER_MAGIC 0x65735546
> +#define BCACHEFS_SUPER_MAGIC 0xca451a4e

IIUC, due to some historical reasons bcachefs used to switched
ondisk sb magic from BCACHE_MAGIC to BCHFS_MAGIC.
Other major fses uses *_SUPER_MAGIC both for ondisk
sb magic, kstatfs::f_type and super_block::s_magic.
However, for bcacehfs there are three magic numbers.

Anyway, it looks good to me so far:
Reviewed-by: Su Yue <[email protected]>


Su

> #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
> #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
> --
> 2.43.0
>
>


2024-05-08 02:28:09

by Kent Overstreet

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

On Tue, May 07, 2024 at 06:44:30PM +0200, Petr Vorel wrote:
> > On Tue, May 07, 2024 at 05:37:57PM +0200, Petr Vorel wrote:
> > > Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> > > BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> > > definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.
>
> > > There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> > > which use UUID_INIT() and are used only in libbcachefs. Therefore move
> > > only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> > > libbcachefs for f_type field in struct statfs in statfs() or fstatfs().
>
> > > Suggested-by: Su Yue <[email protected]>
> > > Signed-off-by: Petr Vorel <[email protected]>
> > > ---
>
> > I was thinking you'd just rename the STATFS_MAGIC def locally as well,
> > but whatever.. LGTM, thanks for the tweaks!
>
> Ah, I thought it'd be more readable this way from bcachefs point.
> Kent, just let me know if you prefer Brian's way and I'll send v4.

It's in my tree now :)

2024-05-08 21:18:17

by Petr Vorel

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

HI Su, Kent,

> > On May 7, 2024, at 23:37, Petr Vorel <[email protected]> wrote:

> > Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> > BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> > definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.

> > There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> > which use UUID_INIT() and are used only in libbcachefs. Therefore move
> > only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> > libbcachefs for f_type field in struct statfs in statfs() or fstatfs().

> > Suggested-by: Su Yue <[email protected]>

> Would you kindly amend it to Su Yue <[email protected]> or
> Kent can help if the patch is going to be applied.

Unfortunately Kent was faster, it's already merged without your SUSE address
(and your RBT you added in the end):

https://evilpiepirate.org/git/bcachefs.git/commit/?h=for-next&id=ce8f9355f23be9756e499682d0d642a741db6c3a

@Kent: Maybe it can be even now amended (with Su Yue's RBT).

> > Signed-off-by: Petr Vorel <[email protected]>
> > ---
> > Changes v2->v3:
> > * Align tab with other entries.
..
> > #include <linux/uuid.h>
> > +#include <uapi/linux/magic.h>
> > #include "vstructs.h"

> > #ifdef __KERNEL__
> > @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> > UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> > 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)

> > -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> > +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC

> > #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> > #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> > diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> > index 1b40a968ba91..bb575f3ab45e 100644
> > --- a/include/uapi/linux/magic.h
> > +++ b/include/uapi/linux/magic.h
> > @@ -37,6 +37,7 @@
> > #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> > #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> > #define FUSE_SUPER_MAGIC 0x65735546
> > +#define BCACHEFS_SUPER_MAGIC 0xca451a4e

> IIUC, due to some historical reasons bcachefs used to switched
> ondisk sb magic from BCACHE_MAGIC to BCHFS_MAGIC.
> Other major fses uses *_SUPER_MAGIC both for ondisk
> sb magic, kstatfs::f_type and super_block::s_magic.
> However, for bcacehfs there are three magic numbers.

Thanks for info. But for struct statfs in statfs() or fstatfs() only 0xca451a4e
is needed, right? I would not expose the other(s) unless it's really needed.
Also we'd need to backport UUID_INIT() into UAPI :(.

> Anyway, it looks good to me so far:
> Reviewed-by: Su Yue <[email protected]>

And also without your RBT.

Kind regards,
Petr

> —
> Su

2024-05-08 21:28:05

by Kent Overstreet

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

On Wed, May 08, 2024 at 11:17:59PM +0200, Petr Vorel wrote:
> HI Su, Kent,
>
> > > On May 7, 2024, at 23:37, Petr Vorel <[email protected]> wrote:
>
> > > Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> > > BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> > > definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.
>
> > > There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> > > which use UUID_INIT() and are used only in libbcachefs. Therefore move
> > > only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> > > libbcachefs for f_type field in struct statfs in statfs() or fstatfs().
>
> > > Suggested-by: Su Yue <[email protected]>
>
> > Would you kindly amend it to Su Yue <[email protected]> or
> > Kent can help if the patch is going to be applied.
>
> Unfortunately Kent was faster, it's already merged without your SUSE address
> (and your RBT you added in the end):
>
> https://evilpiepirate.org/git/bcachefs.git/commit/?h=for-next&id=ce8f9355f23be9756e499682d0d642a741db6c3a
>
> @Kent: Maybe it can be even now amended (with Su Yue's RBT).

..sure, make me invalidate my test results :)

> > > Signed-off-by: Petr Vorel <[email protected]>
> > > ---
> > > Changes v2->v3:
> > > * Align tab with other entries.
> ...
> > > #include <linux/uuid.h>
> > > +#include <uapi/linux/magic.h>
> > > #include "vstructs.h"
>
> > > #ifdef __KERNEL__
> > > @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> > > UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> > > 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)
>
> > > -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> > > +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC
>
> > > #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> > > #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> > > diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> > > index 1b40a968ba91..bb575f3ab45e 100644
> > > --- a/include/uapi/linux/magic.h
> > > +++ b/include/uapi/linux/magic.h
> > > @@ -37,6 +37,7 @@
> > > #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> > > #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> > > #define FUSE_SUPER_MAGIC 0x65735546
> > > +#define BCACHEFS_SUPER_MAGIC 0xca451a4e
>
> > IIUC, due to some historical reasons bcachefs used to switched
> > ondisk sb magic from BCACHE_MAGIC to BCHFS_MAGIC.
> > Other major fses uses *_SUPER_MAGIC both for ondisk
> > sb magic, kstatfs::f_type and super_block::s_magic.
> > However, for bcacehfs there are three magic numbers.
>
> Thanks for info. But for struct statfs in statfs() or fstatfs() only 0xca451a4e
> is needed, right? I would not expose the other(s) unless it's really needed.
> Also we'd need to backport UUID_INIT() into UAPI :(.
>
> > Anyway, it looks good to me so far:
> > Reviewed-by: Su Yue <[email protected]>
>
> And also without your RBT.
>
> Kind regards,
> Petr
>
> > —
> > Su

2024-05-09 06:17:43

by Petr Vorel

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h

Hi Kent,

> On Wed, May 08, 2024 at 11:17:59PM +0200, Petr Vorel wrote:
> > Hi Su, Kent,

> > > > On May 7, 2024, at 23:37, Petr Vorel <[email protected]> wrote:

> > > > Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
> > > > BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
> > > > definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.

> > > > There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
> > > > which use UUID_INIT() and are used only in libbcachefs. Therefore move
> > > > only BCACHEFS_STATFS_MAGIC value, which can be used outside of
> > > > libbcachefs for f_type field in struct statfs in statfs() or fstatfs().

> > > > Suggested-by: Su Yue <[email protected]>

> > > Would you kindly amend it to Su Yue <[email protected]> or
> > > Kent can help if the patch is going to be applied.

> > Unfortunately Kent was faster, it's already merged without your SUSE address
> > (and your RBT you added in the end):

> > https://evilpiepirate.org/git/bcachefs.git/commit/?h=for-next&id=ce8f9355f23be9756e499682d0d642a741db6c3a

> > @Kent: Maybe it can be even now amended (with Su Yue's RBT).

> ...sure, make me invalidate my test results :)

Thank you! FYI there was also his RBT (Reviewed-by: Su Yue <[email protected]>)

https://lore.kernel.org/linux-bcachefs/[email protected]/

Kind regards,
Petr

> > > > Signed-off-by: Petr Vorel <[email protected]>
> > > > ---
> > > > Changes v2->v3:
> > > > * Align tab with other entries.
> > ...
> > > > #include <linux/uuid.h>
> > > > +#include <uapi/linux/magic.h>
> > > > #include "vstructs.h"

> > > > #ifdef __KERNEL__
> > > > @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
> > > > UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
> > > > 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)

> > > > -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
> > > > +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC

> > > > #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
> > > > #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
> > > > diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
> > > > index 1b40a968ba91..bb575f3ab45e 100644
> > > > --- a/include/uapi/linux/magic.h
> > > > +++ b/include/uapi/linux/magic.h
> > > > @@ -37,6 +37,7 @@
> > > > #define HOSTFS_SUPER_MAGIC 0x00c0ffee
> > > > #define OVERLAYFS_SUPER_MAGIC 0x794c7630
> > > > #define FUSE_SUPER_MAGIC 0x65735546
> > > > +#define BCACHEFS_SUPER_MAGIC 0xca451a4e

> > > IIUC, due to some historical reasons bcachefs used to switched
> > > ondisk sb magic from BCACHE_MAGIC to BCHFS_MAGIC.
> > > Other major fses uses *_SUPER_MAGIC both for ondisk
> > > sb magic, kstatfs::f_type and super_block::s_magic.
> > > However, for bcacehfs there are three magic numbers.

> > Thanks for info. But for struct statfs in statfs() or fstatfs() only 0xca451a4e
> > is needed, right? I would not expose the other(s) unless it's really needed.
> > Also we'd need to backport UUID_INIT() into UAPI :(.

> > > Anyway, it looks good to me so far:
> > > Reviewed-by: Su Yue <[email protected]>

> > And also without your RBT.

> > Kind regards,
> > Petr

> > > —
> > > Su

2024-05-09 07:03:07

by Glass Su

[permalink] [raw]
Subject: Re: [PATCH v3 1/1] bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h



> On May 9, 2024, at 14:17, Petr Vorel <[email protected]> wrote:
>
> Hi Kent,
>
>> On Wed, May 08, 2024 at 11:17:59PM +0200, Petr Vorel wrote:
>>> Hi Su, Kent,
>
>>>>> On May 7, 2024, at 23:37, Petr Vorel <[email protected]> wrote:
>
>>>>> Move BCACHEFS_STATFS_MAGIC value to UAPI <linux/magic.h> under
>>>>> BCACHEFS_SUPER_MAGIC definition (use common approach for name) and reuse the
>>>>> definition in bcachefs_format.h BCACHEFS_STATFS_MAGIC.
>
>>>>> There are other bcachefs magic definitions: BCACHE_MAGIC, BCHFS_MAGIC,
>>>>> which use UUID_INIT() and are used only in libbcachefs. Therefore move
>>>>> only BCACHEFS_STATFS_MAGIC value, which can be used outside of
>>>>> libbcachefs for f_type field in struct statfs in statfs() or fstatfs().
>
>>>>> Suggested-by: Su Yue <[email protected]>
>
>>>> Would you kindly amend it to Su Yue <[email protected]> or
>>>> Kent can help if the patch is going to be applied.
>
>>> Unfortunately Kent was faster, it's already merged without your SUSE address
>>> (and your RBT you added in the end):
>
>>> https://evilpiepirate.org/git/bcachefs.git/commit/?h=for-next&id=ce8f9355f23be9756e499682d0d642a741db6c3a
>
>>> @Kent: Maybe it can be even now amended (with Su Yue's RBT).
>
>> ...sure, make me invalidate my test results :)
>
> Thank you! FYI there was also his RBT (Reviewed-by: Su Yue <[email protected]>)
>
Thanks both for you Petr and Kent :- ) Sorry for inconvenience due to my email quirk...


Su
> https://lore.kernel.org/linux-bcachefs/[email protected]/
>
> Kind regards,
> Petr
>
>>>>> Signed-off-by: Petr Vorel <[email protected]>
>>>>> ---
>>>>> Changes v2->v3:
>>>>> * Align tab with other entries.
>>> ...
>>>>> #include <linux/uuid.h>
>>>>> +#include <uapi/linux/magic.h>
>>>>> #include "vstructs.h"
>
>>>>> #ifdef __KERNEL__
>>>>> @@ -1275,7 +1276,7 @@ enum bch_compression_opts {
>>>>> UUID_INIT(0xc68573f6, 0x66ce, 0x90a9, \
>>>>> 0xd9, 0x6a, 0x60, 0xcf, 0x80, 0x3d, 0xf7, 0xef)
>
>>>>> -#define BCACHEFS_STATFS_MAGIC 0xca451a4e
>>>>> +#define BCACHEFS_STATFS_MAGIC BCACHEFS_SUPER_MAGIC
>
>>>>> #define JSET_MAGIC __cpu_to_le64(0x245235c1a3625032ULL)
>>>>> #define BSET_MAGIC __cpu_to_le64(0x90135c78b99e07f5ULL)
>>>>> diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h
>>>>> index 1b40a968ba91..bb575f3ab45e 100644
>>>>> --- a/include/uapi/linux/magic.h
>>>>> +++ b/include/uapi/linux/magic.h
>>>>> @@ -37,6 +37,7 @@
>>>>> #define HOSTFS_SUPER_MAGIC 0x00c0ffee
>>>>> #define OVERLAYFS_SUPER_MAGIC 0x794c7630
>>>>> #define FUSE_SUPER_MAGIC 0x65735546
>>>>> +#define BCACHEFS_SUPER_MAGIC 0xca451a4e
>
>>>> IIUC, due to some historical reasons bcachefs used to switched
>>>> ondisk sb magic from BCACHE_MAGIC to BCHFS_MAGIC.
>>>> Other major fses uses *_SUPER_MAGIC both for ondisk
>>>> sb magic, kstatfs::f_type and super_block::s_magic.
>>>> However, for bcacehfs there are three magic numbers.
>
>>> Thanks for info. But for struct statfs in statfs() or fstatfs() only 0xca451a4e
>>> is needed, right? I would not expose the other(s) unless it's really needed.
>>> Also we'd need to backport UUID_INIT() into UAPI :(.
>
>>>> Anyway, it looks good to me so far:
>>>> Reviewed-by: Su Yue <[email protected]>
>
>>> And also without your RBT.
>
>>> Kind regards,
>>> Petr
>
>>>> —
>>>> Su