svn commit: r232351 - in head/sys: kern sys ufs/ffs ufs/ufs

Konstantin Belousov kostikbel at gmail.com
Fri Mar 2 12:53:43 UTC 2012


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
> ==============================================================================
> --- 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 
you would leave the bread and breadn as functions.

> 
> Modified: head/sys/ufs/ffs/ffs_extern.h
> ==============================================================================
> --- 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 ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-head/attachments/20120302/d4d04ff0/attachment.pgp


More information about the svn-src-head mailing list