Ejemplo n.º 1
0
int yaffs_wr_chunk_tags_nand(struct yaffs_dev *dev,
				int nand_chunk,
				const u8 *buffer, struct yaffs_ext_tags *tags)
{
	int result;
	int flash_chunk = nand_chunk - dev->chunk_offset;

	dev->n_page_writes++;

	if (tags) {
		tags->seq_number = dev->seq_number;
		tags->chunk_used = 1;
		yaffs_trace(YAFFS_TRACE_WRITE,
			"Writing chunk %d tags %d %d",
			nand_chunk, tags->obj_id, tags->chunk_id);
	} else {
		yaffs_trace(YAFFS_TRACE_ERROR, "Writing with no tags");
		BUG();
		return YAFFS_FAIL;
	}

	if (dev->param.write_chunk_tags_fn)
		result = dev->param.write_chunk_tags_fn(dev, flash_chunk,
							buffer, tags);
	else
		result = yaffs_tags_compat_wr(dev, flash_chunk, buffer, tags);

	yaffs_summary_add(dev, tags, nand_chunk);

	return result;
}
Ejemplo n.º 2
0
int yaffs_wr_chunk_tags_nand(struct yaffs_dev *dev,
			     int nand_chunk,
			     const u8 * buffer, struct yaffs_ext_tags *tags)
{

	dev->n_page_writes++;

	nand_chunk -= dev->chunk_offset;

	if (tags) {
		tags->seq_number = dev->seq_number;
		tags->chunk_used = 1;
		if (!yaffs_validate_tags(tags)) {
			yaffs_trace(YAFFS_TRACE_ERROR, "Writing uninitialised tags");
			YBUG();
		}
		yaffs_trace(YAFFS_TRACE_WRITE,
			"Writing chunk %d tags %d %d",
			nand_chunk, tags->obj_id, tags->chunk_id);
	} else {
		yaffs_trace(YAFFS_TRACE_ERROR, "Writing with no tags");
		YBUG();
	}

	if (dev->param.write_chunk_tags_fn)
		return dev->param.write_chunk_tags_fn(dev, nand_chunk, buffer,
						      tags);
	else
		return yaffs_tags_compat_wr(dev, nand_chunk, buffer, tags);
}
Ejemplo n.º 3
0
int yaffs_wr_chunk_tags_nand(yaffs_dev_t *dev,
						   int nand_chunk,
						   const __u8 *buffer,
						   yaffs_ext_tags *tags)
{

	dev->n_page_writes++;

	nand_chunk -= dev->chunk_offset;


	if (tags) {
		tags->seq_number = dev->seq_number;
		tags->chunk_used = 1;
		if (!yaffs_validate_tags(tags)) {
			T(YAFFS_TRACE_ERROR,
			  (TSTR("Writing uninitialised tags" TENDSTR)));
			YBUG();
		}
		T(YAFFS_TRACE_WRITE,
		  (TSTR("Writing chunk %d tags %d %d" TENDSTR), nand_chunk,
		   tags->obj_id, tags->chunk_id));
	} else {
		T(YAFFS_TRACE_ERROR, (TSTR("Writing with no tags" TENDSTR)));
		YBUG();
	}

	if (dev->param.write_chunk_tags_fn)
		return dev->param.write_chunk_tags_fn(dev, nand_chunk, buffer,
						     tags);
	else
		return yaffs_tags_compat_wr(dev,
								       nand_chunk,
								       buffer,
								       tags);
}