PERFORCE change 109653 for review
Jung-uk Kim
jkim at FreeBSD.org
Thu Nov 9 23:31:54 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=109653
Change 109653 by jkim at jkim_hammer on 2006/11/09 23:31:05
Linux mknod(2) can open any files, not just char/block or fifo files.
This fixes LTP test case mknod01, mknod07 and mknod09.
Affected files ...
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#30 edit
Differences ...
==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#30 (text+ko) ====
@@ -891,11 +891,34 @@
printf(ARGS(mknod, "%s, %d, %d"), path, args->mode, args->dev);
#endif
- if (S_ISFIFO(args->mode))
+ switch (args->mode & S_IFMT) {
+ case S_IFIFO:
+ case S_IFSOCK:
error = kern_mkfifo(td, path, UIO_SYSSPACE, args->mode);
- else
+ break;
+
+ case S_IFCHR:
+ case S_IFBLK:
error = kern_mknod(td, path, UIO_SYSSPACE, args->mode,
args->dev);
+ break;
+
+ case S_IFDIR:
+ error = EPERM;
+ break;
+
+ case 0:
+ args->mode |= S_IFREG;
+ /* fall through */
+ case S_IFREG:
+ error = kern_open(td, path, UIO_SYSSPACE,
+ O_WRONLY | O_CREAT | O_TRUNC, args->mode);
+ break;
+
+ default:
+ error = EINVAL;
+ break;
+ }
LFREEPATH(path);
return (error);
}
More information about the p4-projects
mailing list