diff options
author | Chunwei Chen <[email protected]> | 2019-08-28 10:42:02 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-08-28 10:42:02 -0700 |
commit | 035e96118bc9a7cbf435dd17dda507b870fcf6e6 (patch) | |
tree | 71cb2c19bd850251f28966a37e7ce148a65a513b /udev | |
parent | 9c9dcd6e04ae7a868efafe4447bdbe67ae25a6da (diff) |
Fix zil replay panic when TX_REMOVE followed by TX_CREATE
If TX_REMOVE is followed by TX_CREATE on the same object id, we need to
make sure the object removal is completely finished before creation. The
current implementation relies on dnode_hold_impl with
DNODE_MUST_BE_ALLOCATED returning ENOENT. While this check seems to work
fine before, in current version it does not guarantee the object removal
is completed.
We fix this by checking if DNODE_MUST_BE_FREE returns successful
instead. Also add test and remove dead code in dnode_hold_impl.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tom Caputi <[email protected]>
Signed-off-by: Chunwei Chen <[email protected]>
Closes #7151
Closes #8910
Closes #9123
Closes #9145
Diffstat (limited to 'udev')
0 files changed, 0 insertions, 0 deletions