]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/rds/ib_mr.h
Merge tag 'f2fs-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
[linux.git] / net / rds / ib_mr.h
index 9045a8c0edfff11e2d69e0c4d1846ca8cfde4869..0c8252d7fe2b76ce892b07655f50c412838b5fdc 100644 (file)
@@ -67,6 +67,7 @@ struct rds_ib_frmr {
 
 /* This is stored as mr->r_trans_private. */
 struct rds_ib_mr {
+       struct delayed_work             work;
        struct rds_ib_device            *device;
        struct rds_ib_mr_pool           *pool;
        struct rds_ib_connection        *ic;
@@ -81,9 +82,11 @@ struct rds_ib_mr {
        unsigned int                    sg_len;
        int                             sg_dma_len;
 
+       u8                              odp:1;
        union {
                struct rds_ib_fmr       fmr;
                struct rds_ib_frmr      frmr;
+               struct ib_mr            *mr;
        } u;
 };
 
@@ -122,12 +125,14 @@ void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev,
 void rds_ib_destroy_mr_pool(struct rds_ib_mr_pool *);
 void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
                    struct rds_sock *rs, u32 *key_ret,
-                   struct rds_connection *conn);
+                   struct rds_connection *conn, u64 start, u64 length,
+                   int need_odp);
 void rds_ib_sync_mr(void *trans_private, int dir);
 void rds_ib_free_mr(void *trans_private, int invalidate);
 void rds_ib_flush_mrs(void);
 int rds_ib_mr_init(void);
 void rds_ib_mr_exit(void);
+u32 rds_ib_get_lkey(void *trans_private);
 
 void __rds_ib_teardown_mr(struct rds_ib_mr *);
 void rds_ib_teardown_mr(struct rds_ib_mr *);