Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
016c22e4
Commit
016c22e4
authored
May 28, 2024
by
Kent Overstreet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bcachefs: split out sb-members_format.h
Signed-off-by:
Kent Overstreet
<
kent.overstreet@linux.dev
>
parent
f1d4fed1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
101 deletions
+111
-101
fs/bcachefs/bcachefs_format.h
fs/bcachefs/bcachefs_format.h
+1
-101
fs/bcachefs/sb-members_format.h
fs/bcachefs/sb-members_format.h
+110
-0
No files found.
fs/bcachefs/bcachefs_format.h
View file @
016c22e4
...
@@ -513,6 +513,7 @@ struct bch_sb_field {
...
@@ -513,6 +513,7 @@ struct bch_sb_field {
#include "snapshot_format.h"
#include "snapshot_format.h"
#include "subvolume_format.h"
#include "subvolume_format.h"
#include "sb-counters_format.h"
#include "sb-counters_format.h"
#include "sb-members_format.h"
enum
bch_sb_field_type
{
enum
bch_sb_field_type
{
#define x(f, nr) BCH_SB_FIELD_##f = nr,
#define x(f, nr) BCH_SB_FIELD_##f = nr,
...
@@ -545,106 +546,6 @@ struct bch_sb_field_journal_v2 {
...
@@ -545,106 +546,6 @@ struct bch_sb_field_journal_v2 {
}
d
[];
}
d
[];
};
};
/* BCH_SB_FIELD_members_v1: */
#define BCH_MIN_NR_NBUCKETS (1 << 6)
#define BCH_IOPS_MEASUREMENTS() \
x(seqread, 0) \
x(seqwrite, 1) \
x(randread, 2) \
x(randwrite, 3)
enum
bch_iops_measurement
{
#define x(t, n) BCH_IOPS_##t = n,
BCH_IOPS_MEASUREMENTS
()
#undef x
BCH_IOPS_NR
};
#define BCH_MEMBER_ERROR_TYPES() \
x(read, 0) \
x(write, 1) \
x(checksum, 2)
enum
bch_member_error_type
{
#define x(t, n) BCH_MEMBER_ERROR_##t = n,
BCH_MEMBER_ERROR_TYPES
()
#undef x
BCH_MEMBER_ERROR_NR
};
struct
bch_member
{
__uuid_t
uuid
;
__le64
nbuckets
;
/* device size */
__le16
first_bucket
;
/* index of first bucket used */
__le16
bucket_size
;
/* sectors */
__u8
btree_bitmap_shift
;
__u8
pad
[
3
];
__le64
last_mount
;
/* time_t */
__le64
flags
;
__le32
iops
[
4
];
__le64
errors
[
BCH_MEMBER_ERROR_NR
];
__le64
errors_at_reset
[
BCH_MEMBER_ERROR_NR
];
__le64
errors_reset_time
;
__le64
seq
;
__le64
btree_allocated_bitmap
;
/*
* On recovery from a clean shutdown we don't normally read the journal,
* but we still want to resume writing from where we left off so we
* don't overwrite more than is necessary, for list journal debugging:
*/
__le32
last_journal_bucket
;
__le32
last_journal_bucket_offset
;
};
/*
* This limit comes from the bucket_gens array - it's a single allocation, and
* kernel allocation are limited to INT_MAX
*/
#define BCH_MEMBER_NBUCKETS_MAX (INT_MAX - 64)
#define BCH_MEMBER_V1_BYTES 56
LE64_BITMASK
(
BCH_MEMBER_STATE
,
struct
bch_member
,
flags
,
0
,
4
)
/* 4-14 unused, was TIER, HAS_(META)DATA, REPLACEMENT */
LE64_BITMASK
(
BCH_MEMBER_DISCARD
,
struct
bch_member
,
flags
,
14
,
15
)
LE64_BITMASK
(
BCH_MEMBER_DATA_ALLOWED
,
struct
bch_member
,
flags
,
15
,
20
)
LE64_BITMASK
(
BCH_MEMBER_GROUP
,
struct
bch_member
,
flags
,
20
,
28
)
LE64_BITMASK
(
BCH_MEMBER_DURABILITY
,
struct
bch_member
,
flags
,
28
,
30
)
LE64_BITMASK
(
BCH_MEMBER_FREESPACE_INITIALIZED
,
struct
bch_member
,
flags
,
30
,
31
)
#if 0
LE64_BITMASK(BCH_MEMBER_NR_READ_ERRORS, struct bch_member, flags[1], 0, 20);
LE64_BITMASK(BCH_MEMBER_NR_WRITE_ERRORS,struct bch_member, flags[1], 20, 40);
#endif
#define BCH_MEMBER_STATES() \
x(rw, 0) \
x(ro, 1) \
x(failed, 2) \
x(spare, 3)
enum
bch_member_state
{
#define x(t, n) BCH_MEMBER_STATE_##t = n,
BCH_MEMBER_STATES
()
#undef x
BCH_MEMBER_STATE_NR
};
struct
bch_sb_field_members_v1
{
struct
bch_sb_field
field
;
struct
bch_member
_members
[];
//Members are now variable size
};
struct
bch_sb_field_members_v2
{
struct
bch_sb_field
field
;
__le16
member_bytes
;
//size of single member entry
u8
pad
[
6
];
struct
bch_member
_members
[];
};
/* BCH_SB_FIELD_crypt: */
/* BCH_SB_FIELD_crypt: */
...
@@ -909,7 +810,6 @@ unsigned bcachefs_metadata_required_upgrade_below = bcachefs_metadata_version_re
...
@@ -909,7 +810,6 @@ unsigned bcachefs_metadata_required_upgrade_below = bcachefs_metadata_version_re
#define bcachefs_metadata_version_current (bcachefs_metadata_version_max - 1)
#define bcachefs_metadata_version_current (bcachefs_metadata_version_max - 1)
#define BCH_SB_SECTOR 8
#define BCH_SB_SECTOR 8
#define BCH_SB_MEMBERS_MAX 64
/* XXX kill */
#define BCH_SB_LAYOUT_SIZE_BITS_MAX 16
/* 32 MB */
#define BCH_SB_LAYOUT_SIZE_BITS_MAX 16
/* 32 MB */
...
...
fs/bcachefs/sb-members_format.h
0 → 100644
View file @
016c22e4
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_SB_MEMBERS_FORMAT_H
#define _BCACHEFS_SB_MEMBERS_FORMAT_H
/*
* We refer to members with bitmasks in various places - but we need to get rid
* of this limit:
*/
#define BCH_SB_MEMBERS_MAX 64
#define BCH_MIN_NR_NBUCKETS (1 << 6)
#define BCH_IOPS_MEASUREMENTS() \
x(seqread, 0) \
x(seqwrite, 1) \
x(randread, 2) \
x(randwrite, 3)
enum
bch_iops_measurement
{
#define x(t, n) BCH_IOPS_##t = n,
BCH_IOPS_MEASUREMENTS
()
#undef x
BCH_IOPS_NR
};
#define BCH_MEMBER_ERROR_TYPES() \
x(read, 0) \
x(write, 1) \
x(checksum, 2)
enum
bch_member_error_type
{
#define x(t, n) BCH_MEMBER_ERROR_##t = n,
BCH_MEMBER_ERROR_TYPES
()
#undef x
BCH_MEMBER_ERROR_NR
};
struct
bch_member
{
__uuid_t
uuid
;
__le64
nbuckets
;
/* device size */
__le16
first_bucket
;
/* index of first bucket used */
__le16
bucket_size
;
/* sectors */
__u8
btree_bitmap_shift
;
__u8
pad
[
3
];
__le64
last_mount
;
/* time_t */
__le64
flags
;
__le32
iops
[
4
];
__le64
errors
[
BCH_MEMBER_ERROR_NR
];
__le64
errors_at_reset
[
BCH_MEMBER_ERROR_NR
];
__le64
errors_reset_time
;
__le64
seq
;
__le64
btree_allocated_bitmap
;
/*
* On recovery from a clean shutdown we don't normally read the journal,
* but we still want to resume writing from where we left off so we
* don't overwrite more than is necessary, for list journal debugging:
*/
__le32
last_journal_bucket
;
__le32
last_journal_bucket_offset
;
};
/*
* This limit comes from the bucket_gens array - it's a single allocation, and
* kernel allocation are limited to INT_MAX
*/
#define BCH_MEMBER_NBUCKETS_MAX (INT_MAX - 64)
#define BCH_MEMBER_V1_BYTES 56
LE64_BITMASK
(
BCH_MEMBER_STATE
,
struct
bch_member
,
flags
,
0
,
4
)
/* 4-14 unused, was TIER, HAS_(META)DATA, REPLACEMENT */
LE64_BITMASK
(
BCH_MEMBER_DISCARD
,
struct
bch_member
,
flags
,
14
,
15
)
LE64_BITMASK
(
BCH_MEMBER_DATA_ALLOWED
,
struct
bch_member
,
flags
,
15
,
20
)
LE64_BITMASK
(
BCH_MEMBER_GROUP
,
struct
bch_member
,
flags
,
20
,
28
)
LE64_BITMASK
(
BCH_MEMBER_DURABILITY
,
struct
bch_member
,
flags
,
28
,
30
)
LE64_BITMASK
(
BCH_MEMBER_FREESPACE_INITIALIZED
,
struct
bch_member
,
flags
,
30
,
31
)
#if 0
LE64_BITMASK(BCH_MEMBER_NR_READ_ERRORS, struct bch_member, flags[1], 0, 20);
LE64_BITMASK(BCH_MEMBER_NR_WRITE_ERRORS,struct bch_member, flags[1], 20, 40);
#endif
#define BCH_MEMBER_STATES() \
x(rw, 0) \
x(ro, 1) \
x(failed, 2) \
x(spare, 3)
enum
bch_member_state
{
#define x(t, n) BCH_MEMBER_STATE_##t = n,
BCH_MEMBER_STATES
()
#undef x
BCH_MEMBER_STATE_NR
};
struct
bch_sb_field_members_v1
{
struct
bch_sb_field
field
;
struct
bch_member
_members
[];
//Members are now variable size
};
struct
bch_sb_field_members_v2
{
struct
bch_sb_field
field
;
__le16
member_bytes
;
//size of single member entry
u8
pad
[
6
];
struct
bch_member
_members
[];
};
#endif
/* _BCACHEFS_SB_MEMBERS_FORMAT_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment