Files
linux/fs
Dave Chinner b027d4c97b xfs: don't retry xfs_buf_find on XBF_TRYLOCK failure
When looking at an event trace recently, I noticed that non-blocking
buffer lookup attempts would fail on cached locked buffers and then
run the slow cache-miss path. This means we are doing an xfs_buf
allocation, lookup and free unnecessarily every time we avoid
blocking on a locked buffer.

Fix this by changing _xfs_buf_find() to return an error status to
the caller to indicate that we failed the lock attempt rather than
just returning a NULL. This allows the higher level code to
discriminate between a cache miss and an cache hit that we failed to
lock.

This also allows us to return a -EFSCORRUPTED state if we are asked
to look up a block number outside the range of the filesystem in
_xfs_buf_find(), which moves us one step closer to being able to
handle such errors in a more graceful manner at the higher levels.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-05-09 10:04:00 -07:00
..
2018-04-20 09:59:33 -07:00
2018-03-14 13:31:23 +01:00
2018-04-11 10:28:39 -07:00
2018-03-27 13:18:09 -04:00
2018-04-03 16:27:08 -04:00
2018-04-11 10:28:39 -07:00
2018-04-20 17:18:36 -07:00
2018-04-11 10:28:39 -07:00
2018-04-11 10:28:37 -07:00
2017-12-07 14:23:30 -05:00
2018-05-03 16:11:37 -06:00
2018-04-11 10:28:39 -07:00
2018-01-29 07:27:24 -08:00
2018-02-15 15:34:42 -05:00