diff options
author | Olof Johansson <olof@lixom.net> | 2011-12-13 19:35:03 -0800 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2011-12-13 19:35:03 -0800 |
commit | 2da994e687f7991cc76e3270c423bf6500b9424a (patch) | |
tree | 437d685035c2a39395f14c233831422ed636c016 /fs/xfs/xfs_inode.c | |
parent | 00e929808a1cb410f45a620c0fc79d8d0a2506b1 (diff) | |
parent | db33f4de9952af112b0d4f2436ce931ae632aba0 (diff) |
Merge branch 'orion/devel' into next/devel
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r-- | fs/xfs/xfs_inode.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index c0237c602f1..755ee816488 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2835,6 +2835,27 @@ corrupt_out: return XFS_ERROR(EFSCORRUPTED); } +void +xfs_promote_inode( + struct xfs_inode *ip) +{ + struct xfs_buf *bp; + + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)); + + bp = xfs_incore(ip->i_mount->m_ddev_targp, ip->i_imap.im_blkno, + ip->i_imap.im_len, XBF_TRYLOCK); + if (!bp) + return; + + if (XFS_BUF_ISDELAYWRITE(bp)) { + xfs_buf_delwri_promote(bp); + wake_up_process(ip->i_mount->m_ddev_targp->bt_task); + } + + xfs_buf_relse(bp); +} + /* * Return a pointer to the extent record at file index idx. */ |