diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c index 0c65065b08ec..8862714b1806 100644 --- a/fs/bcachefs/snapshot.c +++ b/fs/bcachefs/snapshot.c @@ -397,7 +397,11 @@ u32 bch2_snapshot_tree_oldest_subvol(struct bch_fs *c, u32 snapshot_root) rcu_read_lock(); while (id) { - s = snapshot_t(c, id)->subvol; + const struct snapshot_t *snap = snapshot_t(c, id); + if (!snap) + break; + + s = snap->subvol; if (s && (!subvol || s < subvol)) subvol = s;