new helper: dump_emit()

dump_write() analog, takes core_dump_params instead of file,
keeps track of the amount written in cprm->written and checks for
cprm->limit.  Start using it in binfmt_elf.c...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro
2013-10-05 15:32:35 -04:00
부모 7d2f551f6d
커밋 ecc8c7725e
4개의 변경된 파일40개의 추가작업 그리고 37개의 파일을 삭제

파일 보기

@@ -693,6 +693,20 @@ int dump_write(struct file *file, const void *addr, int nr)
}
EXPORT_SYMBOL(dump_write);
int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
{
struct file *file = cprm->file;
if (dump_interrupted() || !access_ok(VERIFY_READ, addr, nr))
return 0;
if (cprm->written + nr > cprm->limit)
return 0;
if (file->f_op->write(file, addr, nr, &file->f_pos) != nr)
return 0;
cprm->written += nr;
return 1;
}
EXPORT_SYMBOL(dump_emit);
int dump_seek(struct file *file, loff_t off)
{
int ret = 1;