Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 2019 12:08:38 -0700
From:      Conrad Meyer <cem@freebsd.org>
To:        Alan Somers <asomers@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>,  svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r349391 - head/sys/kern
Message-ID:  <CAG6CVpUscojbGvA0=BmZPhSR%2B5Yt5ah8SQKrBaouUNDpu9tw9A@mail.gmail.com>
In-Reply-To: <201906251944.x5PJiNaA093352@repo.freebsd.org>
References:  <201906251944.x5PJiNaA093352@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Alan,

This change restores the possible overflow beyond IO_SEQMAX that the
removed conditional prevented.

On Tue, Jun 25, 2019 at 12:44 PM Alan Somers <asomers@freebsd.org> wrote:
>
> Author: asomers
> Date: Tue Jun 25 19:44:22 2019
> New Revision: 349391
> URL: https://svnweb.freebsd.org/changeset/base/349391
>
> --- head/sys/kern/vfs_vnops.c   Tue Jun 25 19:36:01 2019        (r349390)
> +++ head/sys/kern/vfs_vnops.c   Tue Jun 25 19:44:22 2019        (r349391)
> @@ -499,10 +499,8 @@ sequential_heuristic(struct uio *uio, struct file *fp)
>                  * closely related to the best I/O size for real disks than
>                  * to any block size used by software.
>                  */
> -               fp->f_seqcount += MIN(IO_SEQMAX,
> +               fp->f_seqcount += lmin(IO_SEQMAX,
>                     howmany(uio->uio_resid, 16384));
> -               if (fp->f_seqcount > IO_SEQMAX)
> -                       fp->f_seqcount = IO_SEQMAX;
>                 return (fp->f_seqcount << IO_SEQSHIFT);
>         }

Perhaps instead this should be:

fp->f_seqcount = lmin(IO_SEQMAX,
  fp->f_seqcount + howmany(...));

Best,
Conrad



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpUscojbGvA0=BmZPhSR%2B5Yt5ah8SQKrBaouUNDpu9tw9A>