Date: Fri, 6 Jan 2012 11:34:06 -0500 From: John Baldwin <jhb@freebsd.org> To: arch@freebsd.org Subject: Adding spare VOPs to allow new VOPs to be MFC'd Message-ID: <201201061134.06351.jhb@freebsd.org>
index | next in thread | raw e-mail
Right now if we MFC a new VOP into a stable branch this breaks the KBI for any
VFS kernel modules since the size and layout of struct vop_vector changes.
What I am proposing is to add N (currently 5) spare VOPs at the end of the
table that can be used by MFCs to add new VOPs onto a stable branch (assuming
the change includes a suitable default VOP implementation).
Index: vnode_if.src
===================================================================
--- vnode_if.src (revision 229703)
+++ vnode_if.src (working copy)
@@ -50,7 +50,7 @@
# X: locked if not nil.
#
# The paramater named "vpp" is assumed to be always used with double
-# indirection (**vpp) and that name is hard-codeed in vnode_if.awk !
+# indirection (**vpp) and that name is hard-coded in vnode_if.awk !
#
# Lines starting with %! specify a pre or post-condition function
# to call before/after the vop call.
@@ -639,3 +639,28 @@ vop_advise {
IN off_t end;
IN int advice;
};
+
+# The VOPs below are spares at the end of the table to allow new VOPs to be
+# added in stable branches without breaking the KBI. New VOPs in HEAD should
+# be added above these spares. When merging a new VOP to a stable branch,
+# the new VOP should replace one of the spares.
+
+vop_spare1 {
+ IN struct vnode *vp;
+};
+
+vop_spare2 {
+ IN struct vnode *vp;
+};
+
+vop_spare3 {
+ IN struct vnode *vp;
+};
+
+vop_spare4 {
+ IN struct vnode *vp;
+};
+
+vop_spare5 {
+ IN struct vnode *vp;
+};
--
John Baldwin
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201061134.06351.jhb>
