]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: trylock underlying buffer on dquot flush
authorBrian Foster <bfoster@redhat.com>
Fri, 27 Mar 2020 15:29:45 +0000 (08:29 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sat, 28 Mar 2020 16:40:11 +0000 (09:40 -0700)
commit60c63658a4e9c08b52ab41ec8a3d8cd47bc52ca8
tree831353212beeca585f750c93e88a82b53736ba6e
parent569e1c167aead8a08ff7b63c6d40a2e112042693
xfs: trylock underlying buffer on dquot flush

A dquot flush currently blocks on the buffer lock for the underlying
dquot buffer. In turn, this causes xfsaild to block rather than
continue processing other items in the meantime. Update
xfs_qm_dqflush() to trylock the buffer, similar to how inode buffers
are handled, and return -EAGAIN if the lock fails. Fix up any
callers that don't currently handle the error properly.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_dquot.c
fs/xfs/xfs_dquot_item.c
fs/xfs/xfs_qm.c