Add stats to flash simulator
[yaffs2.git] / yaffs_nand.c
index d322e351b466768e65d3ba545f875839a24792ec..fe1219095c520ed21acdf6d9be95196333137f94 100644 (file)
@@ -1,8 +1,7 @@
 /*
  * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2011 Aleph One Ltd.
- *   for Toby Churchill Ltd and Brightstar Engineering
+ * Copyright (C) 2002-2018 Aleph One Ltd.
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
  *
@@ -35,7 +34,7 @@ int yaffs_rd_chunk_tags_nand(struct yaffs_dev *dev, int nand_chunk,
        if (!tags)
                tags = &local_tags;
 
-       result = dev->th.read_chunk_tags_fn(dev, flash_chunk, buffer, tags);
+       result = dev->tagger.read_chunk_tags_fn(dev, flash_chunk, buffer, tags);
        if (tags && tags->ecc_result > YAFFS_ECC_RESULT_NO_ERROR) {
 
                struct yaffs_block_info *bi;
@@ -68,7 +67,7 @@ int yaffs_wr_chunk_tags_nand(struct yaffs_dev *dev,
                "Writing chunk %d tags %d %d",
                nand_chunk, tags->obj_id, tags->chunk_id);
 
-       result = dev->th.write_chunk_tags_fn(dev, flash_chunk,
+       result = dev->tagger.write_chunk_tags_fn(dev, flash_chunk,
                                                        buffer, tags);
 
        yaffs_summary_add(dev, tags, nand_chunk);
@@ -80,7 +79,11 @@ int yaffs_mark_bad(struct yaffs_dev *dev, int block_no)
 {
        block_no -= dev->block_offset;
        dev->n_bad_markings++;
-       return dev->th.mark_bad_fn(dev, block_no);
+
+       if (dev->param.disable_bad_block_marking)
+               return YAFFS_OK;
+
+       return dev->tagger.mark_bad_fn(dev, block_no);
 }
 
 
@@ -90,7 +93,7 @@ int yaffs_query_init_block_state(struct yaffs_dev *dev,
                                 u32 *seq_number)
 {
        block_no -= dev->block_offset;
-       return dev->th.query_block_fn(dev, block_no, state, seq_number);
+       return dev->tagger.query_block_fn(dev, block_no, state, seq_number);
 }
 
 int yaffs_erase_block(struct yaffs_dev *dev, int block_no)