diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 47c6f9cf9dba9952dd7340efe5bd27e0af102915..626a7136fb2f4d5c94c096a93c2f78c0c37c9c8e 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -4078,8 +4078,13 @@ static u64 rbd_v2_snap_id_by_name(struct rbd_device *rbd_dev, const char *name) snap_id = snapc->snaps[which]; snap_name = rbd_dev_v2_snap_name(rbd_dev, snap_id); - if (IS_ERR(snap_name)) - break; + if (IS_ERR(snap_name)) { + /* ignore no-longer existing snapshots */ + if (PTR_ERR(snap_name) == -ENOENT) + continue; + else + break; + } found = !strcmp(name, snap_name); kfree(snap_name); }