diff options
author | Alex Elder <aelder@sgi.com> | 2011-10-17 16:42:02 -0400 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2011-10-17 16:42:02 -0400 |
commit | 9508534c5f170ada5a745cde0df49732718440e9 (patch) | |
tree | 2b0f1e19aa529e77720522d13541adedbc46564e /fs/xfs/xfs_inode_item.c | |
parent | 5a93a064d27b42e4af1772b0599b53e3241191ac (diff) | |
parent | a84a79e4d369a73c0130b5858199e949432da4c6 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
Resolved conflicts:
fs/xfs/xfs_trans_priv.h:
- deleted struct xfs_ail field xa_flags
- kept field xa_log_flush in struct xfs_ail
fs/xfs/xfs_trans_ail.c:
- in xfsaild_push(), in XFS_ITEM_PUSHBUF case, replaced
"flush_log = 1" with "ailp->xa_log_flush++"
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode_item.c')
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 8704a99241d7..b7cf21ba240f 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -706,13 +706,14 @@ xfs_inode_item_committed( | |||
706 | * marked delayed write. If that's the case, we'll promote it and that will | 706 | * marked delayed write. If that's the case, we'll promote it and that will |
707 | * allow the caller to write the buffer by triggering the xfsbufd to run. | 707 | * allow the caller to write the buffer by triggering the xfsbufd to run. |
708 | */ | 708 | */ |
709 | STATIC void | 709 | STATIC bool |
710 | xfs_inode_item_pushbuf( | 710 | xfs_inode_item_pushbuf( |
711 | struct xfs_log_item *lip) | 711 | struct xfs_log_item *lip) |
712 | { | 712 | { |
713 | struct xfs_inode_log_item *iip = INODE_ITEM(lip); | 713 | struct xfs_inode_log_item *iip = INODE_ITEM(lip); |
714 | struct xfs_inode *ip = iip->ili_inode; | 714 | struct xfs_inode *ip = iip->ili_inode; |
715 | struct xfs_buf *bp; | 715 | struct xfs_buf *bp; |
716 | bool ret = true; | ||
716 | 717 | ||
717 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_SHARED)); | 718 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_SHARED)); |
718 | 719 | ||
@@ -723,7 +724,7 @@ xfs_inode_item_pushbuf( | |||
723 | if (completion_done(&ip->i_flush) || | 724 | if (completion_done(&ip->i_flush) || |
724 | !(lip->li_flags & XFS_LI_IN_AIL)) { | 725 | !(lip->li_flags & XFS_LI_IN_AIL)) { |
725 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 726 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
726 | return; | 727 | return true; |
727 | } | 728 | } |
728 | 729 | ||
729 | bp = xfs_incore(ip->i_mount->m_ddev_targp, iip->ili_format.ilf_blkno, | 730 | bp = xfs_incore(ip->i_mount->m_ddev_targp, iip->ili_format.ilf_blkno, |
@@ -731,10 +732,13 @@ xfs_inode_item_pushbuf( | |||
731 | 732 | ||
732 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 733 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
733 | if (!bp) | 734 | if (!bp) |
734 | return; | 735 | return true; |
735 | if (XFS_BUF_ISDELAYWRITE(bp)) | 736 | if (XFS_BUF_ISDELAYWRITE(bp)) |
736 | xfs_buf_delwri_promote(bp); | 737 | xfs_buf_delwri_promote(bp); |
738 | if (xfs_buf_ispinned(bp)) | ||
739 | ret = false; | ||
737 | xfs_buf_relse(bp); | 740 | xfs_buf_relse(bp); |
741 | return ret; | ||
738 | } | 742 | } |
739 | 743 | ||
740 | /* | 744 | /* |