On Fri, Nov 30, 2018 at 01:54:26AM -0800, Christoph Hellwig wrote:
quoted
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 62715a5a4f32..8bc9d9b29fd3 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -486,6 +486,12 @@ extern unsigned int bvec_nr_vecs(unsigned short idx);
extern const char *bio_devname(struct bio *bio, char *buffer);
#define bio_set_dev(bio, bdev) \
+do { \
+ bio_set_dev_only(bio, bdev); \
+ bio_associate_blkg(bio); \
+} while (0)
+
+#define bio_set_dev_only(bio, bdev) \
This lacks any explanation on when you would use bio_set_dev_only or
bio_set_dev. Please document why we need both and why you'd choose or
the other.
I realized after thinking about this more and checking more use cases
that it isn't as simple as swapping macro uses because many of the
callers share common bio allocation paths. I think the simplest way
forward is to have writeback and swap do reassociation and split out bio
init code in a future series. So in v5, there is only bio_set_dev().
Thanks,
Dennis