lightnvm: remove mgt targets on mgt removal
[linux-2.6-block.git] / include / linux / lightnvm.h
index 9ae0b7c6deb294e8407f72e97bc61df573b174ec..cde31ffe2d6256e426cbccb00bde26f971d7f751 100644 (file)
@@ -45,7 +45,7 @@ typedef int (nvm_id_fn)(struct nvm_dev *, struct nvm_id *);
 typedef int (nvm_get_l2p_tbl_fn)(struct nvm_dev *, u64, u32,
                                nvm_l2p_update_fn *, void *);
 typedef int (nvm_op_bb_tbl_fn)(struct nvm_dev *, struct ppa_addr, u8 *);
-typedef int (nvm_op_set_bb_fn)(struct nvm_dev *, struct nvm_rq *, int);
+typedef int (nvm_op_set_bb_fn)(struct nvm_dev *, struct ppa_addr *, int, int);
 typedef int (nvm_submit_io_fn)(struct nvm_dev *, struct nvm_rq *);
 typedef int (nvm_erase_blk_fn)(struct nvm_dev *, struct nvm_rq *);
 typedef void *(nvm_create_dma_pool_fn)(struct nvm_dev *, char *);
@@ -200,6 +200,7 @@ struct nvm_id {
 
 struct nvm_target {
        struct list_head list;
+       struct nvm_dev *dev;
        struct nvm_tgt_type *type;
        struct gendisk *disk;
 };
@@ -230,8 +231,8 @@ struct nvm_rq {
 
        struct ppa_addr *ppa_list;
 
-       void *metadata;
-       dma_addr_t dma_metadata;
+       void *meta_list;
+       dma_addr_t dma_meta_list;
 
        struct completion *wait;
        nvm_end_io_fn *end_io;
@@ -347,7 +348,7 @@ struct nvm_dev {
        unsigned max_pages_per_blk;
 
        unsigned long *lun_map;
-       void *ppalist_pool;
+       void *dma_pool;
 
        struct nvm_id identity;