yaffsfs.c: Fix NULL dereference in yaffs_unmount2_reldev()
[yaffs2.git] / yaffs_yaffs1.c
index e98d04d434a3b9c68bcc5c2c1db7e21f5d024153..14400215bd88b1801bf0759a9170785328be334e 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>
  *
 
 int yaffs1_scan(struct yaffs_dev *dev)
 {
+#ifdef CONFIG_YAFFS_NO_YAFFS1
+       return YAFFS_FAIL;
+#else
        struct yaffs_ext_tags tags;
-       int blk;
+       u32 blk;
        int result;
        int chunk;
-       int c;
+       u32 c;
        int deleted;
        enum yaffs_block_state state;
        LIST_HEAD(hard_list);
@@ -98,6 +100,8 @@ int yaffs1_scan(struct yaffs_dev *dev)
                        result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
                                                          &tags);
 
+                       if (result != YAFFS_OK)
+                               continue;
                        /* Let's have a good look at this chunk... */
 
                        if (tags.ecc_result == YAFFS_ECC_RESULT_UNFIXED ||
@@ -419,4 +423,5 @@ int yaffs1_scan(struct yaffs_dev *dev)
        yaffs_trace(YAFFS_TRACE_SCAN, "yaffs1_scan ends");
 
        return YAFFS_OK;
+#endif
 }