summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-12-13 08:24:21 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-12-27 11:38:37 -0500
commitb9c7a6c411df15d77c1e7f1010258bc6d4a519a3 (patch)
tree4e1dfbc4c5c3119ba8f67f3916ae61e01a97519c
parent24ac71e96b8995e8413324a6d00225572ccba875 (diff)
bcachefs: merge BCH_INODE_FIELDS_INHERIT/BCH_INODE_OPTS
-rw-r--r--fs/bcachefs/bcachefs_format.h21
-rw-r--r--fs/bcachefs/inode.c4
-rw-r--r--fs/bcachefs/opts.h15
3 files changed, 17 insertions, 23 deletions
diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h
index 4ce8943c263b..552b7446d580 100644
--- a/fs/bcachefs/bcachefs_format.h
+++ b/fs/bcachefs/bcachefs_format.h
@@ -711,16 +711,17 @@ struct bch_inode_generation {
x(bi_background_target, 16) \
x(bi_erasure_code, 16)
-#define BCH_INODE_FIELDS_INHERIT() \
- x(bi_data_checksum) \
- x(bi_compression) \
- x(bi_project) \
- x(bi_background_compression) \
- x(bi_data_replicas) \
- x(bi_promote_target) \
- x(bi_foreground_target) \
- x(bi_background_target) \
- x(bi_erasure_code)
+/* subset of BCH_INODE_FIELDS */
+#define BCH_INODE_OPTS() \
+ x(data_checksum, 8) \
+ x(compression, 8) \
+ x(project, 32) \
+ x(background_compression, 8) \
+ x(data_replicas, 8) \
+ x(promote_target, 16) \
+ x(foreground_target, 16) \
+ x(background_target, 16) \
+ x(erasure_code, 16)
enum {
/*
diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c
index f46af03cad5e..8a65a077bae0 100644
--- a/fs/bcachefs/inode.c
+++ b/fs/bcachefs/inode.c
@@ -266,8 +266,8 @@ void bch2_inode_init(struct bch_fs *c, struct bch_inode_unpacked *inode_u,
inode_u->bi_otime = now;
if (parent) {
-#define x(_name) inode_u->_name = parent->_name;
- BCH_INODE_FIELDS_INHERIT()
+#define x(_name, ...) inode_u->bi_##_name = parent->bi_##_name;
+ BCH_INODE_OPTS()
#undef x
}
}
diff --git a/fs/bcachefs/opts.h b/fs/bcachefs/opts.h
index af76fe021c77..8a4e2e5072b0 100644
--- a/fs/bcachefs/opts.h
+++ b/fs/bcachefs/opts.h
@@ -184,7 +184,10 @@ enum opt_type {
NO_SB_OPT, false) \
BCH_OPT(version_upgrade, u8, OPT_MOUNT, \
OPT_BOOL(), \
- NO_SB_OPT, false)
+ NO_SB_OPT, false) \
+ BCH_OPT(project, u8, OPT_INTERNAL, \
+ OPT_BOOL(), \
+ NO_SB_OPT, false) \
struct bch_opts {
#define BCH_OPT(_name, _bits, ...) unsigned _name##_defined:1;
@@ -277,16 +280,6 @@ int bch2_parse_mount_opts(struct bch_opts *, char *);
/* inode opts: */
-#define BCH_INODE_OPTS() \
- x(data_checksum, 8) \
- x(compression, 8) \
- x(background_compression, 8) \
- x(data_replicas, 8) \
- x(promote_target, 16) \
- x(foreground_target, 16) \
- x(background_target, 16) \
- x(erasure_code, 16)
-
struct bch_io_opts {
#define x(_name, _bits) unsigned _name##_defined:1;
BCH_INODE_OPTS()