Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Mar 2012 14:53:34 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Kirk McKusick <mckusick@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r232351 - in head/sys: kern sys ufs/ffs ufs/ufs
Message-ID:  <20120302125334.GH75778@deviant.kiev.zoral.com.ua>
In-Reply-To: <201203011845.q21IjQqt091350@svn.freebsd.org>
References:  <201203011845.q21IjQqt091350@svn.freebsd.org>

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

--smOfPzt+Qjm5bNGJ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 01, 2012 at 06:45:25PM +0000, Kirk McKusick wrote:
> Author: mckusick
> Date: Thu Mar  1 18:45:25 2012
> New Revision: 232351
> URL: http://svn.freebsd.org/changeset/base/232351
> Modified: head/sys/sys/buf.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/sys/buf.h	Thu Mar  1 18:17:45 2012	(r232350)
> +++ head/sys/sys/buf.h	Thu Mar  1 18:45:25 2012	(r232351)
> @@ -479,10 +479,13 @@ void	bwillwrite(void);
>  int	buf_dirty_count_severe(void);
>  void	bremfree(struct buf *);
>  void	bremfreef(struct buf *);	/* XXX Force bremfree, only for nfs. */
> -int	bread(struct vnode *, daddr_t, int, struct ucred *, struct buf **);
> +#define bread(vp, blkno, size, cred, bpp) \
> +	    breadn_flags(vp, blkno, size, 0, 0, 0, cred, 0, bpp)
> +#define breadn(vp, blkno, size, rablkno, rabsize, cnt, cred, bpp) \
> +	    breadn_flags(vp, blkno, size, rablkno, rabsize, cnt, cred, 0, bpp)
> +int	breadn_flags(struct vnode *, daddr_t, int, daddr_t *, int *, int,
> +	    struct ucred *, int, struct buf **);
>  void	breada(struct vnode *, daddr_t *, int *, int, struct ucred *);
> -int	breadn(struct vnode *, daddr_t, int, daddr_t *, int *, int,
> -	    struct ucred *, struct buf **);
>  void	bdwrite(struct buf *);
>  void	bawrite(struct buf *);
>  void	bdirty(struct buf *);
This part of the change breaks KBI. I suggest that for merge to stable/9=20
you would leave the bread and breadn as functions.

>=20
> Modified: head/sys/ufs/ffs/ffs_extern.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/ufs/ffs/ffs_extern.h	Thu Mar  1 18:17:45 2012	(r232350)
> +++ head/sys/ufs/ffs/ffs_extern.h	Thu Mar  1 18:45:25 2012	(r232351)
> @@ -167,6 +167,13 @@ void	softdep_freework(struct workhead *)
>  #define FLUSH_INODES_WAIT	2
>  #define FLUSH_BLOCKS		3
>  #define FLUSH_BLOCKS_WAIT	4
> +/*
> + * Flag to ffs_syncinode() to request flushing of data only,
> + * but skip the ffs_update() on the inode itself. Used to avoid
> + * deadlock when flushing snapshot inodes while holding snaplk.
> + * Avoid bit conflicts with MNT_WAIT values in sys/mount.h
> + */
> +#define	NO_INO_UPDT		0x10

Would it be useful to add at least a comment to MNT_WAIT section
of sys/mount.h to warn about this flag existence ?

--smOfPzt+Qjm5bNGJ
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAk9Qws4ACgkQC3+MBN1Mb4g8LQCfVeGqEis8+WxrDoFkpTngO0Km
TuUAoKZzjuSNskmk5nm1xrgKS0d/6xx0
=U3Yl
-----END PGP SIGNATURE-----

--smOfPzt+Qjm5bNGJ--



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