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 ?

Attachment: pgptfcoyZ5yxb.pgp
Description: PGP signature

Reply via email to