diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_trace.h | 9 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h index fcaa62f0799e..65371859c753 100644 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ b/fs/xfs/linux-2.6/xfs_trace.h | |||
@@ -562,18 +562,21 @@ DECLARE_EVENT_CLASS(xfs_inode_class, | |||
562 | __field(dev_t, dev) | 562 | __field(dev_t, dev) |
563 | __field(xfs_ino_t, ino) | 563 | __field(xfs_ino_t, ino) |
564 | __field(int, count) | 564 | __field(int, count) |
565 | __field(int, pincount) | ||
565 | __field(unsigned long, caller_ip) | 566 | __field(unsigned long, caller_ip) |
566 | ), | 567 | ), |
567 | TP_fast_assign( | 568 | TP_fast_assign( |
568 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | 569 | __entry->dev = VFS_I(ip)->i_sb->s_dev; |
569 | __entry->ino = ip->i_ino; | 570 | __entry->ino = ip->i_ino; |
570 | __entry->count = atomic_read(&VFS_I(ip)->i_count); | 571 | __entry->count = atomic_read(&VFS_I(ip)->i_count); |
572 | __entry->pincount = atomic_read(&ip->i_pincount); | ||
571 | __entry->caller_ip = caller_ip; | 573 | __entry->caller_ip = caller_ip; |
572 | ), | 574 | ), |
573 | TP_printk("dev %d:%d ino 0x%llx count %d caller %pf", | 575 | TP_printk("dev %d:%d ino 0x%llx count %d pincount %d caller %pf", |
574 | MAJOR(__entry->dev), MINOR(__entry->dev), | 576 | MAJOR(__entry->dev), MINOR(__entry->dev), |
575 | __entry->ino, | 577 | __entry->ino, |
576 | __entry->count, | 578 | __entry->count, |
579 | __entry->pincount, | ||
577 | (char *)__entry->caller_ip) | 580 | (char *)__entry->caller_ip) |
578 | ) | 581 | ) |
579 | 582 | ||
@@ -583,6 +586,10 @@ DEFINE_EVENT(xfs_inode_class, name, \ | |||
583 | TP_ARGS(ip, caller_ip)) | 586 | TP_ARGS(ip, caller_ip)) |
584 | DEFINE_INODE_EVENT(xfs_ihold); | 587 | DEFINE_INODE_EVENT(xfs_ihold); |
585 | DEFINE_INODE_EVENT(xfs_irele); | 588 | DEFINE_INODE_EVENT(xfs_irele); |
589 | DEFINE_INODE_EVENT(xfs_inode_pin); | ||
590 | DEFINE_INODE_EVENT(xfs_inode_unpin); | ||
591 | DEFINE_INODE_EVENT(xfs_inode_unpin_nowait); | ||
592 | |||
586 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ | 593 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ |
587 | DEFINE_INODE_EVENT(xfs_inode); | 594 | DEFINE_INODE_EVENT(xfs_inode); |
588 | #define xfs_itrace_entry(ip) \ | 595 | #define xfs_itrace_entry(ip) \ |
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 0ffd56447045..8cd6e8d8fe9c 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -2449,6 +2449,8 @@ xfs_iunpin_nowait( | |||
2449 | { | 2449 | { |
2450 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)); | 2450 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)); |
2451 | 2451 | ||
2452 | trace_xfs_inode_unpin_nowait(ip, _RET_IP_); | ||
2453 | |||
2452 | /* Give the log a push to start the unpinning I/O */ | 2454 | /* Give the log a push to start the unpinning I/O */ |
2453 | xfs_log_force_lsn(ip->i_mount, ip->i_itemp->ili_last_lsn, 0); | 2455 | xfs_log_force_lsn(ip->i_mount, ip->i_itemp->ili_last_lsn, 0); |
2454 | 2456 | ||
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 32e4188411c2..03471757bc88 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -543,6 +543,7 @@ xfs_inode_item_pin( | |||
543 | { | 543 | { |
544 | ASSERT(xfs_isilocked(iip->ili_inode, XFS_ILOCK_EXCL)); | 544 | ASSERT(xfs_isilocked(iip->ili_inode, XFS_ILOCK_EXCL)); |
545 | 545 | ||
546 | trace_xfs_inode_pin(iip->ili_inode, _RET_IP_); | ||
546 | atomic_inc(&iip->ili_inode->i_pincount); | 547 | atomic_inc(&iip->ili_inode->i_pincount); |
547 | } | 548 | } |
548 | 549 | ||
@@ -561,6 +562,7 @@ xfs_inode_item_unpin( | |||
561 | { | 562 | { |
562 | struct xfs_inode *ip = iip->ili_inode; | 563 | struct xfs_inode *ip = iip->ili_inode; |
563 | 564 | ||
565 | trace_xfs_inode_unpin(ip, _RET_IP_); | ||
564 | ASSERT(atomic_read(&ip->i_pincount) > 0); | 566 | ASSERT(atomic_read(&ip->i_pincount) > 0); |
565 | if (atomic_dec_and_test(&ip->i_pincount)) | 567 | if (atomic_dec_and_test(&ip->i_pincount)) |
566 | wake_up(&ip->i_ipin_wait); | 568 | wake_up(&ip->i_ipin_wait); |