rbd: don't retry watch reregistration if header object is gone
If the header object gets deleted (perhaps along with the entire pool), there is no point in attempting to reregister the watch. Treat this the same as blacklisting: fail all pending and new I/Os requiring the lock. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
87c0fded85
commit
4d73644bc3
|
@ -3944,7 +3944,7 @@ static void rbd_reregister_watch(struct work_struct *work)
|
|||
ret = __rbd_register_watch(rbd_dev);
|
||||
if (ret) {
|
||||
rbd_warn(rbd_dev, "failed to reregister watch: %d", ret);
|
||||
if (ret == -EBLACKLISTED) {
|
||||
if (ret == -EBLACKLISTED || ret == -ENOENT) {
|
||||
set_bit(RBD_DEV_FLAG_BLACKLISTED, &rbd_dev->flags);
|
||||
need_to_wake = true;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue