[RAMEN9610-8702][COMMON] diskcipher: support f2fs
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / include / linux / bio.h
index 3d4f9a33d41170189512669082ffb9b92239dcfb..998b1771f53592a15051a060e114afb30676d334 100644 (file)
 #define bio_sectors(bio)       ((bio)->bi_iter.bi_size >> 9)
 #define bio_end_sector(bio)    ((bio)->bi_iter.bi_sector + bio_sectors((bio)))
 
+#ifdef CONFIG_CRYPTO_DISKCIPHER_DUN
+#define bio_dun(bio)            ((bio)->bi_iter.bi_dun)
+#define bio_duns(bio)           (bio_sectors(bio) >> 3) /* 4KB unit */
+#define bio_end_dun(bio)        (bio_dun(bio) + bio_duns(bio))
+#endif
+
 /*
  * Return the data direction, READ or WRITE.
  */
@@ -181,6 +187,11 @@ static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter,
 {
        iter->bi_sector += bytes >> 9;
 
+#ifdef CONFIG_CRYPTO_DISKCIPHER_DUN
+        if (iter->bi_dun)
+                  iter->bi_dun += bytes >> 12;
+#endif
+
        if (bio_no_advance_iter(bio)) {
                iter->bi_size -= bytes;
                iter->bi_done += bytes;