Fix limit testing after 1762f674cc ktrace commit.

The previous:

if ((uoff_t)uio->uio_offset + uio->uio_resid > lim)
	signal(....);

was replaced with:

if ((uoff_t)uio->uio_offset + uio->uio_resid < lim)
	return;
signal(....);

Making (uoff_t)uio->uio_offset + uio->uio_resid == lim trip over the
limit, when it did not previously.

Unbreaks running 13.0 buildworld.
This commit is contained in:
Mateusz Guzik 2021-05-22 20:12:31 +00:00
parent fc369a353b
commit e71d5c7331

View File

@ -2368,7 +2368,7 @@ vn_rlimit_fsize(const struct vnode *vp, const struct uio *uio,
return (0); return (0);
ktr_write = (td->td_pflags & TDP_INKTRACE) != 0; ktr_write = (td->td_pflags & TDP_INKTRACE) != 0;
lim = ktr_write ? td->td_ktr_io_lim : lim_cur(td, RLIMIT_FSIZE); lim = ktr_write ? td->td_ktr_io_lim : lim_cur(td, RLIMIT_FSIZE);
if ((uoff_t)uio->uio_offset + uio->uio_resid < lim) if ((uoff_t)uio->uio_offset + uio->uio_resid <= lim)
return (0); return (0);
if (!ktr_write || ktr_filesize_limit_signal) { if (!ktr_write || ktr_filesize_limit_signal) {