summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-06-03 04:42:34 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2018-06-05 20:50:48 -0400
commitaa09f6a8c3c0e000f62925b61e90f4f0828dc8af (patch)
treeed72b07db39cfdfebd476a6fc2e78c0abf902088
parent4679aa72da5fef47785350b2706c8f76ea8c22ec (diff)
bcachefs: add a discard mount option
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/opts.h3
-rw-r--r--fs/bcachefs/super.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/fs/bcachefs/opts.h b/fs/bcachefs/opts.h
index e7ab8870d3ac..f476033e707f 100644
--- a/fs/bcachefs/opts.h
+++ b/fs/bcachefs/opts.h
@@ -137,6 +137,9 @@ enum opt_type {
BCH_OPT(degraded, u8, OPT_MOUNT, \
OPT_BOOL(), \
NO_SB_OPT, false) \
+ BCH_OPT(discard, u8, OPT_MOUNT, \
+ OPT_BOOL(), \
+ NO_SB_OPT, false) \
BCH_OPT(verbose_recovery, u8, OPT_MOUNT, \
OPT_BOOL(), \
NO_SB_OPT, false) \
diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c
index 1eab7c77f89e..1ed8478f2e4c 100644
--- a/fs/bcachefs/super.c
+++ b/fs/bcachefs/super.c
@@ -1091,6 +1091,9 @@ static struct bch_dev *__bch2_dev_alloc(struct bch_fs *c,
ca->mi = bch2_mi_to_cpu(member);
ca->uuid = member->uuid;
+ if (opt_defined(c->opts, discard))
+ ca->mi.discard = opt_get(c->opts, discard);
+
if (percpu_ref_init(&ca->ref, bch2_dev_ref_complete,
0, GFP_KERNEL) ||
percpu_ref_init(&ca->io_ref, bch2_dev_io_ref_complete,