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