Commit 307e0c58 authored by Leo Timmins's avatar Leo Timmins Committed by Andrew Morton
Browse files

liveupdate: propagate file deserialization failures

luo_session_deserialize() ignored the return value from
luo_file_deserialize().  As a result, a session could be left partially
restored even though the /dev/liveupdate open path treats deserialization
failures as fatal.

Propagate the error so a failed file deserialization aborts session
deserialization instead of silently continuing.

Link: https://lkml.kernel.org/r/20260325044608.8407-1-leotimmins1974@gmail.com
Link: https://lkml.kernel.org/r/20260325044608.8407-2-leotimmins1974@gmail.com


Fixes: 16cec0d2 ("liveupdate: luo_session: add ioctls for file preservation")
Signed-off-by: default avatarLeo Timmins <leotimmins1974@gmail.com>
Reviewed-by: default avatarPasha Tatashin <pasha.tatashin@soleen.com>
Reviewed-by: default avatarPratyush Yadav <pratyush@kernel.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent f58df566
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -558,9 +558,14 @@ int luo_session_deserialize(void)
		}

		scoped_guard(mutex, &session->mutex) {
			luo_file_deserialize(&session->file_set,
			err = luo_file_deserialize(&session->file_set,
						   &sh->ser[i].file_set_ser);
		}
		if (err) {
			pr_warn("Failed to deserialize files for session [%s] %pe\n",
				session->name, ERR_PTR(err));
			return err;
		}
	}

	kho_restore_free(sh->header_ser);