name: f2fs_submit_page_write
ID: 548
format:
	field:unsigned short common_type;	offset:0;	size:2;	signed:0;
	field:unsigned char common_flags;	offset:2;	size:1;	signed:0;
	field:unsigned char common_preempt_count;	offset:3;	size:1;	signed:0;
	field:int common_pid;	offset:4;	size:4;	signed:1;

	field:dev_t dev;	offset:8;	size:4;	signed:0;
	field:ino_t ino;	offset:16;	size:8;	signed:0;
	field:unsigned long index;	offset:24;	size:8;	signed:0;
	field:block_t old_blkaddr;	offset:32;	size:4;	signed:0;
	field:block_t new_blkaddr;	offset:36;	size:4;	signed:0;
	field:int op;	offset:40;	size:4;	signed:1;
	field:int op_flags;	offset:44;	size:4;	signed:1;
	field:int temp;	offset:48;	size:4;	signed:1;
	field:int type;	offset:52;	size:4;	signed:1;

print fmt: "dev = (%d,%d), ino = %lu, page_index = 0x%lx, oldaddr = 0x%llx, newaddr = 0x%llx, rw = %s(%s), type = %s_%s", ((unsigned int) ((REC->dev) >> 20)), ((unsigned int) ((REC->dev) & ((1U << 20) - 1))), (unsigned long)REC->ino, (unsigned long)REC->index, (unsigned long long)REC->old_blkaddr, (unsigned long long)REC->new_blkaddr, blk_op_str(REC->op), __print_flags((REC->op_flags & ((1ULL << 19) | (1ULL << 11) | (1ULL << 12) | (1ULL << 13) | (1ULL << 18) | (1ULL << 17))), "|", { (1ULL << 19), "R" }, { (1ULL << 11), "S" }, { (1ULL << 12), "M" }, { (1ULL << 13), "P" }, { (1ULL << 18), "PF" }, { (1ULL << 17), "FUA" }), __print_symbolic(REC->temp, { 0, "HOT" }, { 1, "WARM" }, { 2, "COLD" }), __print_symbolic(REC->type, { 1, "NODE" }, { 0, "DATA" }, { 2, "META" }, { 4, "META_FLUSH" }, { 5, "INMEM" }, { 6, "INMEM_DROP" }, { 7, "INMEM_INVALIDATE" }, { 8, "INMEM_REVOKE" }, { 9, "IN-PLACE" }, { 10, "OUT-OF-PLACE" })
