Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Apr 2011 17:47:37 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r221166 - in head/sys: fs/ext2fs modules/ext2fs
Message-ID:  <20110428144737.GB48734@deviant.kiev.zoral.com.ua>
In-Reply-To: <201104281427.p3SERHo1026817@svn.freebsd.org>
References:  <201104281427.p3SERHo1026817@svn.freebsd.org>

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

--zGqVP2YgkFRp/g3j
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 28, 2011 at 02:27:17PM +0000, John Baldwin wrote:
> Author: jhb
> Date: Thu Apr 28 14:27:17 2011
> New Revision: 221166
> URL: http://svn.freebsd.org/changeset/base/221166
>=20
> Log:
>   Sync with several changes in UFS/FFS:
>   - 77115: Implement support for O_DIRECT.
>   - 98425: Fix a performance issue introduced in 70131 that was causing
>     reads before writes even when writing full blocks.
>   - 98658: Rename the BALLOC flags from B_* to BA_* to avoid confusion wi=
th
>     the struct buf B_ flags.
>   - 100344: Merge the BA_ and IO_ flags so so that they may both be used =
in
>     the same flags word. This merger is possible by assigning the IO_ fla=
gs
>     to the low sixteen bits and the BA_ flags the high sixteen bits.
>   - 105422: Fix a file-rewrite performance case.
>   - 129545: Implement IO_INVAL in VOP_WRITE() by marking the buffer as
>     "no cache".
>   - Readd the DOINGASYNC() macro and use it to control asynchronous write=
s.
>     Change i-node updates to honor DOINGASYNC() instead of always being
>     synchronous.
>   - Use a PRIV_VFS_RETAINSUGID check instead of checking cr_uid against 0
>     directly when deciding whether or not to clear suid and sgid bits.
>  =20
>   Submitted by:	Pedro F. Giffuni  giffunip at yahoo
>=20

> @@ -141,10 +162,42 @@ READ(ap)
>  		if (error)
>  			break;
> =20
> -		bqrelse(bp);
> +		if ((ioflag & (IO_VMIO|IO_DIRECT)) &&
> +		   (LIST_FIRST(&bp->b_dep) =3D=3D NULL)) {
> +			/*
> +			 * If there are no dependencies, and it's VMIO,
There is no dependencies for ext2fs, the FFS comments talks about SU.

Also, I am unsure what the resulting semantic of O_DIRECTIO for ext2
is ? UFS tries to eliminate any use of buffer cache for O_DIRECTIO
case, up to the mapping of user pages into pbuf to perform the
actual i/o. In ext2 case, it seems we will just destroy the buffers
after using them for i/o. Is it useful ?


--zGqVP2YgkFRp/g3j
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)

iEYEARECAAYFAk25fgkACgkQC3+MBN1Mb4jmSgCgi2R5XScqXS6lzLZN6H62KL09
g20AoOqUTEF1cN7DUZsVKzm7uzf9V3Tv
=2UAt
-----END PGP SIGNATURE-----

--zGqVP2YgkFRp/g3j--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110428144737.GB48734>