]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/opts.h
Update bcachefs sources to f67089dc9b bcachefs: Convert bch2_sb_to_text to master...
[bcachefs-tools-debian] / libbcachefs / opts.h
index bafacf6b46a2a962688bb49974d481ee136c6b62..9e68f1002d8dddae816e35d7986e94681240fee1 100644 (file)
@@ -42,7 +42,8 @@ static inline const char *bch2_d_type_str(unsigned d_type)
  */
 
 /* dummy option, for options that aren't stored in the superblock */
-LE64_BITMASK(NO_SB_OPT,                struct bch_sb, flags[0], 0, 0);
+u64 BCH2_NO_SB_OPT(const struct bch_sb *);
+void SET_BCH2_NO_SB_OPT(struct bch_sb *, u64);
 
 /* When can be set: */
 enum opt_flags {
@@ -202,7 +203,7 @@ enum opt_type {
        x(btree_node_mem_ptr_optimization, u8,                          \
          OPT_FS|OPT_MOUNT|OPT_RUNTIME,                                 \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    true,                           \
+         BCH2_NO_SB_OPT,               true,                           \
          NULL,         "Stash pointer to in memory btree node in btree ptr")\
        x(gc_reserve_percent,           u8,                             \
          OPT_FS|OPT_FORMAT|OPT_MOUNT|OPT_RUNTIME,                      \
@@ -229,7 +230,7 @@ enum opt_type {
        x(inline_data,                  u8,                             \
          OPT_FS|OPT_MOUNT|OPT_RUNTIME,                                 \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    true,                           \
+         BCH2_NO_SB_OPT,               true,                           \
          NULL,         "Enable inline data extents")                   \
        x(acl,                          u8,                             \
          OPT_FS|OPT_FORMAT|OPT_MOUNT,                                  \
@@ -254,22 +255,22 @@ enum opt_type {
        x(degraded,                     u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Allow mounting in degraded mode")              \
        x(very_degraded,                u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Allow mounting in when data will be missing")  \
        x(discard,                      u8,                             \
          OPT_FS|OPT_MOUNT|OPT_DEVICE,                                  \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Enable discard/TRIM support")                  \
        x(verbose,                      u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Extra debugging information during mount/recovery")\
        x(journal_flush_delay,          u32,                            \
          OPT_FS|OPT_MOUNT|OPT_RUNTIME,                                 \
@@ -291,48 +292,48 @@ enum opt_type {
        x(fsck,                         u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Run fsck on mount")                            \
        x(fix_errors,                   u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Fix errors during fsck without asking")        \
        x(ratelimit_errors,             u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    RATELIMIT_ERRORS_DEFAULT,       \
+         BCH2_NO_SB_OPT,               RATELIMIT_ERRORS_DEFAULT,       \
          NULL,         "Ratelimit error messages during fsck")         \
        x(nochanges,                    u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,               false,                          \
          NULL,         "Super read only mode - no writes at all will be issued,\n"\
                        "even if we have to replay the journal")        \
        x(norecovery,                   u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Don't replay the journal")                     \
        x(rebuild_replicas,             u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Rebuild the superblock replicas section")      \
        x(keep_journal,                 u8,                             \
          0,                                                            \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Don't free journal entries/keys after startup")\
        x(read_entire_journal,          u8,                             \
          0,                                                            \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Read all journal entries, not just dirty ones")\
        x(read_journal_only,            u8,                             \
          0,                                                            \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Only read the journal, skip the rest of recovery")\
        x(journal_transaction_names,    u8,                             \
          OPT_FS|OPT_FORMAT|OPT_MOUNT|OPT_RUNTIME,                      \
@@ -342,58 +343,58 @@ enum opt_type {
        x(noexcl,                       u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Don't open device in exclusive mode")          \
        x(sb,                           u64,                            \
          OPT_MOUNT,                                                    \
          OPT_UINT(0, S64_MAX),                                         \
-         NO_SB_OPT,                    BCH_SB_SECTOR,                  \
+         BCH2_NO_SB_OPT,                       BCH_SB_SECTOR,                  \
          "offset",     "Sector offset of superblock")                  \
        x(read_only,                    u8,                             \
          OPT_FS,                                                       \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         NULL)                                           \
        x(nostart,                      u8,                             \
          0,                                                            \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Don\'t start filesystem, only open devices")   \
        x(reconstruct_alloc,            u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Reconstruct alloc btree")                      \
        x(version_upgrade,              u8,                             \
          OPT_FS|OPT_MOUNT,                                             \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Set superblock to latest version,\n"           \
                        "allowing any new features to be used")         \
        x(buckets_nouse,                u8,                             \
          0,                                                            \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         "Allocate the buckets_nouse bitmap")            \
        x(project,                      u8,                             \
          OPT_INODE,                                                    \
          OPT_BOOL(),                                                   \
-         NO_SB_OPT,                    false,                          \
+         BCH2_NO_SB_OPT,                       false,                          \
          NULL,         NULL)                                           \
        x(fs_size,                      u64,                            \
          OPT_DEVICE,                                                   \
          OPT_UINT(0, S64_MAX),                                         \
-         NO_SB_OPT,                    0,                              \
+         BCH2_NO_SB_OPT,               0,                              \
          "size",       "Size of filesystem on device")                 \
        x(bucket,                       u32,                            \
          OPT_DEVICE,                                                   \
          OPT_UINT(0, S64_MAX),                                         \
-         NO_SB_OPT,                    0,                              \
+         BCH2_NO_SB_OPT,               0,                              \
          "size",       "Size of filesystem on device")                 \
        x(durability,                   u8,                             \
          OPT_DEVICE,                                                   \
          OPT_UINT(0, BCH_REPLICAS_MAX),                                \
-         NO_SB_OPT,                    1,                              \
+         BCH2_NO_SB_OPT,               1,                              \
          "n",          "Data written to this device will be considered\n"\
                        "to have already been replicated n times")
 
@@ -475,6 +476,7 @@ bool bch2_opt_defined_by_id(const struct bch_opts *, enum bch_opt_id);
 u64 bch2_opt_get_by_id(const struct bch_opts *, enum bch_opt_id);
 void bch2_opt_set_by_id(struct bch_opts *, enum bch_opt_id, u64);
 
+u64 bch2_opt_from_sb(struct bch_sb *, enum bch_opt_id);
 int bch2_opts_from_sb(struct bch_opts *, struct bch_sb *);
 void __bch2_opt_set_sb(struct bch_sb *, const struct bch_option *, u64);
 void bch2_opt_set_sb(struct bch_fs *, const struct bch_option *, u64);