have to set offset for SEEK_CUR in F_GETLK too (from scooter@gene.com)
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 1 Mar 1991 07:11:11 +0000 (23:11 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 1 Mar 1991 07:11:11 +0000 (23:11 -0800)
SCCS-vsn: sys/kern/kern_descrip.c 7.20

usr/src/sys/kern/kern_descrip.c

index 5a82d79..9c11066 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)kern_descrip.c      7.19 (Berkeley) %G%
+ *     @(#)kern_descrip.c      7.20 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -227,6 +227,8 @@ fcntl(p, uap, retval)
                error = copyin((caddr_t)uap->arg, (caddr_t)&fl, sizeof (fl));
                if (error)
                        return (error);
                error = copyin((caddr_t)uap->arg, (caddr_t)&fl, sizeof (fl));
                if (error)
                        return (error);
+               if (fl.l_whence == SEEK_CUR)
+                       fl.l_start += fp->f_offset;
                if (error = VOP_ADVLOCK(vp, p, F_GETLK, &fl, F_POSIX))
                        return (error);
                return (copyout((caddr_t)&fl, (caddr_t)uap->arg, sizeof (fl)));
                if (error = VOP_ADVLOCK(vp, p, F_GETLK, &fl, F_POSIX))
                        return (error);
                return (copyout((caddr_t)&fl, (caddr_t)uap->arg, sizeof (fl)));