xfs: force the log if we encounter pinned buffers in .iop_pushbuf
authorChristoph Hellwig <hch@infradead.org>
Tue, 18 Oct 2011 14:23:18 +0000 (10:23 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Oct 2011 05:10:16 +0000 (07:10 +0200)
commite7bde7c73957cfda82963127421069d13a44e921
treea5e9aed179986625a62af749ef63c927fb83cbb3
parent838599d118dd286b831ba45ae380c5870ff82fe9
xfs: force the log if we encounter pinned buffers in .iop_pushbuf

commit 17b38471c3c07a49f0bbc2ecc2e92050c164e226 upstream

We need to check for pinned buffers even in .iop_pushbuf given that inode
items flush into the same buffers that may be pinned directly due operations
on the unlinked inode list operating directly on buffers.  To do this add a
return value to .iop_pushbuf that tells the AIL push about this and use
the existing log force mechanisms to unpin it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Stefan Priebe <s.priebe@profihost.ag>
Tested-by: Stefan Priebe <s.priebe@profihost.ag>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/xfs/quota/xfs_dquot_item.c
fs/xfs/xfs_buf_item.c
fs/xfs/xfs_inode_item.c
fs/xfs/xfs_trans.h
fs/xfs/xfs_trans_ail.c