]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: fail _dir_open when readahead fails
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 2 Feb 2017 23:13:58 +0000 (15:13 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 2 Feb 2017 23:13:58 +0000 (15:13 -0800)
commit36188f46ee95b2fd29d57166e10e673ac0578379
treeebc1b32e1a8479588e9516769ca4029a88558fbf
parente8aab4ccb796fb80d4cbc6046ed601301fa2596e
xfs: fail _dir_open when readahead fails

When we open a directory, we try to readahead block 0 of the directory
on the assumption that we're going to need it soon.  If the bmbt is
corrupt, the directory will never be usable and the readahead fails
immediately, so we might as well prevent the directory from being opened
at all.  This prevents a subsequent read or modify operation from
hitting it and taking the fs offline.

NOTE: We're only checking for early failures in the block mapping, not
the readahead directory block itself.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_da_btree.c
fs/xfs/libxfs/xfs_da_btree.h
fs/xfs/xfs_file.c