diff options
author | Chris Mason <chris.mason@oracle.com> | 2012-05-06 13:23:47 +0200 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-05-06 13:23:47 +0200 |
commit | b9fab919b748c7b39c19ff236ed6c5682c266dde (patch) | |
tree | 49e5a6f8041a7f0a9be0c1a39cd9088e3faa1df2 /fs/btrfs/ulist.h | |
parent | Btrfs: fix crash in scrub repair code when device is missing (diff) | |
download | linux-b9fab919b748c7b39c19ff236ed6c5682c266dde.tar.xz linux-b9fab919b748c7b39c19ff236ed6c5682c266dde.zip |
Btrfs: avoid sleeping in verify_parent_transid while atomic
verify_parent_transid needs to lock the extent range to make
sure no IO is underway, and so it can safely clear the
uptodate bits if our checks fail.
But, a few callers are using it with spinlocks held. Most
of the time, the generation numbers are going to match, and
we don't want to switch to a blocking lock just for the error
case. This adds an atomic flag to verify_parent_transid,
and changes it to return EAGAIN if it needs to block to
properly verifiy things.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ulist.h')
0 files changed, 0 insertions, 0 deletions