tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[PATCH] UFS: implement some path configuration constants
Implement following constants and add support their to the UFS family of file
systems:
_PC_2_SYMLINKS
_PC_SYMLINK_MAX
---
lib/libc/sys/pathconf.2 | 7 +++++++
sys/sys/unistd.h | 2 ++
sys/ufs/ufs/ufs_vnops.c | 6 ++++++
3 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/lib/libc/sys/pathconf.2 b/lib/libc/sys/pathconf.2
index c1f0a57..eb47470 100644
--- a/lib/libc/sys/pathconf.2
+++ b/lib/libc/sys/pathconf.2
@@ -105,6 +105,13 @@ If the maximum size file that could ever exist on the
mounted file system is
.Dv maxsize ,
then the returned value is 2 plus the floor of the base 2 logarithm of
.Dv maxsize .
+.It Li _PC_SYMLINK_MAX
+The maximum number of bytes in a symbolic link.
+.It Li _PC_2_SYMLINKS
+When referring to a directory the system supports the creation of symbolic
+links within that directory; for nondirectory files, the meaning of
+.Dv {_PC_2_SYMLINKS}
+is undefined.
.El
.Sh RETURN VALUES
If the call to
diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h
index 96503e3..1ee3e26 100644
--- a/sys/sys/unistd.h
+++ b/sys/sys/unistd.h
@@ -156,6 +156,8 @@
#define _PC_VDISABLE 9
#define _PC_SYNC_IO 10
#define _PC_FILESIZEBITS 11
+#define _PC_SYMLINK_MAX 12
+#define _PC_2_SYMLINKS 13
/* configurable system variables; use as argument to sysconf(3) */
/*
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 15843ae..25c728c 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -2153,6 +2153,12 @@ ufs_pathconf(void *v)
case _PC_FILESIZEBITS:
*ap->a_retval = 42;
return (0);
+ case _PC_SYMLINK_MAX:
+ *ap->a_retval = MAXPATHLEN;
+ return (0);
+ case _PC_2_SYMLINKS:
+ *ap->a_retval = 1;
+ return (0);
default:
return (EINVAL);
}
--
1.5.2.5
Home |
Main Index |
Thread Index |
Old Index