mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
mm: memfd_luo: restore and free memfd_luo_ser on failure
memfd_luo_ser has the serialization metadata. It is of no use once
restoration fails. Free it on failure.
Link: https://lkml.kernel.org/r/20260122151842.4069702-4-pratyush@kernel.org
Fixes: b3749f174d ("mm: memfd_luo: allow preserving memfd")
Signed-off-by: Pratyush Yadav (Google) <pratyush@kernel.org>
Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
02e117b8ca
commit
c657c5dc13
@@ -447,7 +447,8 @@ static int memfd_luo_retrieve(struct liveupdate_file_op_args *args)
|
||||
file = memfd_alloc_file("", 0);
|
||||
if (IS_ERR(file)) {
|
||||
pr_err("failed to setup file: %pe\n", file);
|
||||
return PTR_ERR(file);
|
||||
err = PTR_ERR(file);
|
||||
goto free_ser;
|
||||
}
|
||||
|
||||
vfs_setpos(file, ser->pos, MAX_LFS_FILESIZE);
|
||||
@@ -473,7 +474,8 @@ static int memfd_luo_retrieve(struct liveupdate_file_op_args *args)
|
||||
|
||||
put_file:
|
||||
fput(file);
|
||||
|
||||
free_ser:
|
||||
kho_restore_free(ser);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user