aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_inode_item.c
diff options
context:
space:
mode:
authorAlex Elder <aelder@sgi.com>2011-10-17 16:42:02 -0400
committerAlex Elder <aelder@sgi.com>2011-10-17 16:42:02 -0400
commit9508534c5f170ada5a745cde0df49732718440e9 (patch)
tree2b0f1e19aa529e77720522d13541adedbc46564e /fs/xfs/xfs_inode_item.c
parent5a93a064d27b42e4af1772b0599b53e3241191ac (diff)
parenta84a79e4d369a73c0130b5858199e949432da4c6 (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.c10
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 */
709STATIC void 709STATIC bool
710xfs_inode_item_pushbuf( 710xfs_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/*