|
@@ -59,12 +59,6 @@ struct bio {
|
|
|
unsigned int bi_seg_front_size;
|
|
|
unsigned int bi_seg_back_size;
|
|
|
|
|
|
- unsigned int bi_max_vecs; /* max bvl_vecs we can hold */
|
|
|
-
|
|
|
- atomic_t bi_cnt; /* pin count */
|
|
|
-
|
|
|
- struct bio_vec *bi_io_vec; /* the actual vec list */
|
|
|
-
|
|
|
bio_end_io_t *bi_end_io;
|
|
|
|
|
|
void *bi_private;
|
|
@@ -80,6 +74,16 @@ struct bio {
|
|
|
struct bio_integrity_payload *bi_integrity; /* data integrity */
|
|
|
#endif
|
|
|
|
|
|
+ /*
|
|
|
+ * Everything starting with bi_max_vecs will be preserved by bio_reset()
|
|
|
+ */
|
|
|
+
|
|
|
+ unsigned int bi_max_vecs; /* max bvl_vecs we can hold */
|
|
|
+
|
|
|
+ atomic_t bi_cnt; /* pin count */
|
|
|
+
|
|
|
+ struct bio_vec *bi_io_vec; /* the actual vec list */
|
|
|
+
|
|
|
/* If bi_pool is non NULL, bi_destructor is not called */
|
|
|
struct bio_set *bi_pool;
|
|
|
|
|
@@ -93,6 +97,8 @@ struct bio {
|
|
|
struct bio_vec bi_inline_vecs[0];
|
|
|
};
|
|
|
|
|
|
+#define BIO_RESET_BYTES offsetof(struct bio, bi_max_vecs)
|
|
|
+
|
|
|
/*
|
|
|
* bio flags
|
|
|
*/
|
|
@@ -108,6 +114,13 @@ struct bio {
|
|
|
#define BIO_FS_INTEGRITY 9 /* fs owns integrity data, not block layer */
|
|
|
#define BIO_QUIET 10 /* Make BIO Quiet */
|
|
|
#define BIO_MAPPED_INTEGRITY 11/* integrity metadata has been remapped */
|
|
|
+
|
|
|
+/*
|
|
|
+ * Flags starting here get preserved by bio_reset() - this includes
|
|
|
+ * BIO_POOL_IDX()
|
|
|
+ */
|
|
|
+#define BIO_RESET_BITS 12
|
|
|
+
|
|
|
#define bio_flagged(bio, flag) ((bio)->bi_flags & (1 << (flag)))
|
|
|
|
|
|
/*
|