fs/coredump fix

-----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCYzuCiQAKCRBZ7Krx/gZQ
 65z6AQDbHgeZ3vXLyHdxs3VWsUkKWMUV1gb5MmzBs/eGq0K3hAD9FfGsOoT2ow9h
 2ics8AGrvMZMHrFOwFAmolXjLW7qQws=
 =y0rq
 -----END PGP SIGNATURE-----

Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull coredump fix from Al Viro:
 "Brown paper bag bug fix for the coredumping fix late in the 6.0
  release cycle"

* tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  [brown paperbag] fix coredump breakage
This commit is contained in:
Linus Torvalds 2022-10-03 18:03:58 -07:00
commit da380aefdd

View File

@ -841,7 +841,7 @@ static int dump_emit_page(struct coredump_params *cprm, struct page *page)
}; };
struct iov_iter iter; struct iov_iter iter;
struct file *file = cprm->file; struct file *file = cprm->file;
loff_t pos = file->f_pos; loff_t pos;
ssize_t n; ssize_t n;
if (cprm->to_skip) { if (cprm->to_skip) {
@ -853,6 +853,7 @@ static int dump_emit_page(struct coredump_params *cprm, struct page *page)
return 0; return 0;
if (dump_interrupted()) if (dump_interrupted())
return 0; return 0;
pos = file->f_pos;
iov_iter_bvec(&iter, WRITE, &bvec, 1, PAGE_SIZE); iov_iter_bvec(&iter, WRITE, &bvec, 1, PAGE_SIZE);
n = __kernel_write_iter(cprm->file, &iter, &pos); n = __kernel_write_iter(cprm->file, &iter, &pos);
if (n != PAGE_SIZE) if (n != PAGE_SIZE)