0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM gfs2
0004
0005 #if !defined(_TRACE_GFS2_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_GFS2_H
0007
0008 #include <linux/tracepoint.h>
0009
0010 #include <linux/fs.h>
0011 #include <linux/buffer_head.h>
0012 #include <linux/dlmconstants.h>
0013 #include <linux/gfs2_ondisk.h>
0014 #include <linux/writeback.h>
0015 #include <linux/ktime.h>
0016 #include <linux/iomap.h>
0017 #include "incore.h"
0018 #include "glock.h"
0019 #include "rgrp.h"
0020
0021 #define dlm_state_name(nn) { DLM_LOCK_##nn, #nn }
0022 #define glock_trace_name(x) __print_symbolic(x, \
0023 dlm_state_name(IV), \
0024 dlm_state_name(NL), \
0025 dlm_state_name(CR), \
0026 dlm_state_name(CW), \
0027 dlm_state_name(PR), \
0028 dlm_state_name(PW), \
0029 dlm_state_name(EX))
0030
0031 #define block_state_name(x) __print_symbolic(x, \
0032 { GFS2_BLKST_FREE, "free" }, \
0033 { GFS2_BLKST_USED, "used" }, \
0034 { GFS2_BLKST_DINODE, "dinode" }, \
0035 { GFS2_BLKST_UNLINKED, "unlinked" })
0036
0037 #define TRACE_RS_DELETE 0
0038 #define TRACE_RS_TREEDEL 1
0039 #define TRACE_RS_INSERT 2
0040 #define TRACE_RS_CLAIM 3
0041
0042 #define rs_func_name(x) __print_symbolic(x, \
0043 { 0, "del " }, \
0044 { 1, "tdel" }, \
0045 { 2, "ins " }, \
0046 { 3, "clm " })
0047
0048 #define show_glock_flags(flags) __print_flags(flags, "", \
0049 {(1UL << GLF_LOCK), "l" }, \
0050 {(1UL << GLF_DEMOTE), "D" }, \
0051 {(1UL << GLF_PENDING_DEMOTE), "d" }, \
0052 {(1UL << GLF_DEMOTE_IN_PROGRESS), "p" }, \
0053 {(1UL << GLF_DIRTY), "y" }, \
0054 {(1UL << GLF_LFLUSH), "f" }, \
0055 {(1UL << GLF_INVALIDATE_IN_PROGRESS), "i" }, \
0056 {(1UL << GLF_REPLY_PENDING), "r" }, \
0057 {(1UL << GLF_INITIAL), "I" }, \
0058 {(1UL << GLF_FROZEN), "F" }, \
0059 {(1UL << GLF_LRU), "L" }, \
0060 {(1UL << GLF_OBJECT), "o" }, \
0061 {(1UL << GLF_BLOCKING), "b" })
0062
0063 #ifndef NUMPTY
0064 #define NUMPTY
0065 static inline u8 glock_trace_state(unsigned int state)
0066 {
0067 switch(state) {
0068 case LM_ST_SHARED:
0069 return DLM_LOCK_PR;
0070 case LM_ST_DEFERRED:
0071 return DLM_LOCK_CW;
0072 case LM_ST_EXCLUSIVE:
0073 return DLM_LOCK_EX;
0074 }
0075 return DLM_LOCK_NL;
0076 }
0077 #endif
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090 TRACE_EVENT(gfs2_glock_state_change,
0091
0092 TP_PROTO(const struct gfs2_glock *gl, unsigned int new_state),
0093
0094 TP_ARGS(gl, new_state),
0095
0096 TP_STRUCT__entry(
0097 __field( dev_t, dev )
0098 __field( u64, glnum )
0099 __field( u32, gltype )
0100 __field( u8, cur_state )
0101 __field( u8, new_state )
0102 __field( u8, dmt_state )
0103 __field( u8, tgt_state )
0104 __field( unsigned long, flags )
0105 ),
0106
0107 TP_fast_assign(
0108 __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
0109 __entry->glnum = gl->gl_name.ln_number;
0110 __entry->gltype = gl->gl_name.ln_type;
0111 __entry->cur_state = glock_trace_state(gl->gl_state);
0112 __entry->new_state = glock_trace_state(new_state);
0113 __entry->tgt_state = glock_trace_state(gl->gl_target);
0114 __entry->dmt_state = glock_trace_state(gl->gl_demote_state);
0115 __entry->flags = gl->gl_flags | (gl->gl_object ? (1UL<<GLF_OBJECT) : 0);
0116 ),
0117
0118 TP_printk("%u,%u glock %d:%lld state %s to %s tgt:%s dmt:%s flags:%s",
0119 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->gltype,
0120 (unsigned long long)__entry->glnum,
0121 glock_trace_name(__entry->cur_state),
0122 glock_trace_name(__entry->new_state),
0123 glock_trace_name(__entry->tgt_state),
0124 glock_trace_name(__entry->dmt_state),
0125 show_glock_flags(__entry->flags))
0126 );
0127
0128
0129 TRACE_EVENT(gfs2_glock_put,
0130
0131 TP_PROTO(const struct gfs2_glock *gl),
0132
0133 TP_ARGS(gl),
0134
0135 TP_STRUCT__entry(
0136 __field( dev_t, dev )
0137 __field( u64, glnum )
0138 __field( u32, gltype )
0139 __field( u8, cur_state )
0140 __field( unsigned long, flags )
0141 ),
0142
0143 TP_fast_assign(
0144 __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
0145 __entry->gltype = gl->gl_name.ln_type;
0146 __entry->glnum = gl->gl_name.ln_number;
0147 __entry->cur_state = glock_trace_state(gl->gl_state);
0148 __entry->flags = gl->gl_flags | (gl->gl_object ? (1UL<<GLF_OBJECT) : 0);
0149 ),
0150
0151 TP_printk("%u,%u glock %d:%lld state %s => %s flags:%s",
0152 MAJOR(__entry->dev), MINOR(__entry->dev),
0153 __entry->gltype, (unsigned long long)__entry->glnum,
0154 glock_trace_name(__entry->cur_state),
0155 glock_trace_name(DLM_LOCK_IV),
0156 show_glock_flags(__entry->flags))
0157
0158 );
0159
0160
0161 TRACE_EVENT(gfs2_demote_rq,
0162
0163 TP_PROTO(const struct gfs2_glock *gl, bool remote),
0164
0165 TP_ARGS(gl, remote),
0166
0167 TP_STRUCT__entry(
0168 __field( dev_t, dev )
0169 __field( u64, glnum )
0170 __field( u32, gltype )
0171 __field( u8, cur_state )
0172 __field( u8, dmt_state )
0173 __field( unsigned long, flags )
0174 __field( bool, remote )
0175 ),
0176
0177 TP_fast_assign(
0178 __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
0179 __entry->gltype = gl->gl_name.ln_type;
0180 __entry->glnum = gl->gl_name.ln_number;
0181 __entry->cur_state = glock_trace_state(gl->gl_state);
0182 __entry->dmt_state = glock_trace_state(gl->gl_demote_state);
0183 __entry->flags = gl->gl_flags | (gl->gl_object ? (1UL<<GLF_OBJECT) : 0);
0184 __entry->remote = remote;
0185 ),
0186
0187 TP_printk("%u,%u glock %d:%lld demote %s to %s flags:%s %s",
0188 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->gltype,
0189 (unsigned long long)__entry->glnum,
0190 glock_trace_name(__entry->cur_state),
0191 glock_trace_name(__entry->dmt_state),
0192 show_glock_flags(__entry->flags),
0193 __entry->remote ? "remote" : "local")
0194
0195 );
0196
0197
0198 TRACE_EVENT(gfs2_promote,
0199
0200 TP_PROTO(const struct gfs2_holder *gh),
0201
0202 TP_ARGS(gh),
0203
0204 TP_STRUCT__entry(
0205 __field( dev_t, dev )
0206 __field( u64, glnum )
0207 __field( u32, gltype )
0208 __field( u8, state )
0209 ),
0210
0211 TP_fast_assign(
0212 __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0213 __entry->glnum = gh->gh_gl->gl_name.ln_number;
0214 __entry->gltype = gh->gh_gl->gl_name.ln_type;
0215 __entry->state = glock_trace_state(gh->gh_state);
0216 ),
0217
0218 TP_printk("%u,%u glock %u:%llu promote %s",
0219 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->gltype,
0220 (unsigned long long)__entry->glnum,
0221 glock_trace_name(__entry->state))
0222 );
0223
0224
0225 TRACE_EVENT(gfs2_glock_queue,
0226
0227 TP_PROTO(const struct gfs2_holder *gh, int queue),
0228
0229 TP_ARGS(gh, queue),
0230
0231 TP_STRUCT__entry(
0232 __field( dev_t, dev )
0233 __field( u64, glnum )
0234 __field( u32, gltype )
0235 __field( int, queue )
0236 __field( u8, state )
0237 ),
0238
0239 TP_fast_assign(
0240 __entry->dev = gh->gh_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0241 __entry->glnum = gh->gh_gl->gl_name.ln_number;
0242 __entry->gltype = gh->gh_gl->gl_name.ln_type;
0243 __entry->queue = queue;
0244 __entry->state = glock_trace_state(gh->gh_state);
0245 ),
0246
0247 TP_printk("%u,%u glock %u:%llu %squeue %s",
0248 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->gltype,
0249 (unsigned long long)__entry->glnum,
0250 __entry->queue ? "" : "de",
0251 glock_trace_name(__entry->state))
0252 );
0253
0254
0255 TRACE_EVENT(gfs2_glock_lock_time,
0256
0257 TP_PROTO(const struct gfs2_glock *gl, s64 tdiff),
0258
0259 TP_ARGS(gl, tdiff),
0260
0261 TP_STRUCT__entry(
0262 __field( dev_t, dev )
0263 __field( u64, glnum )
0264 __field( u32, gltype )
0265 __field( int, status )
0266 __field( char, flags )
0267 __field( s64, tdiff )
0268 __field( u64, srtt )
0269 __field( u64, srttvar )
0270 __field( u64, srttb )
0271 __field( u64, srttvarb )
0272 __field( u64, sirt )
0273 __field( u64, sirtvar )
0274 __field( u64, dcount )
0275 __field( u64, qcount )
0276 ),
0277
0278 TP_fast_assign(
0279 __entry->dev = gl->gl_name.ln_sbd->sd_vfs->s_dev;
0280 __entry->glnum = gl->gl_name.ln_number;
0281 __entry->gltype = gl->gl_name.ln_type;
0282 __entry->status = gl->gl_lksb.sb_status;
0283 __entry->flags = gl->gl_lksb.sb_flags;
0284 __entry->tdiff = tdiff;
0285 __entry->srtt = gl->gl_stats.stats[GFS2_LKS_SRTT];
0286 __entry->srttvar = gl->gl_stats.stats[GFS2_LKS_SRTTVAR];
0287 __entry->srttb = gl->gl_stats.stats[GFS2_LKS_SRTTB];
0288 __entry->srttvarb = gl->gl_stats.stats[GFS2_LKS_SRTTVARB];
0289 __entry->sirt = gl->gl_stats.stats[GFS2_LKS_SIRT];
0290 __entry->sirtvar = gl->gl_stats.stats[GFS2_LKS_SIRTVAR];
0291 __entry->dcount = gl->gl_stats.stats[GFS2_LKS_DCOUNT];
0292 __entry->qcount = gl->gl_stats.stats[GFS2_LKS_QCOUNT];
0293 ),
0294
0295 TP_printk("%u,%u glock %d:%lld status:%d flags:%02x tdiff:%lld srtt:%lld/%lld srttb:%lld/%lld sirt:%lld/%lld dcnt:%lld qcnt:%lld",
0296 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->gltype,
0297 (unsigned long long)__entry->glnum,
0298 __entry->status, __entry->flags,
0299 (long long)__entry->tdiff,
0300 (long long)__entry->srtt,
0301 (long long)__entry->srttvar,
0302 (long long)__entry->srttb,
0303 (long long)__entry->srttvarb,
0304 (long long)__entry->sirt,
0305 (long long)__entry->sirtvar,
0306 (long long)__entry->dcount,
0307 (long long)__entry->qcount)
0308 );
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319 TRACE_EVENT(gfs2_pin,
0320
0321 TP_PROTO(const struct gfs2_bufdata *bd, int pin),
0322
0323 TP_ARGS(bd, pin),
0324
0325 TP_STRUCT__entry(
0326 __field( dev_t, dev )
0327 __field( int, pin )
0328 __field( u32, len )
0329 __field( sector_t, block )
0330 __field( u64, ino )
0331 ),
0332
0333 TP_fast_assign(
0334 __entry->dev = bd->bd_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0335 __entry->pin = pin;
0336 __entry->len = bd->bd_bh->b_size;
0337 __entry->block = bd->bd_bh->b_blocknr;
0338 __entry->ino = bd->bd_gl->gl_name.ln_number;
0339 ),
0340
0341 TP_printk("%u,%u log %s %llu/%lu inode %llu",
0342 MAJOR(__entry->dev), MINOR(__entry->dev),
0343 __entry->pin ? "pin" : "unpin",
0344 (unsigned long long)__entry->block,
0345 (unsigned long)__entry->len,
0346 (unsigned long long)__entry->ino)
0347 );
0348
0349
0350 TRACE_EVENT(gfs2_log_flush,
0351
0352 TP_PROTO(const struct gfs2_sbd *sdp, int start, u32 flags),
0353
0354 TP_ARGS(sdp, start, flags),
0355
0356 TP_STRUCT__entry(
0357 __field( dev_t, dev )
0358 __field( int, start )
0359 __field( u64, log_seq )
0360 __field( u32, flags )
0361 ),
0362
0363 TP_fast_assign(
0364 __entry->dev = sdp->sd_vfs->s_dev;
0365 __entry->start = start;
0366 __entry->log_seq = sdp->sd_log_sequence;
0367 __entry->flags = flags;
0368 ),
0369
0370 TP_printk("%u,%u log flush %s %llu %llx",
0371 MAJOR(__entry->dev), MINOR(__entry->dev),
0372 __entry->start ? "start" : "end",
0373 (unsigned long long)__entry->log_seq,
0374 (unsigned long long)__entry->flags)
0375 );
0376
0377
0378 TRACE_EVENT(gfs2_log_blocks,
0379
0380 TP_PROTO(const struct gfs2_sbd *sdp, int blocks),
0381
0382 TP_ARGS(sdp, blocks),
0383
0384 TP_STRUCT__entry(
0385 __field( dev_t, dev )
0386 __field( int, blocks )
0387 __field( int, blks_free )
0388 ),
0389
0390 TP_fast_assign(
0391 __entry->dev = sdp->sd_vfs->s_dev;
0392 __entry->blocks = blocks;
0393 __entry->blks_free = atomic_read(&sdp->sd_log_blks_free);
0394 ),
0395
0396 TP_printk("%u,%u log reserve %d %d", MAJOR(__entry->dev),
0397 MINOR(__entry->dev), __entry->blocks, __entry->blks_free)
0398 );
0399
0400
0401 TRACE_EVENT(gfs2_ail_flush,
0402
0403 TP_PROTO(const struct gfs2_sbd *sdp, const struct writeback_control *wbc, int start),
0404
0405 TP_ARGS(sdp, wbc, start),
0406
0407 TP_STRUCT__entry(
0408 __field( dev_t, dev )
0409 __field( int, start )
0410 __field( int, sync_mode )
0411 __field( long, nr_to_write )
0412 ),
0413
0414 TP_fast_assign(
0415 __entry->dev = sdp->sd_vfs->s_dev;
0416 __entry->start = start;
0417 __entry->sync_mode = wbc->sync_mode;
0418 __entry->nr_to_write = wbc->nr_to_write;
0419 ),
0420
0421 TP_printk("%u,%u ail flush %s %s %ld", MAJOR(__entry->dev),
0422 MINOR(__entry->dev), __entry->start ? "start" : "end",
0423 __entry->sync_mode == WB_SYNC_ALL ? "all" : "none",
0424 __entry->nr_to_write)
0425 );
0426
0427
0428
0429
0430
0431
0432
0433
0434
0435
0436 TRACE_EVENT(gfs2_bmap,
0437
0438 TP_PROTO(const struct gfs2_inode *ip, const struct buffer_head *bh,
0439 sector_t lblock, int create, int errno),
0440
0441 TP_ARGS(ip, bh, lblock, create, errno),
0442
0443 TP_STRUCT__entry(
0444 __field( dev_t, dev )
0445 __field( sector_t, lblock )
0446 __field( sector_t, pblock )
0447 __field( u64, inum )
0448 __field( unsigned long, state )
0449 __field( u32, len )
0450 __field( int, create )
0451 __field( int, errno )
0452 ),
0453
0454 TP_fast_assign(
0455 __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0456 __entry->lblock = lblock;
0457 __entry->pblock = buffer_mapped(bh) ? bh->b_blocknr : 0;
0458 __entry->inum = ip->i_no_addr;
0459 __entry->state = bh->b_state;
0460 __entry->len = bh->b_size;
0461 __entry->create = create;
0462 __entry->errno = errno;
0463 ),
0464
0465 TP_printk("%u,%u bmap %llu map %llu/%lu to %llu flags:%08lx %s %d",
0466 MAJOR(__entry->dev), MINOR(__entry->dev),
0467 (unsigned long long)__entry->inum,
0468 (unsigned long long)__entry->lblock,
0469 (unsigned long)__entry->len,
0470 (unsigned long long)__entry->pblock,
0471 __entry->state, __entry->create ? "create " : "nocreate",
0472 __entry->errno)
0473 );
0474
0475 TRACE_EVENT(gfs2_iomap_start,
0476
0477 TP_PROTO(const struct gfs2_inode *ip, loff_t pos, ssize_t length,
0478 u16 flags),
0479
0480 TP_ARGS(ip, pos, length, flags),
0481
0482 TP_STRUCT__entry(
0483 __field( dev_t, dev )
0484 __field( u64, inum )
0485 __field( loff_t, pos )
0486 __field( ssize_t, length )
0487 __field( u16, flags )
0488 ),
0489
0490 TP_fast_assign(
0491 __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0492 __entry->inum = ip->i_no_addr;
0493 __entry->pos = pos;
0494 __entry->length = length;
0495 __entry->flags = flags;
0496 ),
0497
0498 TP_printk("%u,%u bmap %llu iomap start %llu/%lu flags:%08x",
0499 MAJOR(__entry->dev), MINOR(__entry->dev),
0500 (unsigned long long)__entry->inum,
0501 (unsigned long long)__entry->pos,
0502 (unsigned long)__entry->length, (u16)__entry->flags)
0503 );
0504
0505 TRACE_EVENT(gfs2_iomap_end,
0506
0507 TP_PROTO(const struct gfs2_inode *ip, struct iomap *iomap, int ret),
0508
0509 TP_ARGS(ip, iomap, ret),
0510
0511 TP_STRUCT__entry(
0512 __field( dev_t, dev )
0513 __field( u64, inum )
0514 __field( loff_t, offset )
0515 __field( ssize_t, length )
0516 __field( sector_t, pblock )
0517 __field( u16, flags )
0518 __field( u16, type )
0519 __field( int, ret )
0520 ),
0521
0522 TP_fast_assign(
0523 __entry->dev = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0524 __entry->inum = ip->i_no_addr;
0525 __entry->offset = iomap->offset;
0526 __entry->length = iomap->length;
0527 __entry->pblock = iomap->addr == IOMAP_NULL_ADDR ? 0 :
0528 (iomap->addr >> ip->i_inode.i_blkbits);
0529 __entry->flags = iomap->flags;
0530 __entry->type = iomap->type;
0531 __entry->ret = ret;
0532 ),
0533
0534 TP_printk("%u,%u bmap %llu iomap end %llu/%lu to %llu ty:%d flags:%08x rc:%d",
0535 MAJOR(__entry->dev), MINOR(__entry->dev),
0536 (unsigned long long)__entry->inum,
0537 (unsigned long long)__entry->offset,
0538 (unsigned long)__entry->length,
0539 (long long)__entry->pblock,
0540 (u16)__entry->type,
0541 (u16)__entry->flags, __entry->ret)
0542 );
0543
0544
0545 TRACE_EVENT(gfs2_block_alloc,
0546
0547 TP_PROTO(const struct gfs2_inode *ip, struct gfs2_rgrpd *rgd,
0548 u64 block, unsigned len, u8 block_state),
0549
0550 TP_ARGS(ip, rgd, block, len, block_state),
0551
0552 TP_STRUCT__entry(
0553 __field( dev_t, dev )
0554 __field( u64, start )
0555 __field( u64, inum )
0556 __field( u32, len )
0557 __field( u8, block_state )
0558 __field( u64, rd_addr )
0559 __field( u32, rd_free_clone )
0560 __field( u32, rd_requested )
0561 __field( u32, rd_reserved )
0562 ),
0563
0564 TP_fast_assign(
0565 __entry->dev = rgd->rd_gl->gl_name.ln_sbd->sd_vfs->s_dev;
0566 __entry->start = block;
0567 __entry->inum = ip->i_no_addr;
0568 __entry->len = len;
0569 __entry->block_state = block_state;
0570 __entry->rd_addr = rgd->rd_addr;
0571 __entry->rd_free_clone = rgd->rd_free_clone;
0572 __entry->rd_requested = rgd->rd_requested;
0573 __entry->rd_reserved = rgd->rd_reserved;
0574 ),
0575
0576 TP_printk("%u,%u bmap %llu alloc %llu/%lu %s rg:%llu rf:%u rq:%u rr:%u",
0577 MAJOR(__entry->dev), MINOR(__entry->dev),
0578 (unsigned long long)__entry->inum,
0579 (unsigned long long)__entry->start,
0580 (unsigned long)__entry->len,
0581 block_state_name(__entry->block_state),
0582 (unsigned long long)__entry->rd_addr,
0583 __entry->rd_free_clone,
0584 __entry->rd_requested,
0585 __entry->rd_reserved)
0586 );
0587
0588
0589 TRACE_EVENT(gfs2_rs,
0590
0591 TP_PROTO(const struct gfs2_blkreserv *rs, u8 func),
0592
0593 TP_ARGS(rs, func),
0594
0595 TP_STRUCT__entry(
0596 __field( dev_t, dev )
0597 __field( u64, rd_addr )
0598 __field( u32, rd_free_clone )
0599 __field( u32, rd_requested )
0600 __field( u32, rd_reserved )
0601 __field( u64, inum )
0602 __field( u64, start )
0603 __field( u32, requested )
0604 __field( u32, reserved )
0605 __field( u8, func )
0606 ),
0607
0608 TP_fast_assign(
0609 __entry->dev = rs->rs_rgd->rd_sbd->sd_vfs->s_dev;
0610 __entry->rd_addr = rs->rs_rgd->rd_addr;
0611 __entry->rd_free_clone = rs->rs_rgd->rd_free_clone;
0612 __entry->rd_requested = rs->rs_rgd->rd_requested;
0613 __entry->rd_reserved = rs->rs_rgd->rd_reserved;
0614 __entry->inum = container_of(rs, struct gfs2_inode,
0615 i_res)->i_no_addr;
0616 __entry->start = rs->rs_start;
0617 __entry->requested = rs->rs_requested;
0618 __entry->reserved = rs->rs_reserved;
0619 __entry->func = func;
0620 ),
0621
0622 TP_printk("%u,%u bmap %llu resrv %llu rg:%llu rf:%u rq:%u rr:%u %s q:%u r:%u",
0623 MAJOR(__entry->dev), MINOR(__entry->dev),
0624 (unsigned long long)__entry->inum,
0625 (unsigned long long)__entry->start,
0626 (unsigned long long)__entry->rd_addr,
0627 __entry->rd_free_clone,
0628 __entry->rd_requested,
0629 __entry->rd_reserved,
0630 rs_func_name(__entry->func),
0631 __entry->requested,
0632 __entry->reserved)
0633 );
0634
0635 #endif
0636
0637
0638 #undef TRACE_INCLUDE_PATH
0639 #define TRACE_INCLUDE_PATH .
0640 #define TRACE_INCLUDE_FILE trace_gfs2
0641 #include <trace/define_trace.h>
0642