On Tue 07-04-26 09:21:15, Jeff Layton wrote: > ...mostly to show the LEASE_BREAK_* flags. > > Signed-off-by: Jeff Layton <[email protected]>
OK. Feel free to add: Reviewed-by: Jan Kara <[email protected]> Honza > --- > fs/locks.c | 2 ++ > include/trace/events/filelock.h | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 35 insertions(+) > > diff --git a/fs/locks.c b/fs/locks.c > index dafa0752fdce..5af6dca2d46c 100644 > --- a/fs/locks.c > +++ b/fs/locks.c > @@ -1654,6 +1654,8 @@ int __break_lease(struct inode *inode, unsigned int > flags) > bool want_write = !(flags & LEASE_BREAK_OPEN_RDONLY); > int error = 0; > > + trace_break_lease(inode, flags); > + > if (flags & LEASE_BREAK_LEASE) > type = FL_LEASE; > else if (flags & LEASE_BREAK_DELEG) > diff --git a/include/trace/events/filelock.h b/include/trace/events/filelock.h > index ef4bb0afb86a..fff0ee2d452d 100644 > --- a/include/trace/events/filelock.h > +++ b/include/trace/events/filelock.h > @@ -120,6 +120,39 @@ DEFINE_EVENT(filelock_lock, flock_lock_inode, > TP_PROTO(struct inode *inode, struct file_lock *fl, int ret), > TP_ARGS(inode, fl, ret)); > > +#define show_lease_break_flags(val) \ > + __print_flags(val, "|", \ > + { LEASE_BREAK_LEASE, "LEASE" }, \ > + { LEASE_BREAK_DELEG, "DELEG" }, \ > + { LEASE_BREAK_LAYOUT, "LAYOUT" }, \ > + { LEASE_BREAK_NONBLOCK, "NONBLOCK" }, \ > + { LEASE_BREAK_OPEN_RDONLY, "OPEN_RDONLY" }, \ > + { LEASE_BREAK_DIR_CREATE, "DIR_CREATE" }, \ > + { LEASE_BREAK_DIR_DELETE, "DIR_DELETE" }, \ > + { LEASE_BREAK_DIR_RENAME, "DIR_RENAME" }) > + > +TRACE_EVENT(break_lease, > + TP_PROTO(struct inode *inode, unsigned int flags), > + > + TP_ARGS(inode, flags), > + > + TP_STRUCT__entry( > + __field(unsigned long, i_ino) > + __field(dev_t, s_dev) > + __field(unsigned int, flags) > + ), > + > + TP_fast_assign( > + __entry->s_dev = inode->i_sb->s_dev; > + __entry->i_ino = inode->i_ino; > + __entry->flags = flags; > + ), > + > + TP_printk("dev=0x%x:0x%x ino=0x%lx flags=%s", > + MAJOR(__entry->s_dev), MINOR(__entry->s_dev), > + __entry->i_ino, show_lease_break_flags(__entry->flags)) > +); > + > DECLARE_EVENT_CLASS(filelock_lease, > TP_PROTO(struct inode *inode, struct file_lease *fl), > > > -- > 2.53.0 > -- Jan Kara <[email protected]> SUSE Labs, CR
