Subject: Re: lf_advlock() API change
To: None <tech-kern@netbsd.org>
From: Jaromír Doleček <dolecek@ibis.cz>
List: tech-kern
Date: 07/21/2000 21:08:36
Hi,
here is context diff of related changes. Are there anything else to be
tweaked in lf_advlock() ? Would be good time to change it now :)

XXX
Index: miscfs/specfs/spec_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/miscfs/specfs/spec_vnops.c,v
retrieving revision 1.48
diff -u -r1.48 spec_vnops.c
--- spec_vnops.c	2000/03/30 12:22:14	1.48
+++ spec_vnops.c	2000/07/21 18:52:58
@@ -730,6 +730,5 @@
 	} */ *ap = v;
 	struct vnode *vp = ap->a_vp;
 
-	return (lf_advlock(&vp->v_speclockf, (off_t)0, ap->a_id, ap->a_op,
-	                   ap->a_fl, ap->a_flags));
+	return lf_advlock(ap, &vp->v_speclockf, (off_t)0);
 }
Index: msdosfs/msdosfs_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/msdosfs/msdosfs_vnops.c,v
retrieving revision 1.98
diff -u -r1.98 msdosfs_vnops.c
--- msdosfs_vnops.c	2000/06/28 02:49:15	1.98
+++ msdosfs_vnops.c	2000/07/21 18:53:02
@@ -1847,8 +1847,7 @@
 	} */ *ap = v;
 	struct denode *dep = VTODE(ap->a_vp);
 
-	return (lf_advlock(&dep->de_lockf, dep->de_FileSize, ap->a_id, ap->a_op,
-	    ap->a_fl, ap->a_flags));
+	return lf_advlock(ap, &dep->de_lockf, dep->de_FileSize);
 }
 
 int
Index: nfs/nfs_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/nfs/nfs_vnops.c,v
retrieving revision 1.114
diff -u -r1.114 nfs_vnops.c
--- nfs_vnops.c	2000/06/27 17:52:36	1.114
+++ nfs_vnops.c	2000/07/21 18:53:08
@@ -3049,8 +3049,7 @@
 	} */ *ap = v;
 	struct nfsnode *np = VTONFS(ap->a_vp);
 
-	return (lf_advlock(&np->n_lockf, np->n_size, ap->a_id, ap->a_op,
-	    ap->a_fl, ap->a_flags));
+	return lf_advlock(ap, &np->n_lockf, np->n_size);
 }
 
 /*
Index: ufs/ufs/ufs_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/ufs/ufs/ufs_vnops.c,v
retrieving revision 1.71
diff -u -r1.71 ufs_vnops.c
--- ufs_vnops.c	2000/07/05 22:25:45	1.71
+++ ufs_vnops.c	2000/07/21 18:53:12
@@ -1884,8 +1884,7 @@
 	} */ *ap = v;
 	struct inode *ip = VTOI(ap->a_vp);
 
-	return (lf_advlock(&ip->i_lockf, ip->i_ffs_size, ap->a_id, ap->a_op,
-	    ap->a_fl, ap->a_flags));
+	return lf_advlock(ap, &ip->i_lockf, ip->i_ffs_size);
 }
 
 /*
Index: ufs/ext2fs/ext2fs_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/ufs/ext2fs/ext2fs_vnops.c,v
retrieving revision 1.27
diff -u -r1.27 ext2fs_vnops.c
--- ext2fs_vnops.c	2000/06/28 14:16:38	1.27
+++ ext2fs_vnops.c	2000/07/21 18:53:15
@@ -1253,8 +1253,7 @@
 	} */ *ap = v;
 	struct inode *ip = VTOI(ap->a_vp);
 
-	return (lf_advlock(&ip->i_lockf, ip->i_e2fs_size, ap->a_id, ap->a_op,
-	    ap->a_fl, ap->a_flags));
+	return lf_advlock(ap, &ip->i_lockf, ip->i_e2fs_size);
 }
 
 /*
Index: kern/vfs_lockf.c
===================================================================
RCS file: /cvsroot/syssrc/sys/kern/vfs_lockf.c,v
retrieving revision 1.16
diff -u -r1.16 vfs_lockf.c
--- vfs_lockf.c	2000/06/12 14:33:06	1.16
+++ vfs_lockf.c	2000/07/21 18:53:16
@@ -86,14 +86,12 @@
  * Do an advisory lock operation.
  */
 int
-lf_advlock(head, size, id, op, fl, flags)
+lf_advlock(ap, head, size)
+	struct vop_advlock_args *ap;
 	struct lockf **head;
 	off_t size;
-	caddr_t id;
-	int op;
-	struct flock *fl;
-	int flags;
 {
+	struct flock *fl = ap->a_fl;
 	struct lockf *lock;
 	off_t start, end;
 	int error;
@@ -125,7 +123,7 @@
 	 * Avoid the common case of unlocking when inode has no locks.
 	 */
 	if (*head == (struct lockf *)0) {
-		if (op != F_SETLK) {
+		if (ap->a_op != F_SETLK) {
 			fl->l_type = F_UNLCK;
 			return (0);
 		}
@@ -141,16 +139,16 @@
 	MALLOC(lock, struct lockf *, sizeof(*lock), M_LOCKF, M_WAITOK);
 	lock->lf_start = start;
 	lock->lf_end = end;
-	lock->lf_id = id;
+	lock->lf_id = ap->a_id;
 	lock->lf_head = head;
 	lock->lf_type = fl->l_type;
 	lock->lf_next = (struct lockf *)0;
 	TAILQ_INIT(&lock->lf_blkhd);
-	lock->lf_flags = flags;
+	lock->lf_flags = ap->a_flags;
 	/*
 	 * Do the requested operation.
 	 */
-	switch (op) {
+	switch (ap->a_op) {
 
 	case F_SETLK:
 		return (lf_setlock(lock));
Index: sys/lockf.h
===================================================================
RCS file: /cvsroot/syssrc/sys/sys/lockf.h,v
retrieving revision 1.8
diff -u -r1.8 lockf.h
--- lockf.h	2000/06/12 14:33:04	1.8
+++ lockf.h	2000/07/21 18:53:16
@@ -73,8 +73,7 @@
 
 __BEGIN_DECLS
 void	 lf_addblock __P((struct lockf *, struct lockf *));
-int	 lf_advlock __P((struct lockf **,
-	    off_t, caddr_t, int, struct flock *, int));
+int	 lf_advlock __P((struct vop_advlock_args *, struct lockf **, off_t));
 int	 lf_clearlock __P((struct lockf *));
 int	 lf_findoverlap __P((struct lockf *,
 	    struct lockf *, int, struct lockf ***, struct lockf **));
XXX

-- 
Jaromir Dolecek <jdolecek@NetBSD.org>      http://www.ics.muni.cz/~dolecek/
@@@@  Wanna a real operating system ? Go and get NetBSD, damn!  @@@@