Page MenuHomeFreeBSD

D19702.id55438.diff
No OneTemporary

D19702.id55438.diff

Index: sys/kern/kern_descrip.c
===================================================================
--- sys/kern/kern_descrip.c
+++ sys/kern/kern_descrip.c
@@ -601,7 +601,7 @@
case F_SETLK_REMOTE:
error = priv_check(td, PRIV_NFS_LOCKD);
- if (error)
+ if (error != 0)
return (error);
flg = F_REMOTE;
goto do_setlk;
@@ -612,6 +612,12 @@
case F_SETLK:
do_setlk:
+ flp = (struct flock *)arg;
+ if ((flg & F_REMOTE) != 0 && flp->l_sysid == 0) {
+ error = EINVAL;
+ break;
+ }
+
error = fget_unlocked(fdp, fd, &cap_flock_rights, &fp, NULL);
if (error != 0)
break;
@@ -621,7 +627,6 @@
break;
}
- flp = (struct flock *)arg;
if (flp->l_whence == SEEK_CUR) {
foffset = foffset_get(fp);
if (foffset < 0 ||
@@ -667,10 +672,6 @@
flp, flg);
break;
case F_UNLCKSYS:
- /*
- * Temporary api for testing remote lock
- * infrastructure.
- */
if (flg != F_REMOTE) {
error = EINVAL;
break;

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 18, 4:18 AM (20 m, 2 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25478574
Default Alt Text
D19702.id55438.diff (972 B)

Event Timeline