int yaffs_skip_verification(struct yaffs_dev *dev)
{
- dev = dev;
+ (void) dev;
return !(yaffs_trace_mask &
(YAFFS_TRACE_VERIFY | YAFFS_TRACE_VERIFY_FULL));
}
static int yaffs_skip_full_verification(struct yaffs_dev *dev)
{
- dev = dev;
+ (void) dev;
return !(yaffs_trace_mask & (YAFFS_TRACE_VERIFY_FULL));
}
static int yaffs_skip_nand_verification(struct yaffs_dev *dev)
{
- dev = dev;
+ (void) dev;
return !(yaffs_trace_mask & (YAFFS_TRACE_VERIFY_NAND));
}
void yaffs_verify_file(struct yaffs_obj *obj)
{
+ u32 x;
int required_depth;
int actual_depth;
- u32 last_chunk;
+ int last_chunk;
+ u32 offset_in_chunk;
u32 the_chunk;
- u32 x;
+
u32 i;
struct yaffs_dev *dev;
struct yaffs_ext_tags tags;
dev = obj->my_dev;
obj_id = obj->obj_id;
+
/* Check file size is consistent with tnode depth */
- last_chunk =
- obj->variant.file_variant.file_size / dev->data_bytes_per_chunk + 1;
+ yaffs_addr_to_chunk(dev, obj->variant.file_variant.file_size,
+ &last_chunk, &offset_in_chunk);
+ last_chunk++;
x = last_chunk >> YAFFS_TNODES_LEVEL0_BITS;
required_depth = 0;
while (x > 0) {
{
struct list_head *lh;
struct yaffs_obj *list_obj;
+ struct yaffs_dev *dev;
if (!directory) {
BUG();
return;
}
+ dev = directory->my_dev;
+
+ if (!dev) {
+ BUG();
+ return;
+ }
+
+ if (directory == dev->root_dir ||
+ directory == dev->lost_n_found ||
+ directory == dev->unlinked_dir ||
+ directory == dev->del_dir)
+ return;
+
if (yaffs_skip_full_verification(directory->my_dev))
return;
int yaffs_verify_file_sane(struct yaffs_obj *in)
{
- in = in;
+ (void) in;
return YAFFS_OK;
}