procmgmt: pinstall
${COMPILE_PART1} procmgmt ${COMPILE_PART2}
-util: procmgmt des
+util: procmgmt des lwp_depinstall
${COMPILE_PART1} util ${COMPILE_PART2}
audit: util rx rxkad
ptserver_depinstall: pinstall rxgen comerr
${COMPILE_PART1} ptserver ${COMPILE_DEPINSTALL}
-${DEST}/bin/dedebug: dedebug
- ${INSTALL} -s $? $@
-
#
# libafs build targets
-${COMPILE_PART1} libafsauthent ${COMPILE_CLEAN}
-${COMPILE_PART1} shlibafsrpc ${COMPILE_CLEAN}
-${COMPILE_PART1} shlibafsauthent ${COMPILE_CLEAN}
+ -${COMPILE_PART1} platform ${COMPILE_CLEAN}
-${COMPILE_PART1} libadmin ${COMPILE_CLEAN}
-${COMPILE_PART1} libadmin/adminutil ${COMPILE_CLEAN}
-${COMPILE_PART1} libadmin/client ${COMPILE_CLEAN}
src/tbutc/Makefile \
src/tests/Makefile \
src/tests/run-tests \
- src/tests/OpenAFS/Dirpath.pm \
src/tsm41/Makefile \
src/tviced/Makefile \
src/tvolser/Makefile \
or insecure software included with OpenAFS. See README.obsolete and
README.insecure for more details.
+ There is an option to control whether or not binaries are stripped
+ of their symbol table information. All binaries, except for the
+ 'fileserver' and 'volserver' executables, are stripped by default.
+
+ To prevent stripping, specify the '--disable-strip-binaries' option on
+ the ./configure command line.
+
+ This option works alongside the existing --enable-debug option to
+ control how binaries are produced. When --enable-debug is specified,
+ binaries will not be stripped. This behavior can be modified by
+ using different combinations of --enable-debug and --enable (or
+ --disable)-strip-binaries. One can, for example, compile binaries for
+ debug and strip them anyway. Alternatively, one can compile without
+ debug and force the binaries to not be stripped. Note that these
+ combinations are not necessarily useful.
+
+ If neither of these options is specified, the default will be to build
+ non-debug binaries that are stripped (with the exceptions noted above,
+ which are never stripped at present). Specifying --enable-debug also
+ turns on --disable-strip-binaries. These are the most useful settings.
+
+ The two binaries noted above, 'fileserver' and 'volserver' will never
+ be stripped, regardless of any options given to configure.
+
There are two modes for directory path handling: "Transarc mode" and "default mode":
- In Transarc mode, we retain compatibility with Transarc/IBM AFS tools
by putting client configuaration files in /usr/vice/etc, and server
AC_ARG_ENABLE(debug,
[ --enable-debug enable compilation of the user space code with debugging information (defaults to disabled)],, enable_debug="no"
)
+AC_ARG_ENABLE(strip-binaries,
+[ --disable-strip-binaries disable stripping of symbol information from binaries (defaults to enabled)],, enable_strip_binaries="maybe"
+)
AC_ARG_ENABLE(optimize,
[ --disable-optimize disable optimization for compilation of the user space code (defaults to enabled)],, enable_optimize="yes"
)
AC_ARG_ENABLE(optimize-lwp,
[ --disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)],, enable_optimize_lwp="yes"
)
+AC_ARG_ENABLE(warnings,
+[ --enable-warnings enable compilation warnings when building with gcc (defaults to disabled)],, enable_warnings="no"
+)
enable_login="no"
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="amd64_nbsd20"
;;
+ x86_64-*-netbsd*3.[0-8]*)
+ AFS_PARAM_COMMON=param.nbsd30.h
+ AFS_SYSNAME="amd64_nbsd30"
+ ;;
+ x86_64-*-netbsd*4.[0-8]*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="amd64_nbsd40"
+ ;;
powerpc-*-netbsd*2.0*)
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="ppc_nbsd20"
hppa*-hp-hpux11.11)
AFS_SYSNAME="hp_ux11i"
;;
+ hppa*-hp-hpux11.23)
+ AFS_SYSNAME="hp_ux1123"
+ ;;
ia64-hp-hpux11.22)
AFS_SYSNAME="ia64_hpux1122"
;;
[LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
)
+ LINUX_KBUILD_USES_EXTRA_CFLAGS
LINUX_KERNEL_COMPILE_WORKS
+ LINUX_HAVE_CURRENT_KERNEL_TIME
+ LINUX_KMEM_CACHE_INIT
LINUX_HAVE_KMEM_CACHE_T
LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
LINUX_CONFIG_H_EXISTS
LINUX_AOP_WRITEBACK_CONTROL
LINUX_FS_STRUCT_FOP_HAS_FLOCK
LINUX_FS_STRUCT_FOP_HAS_SENDFILE
+ LINUX_FS_STRUCT_FOP_HAS_SPLICE
LINUX_KERNEL_LINUX_SYSCALL_H
LINUX_KERNEL_LINUX_SEQ_FILE_H
LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
LINUX_KERNEL_SELINUX
LINUX_KERNEL_SOCK_CREATE
LINUX_KERNEL_PAGE_FOLLOW_LINK
+ LINUX_KEY_TYPE_H_EXISTS
LINUX_NEED_RHCONFIG
LINUX_RECALC_SIGPENDING_ARG_TYPE
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
LINUX_GENERIC_FILE_AIO_READ
LINUX_INIT_WORK_HAS_DATA
LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
+ LINUX_SYSCTL_TABLE_CHECKING
+ LINUX_HAVE_IGET
+ LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
LINUX_EXPORTS_SYS_CHDIR
LINUX_EXPORTS_SYS_CLOSE
LINUX_EXPORTS_SYS_OPEN
if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
fi
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
+ AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
+ fi
if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
fi
if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
fi
+ if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
+ AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
+ fi
if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
fi
+ if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
+ AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
+ fi
+ if test "x$ac_cv_linux_have_iget" = "xyes" ; then
+ AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
+ fi
+ if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
+ AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
+ fi
if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
fi
if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
fi
+ if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
+ AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
+ fi
+ if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
+ AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
+ fi
if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
fi
AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
-AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
+AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h)
AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
-AC_CHECK_FUNCS(setvbuf)
+AC_CHECK_FUNCS(setvbuf vsyslog)
AC_FUNC_SETVBUF_REVERSED
AC_CHECK_FUNCS(regcomp regexec regerror)
AC_MSG_CHECKING([for POSIX regex library])
CCDEPMODE
am__fastdepCC_TRUE
am__fastdepCC_FALSE
+CPP
build
build_cpu
build_vendor
host_cpu
host_vendor
host_os
-CPP
GREP
EGREP
LN_S
MT_CC
MT_CFLAGS
MT_LIBS
+NO_STRIP_BIN
+NO_STRIP_KRB
OPTMZ
PAM_CFLAGS
PAM_LIBS
--enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)
--disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)
--enable-debug enable compilation of the user space code with debugging information (defaults to disabled)
+ --disable-strip-binaries disable stripping of symbol information from binaries (defaults to enabled)
--disable-optimize disable optimization for compilation of the user space code (defaults to enabled)
--enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)
--disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)
+ --enable-warnings enable compilation warnings when building with gcc (defaults to disabled)
--enable-bigendian the target is big endian
--enable-littleendian the target is little endian
# Define the identity of the package.
PACKAGE=openafs
- VERSION=1.4.6
+ VERSION=1.4.7pre1
cat >>confdefs.h <<_ACEOF
ac_config_headers="$ac_config_headers src/config/afsconfig.h"
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
fi
+for ac_prog in /lib/cpp /usr/bin/cpp /usr/ccs/lib/cpp cpp
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CPP"; then
+ ac_cv_prog_CPP="$CPP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CPP="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CPP=$ac_cv_prog_CPP
+if test -n "$CPP"; then
+ { echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+ test -n "$CPP" && break
+done
+
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
fi
+# Check whether --enable-strip-binaries was given.
+if test "${enable_strip_binaries+set}" = set; then
+ enableval=$enable_strip_binaries;
+else
+ enable_strip_binaries="maybe"
+
+fi
+
# Check whether --enable-optimize was given.
if test "${enable_optimize+set}" = set; then
enableval=$enable_optimize;
fi
+# Check whether --enable-warnings was given.
+if test "${enable_warnings+set}" = set; then
+ enableval=$enable_warnings;
+else
+ enable_warnings="no"
+
+fi
+
enable_login="no"
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="amd64_nbsd20"
;;
+ x86_64-*-netbsd*3.0-8*)
+ AFS_PARAM_COMMON=param.nbsd30.h
+ AFS_SYSNAME="amd64_nbsd30"
+ ;;
+ x86_64-*-netbsd*4.0-8*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="amd64_nbsd40"
+ ;;
powerpc-*-netbsd*2.0*)
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="ppc_nbsd20"
hppa*-hp-hpux11.11)
AFS_SYSNAME="hp_ux11i"
;;
+ hppa*-hp-hpux11.23)
+ AFS_SYSNAME="hp_ux1123"
+ ;;
ia64-hp-hpux11.22)
AFS_SYSNAME="ia64_hpux1122"
;;
- { echo "$as_me:$LINENO: checking for linux kernel module build works" >&5
-echo $ECHO_N "checking for linux kernel module build works... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: checking if linux kbuild requires EXTRA_CFLAGS" >&5
+echo $ECHO_N "checking if linux kbuild requires EXTRA_CFLAGS... $ECHO_C" >&6; }
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS=-Wall
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then :
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_kbuild_requires_extra_cflags=no
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&5
-echo "$as_me: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ ac_linux_kbuild_requires_extra_cflags=yes
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
int
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- :
+ ac_linux_kbuild_requires_extra_cflags=no
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&5
-echo "$as_me: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ ac_linux_kbuild_requires_extra_cflags=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
- { echo "$as_me:$LINENO: checking whether kmem_cache_t exists" >&5
-echo $ECHO_N "checking whether kmem_cache_t exists... $ECHO_C" >&6; }
- if test "${ac_cv_linux_have_kmem_cache_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+ CPPFLAGS="$save_CPPFLAGS"
+ { echo "$as_me:$LINENO: result: $ac_linux_kbuild_requires_extra_cflags" >&5
+echo "${ECHO_T}$ac_linux_kbuild_requires_extra_cflags" >&6; }
+ { echo "$as_me:$LINENO: checking for linux kernel module build works" >&5
+echo $ECHO_N "checking for linux kernel module build works... $ECHO_C" >&6; }
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/slab.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
void conftest(void)
{
-kmem_cache_t *k;
+
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_have_kmem_cache_t=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then :
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_have_kmem_cache_t=no
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&5
+echo "$as_me: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/slab.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
int
main ()
{
-kmem_cache_t *k;
+
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_have_kmem_cache_t=yes
+ :
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_have_kmem_cache_t=no
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&5
+echo "$as_me: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
-fi
-
- { echo "$as_me:$LINENO: result: $ac_cv_linux_have_kmem_cache_t" >&5
-echo "${ECHO_T}$ac_cv_linux_have_kmem_cache_t" >&6; }
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
- { echo "$as_me:$LINENO: checking whether kmem_cache_create takes a destructor argument" >&5
-echo $ECHO_N "checking whether kmem_cache_create takes a destructor argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kmem_cache_create_takes_dtor+set}" = set; then
+ { echo "$as_me:$LINENO: checking for current_kernel_time()" >&5
+echo $ECHO_N "checking for current_kernel_time()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_current_kernel_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/slab.h>
+#include <linux/time.h>
void conftest(void)
{
-kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
+struct timespec s = current_kernel_time();
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_current_kernel_time=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kmem_cache_create_takes_dtor=no
+ ac_cv_linux_have_current_kernel_time=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/slab.h>
+
+#include <linux/kernel.h>
+#include <linux/time.h>
int
main ()
{
-kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
+struct timespec s = current_kernel_time();
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ ac_cv_linux_have_current_kernel_time=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kmem_cache_create_takes_dtor=no
+ ac_cv_linux_have_current_kernel_time=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_create_takes_dtor" >&5
-echo "${ECHO_T}$ac_cv_linux_kmem_cache_create_takes_dtor" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_current_kernel_time" >&5
+echo "${ECHO_T}$ac_cv_linux_have_current_kernel_time" >&6; }
- { echo "$as_me:$LINENO: checking for linux/config.h existance" >&5
-echo $ECHO_N "checking for linux/config.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_config_h_exists+set}" = set; then
+ { echo "$as_me:$LINENO: checking for new kmem_cache init function parameters" >&5
+echo $ECHO_N "checking for new kmem_cache init function parameters... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kmem_cache_init+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/config.h>
+#include <linux/slab.h>
void conftest(void)
{
+extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+ unsigned long,
+ void (*)(struct kmem_cache *, void *));
return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_config_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_init=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_config_h_exists=no
+ ac_cv_linux_kmem_cache_init=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/config.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
+extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+ unsigned long,
+ void (*)(struct kmem_cache *, void *));
return;
;
return 0;
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_config_h_exists=yes
+ ac_cv_linux_kmem_cache_init=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_config_h_exists=no
+ ac_cv_linux_kmem_cache_init=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_config_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_config_h_exists" >&6; }
- if test "x$ac_cv_linux_config_h_exists" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CONFIG_H_EXISTS 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_init" >&5
+echo "${ECHO_T}$ac_cv_linux_kmem_cache_init" >&6; }
- { echo "$as_me:$LINENO: checking for linux/completion.h existance" >&5
-echo $ECHO_N "checking for linux/completion.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_completion_h_exists+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether kmem_cache_t exists" >&5
+echo $ECHO_N "checking whether kmem_cache_t exists... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_kmem_cache_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/version.h>
-#include <linux/completion.h>
+#include <linux/slab.h>
void conftest(void)
{
-struct completion _c;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
-lose
-#endif
+kmem_cache_t *k;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_completion_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_kmem_cache_t=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_completion_h_exists=no
+ ac_cv_linux_have_kmem_cache_t=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/version.h>
-#include <linux/completion.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
-struct completion _c;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
-lose
-#endif
+kmem_cache_t *k;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_completion_h_exists=yes
+ ac_cv_linux_have_kmem_cache_t=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_completion_h_exists=no
+ ac_cv_linux_have_kmem_cache_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_completion_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_completion_h_exists" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_kmem_cache_t" >&5
+echo "${ECHO_T}$ac_cv_linux_have_kmem_cache_t" >&6; }
- { echo "$as_me:$LINENO: checking for defined for_each_process" >&5
-echo $ECHO_N "checking for defined for_each_process... $ECHO_C" >&6; }
- if test "${ac_cv_linux_defines_for_each_process+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether kmem_cache_create takes a destructor argument" >&5
+echo $ECHO_N "checking whether kmem_cache_create takes a destructor argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kmem_cache_create_takes_dtor+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/slab.h>
void conftest(void)
{
-#ifndef for_each_process
-#error for_each_process not defined
-#endif
+kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_defines_for_each_process=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_takes_dtor=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_defines_for_each_process=no
+ ac_cv_linux_kmem_cache_create_takes_dtor=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
-#ifndef for_each_process
-#error for_each_process not defined
-#endif
+kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_defines_for_each_process=yes
+ ac_cv_linux_kmem_cache_create_takes_dtor=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_defines_for_each_process=no
+ ac_cv_linux_kmem_cache_create_takes_dtor=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_for_each_process" >&5
-echo "${ECHO_T}$ac_cv_linux_defines_for_each_process" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_create_takes_dtor" >&5
+echo "${ECHO_T}$ac_cv_linux_kmem_cache_create_takes_dtor" >&6; }
- { echo "$as_me:$LINENO: checking for defined prev_task" >&5
-echo $ECHO_N "checking for defined prev_task... $ECHO_C" >&6; }
- if test "${ac_cv_linux_defines_prev_task+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux/config.h existance" >&5
+echo $ECHO_N "checking for linux/config.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_config_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/config.h>
void conftest(void)
{
-#ifndef prev_task
-#error prev_task not defined
-#endif
+return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_defines_prev_task=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_config_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_defines_prev_task=no
+ ac_cv_linux_config_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/config.h>
int
main ()
{
-#ifndef prev_task
-#error prev_task not defined
-#endif
+return;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_defines_prev_task=yes
+ ac_cv_linux_config_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_defines_prev_task=no
+ ac_cv_linux_config_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_prev_task" >&5
-echo "${ECHO_T}$ac_cv_linux_defines_prev_task" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_config_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_config_h_exists" >&6; }
+ if test "x$ac_cv_linux_config_h_exists" = "xyes"; then
- { echo "$as_me:$LINENO: checking for alloc_inode in struct super_operations" >&5
-echo $ECHO_N "checking for alloc_inode in struct super_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_super_has_alloc_inode+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define CONFIG_H_EXISTS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux/completion.h existance" >&5
+echo $ECHO_N "checking for linux/completion.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_completion_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/version.h>
+#include <linux/completion.h>
void conftest(void)
{
-struct super_operations _super;
-printk("%p\n", _super.alloc_inode);
+struct completion _c;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
+lose
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_super_has_alloc_inode=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_completion_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_super_has_alloc_inode=no
+ ac_cv_linux_completion_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/version.h>
+#include <linux/completion.h>
int
main ()
{
-struct super_operations _super;
-printk("%p\n", _super.alloc_inode);
+struct completion _c;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
+lose
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_super_has_alloc_inode=yes
+ ac_cv_linux_completion_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_super_has_alloc_inode=no
+ ac_cv_linux_completion_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_super_has_alloc_inode" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_super_has_alloc_inode" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_completion_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_completion_h_exists" >&6; }
- { echo "$as_me:$LINENO: checking for page_lock in struct address_space" >&5
-echo $ECHO_N "checking for page_lock in struct address_space... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_address_space_has_page_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for defined for_each_process" >&5
+echo $ECHO_N "checking for defined for_each_process... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_defines_for_each_process+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-struct address_space _a_s;
-printk("%x\n", _a_s.page_lock);
+#ifndef for_each_process
+#error for_each_process not defined
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_address_space_has_page_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_defines_for_each_process=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_address_space_has_page_lock=no
+ ac_cv_linux_defines_for_each_process=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-struct address_space _a_s;
-printk("%x\n", _a_s.page_lock);
+#ifndef for_each_process
+#error for_each_process not defined
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_address_space_has_page_lock=yes
+ ac_cv_linux_defines_for_each_process=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_address_space_has_page_lock=no
+ ac_cv_linux_defines_for_each_process=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_page_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_page_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_for_each_process" >&5
+echo "${ECHO_T}$ac_cv_linux_defines_for_each_process" >&6; }
- { echo "$as_me:$LINENO: checking for gfp_mask in struct address_space" >&5
-echo $ECHO_N "checking for gfp_mask in struct address_space... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_address_space_has_gfp_mask+set}" = set; then
+ { echo "$as_me:$LINENO: checking for defined prev_task" >&5
+echo $ECHO_N "checking for defined prev_task... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_defines_prev_task+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-struct address_space _a;
-printk("%d\n", _a.gfp_mask);
+#ifndef prev_task
+#error prev_task not defined
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_defines_prev_task=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
+ ac_cv_linux_defines_prev_task=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-struct address_space _a;
-printk("%d\n", _a.gfp_mask);
+#ifndef prev_task
+#error prev_task not defined
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
+ ac_cv_linux_defines_prev_task=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
+ ac_cv_linux_defines_prev_task=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_prev_task" >&5
+echo "${ECHO_T}$ac_cv_linux_defines_prev_task" >&6; }
- { echo "$as_me:$LINENO: checking for i_alloc_sem in struct inode" >&5
-echo $ECHO_N "checking for i_alloc_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_alloc_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for alloc_inode in struct super_operations" >&5
+echo $ECHO_N "checking for alloc_inode in struct super_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_super_has_alloc_inode+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _i;
-printk("%x\n", _i.i_alloc_sem);
+struct super_operations _super;
+printk("%p\n", _super.alloc_inode);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_super_has_alloc_inode=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
+ ac_cv_linux_fs_struct_super_has_alloc_inode=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _i;
-printk("%x\n", _i.i_alloc_sem);
+struct super_operations _super;
+printk("%p\n", _super.alloc_inode);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
+ ac_cv_linux_fs_struct_super_has_alloc_inode=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
+ ac_cv_linux_fs_struct_super_has_alloc_inode=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_super_has_alloc_inode" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_super_has_alloc_inode" >&6; }
- { echo "$as_me:$LINENO: checking for i_blkbits in struct inode" >&5
-echo $ECHO_N "checking for i_blkbits in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_blkbits+set}" = set; then
+ { echo "$as_me:$LINENO: checking for page_lock in struct address_space" >&5
+echo $ECHO_N "checking for page_lock in struct address_space... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_address_space_has_page_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_blkbits);
+struct address_space _a_s;
+printk("%x\n", _a_s.page_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_address_space_has_page_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_blkbits=no
+ ac_cv_linux_fs_struct_address_space_has_page_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_blkbits);
+struct address_space _a_s;
+printk("%x\n", _a_s.page_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
+ ac_cv_linux_fs_struct_address_space_has_page_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_blkbits=no
+ ac_cv_linux_fs_struct_address_space_has_page_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blkbits" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blkbits" >&6; }
- if test "x$ac_cv_linux_fs_struct_inode_has_i_blkbits" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STRUCT_INODE_HAS_I_BLKBITS 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_page_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_page_lock" >&6; }
- { echo "$as_me:$LINENO: checking for i_blksize in struct inode" >&5
-echo $ECHO_N "checking for i_blksize in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_blksize+set}" = set; then
+ { echo "$as_me:$LINENO: checking for gfp_mask in struct address_space" >&5
+echo $ECHO_N "checking for gfp_mask in struct address_space... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_address_space_has_gfp_mask+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_blksize);
+struct address_space _a;
+printk("%d\n", _a.gfp_mask);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_blksize=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_blksize=no
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_blksize);
+struct address_space _a;
+printk("%d\n", _a.gfp_mask);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_blksize=yes
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_blksize=no
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blksize" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blksize" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&6; }
- { echo "$as_me:$LINENO: checking for i_truncate_sem in struct inode" >&5
-echo $ECHO_N "checking for i_truncate_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_truncate_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_alloc_sem in struct inode" >&5
+echo $ECHO_N "checking for i_alloc_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_alloc_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _i;
-printk("%x\n", _i.i_truncate_sem);
+printk("%x\n", _i.i_alloc_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _i;
-printk("%x\n", _i.i_truncate_sem);
+printk("%x\n", _i.i_alloc_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&6; }
- { echo "$as_me:$LINENO: checking for i_dirty_data_buffers in struct inode" >&5
-echo $ECHO_N "checking for i_dirty_data_buffers in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_blkbits in struct inode" >&5
+echo $ECHO_N "checking for i_blkbits in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_blkbits+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_dirty_data_buffers);
+printk("%d\n", _inode.i_blkbits);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_dirty_data_buffers);
+printk("%d\n", _inode.i_blkbits);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blkbits" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blkbits" >&6; }
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_blkbits" = "xyes"; then
- { echo "$as_me:$LINENO: checking for i_devices in struct inode" >&5
-echo $ECHO_N "checking for i_devices in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_devices+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_INODE_HAS_I_BLKBITS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for i_blksize in struct inode" >&5
+echo $ECHO_N "checking for i_blksize in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_blksize+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_devices);
+printk("%d\n", _inode.i_blksize);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_devices=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_blksize=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_devices=no
+ ac_cv_linux_fs_struct_inode_has_i_blksize=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_devices);
+printk("%d\n", _inode.i_blksize);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_devices=yes
+ ac_cv_linux_fs_struct_inode_has_i_blksize=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_devices=no
+ ac_cv_linux_fs_struct_inode_has_i_blksize=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_devices" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_devices" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blksize" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blksize" >&6; }
- { echo "$as_me:$LINENO: checking for i_mmap_shared in struct inode" >&5
-echo $ECHO_N "checking for i_mmap_shared in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_mmap_shared+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_truncate_sem in struct inode" >&5
+echo $ECHO_N "checking for i_truncate_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_truncate_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_mmap_shared);
+struct inode _i;
+printk("%x\n", _i.i_truncate_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_mmap_shared);
+struct inode _i;
+printk("%x\n", _i.i_truncate_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&6; }
- { echo "$as_me:$LINENO: checking for i_mutex in struct inode" >&5
-echo $ECHO_N "checking for i_mutex in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_mutex+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_dirty_data_buffers in struct inode" >&5
+echo $ECHO_N "checking for i_dirty_data_buffers in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_mutex);
+printk("%d\n", _inode.i_dirty_data_buffers);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_mutex=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_mutex=no
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_mutex);
+printk("%d\n", _inode.i_dirty_data_buffers);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_mutex=yes
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_mutex=no
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mutex" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mutex" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&6; }
- { echo "$as_me:$LINENO: checking for i_sb_list in struct inode" >&5
-echo $ECHO_N "checking for i_sb_list in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_sb_list+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_devices in struct inode" >&5
+echo $ECHO_N "checking for i_devices in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_devices+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_sb_list);
+printk("%d\n", _inode.i_devices);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_devices=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_sb_list=no
+ ac_cv_linux_fs_struct_inode_has_i_devices=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_sb_list);
+printk("%d\n", _inode.i_devices);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
+ ac_cv_linux_fs_struct_inode_has_i_devices=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_sb_list=no
+ ac_cv_linux_fs_struct_inode_has_i_devices=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_sb_list" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_sb_list" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_devices" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_devices" >&6; }
- { echo "$as_me:$LINENO: checking for i_security in struct inode" >&5
-echo $ECHO_N "checking for i_security in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_security+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_mmap_shared in struct inode" >&5
+echo $ECHO_N "checking for i_mmap_shared in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_mmap_shared+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_security);
+printk("%d\n", _inode.i_mmap_shared);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_security=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_security=no
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_security);
+printk("%d\n", _inode.i_mmap_shared);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_security=yes
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_security=no
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_security" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_security" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&6; }
- { echo "$as_me:$LINENO: checking for inotify_lock in struct inode" >&5
-echo $ECHO_N "checking for inotify_lock in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_inotify_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_mutex in struct inode" >&5
+echo $ECHO_N "checking for i_mutex in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_mutex+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.inotify_lock);
+printk("%d\n", _inode.i_mutex);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_mutex=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_inotify_lock=no
+ ac_cv_linux_fs_struct_inode_has_i_mutex=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.inotify_lock);
+printk("%d\n", _inode.i_mutex);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
+ ac_cv_linux_fs_struct_inode_has_i_mutex=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_inotify_lock=no
+ ac_cv_linux_fs_struct_inode_has_i_mutex=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mutex" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mutex" >&6; }
- { echo "$as_me:$LINENO: checking for inotify_sem in struct inode" >&5
-echo $ECHO_N "checking for inotify_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_inotify_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_sb_list in struct inode" >&5
+echo $ECHO_N "checking for i_sb_list in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_sb_list+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%x\n", _inode.inotify_sem);
+printk("%d\n", _inode.i_sb_list);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_inotify_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%x\n", _inode.inotify_sem);
+printk("%d\n", _inode.i_sb_list);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_inotify_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_sb_list" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_sb_list" >&6; }
- { echo "$as_me:$LINENO: checking for inode_setattr return type" >&5
-echo $ECHO_N "checking for inode_setattr return type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_inode_setattr_returns_int+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_security in struct inode" >&5
+echo $ECHO_N "checking for i_security in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_security+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-struct iattr _iattr;
-int i;
-i = inode_setattr(&_inode, &_iattr);
+printk("%d\n", _inode.i_security);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_inode_setattr_returns_int=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_security=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_inode_setattr_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_i_security=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-struct iattr _iattr;
-int i;
-i = inode_setattr(&_inode, &_iattr);
+printk("%d\n", _inode.i_security);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_inode_setattr_returns_int=yes
+ ac_cv_linux_fs_struct_inode_has_i_security=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_inode_setattr_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_i_security=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_inode_setattr_returns_int" >&5
-echo "${ECHO_T}$ac_cv_linux_func_inode_setattr_returns_int" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_security" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_security" >&6; }
- { echo "$as_me:$LINENO: checking for write_inode return type" >&5
-echo $ECHO_N "checking for write_inode return type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_write_inode_returns_int+set}" = set; then
+ { echo "$as_me:$LINENO: checking for inotify_lock in struct inode" >&5
+echo $ECHO_N "checking for inotify_lock in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_inotify_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-struct super_operations _sops;
-int i;
-i = _sops.write_inode(&_inode, 0);
+printk("%d\n", _inode.inotify_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_write_inode_returns_int=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_write_inode_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-struct super_operations _sops;
-int i;
-i = _sops.write_inode(&_inode, 0);
+printk("%d\n", _inode.inotify_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_write_inode_returns_int=yes
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_write_inode_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_write_inode_returns_int" >&5
-echo "${ECHO_T}$ac_cv_linux_func_write_inode_returns_int" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_lock" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.create takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.create takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_create_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking for inotify_sem in struct inode" >&5
+echo $ECHO_N "checking for inotify_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_inotify_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
+printk("%x\n", _inode.inotify_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_create_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_create_takes_nameidata=no
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
+printk("%x\n", _inode.inotify_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_create_takes_nameidata=yes
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_create_takes_nameidata=no
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_create_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_create_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_sem" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.lookup takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.lookup takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_lookup_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking for inode_setattr return type" >&5
+echo $ECHO_N "checking for inode_setattr return type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_inode_setattr_returns_int+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
+struct iattr _iattr;
+int i;
+i = inode_setattr(&_inode, &_iattr);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr_returns_int=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_lookup_takes_nameidata=no
+ ac_cv_linux_func_inode_setattr_returns_int=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
+struct iattr _iattr;
+int i;
+i = inode_setattr(&_inode, &_iattr);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ ac_cv_linux_func_inode_setattr_returns_int=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_lookup_takes_nameidata=no
+ ac_cv_linux_func_inode_setattr_returns_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_lookup_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_lookup_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_inode_setattr_returns_int" >&5
+echo "${ECHO_T}$ac_cv_linux_func_inode_setattr_returns_int" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.permission takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.permission takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_permission_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking for write_inode return type" >&5
+echo $ECHO_N "checking for write_inode return type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_write_inode_returns_int+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
+struct super_operations _sops;
+int i;
+i = _sops.write_inode(&_inode, 0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_permission_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_write_inode_returns_int=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_permission_takes_nameidata=no
+ ac_cv_linux_func_write_inode_returns_int=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
+struct super_operations _sops;
+int i;
+i = _sops.write_inode(&_inode, 0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_permission_takes_nameidata=yes
+ ac_cv_linux_func_write_inode_returns_int=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_permission_takes_nameidata=no
+ ac_cv_linux_func_write_inode_returns_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_permission_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_permission_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_write_inode_returns_int" >&5
+echo "${ECHO_T}$ac_cv_linux_func_write_inode_returns_int" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.put_link takes an opaque cookie" >&5
-echo $ECHO_N "checking whether inode_operations.put_link takes an opaque cookie... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_put_link_takes_cookie+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.create takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.create takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_create_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-void *cookie;
-(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
+(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_put_link_takes_cookie=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_put_link_takes_cookie=no
+ ac_cv_linux_func_i_create_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/namei.h>
int
struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-void *cookie;
-(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
+(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_put_link_takes_cookie=yes
+ ac_cv_linux_func_i_create_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_put_link_takes_cookie=no
+ ac_cv_linux_func_i_create_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_put_link_takes_cookie" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_put_link_takes_cookie" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_create_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_create_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether dentry_operations.d_revalidate takes a nameidata" >&5
-echo $ECHO_N "checking whether dentry_operations.d_revalidate takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_d_revalidate_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.lookup takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.lookup takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_lookup_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
+struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
+(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_lookup_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_d_revalidate_takes_nameidata=no
+ ac_cv_linux_func_i_lookup_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/namei.h>
int
main ()
{
+struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
+(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ ac_cv_linux_func_i_lookup_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_d_revalidate_takes_nameidata=no
+ ac_cv_linux_func_i_lookup_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_d_revalidate_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_d_revalidate_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_lookup_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_lookup_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether file_operations.flush takes a fl_owner_t" >&5
-echo $ECHO_N "checking whether file_operations.flush takes a fl_owner_t... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_f_flush_takes_fl_owner_t+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.permission takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.permission takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_permission_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct file _file;
-fl_owner_t id;
-(void)_inode.i_fop->flush(&_file, &id);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_f_flush_takes_fl_owner_t=no
+ ac_cv_linux_func_i_permission_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
+#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct file _file;
-fl_owner_t id;
-(void)_inode.i_fop->flush(&_file, &id);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ ac_cv_linux_func_i_permission_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_f_flush_takes_fl_owner_t=no
+ ac_cv_linux_func_i_permission_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_f_flush_takes_fl_owner_t" >&5
-echo "${ECHO_T}$ac_cv_linux_func_f_flush_takes_fl_owner_t" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_permission_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_permission_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether address_space_operations.writepage takes a writeback_control" >&5
-echo $ECHO_N "checking whether address_space_operations.writepage takes a writeback_control... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_a_writepage_takes_writeback_control+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.put_link takes an opaque cookie" >&5
+echo $ECHO_N "checking whether inode_operations.put_link takes an opaque cookie... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_put_link_takes_cookie+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/writeback.h>
+#include <linux/namei.h>
void conftest(void)
{
-struct address_space_operations _aops;
-struct page _page;
-struct writeback_control _writeback_control;
-(void)_aops.writepage(&_page, &_writeback_control);
+struct inode _inode;
+struct dentry _dentry;
+struct nameidata _nameidata;
+void *cookie;
+(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_put_link_takes_cookie=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_a_writepage_takes_writeback_control=no
+ ac_cv_linux_func_i_put_link_takes_cookie=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/writeback.h>
+#include <linux/namei.h>
int
main ()
{
-struct address_space_operations _aops;
-struct page _page;
-struct writeback_control _writeback_control;
-(void)_aops.writepage(&_page, &_writeback_control);
+struct inode _inode;
+struct dentry _dentry;
+struct nameidata _nameidata;
+void *cookie;
+(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ ac_cv_linux_func_i_put_link_takes_cookie=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_a_writepage_takes_writeback_control=no
+ ac_cv_linux_func_i_put_link_takes_cookie=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_a_writepage_takes_writeback_control" >&5
-echo "${ECHO_T}$ac_cv_linux_func_a_writepage_takes_writeback_control" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_put_link_takes_cookie" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_put_link_takes_cookie" >&6; }
- { echo "$as_me:$LINENO: checking for flock in struct file_operations" >&5
-echo $ECHO_N "checking for flock in struct file_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_fop_has_flock+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether dentry_operations.d_revalidate takes a nameidata" >&5
+echo $ECHO_N "checking whether dentry_operations.d_revalidate takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_d_revalidate_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/namei.h>
void conftest(void)
{
-struct file_operations _fop;
-_fop.flock(NULL, 0, NULL);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_fop_has_flock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_fop_has_flock=no
+ ac_cv_linux_func_d_revalidate_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
+#include <linux/namei.h>
int
main ()
{
-struct file_operations _fop;
-_fop.flock(NULL, 0, NULL);
- ;
- return 0;
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
+ ;
+ return 0;
}
_ACEOF
rm -f conftest.$ac_objext
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_fop_has_flock=yes
+ ac_cv_linux_func_d_revalidate_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_fop_has_flock=no
+ ac_cv_linux_func_d_revalidate_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_flock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_flock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_d_revalidate_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_d_revalidate_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking for sendfile in struct file_operations" >&5
-echo $ECHO_N "checking for sendfile in struct file_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_fop_has_sendfile+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether file_operations.flush takes a fl_owner_t" >&5
+echo $ECHO_N "checking whether file_operations.flush takes a fl_owner_t... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_f_flush_takes_fl_owner_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct file_operations _fop;
-_fop.sendfile(NULL, NULL, 0, 0, NULL);
+struct inode _inode;
+struct file _file;
+fl_owner_t id;
+(void)_inode.i_fop->flush(&_file, &id);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_fop_has_sendfile=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_fop_has_sendfile=no
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct file_operations _fop;
-_fop.sendfile(NULL, NULL, 0, 0, NULL);
+struct inode _inode;
+struct file _file;
+fl_owner_t id;
+(void)_inode.i_fop->flush(&_file, &id);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_fop_has_sendfile=yes
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_fop_has_sendfile=no
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_sendfile" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_sendfile" >&6; }
-
- { echo "$as_me:$LINENO: checking for linux/syscall.h in kernel" >&5
-echo $ECHO_N "checking for linux/syscall.h in kernel... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/syscall.h"; then
- ac_linux_syscall=yes
- { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
-echo "${ECHO_T}$ac_linux_syscall" >&6; }
- else
- ac_linux_syscall=no
- { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
-echo "${ECHO_T}$ac_linux_syscall" >&6; }
- fi
-
-
- { echo "$as_me:$LINENO: checking for linux/seq_file.h in kernel" >&5
-echo $ECHO_N "checking for linux/seq_file.h in kernel... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/seq_file.h"; then
- ac_linux_seq_file=yes
- { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
-echo "${ECHO_T}$ac_linux_seq_file" >&6; }
- else
- ac_linux_seq_file=no
- { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
-echo "${ECHO_T}$ac_linux_seq_file" >&6; }
- fi
-
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_f_flush_takes_fl_owner_t" >&5
+echo "${ECHO_T}$ac_cv_linux_func_f_flush_takes_fl_owner_t" >&6; }
- { echo "$as_me:$LINENO: checking for 3rd argument in posix_lock_file found in new kernels" >&5
-echo $ECHO_N "checking for 3rd argument in posix_lock_file found in new kernels... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_posix_lock_file_wait_arg+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether address_space_operations.writepage takes a writeback_control" >&5
+echo $ECHO_N "checking whether address_space_operations.writepage takes a writeback_control... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_a_writepage_takes_writeback_control+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/writeback.h>
void conftest(void)
{
-posix_lock_file(0,0,0);
+struct address_space_operations _aops;
+struct page _page;
+struct writeback_control _writeback_control;
+(void)_aops.writepage(&_page, &_writeback_control);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+ ac_cv_linux_func_a_writepage_takes_writeback_control=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/writeback.h>
int
main ()
{
-posix_lock_file(0,0,0);
+struct address_space_operations _aops;
+struct page _page;
+struct writeback_control _writeback_control;
+(void)_aops.writepage(&_page, &_writeback_control);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ ac_cv_linux_func_a_writepage_takes_writeback_control=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+ ac_cv_linux_func_a_writepage_takes_writeback_control=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_posix_lock_file_wait_arg" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_posix_lock_file_wait_arg" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_a_writepage_takes_writeback_control" >&5
+echo "${ECHO_T}$ac_cv_linux_func_a_writepage_takes_writeback_control" >&6; }
-{ echo "$as_me:$LINENO: checking for SELinux kernel" >&5
-echo $ECHO_N "checking for SELinux kernel... $ECHO_C" >&6; }
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
-if test "${ac_cv_linux_kernel_is_selinux+set}" = set; then
+ { echo "$as_me:$LINENO: checking for flock in struct file_operations" >&5
+echo $ECHO_N "checking for flock in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_flock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-cat >conftest.$ac_ext <<_ACEOF
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+struct file_operations _fop;
+_fop.flock(NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_flock=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_fs_struct_fop_has_flock=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/autoconf.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-#ifndef CONFIG_SECURITY_SELINUX
- #error not SELINUX
- #endif
+struct file_operations _fop;
+_fop.flock(NULL, 0, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_is_selinux=yes
+ ac_cv_linux_fs_struct_fop_has_flock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_is_selinux=no
+ ac_cv_linux_fs_struct_fop_has_flock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
fi
-{ echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_is_selinux" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_is_selinux" >&6; }
-CPPFLAGS="$save_CPPFLAGS"
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_flock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_flock" >&6; }
- { echo "$as_me:$LINENO: checking for 5th argument in sock_create found in some SELinux kernels" >&5
-echo $ECHO_N "checking for 5th argument in sock_create found in some SELinux kernels... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_sock_create_v+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sendfile in struct file_operations" >&5
+echo $ECHO_N "checking for sendfile in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_sendfile+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/net.h>
+#include <linux/fs.h>
void conftest(void)
{
-sock_create(0,0,0,0,0);
+struct file_operations _fop;
+_fop.sendfile(NULL, NULL, 0, 0, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_sock_create_v=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_sendfile=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_sock_create_v=no
+ ac_cv_linux_fs_struct_fop_has_sendfile=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/net.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-sock_create(0,0,0,0,0);
+struct file_operations _fop;
+_fop.sendfile(NULL, NULL, 0, 0, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_sock_create_v=yes
+ ac_cv_linux_fs_struct_fop_has_sendfile=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_sock_create_v=no
+ ac_cv_linux_fs_struct_fop_has_sendfile=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_sock_create_v" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_sock_create_v" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_sendfile" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_sendfile" >&6; }
- { echo "$as_me:$LINENO: checking for page_follow_link_light vs page_follow_link" >&5
-echo $ECHO_N "checking for page_follow_link_light vs page_follow_link... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_page_follow_link+set}" = set; then
+ { echo "$as_me:$LINENO: checking for splice_write and splice_read in struct file_operations" >&5
+echo $ECHO_N "checking for splice_write and splice_read in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_splice+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-page_follow_link(0,0);
+struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_page_follow_link=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_splice=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_page_follow_link=no
+ ac_cv_linux_fs_struct_fop_has_splice=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-page_follow_link(0,0);
+struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_page_follow_link=yes
+ ac_cv_linux_fs_struct_fop_has_splice=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_page_follow_link=no
+ ac_cv_linux_fs_struct_fop_has_splice=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_page_follow_link" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_page_follow_link" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_splice" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_splice" >&6; }
-RHCONFIG_SP=""
-RHCONFIG_MP=""
-if test "x$enable_redhat_buildsys" = "xyes"; then
- { echo "$as_me:$LINENO: WARNING: Configured to build from a Red Hat SPEC file" >&5
-echo "$as_me: WARNING: Configured to build from a Red Hat SPEC file" >&2;}
-else
- { echo "$as_me:$LINENO: checking for redhat kernel configuration" >&5
-echo $ECHO_N "checking for redhat kernel configuration... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/rhconfig.h"; then
- ac_linux_rhconfig=yes
- RHCONFIG_SP="-D__BOOT_KERNEL_UP=1 -D__BOOT_KERNEL_SMP=0"
- RHCONFIG_MP="-D__BOOT_KERNEL_UP=0 -D__BOOT_KERNEL_SMP=1"
- { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
-echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
- if test ! -f "/boot/kernel.h"; then
- { echo "$as_me:$LINENO: WARNING: /boot/kernel.h does not exist. build may fail" >&5
-echo "$as_me: WARNING: /boot/kernel.h does not exist. build may fail" >&2;}
- fi
+ { echo "$as_me:$LINENO: checking for linux/syscall.h in kernel" >&5
+echo $ECHO_N "checking for linux/syscall.h in kernel... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/syscall.h"; then
+ ac_linux_syscall=yes
+ { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
+echo "${ECHO_T}$ac_linux_syscall" >&6; }
else
- ac_linux_rhconfig=no
- { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
-echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
+ ac_linux_syscall=no
+ { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
+echo "${ECHO_T}$ac_linux_syscall" >&6; }
fi
-fi
+ { echo "$as_me:$LINENO: checking for linux/seq_file.h in kernel" >&5
+echo $ECHO_N "checking for linux/seq_file.h in kernel... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/seq_file.h"; then
+ ac_linux_seq_file=yes
+ { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
+echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+ else
+ ac_linux_seq_file=no
+ { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
+echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+ fi
- { echo "$as_me:$LINENO: checking for recalc_sigpending arg type" >&5
-echo $ECHO_N "checking for recalc_sigpending arg type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_recalc_sigpending_takes_void+set}" = set; then
+ { echo "$as_me:$LINENO: checking for 3rd argument in posix_lock_file found in new kernels" >&5
+echo $ECHO_N "checking for 3rd argument in posix_lock_file found in new kernels... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_posix_lock_file_wait_arg+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/fs.h>
void conftest(void)
{
-recalc_sigpending();
+posix_lock_file(0,0,0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_recalc_sigpending_takes_void=no
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-recalc_sigpending();
+posix_lock_file(0,0,0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_recalc_sigpending_takes_void=no
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_recalc_sigpending_takes_void" >&5
-echo "${ECHO_T}$ac_cv_linux_func_recalc_sigpending_takes_void" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_posix_lock_file_wait_arg" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_posix_lock_file_wait_arg" >&6; }
- { echo "$as_me:$LINENO: checking for parent in struct task_struct" >&5
-echo $ECHO_N "checking for parent in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_parent+set}" = set; then
+{ echo "$as_me:$LINENO: checking for SELinux kernel" >&5
+echo $ECHO_N "checking for SELinux kernel... $ECHO_C" >&6; }
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
+if test "${ac_cv_linux_kernel_is_selinux+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-
- if test $AFS_SYSKVERS -ge 26 ; then
- rm -fr conftest.dir
- if mkdir conftest.dir &&
- cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
-
-obj-m += conftest.o
-_ACEOF
- cat >conftest.dir/conftest.c <<\_ACEOF &&
-/* confdefs.h */
-_ACEOF
- cat confdefs.h >>conftest.dir/conftest.c &&
- cat >>conftest.dir/conftest.c <<\_ACEOF &&
-/* end confdefs.h */
-#include <linux/module.h>
-#include <linux/sched.h>
-
-void conftest(void)
-{
-struct task_struct _tsk;
-printk("%d\n", _tsk.parent);
-}
-
-MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
-_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_parent=yes
- else
- sed '/^ *+/d' conftest.err >&5
- echo "$as_me: failed using Makefile:" >&5
- sed 's/^/| /' conftest.dir/Makefile >&5
- echo "$as_me: and program was:" >&5
- sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_parent=no
- fi; rm -fr conftest.err conftest.dir
- else
-
- ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+#include <linux/autoconf.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.parent);
+#ifndef CONFIG_SECURITY_SELINUX
+ #error not SELINUX
+ #endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_parent=yes
+ ac_cv_linux_kernel_is_selinux=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_parent=no
+ ac_cv_linux_kernel_is_selinux=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$ac_save_CPPFLAGS"
- fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_parent" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_parent" >&6; }
+{ echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_is_selinux" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_is_selinux" >&6; }
+CPPFLAGS="$save_CPPFLAGS"
- { echo "$as_me:$LINENO: checking for real_parent in struct task_struct" >&5
-echo $ECHO_N "checking for real_parent in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_real_parent+set}" = set; then
+ { echo "$as_me:$LINENO: checking for 5th argument in sock_create found in some SELinux kernels" >&5
+echo $ECHO_N "checking for 5th argument in sock_create found in some SELinux kernels... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_sock_create_v+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/net.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.real_parent);
+sock_create(0,0,0,0,0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_sock_create_v=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_real_parent=no
+ ac_cv_linux_kernel_sock_create_v=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/net.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.real_parent);
+sock_create(0,0,0,0,0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
+ ac_cv_linux_kernel_sock_create_v=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_real_parent=no
+ ac_cv_linux_kernel_sock_create_v=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_real_parent" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_real_parent" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_sock_create_v" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_sock_create_v" >&6; }
- { echo "$as_me:$LINENO: checking for sig in struct task_struct" >&5
-echo $ECHO_N "checking for sig in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sig+set}" = set; then
+ { echo "$as_me:$LINENO: checking for page_follow_link_light vs page_follow_link" >&5
+echo $ECHO_N "checking for page_follow_link_light vs page_follow_link... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_page_follow_link+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/fs.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sig);
+page_follow_link(0,0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sig=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_page_follow_link=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sig=no
+ ac_cv_linux_kernel_page_follow_link=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sig);
+page_follow_link(0,0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sig=yes
+ ac_cv_linux_kernel_page_follow_link=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sig=no
+ ac_cv_linux_kernel_page_follow_link=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
+ CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sig" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sig" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_page_follow_link" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_page_follow_link" >&6; }
- { echo "$as_me:$LINENO: checking for sighand in struct task_struct" >&5
-echo $ECHO_N "checking for sighand in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sighand+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux/key-type.h existance" >&5
+echo $ECHO_N "checking for linux/key-type.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_key_type_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/key-type.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sighand);
+return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sighand=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_key_type_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sighand=no
+ ac_cv_linux_key_type_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/key-type.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sighand);
+return;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sighand=yes
+ ac_cv_linux_key_type_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sighand=no
+ ac_cv_linux_key_type_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sighand" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sighand" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_key_type_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_key_type_h_exists" >&6; }
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes"; then
- { echo "$as_me:$LINENO: checking for sigmask_lock in struct task_struct" >&5
-echo $ECHO_N "checking for sigmask_lock in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sigmask_lock+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define KEY_TYPE_H_EXISTS 1
+_ACEOF
+
+ fi
+
+RHCONFIG_SP=""
+RHCONFIG_MP=""
+if test "x$enable_redhat_buildsys" = "xyes"; then
+ { echo "$as_me:$LINENO: WARNING: Configured to build from a Red Hat SPEC file" >&5
+echo "$as_me: WARNING: Configured to build from a Red Hat SPEC file" >&2;}
+else
+ { echo "$as_me:$LINENO: checking for redhat kernel configuration" >&5
+echo $ECHO_N "checking for redhat kernel configuration... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/rhconfig.h"; then
+ ac_linux_rhconfig=yes
+ RHCONFIG_SP="-D__BOOT_KERNEL_UP=1 -D__BOOT_KERNEL_SMP=0"
+ RHCONFIG_MP="-D__BOOT_KERNEL_UP=0 -D__BOOT_KERNEL_SMP=1"
+ { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
+echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
+ if test ! -f "/boot/kernel.h"; then
+ { echo "$as_me:$LINENO: WARNING: /boot/kernel.h does not exist. build may fail" >&5
+echo "$as_me: WARNING: /boot/kernel.h does not exist. build may fail" >&2;}
+ fi
+ else
+ ac_linux_rhconfig=no
+ { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
+echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
+ fi
+fi
+
+
+
+
+ { echo "$as_me:$LINENO: checking for recalc_sigpending arg type" >&5
+echo $ECHO_N "checking for recalc_sigpending arg type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_recalc_sigpending_takes_void+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sigmask_lock);
+recalc_sigpending();
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_recalc_sigpending_takes_void=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
+ ac_cv_linux_func_recalc_sigpending_takes_void=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.sigmask_lock);
+recalc_sigpending();
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
+ ac_cv_linux_func_recalc_sigpending_takes_void=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
+ ac_cv_linux_func_recalc_sigpending_takes_void=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_recalc_sigpending_takes_void" >&5
+echo "${ECHO_T}$ac_cv_linux_func_recalc_sigpending_takes_void" >&6; }
- { echo "$as_me:$LINENO: checking for rlim in struct task_struct" >&5
-echo $ECHO_N "checking for rlim in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_rlim+set}" = set; then
+ { echo "$as_me:$LINENO: checking for parent in struct task_struct" >&5
+echo $ECHO_N "checking for parent in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_parent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.rlim);
+printk("%d\n", _tsk.parent);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_rlim=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_parent=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_parent=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.rlim);
+printk("%d\n", _tsk.parent);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_rlim=yes
+ ac_cv_linux_sched_struct_task_struct_has_parent=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_parent=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_rlim" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_rlim" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_parent" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_parent" >&6; }
- { echo "$as_me:$LINENO: checking for signal->rlim in struct task_struct" >&5
-echo $ECHO_N "checking for signal->rlim in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_signal_rlim+set}" = set; then
+ { echo "$as_me:$LINENO: checking for real_parent in struct task_struct" >&5
+echo $ECHO_N "checking for real_parent in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_real_parent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.signal->rlim);
+printk("%d\n", _tsk.real_parent);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.signal->rlim);
+printk("%d\n", _tsk.real_parent);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_real_parent" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_real_parent" >&6; }
- { echo "$as_me:$LINENO: checking for exit_state in struct task_struct" >&5
-echo $ECHO_N "checking for exit_state in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_exit_state+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sig in struct task_struct" >&5
+echo $ECHO_N "checking for sig in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sig+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.exit_state);
+printk("%d\n", _tsk.sig);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sig=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_exit_state=no
+ ac_cv_linux_sched_struct_task_struct_has_sig=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.exit_state);
+printk("%d\n", _tsk.sig);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
+ ac_cv_linux_sched_struct_task_struct_has_sig=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_exit_state=no
+ ac_cv_linux_sched_struct_task_struct_has_sig=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_exit_state" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_exit_state" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sig" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sig" >&6; }
- { echo "$as_me:$LINENO: checking for tgid in struct task_struct" >&5
-echo $ECHO_N "checking for tgid in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_tgid+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sighand in struct task_struct" >&5
+echo $ECHO_N "checking for sighand in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sighand+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.tgid);
+printk("%d\n", _tsk.sighand);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_tgid=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sighand=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_tgid=no
+ ac_cv_linux_sched_struct_task_struct_has_sighand=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.tgid);
+printk("%d\n", _tsk.sighand);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_tgid=yes
+ ac_cv_linux_sched_struct_task_struct_has_sighand=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_tgid=no
+ ac_cv_linux_sched_struct_task_struct_has_sighand=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_tgid" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_tgid" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sighand" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sighand" >&6; }
- { echo "$as_me:$LINENO: checking for todo in struct task_struct" >&5
-echo $ECHO_N "checking for todo in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_todo+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sigmask_lock in struct task_struct" >&5
+echo $ECHO_N "checking for sigmask_lock in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sigmask_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.todo);
+printk("%d\n", _tsk.sigmask_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_todo=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_todo=no
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.todo);
+printk("%d\n", _tsk.sigmask_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_todo=yes
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_todo=no
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_todo" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_todo" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&6; }
- { echo "$as_me:$LINENO: checking for thread_info in struct task_struct" >&5
-echo $ECHO_N "checking for thread_info in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_thread_info+set}" = set; then
+ { echo "$as_me:$LINENO: checking for rlim in struct task_struct" >&5
+echo $ECHO_N "checking for rlim in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_rlim+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.thread_info);
+printk("%d\n", _tsk.rlim);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_rlim=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_thread_info=no
+ ac_cv_linux_sched_struct_task_struct_has_rlim=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.thread_info);
+printk("%d\n", _tsk.rlim);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
+ ac_cv_linux_sched_struct_task_struct_has_rlim=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_thread_info=no
+ ac_cv_linux_sched_struct_task_struct_has_rlim=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_thread_info" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_thread_info" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_rlim" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_rlim" >&6; }
- { echo "$as_me:$LINENO: checking for exported tasklist_lock" >&5
-echo $ECHO_N "checking for exported tasklist_lock... $ECHO_C" >&6; }
- if test "${ac_cv_linux_exports_tasklist_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for signal->rlim in struct task_struct" >&5
+echo $ECHO_N "checking for signal->rlim in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_signal_rlim+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-
#include <linux/sched.h>
void conftest(void)
{
-
-extern rwlock_t tasklist_lock __attribute__((weak));
-read_lock(&tasklist_lock);
-
+struct task_struct _tsk;
+printk("%d\n", _tsk.signal->rlim);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_exports_tasklist_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_exports_tasklist_lock=no
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
-
-extern rwlock_t tasklist_lock __attribute__((weak));
-read_lock(&tasklist_lock);
-
+struct task_struct _tsk;
+printk("%d\n", _tsk.signal->rlim);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_exports_tasklist_lock=yes
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_exports_tasklist_lock=no
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_exports_tasklist_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_exports_tasklist_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&6; }
- { echo "$as_me:$LINENO: checking for struct vfsmount * in get_sb_nodev()" >&5
-echo $ECHO_N "checking for struct vfsmount * in get_sb_nodev()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_get_sb_has_struct_vfsmount+set}" = set; then
+ { echo "$as_me:$LINENO: checking for exit_state in struct task_struct" >&5
+echo $ECHO_N "checking for exit_state in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_exit_state+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-get_sb_nodev(0,0,0,0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.exit_state);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_get_sb_has_struct_vfsmount=no
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-get_sb_nodev(0,0,0,0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.exit_state);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_get_sb_has_struct_vfsmount=no
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_get_sb_has_struct_vfsmount" >&5
-echo "${ECHO_T}$ac_cv_linux_get_sb_has_struct_vfsmount" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_exit_state" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_exit_state" >&6; }
- { echo "$as_me:$LINENO: checking for dentry in statfs" >&5
-echo $ECHO_N "checking for dentry in statfs... $ECHO_C" >&6; }
- if test "${ac_cv_linux_statfs_takes_dentry+set}" = set; then
+ { echo "$as_me:$LINENO: checking for tgid in struct task_struct" >&5
+echo $ECHO_N "checking for tgid in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_tgid+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/statfs.h>
+#include <linux/sched.h>
void conftest(void)
{
-
-extern int vfs_statfs(struct dentry *, struct kstatfs *);
-
+struct task_struct _tsk;
+printk("%d\n", _tsk.tgid);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_statfs_takes_dentry=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_tgid=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_statfs_takes_dentry=no
+ ac_cv_linux_sched_struct_task_struct_has_tgid=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
-#include <linux/statfs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-
-extern int vfs_statfs(struct dentry *, struct kstatfs *);
-
+struct task_struct _tsk;
+printk("%d\n", _tsk.tgid);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_statfs_takes_dentry=yes
+ ac_cv_linux_sched_struct_task_struct_has_tgid=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_statfs_takes_dentry=no
+ ac_cv_linux_sched_struct_task_struct_has_tgid=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_statfs_takes_dentry" >&5
-echo "${ECHO_T}$ac_cv_linux_statfs_takes_dentry" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_tgid" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_tgid" >&6; }
- { echo "$as_me:$LINENO: checking for linux/freezer.h existance" >&5
-echo $ECHO_N "checking for linux/freezer.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_freezer_h_exists+set}" = set; then
+ { echo "$as_me:$LINENO: checking for todo in struct task_struct" >&5
+echo $ECHO_N "checking for todo in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_todo+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/freezer.h>
+#include <linux/sched.h>
void conftest(void)
{
-return;
-}
+struct task_struct _tsk;
+printk("%d\n", _tsk.todo);
+}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_freezer_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_todo=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_freezer_h_exists=no
+ ac_cv_linux_sched_struct_task_struct_has_todo=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/freezer.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-return;
+struct task_struct _tsk;
+printk("%d\n", _tsk.todo);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_freezer_h_exists=yes
+ ac_cv_linux_sched_struct_task_struct_has_todo=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_freezer_h_exists=no
+ ac_cv_linux_sched_struct_task_struct_has_todo=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_freezer_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_freezer_h_exists" >&6; }
- if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define FREEZER_H_EXISTS 1
-_ACEOF
-
- fi
- if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define FREEZER_H_EXISTS 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_todo" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_todo" >&6; }
- { echo "$as_me:$LINENO: checking whether refrigerator takes PF_FREEZE" >&5
-echo $ECHO_N "checking whether refrigerator takes PF_FREEZE... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_refrigerator_takes_pf_freeze+set}" = set; then
+ { echo "$as_me:$LINENO: checking for thread_info in struct task_struct" >&5
+echo $ECHO_N "checking for thread_info in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_thread_info+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/sched.h>
-#ifdef FREEZER_H_EXISTS
-#include <linux/freezer.h>
-#endif
void conftest(void)
{
-refrigerator(PF_FREEZE);
+struct task_struct _tsk;
+printk("%d\n", _tsk.thread_info);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
-#ifdef FREEZER_H_EXISTS
-#include <linux/freezer.h>
-#endif
int
main ()
{
-refrigerator(PF_FREEZE);
+struct task_struct _tsk;
+printk("%d\n", _tsk.thread_info);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_refrigerator_takes_pf_freeze" >&5
-echo "${ECHO_T}$ac_cv_linux_func_refrigerator_takes_pf_freeze" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_thread_info" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_thread_info" >&6; }
- { echo "$as_me:$LINENO: checking for linux kernel keyring support" >&5
-echo $ECHO_N "checking for linux kernel keyring support... $ECHO_C" >&6; }
- if test "${ac_cv_linux_keyring_support+set}" = set; then
+ { echo "$as_me:$LINENO: checking for exported tasklist_lock" >&5
+echo $ECHO_N "checking for exported tasklist_lock... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_exports_tasklist_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/rwsem.h>
-#include <linux/key.h>
-#include <linux/keyctl.h>
+
+#include <linux/sched.h>
void conftest(void)
{
-#ifdef CONFIG_KEYS
-request_key(NULL, NULL, NULL);
-#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
-#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
-#endif
-#else
-#error rebuild your kernel with CONFIG_KEYS
-#endif
+
+extern rwlock_t tasklist_lock __attribute__((weak));
+read_lock(&tasklist_lock);
+
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_keyring_support=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_tasklist_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_keyring_support=no
+ ac_cv_linux_exports_tasklist_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/rwsem.h>
-#include <linux/key.h>
-#include <linux/keyctl.h>
+
+#include <linux/kernel.h>
+
+#include <linux/sched.h>
int
main ()
{
-#ifdef CONFIG_KEYS
-request_key(NULL, NULL, NULL);
-#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
-#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
-#endif
-#else
-#error rebuild your kernel with CONFIG_KEYS
-#endif
+
+extern rwlock_t tasklist_lock __attribute__((weak));
+read_lock(&tasklist_lock);
+
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_keyring_support=yes
+ ac_cv_linux_exports_tasklist_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_keyring_support=no
+ ac_cv_linux_exports_tasklist_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_keyring_support" >&5
-echo "${ECHO_T}$ac_cv_linux_keyring_support" >&6; }
- if test "x$ac_cv_linux_keyring_support" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define LINUX_KEYRING_SUPPORT 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_exports_tasklist_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_exports_tasklist_lock" >&6; }
- { echo "$as_me:$LINENO: checking if key_alloc() takes a struct task *" >&5
-echo $ECHO_N "checking if key_alloc() takes a struct task *... $ECHO_C" >&6; }
- if test "${ac_cv_key_alloc_needs_struct_task+set}" = set; then
+ { echo "$as_me:$LINENO: checking for struct vfsmount * in get_sb_nodev()" >&5
+echo $ECHO_N "checking for struct vfsmount * in get_sb_nodev()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_get_sb_has_struct_vfsmount+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/rwsem.h>
-#include <linux/key.h>
-
+#include <linux/fs.h>
void conftest(void)
{
-(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+get_sb_nodev(0,0,0,0,0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_key_alloc_needs_struct_task=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_get_sb_has_struct_vfsmount=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_key_alloc_needs_struct_task=no
+ ac_cv_linux_get_sb_has_struct_vfsmount=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/rwsem.h>
-#include <linux/key.h>
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+get_sb_nodev(0,0,0,0,0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_key_alloc_needs_struct_task=yes
+ ac_cv_linux_get_sb_has_struct_vfsmount=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_key_alloc_needs_struct_task=no
+ ac_cv_linux_get_sb_has_struct_vfsmount=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_key_alloc_needs_struct_task" >&5
-echo "${ECHO_T}$ac_cv_key_alloc_needs_struct_task" >&6; }
- if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_get_sb_has_struct_vfsmount" >&5
+echo "${ECHO_T}$ac_cv_linux_get_sb_has_struct_vfsmount" >&6; }
-cat >>confdefs.h <<\_ACEOF
-#define KEY_ALLOC_NEEDS_STRUCT_TASK 1
+ { echo "$as_me:$LINENO: checking for dentry in statfs" >&5
+echo $ECHO_N "checking for dentry in statfs... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_statfs_takes_dentry+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/statfs.h>
+
+void conftest(void)
+{
+
+extern int vfs_statfs(struct dentry *, struct kstatfs *);
+
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_statfs_takes_dentry=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_statfs_takes_dentry=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+#include <linux/statfs.h>
+int
+main ()
+{
+
+extern int vfs_statfs(struct dentry *, struct kstatfs *);
+
+ ;
+ return 0;
+}
_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_statfs_takes_dentry=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_statfs_takes_dentry=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_statfs_takes_dentry" >&5
+echo "${ECHO_T}$ac_cv_linux_statfs_takes_dentry" >&6; }
+
+ { echo "$as_me:$LINENO: checking for linux/freezer.h existance" >&5
+echo $ECHO_N "checking for linux/freezer.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_freezer_h_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/freezer.h>
+
+void conftest(void)
+{
+return;
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_freezer_h_exists=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_freezer_h_exists=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/freezer.h>
+int
+main ()
+{
+return;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_freezer_h_exists=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_freezer_h_exists=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_freezer_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_freezer_h_exists" >&6; }
+ if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define FREEZER_H_EXISTS 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define FREEZER_H_EXISTS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking whether refrigerator takes PF_FREEZE" >&5
+echo $ECHO_N "checking whether refrigerator takes PF_FREEZE... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_refrigerator_takes_pf_freeze+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/sched.h>
+#ifdef FREEZER_H_EXISTS
+#include <linux/freezer.h>
+#endif
+
+void conftest(void)
+{
+refrigerator(PF_FREEZE);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#ifdef FREEZER_H_EXISTS
+#include <linux/freezer.h>
+#endif
+int
+main ()
+{
+refrigerator(PF_FREEZE);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_refrigerator_takes_pf_freeze" >&5
+echo "${ECHO_T}$ac_cv_linux_func_refrigerator_takes_pf_freeze" >&6; }
+
+ { echo "$as_me:$LINENO: checking for linux kernel keyring support" >&5
+echo $ECHO_N "checking for linux kernel keyring support... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_keyring_support+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/rwsem.h>
+#ifdef KEY_TYPE_H_EXISTS
+#include <linux/key-type.h>
+#endif
+#include <linux/key.h>
+#include <linux/keyctl.h>
+
+void conftest(void)
+{
+#ifdef CONFIG_KEYS
+request_key(NULL, NULL, NULL);
+#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
+#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
+#endif
+#else
+#error rebuild your kernel with CONFIG_KEYS
+#endif
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_keyring_support=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_keyring_support=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/rwsem.h>
+#ifdef KEY_TYPE_H_EXISTS
+#include <linux/key-type.h>
+#endif
+#include <linux/key.h>
+#include <linux/keyctl.h>
+int
+main ()
+{
+#ifdef CONFIG_KEYS
+request_key(NULL, NULL, NULL);
+#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
+#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
+#endif
+#else
+#error rebuild your kernel with CONFIG_KEYS
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_keyring_support=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_keyring_support=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_keyring_support" >&5
+echo "${ECHO_T}$ac_cv_linux_keyring_support" >&6; }
+ if test "x$ac_cv_linux_keyring_support" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define LINUX_KEYRING_SUPPORT 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking if key_alloc() takes a struct task *" >&5
+echo $ECHO_N "checking if key_alloc() takes a struct task *... $ECHO_C" >&6; }
+ if test "${ac_cv_key_alloc_needs_struct_task+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/rwsem.h>
+#include <linux/key.h>
+
+
+void conftest(void)
+{
+(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_struct_task=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_key_alloc_needs_struct_task=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/rwsem.h>
+#include <linux/key.h>
+
+int
+main ()
+{
+(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_key_alloc_needs_struct_task=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_key_alloc_needs_struct_task=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_key_alloc_needs_struct_task" >&5
+echo "${ECHO_T}$ac_cv_key_alloc_needs_struct_task" >&6; }
+ if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KEY_ALLOC_NEEDS_STRUCT_TASK 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
+echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_do_sync_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+do_sync_read(NULL, NULL, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_do_sync_read=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_do_sync_read=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+do_sync_read(NULL, NULL, 0, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_do_sync_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_do_sync_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+ if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_generic_file_aio_read=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_generic_file_aio_read=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+generic_file_aio_read(NULL, NULL, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_generic_file_aio_read=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_generic_file_aio_read=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+ if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define GENERIC_FILE_AIO_READ 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking whether INIT_WORK has a _data argument" >&5
+echo $ECHO_N "checking whether INIT_WORK has a _data argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_init_work_has_data+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/workqueue.h>
+
+void conftest(void)
+{
+
+void f(struct work_struct *w) {}
+struct work_struct *w;
+int *i;
+INIT_WORK(w,f,i);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_init_work_has_data=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_init_work_has_data=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/kernel.h>
+#include <linux/workqueue.h>
+int
+main ()
+{
+
+void f(struct work_struct *w) {}
+struct work_struct *w;
+int *i;
+INIT_WORK(w,f,i);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_init_work_has_data=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_init_work_has_data=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
fi
+fi
- { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
-echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_do_sync_read+set}" = set; then
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_init_work_has_data" >&5
+echo "${ECHO_T}$ac_cv_linux_init_work_has_data" >&6; }
+
+ { echo "$as_me:$LINENO: checking whether register_sysctl_table has an insert_at_head flag argument" >&5
+echo $ECHO_N "checking whether register_sysctl_table has an insert_at_head flag argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_register_sysctl_table_noflag+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sysctl.h>
void conftest(void)
{
-do_sync_read(NULL, NULL, 0, NULL);
+ctl_table *t;
+register_sysctl_table (t);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_do_sync_read=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_register_sysctl_table_noflag=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_do_sync_read=no
+ ac_cv_linux_register_sysctl_table_noflag=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sysctl.h>
int
main ()
{
-do_sync_read(NULL, NULL, 0, NULL);
+ctl_table *t;
+register_sysctl_table (t);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_do_sync_read=yes
+ ac_cv_linux_register_sysctl_table_noflag=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_do_sync_read=no
+ ac_cv_linux_register_sysctl_table_noflag=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
-echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
- if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define DO_SYNC_READ 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_register_sysctl_table_noflag" >&5
+echo "${ECHO_T}$ac_cv_linux_register_sysctl_table_noflag" >&6; }
- { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
-echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sysctl table checking" >&5
+echo $ECHO_N "checking for sysctl table checking... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sysctl_table_checking+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sysctl.h>
void conftest(void)
{
-generic_file_aio_read(NULL, NULL, 0, 0);
+ extern int sysctl_check_table(int) __attribute__((weak));
+sysctl_check_table(NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_generic_file_aio_read=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sysctl_table_checking=no
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_generic_file_aio_read=no
+ ac_cv_linux_sysctl_table_checking=yes
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sysctl.h>
int
main ()
{
-generic_file_aio_read(NULL, NULL, 0, 0);
+ extern int sysctl_check_table(int) __attribute__((weak));
+sysctl_check_table(NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_generic_file_aio_read=yes
+ ac_cv_linux_sysctl_table_checking=no
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_generic_file_aio_read=no
+ ac_cv_linux_sysctl_table_checking=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
-echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
- if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define GENERIC_FILE_AIO_READ 1
-_ACEOF
-
- fi
+{ echo "$as_me:$LINENO: result: $ac_cv_linux_sysctl_table_checking" >&5
+echo "${ECHO_T}$ac_cv_linux_sysctl_table_checking" >&6; }
- { echo "$as_me:$LINENO: checking whether INIT_WORK has a _data argument" >&5
-echo $ECHO_N "checking whether INIT_WORK has a _data argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_init_work_has_data+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux iget()" >&5
+echo $ECHO_N "checking for linux iget()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_iget+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/workqueue.h>
+#include <linux/fs.h>
void conftest(void)
{
-
-void f(struct work_struct *w) {}
-struct work_struct *w;
-int *i;
-INIT_WORK(w,f,i);
+iget(NULL, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_init_work_has_data=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_iget=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_init_work_has_data=no
+ ac_cv_linux_have_iget=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
#include <linux/kernel.h>
-#include <linux/workqueue.h>
+#include <linux/fs.h>
int
main ()
{
-
-void f(struct work_struct *w) {}
-struct work_struct *w;
-int *i;
-INIT_WORK(w,f,i);
+iget(NULL, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_init_work_has_data=yes
+ ac_cv_linux_have_iget=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_init_work_has_data=no
+ ac_cv_linux_have_iget=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
+ CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_init_work_has_data" >&5
-echo "${ECHO_T}$ac_cv_linux_init_work_has_data" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_iget" >&5
+echo "${ECHO_T}$ac_cv_linux_have_iget" >&6; }
- { echo "$as_me:$LINENO: checking whether register_sysctl_table has an insert_at_head flag argument" >&5
-echo $ECHO_N "checking whether register_sysctl_table has an insert_at_head flag argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_register_sysctl_table_noflag+set}" = set; then
+ { echo "$as_me:$LINENO: checking for path in struct nameidata" >&5
+echo $ECHO_N "checking for path in struct nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_struct_nameidata_has_path+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sysctl.h>
+#include <linux/namei.h>
void conftest(void)
{
-ctl_table *t;
-register_sysctl_table (t);
+struct nameidata _nd;
+printk("%x\n", _nd.path);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_register_sysctl_table_noflag=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_nameidata_has_path=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_register_sysctl_table_noflag=no
+ ac_cv_linux_struct_nameidata_has_path=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sysctl.h>
+
+#include <linux/kernel.h>
+#include <linux/namei.h>
int
main ()
{
-ctl_table *t;
-register_sysctl_table (t);
+struct nameidata _nd;
+printk("%x\n", _nd.path);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_register_sysctl_table_noflag=yes
+ ac_cv_linux_struct_nameidata_has_path=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_register_sysctl_table_noflag=no
+ ac_cv_linux_struct_nameidata_has_path=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_register_sysctl_table_noflag" >&5
-echo "${ECHO_T}$ac_cv_linux_register_sysctl_table_noflag" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_struct_nameidata_has_path" >&5
+echo "${ECHO_T}$ac_cv_linux_struct_nameidata_has_path" >&6; }
{ echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_chdir=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_chdir(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_close=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_close(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_open=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_open(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_wait4=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_wait4(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_config_smp=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#ifdef CONFIG_H_EXISTS
#include <linux/config.h>
#endif
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_init_mm=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_kallsyms_address=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_kallsyms_symbol=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_call_table=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_ia32_sys_call_table=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
cat >>confdefs.h <<\_ACEOF
#define CONFIG_H_EXISTS 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KEY_TYPE_H_EXISTS 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define STRUCT_FILE_OPERATIONS_HAS_SENDFILE 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_FILE_OPERATIONS_HAS_SPLICE 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define REGISTER_SYSCTL_TABLE_NOFLAG 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define SYSCTL_TABLE_CHECKING 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_have_iget" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IGET 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_NAMEIDATA_HAS_PATH 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define HAVE_KMEM_CACHE_T 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KMEM_CACHE_INIT 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CURRENT_KERNEL_TIME 1
_ACEOF
fi
-for ac_header in sys/mount.h strings.h termios.h signal.h
+
+for ac_header in sys/mount.h strings.h termios.h signal.h poll.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
done
-for ac_func in setvbuf
+
+for ac_func in setvbuf vsyslog
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
OPTMZ=-O
LWP_DBG=-g
LWP_OPTMZ=-O
+NO_STRIP_BIN=-ns
+NO_STRIP_KRB=-ns
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
SHLIB_LINKER="${MT_CC} -shared"
;;
+ arm_linux24)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
+ arm_linux26)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
hp_ux102)
AS="/usr/ccs/bin/as"
CC="/opt/ansic/bin/cc -Ae"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE -G0"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="/usr/lib64/libncurses.so"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
;;
*_obsd*)
+ KRB5CFLAGS="-I/usr/include/kerberosV"
+ KRB5LIBS="-lkrb5 -lcrypto"
LEX="flex -l"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-pthread"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=v9'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=amd64'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
if test "x$enable_debug" = "xno"; then
DBG=
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
fi
if test "x$enable_optimize" = "xno"; then
LWP_OPTMZ=
fi
+if test "x$enable_strip_binaries" != "xno"; then
+ if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+ else
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
+ fi
+else
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+fi
+
+if test "x$enable_warnings" = "xyes"; then
+ if test "x$GCC" = "xyes"; then
+ XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition"
+ fi
+fi
+
+
+
-for ac_func in add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket
+
+
+
+
+for ac_func in add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket krb5_c_encrypt krb5_c_encrypt_length krb5_cc_register krb5_decode_ticket
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
LIBS="$save_LIBS"
fi
+if test "x$ac_cv_krb5_cc_register_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KRB5_CC_REGISTER 1
+_ACEOF
+
+fi
+
MAN_MAKEFILE=
fi
-ac_config_files="$ac_config_files Makefile ${MAN_MAKEFILE} src/afs/Makefile src/afsd/Makefile src/afsmonitor/Makefile src/afsweb/Makefile src/aklog/Makefile src/audit/Makefile src/auth/Makefile src/auth/test/Makefile src/bozo/Makefile src/bozo/test/Makefile src/bu_utils/Makefile src/bubasics/Makefile src/bucoord/Makefile src/budb/Makefile src/butc/Makefile src/butm/Makefile src/cmd/Makefile src/cmd/test/Makefile src/comerr/Makefile src/comerr/test/Makefile src/config/Makefile src/config/Makefile.config src/config/Makefile.version-NOCML src/dauth/Makefile src/des/Makefile src/des/test/Makefile src/des_stub/Makefile src/dir/Makefile src/dir/test/Makefile src/export/Makefile src/finale/Makefile src/fsint/Makefile src/fsprobe/Makefile src/gtx/Makefile src/JAVA/libjafs/Makefile src/kauth/Makefile src/kauth/test/Makefile src/libacl/Makefile src/libacl/test/Makefile src/libadmin/Makefile src/libadmin/adminutil/Makefile src/libadmin/bos/Makefile src/libadmin/cfg/Makefile src/libadmin/cfg/test/Makefile src/libadmin/client/Makefile src/libadmin/kas/Makefile src/libadmin/pts/Makefile src/libadmin/samples/Makefile src/libadmin/test/Makefile src/libadmin/vos/Makefile src/libafs/Makefile.common src/libafs/MakefileProto.${MKAFS_OSTYPE} ${DARWIN_PLIST} src/libafsauthent/Makefile src/libafsrpc/Makefile src/libuafs/Makefile.common src/libuafs/MakefileProto.${MKAFS_OSTYPE} src/log/Makefile src/log/test/Makefile src/login/Makefile src/lwp/Makefile src/lwp/test/Makefile src/mpp/Makefile src/null/Makefile src/package/Makefile src/packaging/MacOS/OpenAFS.Info.plist src/packaging/MacOS/OpenAFS.info src/packaging/RedHat/openafs.spec src/pam/Makefile src/pinstall/Makefile src/pinstall/test/Makefile src/platform/Makefile src/platform/${MKAFS_OSTYPE}/Makefile src/procmgmt/Makefile src/procmgmt/test/Makefile src/ptserver/Makefile src/rx/Makefile src/rx/bulk.example/Makefile src/rx/bulktest/Makefile src/rx/multi.example/Makefile src/rx/simple.example/Makefile src/rx/test/Makefile src/rxdebug/Makefile src/rxgen/Makefile src/rxkad/Makefile src/rxkad/test/Makefile src/rxstat/Makefile src/scout/Makefile src/sgistuff/Makefile src/shlibafsauthent/Makefile src/shlibafsrpc/Makefile src/sia/Makefile src/sys/Makefile src/tbutc/Makefile src/tests/Makefile src/tests/run-tests src/tests/OpenAFS/Dirpath.pm src/tsm41/Makefile src/tviced/Makefile src/tvolser/Makefile src/ubik/Makefile src/update/Makefile src/usd/Makefile src/usd/test/Makefile src/uss/Makefile src/util/Makefile src/util/test/Makefile src/venus/Makefile src/venus/test/Makefile src/vfsck/Makefile src/viced/Makefile src/vlserver/Makefile src/vol/Makefile src/vol/test/Makefile src/volser/Makefile src/wsadmin.src/Makefile src/xstat/Makefile src/helper-splint.sh"
+ac_config_files="$ac_config_files Makefile ${MAN_MAKEFILE} src/afs/Makefile src/afsd/Makefile src/afsmonitor/Makefile src/afsweb/Makefile src/aklog/Makefile src/audit/Makefile src/auth/Makefile src/auth/test/Makefile src/bozo/Makefile src/bozo/test/Makefile src/bu_utils/Makefile src/bubasics/Makefile src/bucoord/Makefile src/budb/Makefile src/butc/Makefile src/butm/Makefile src/cmd/Makefile src/cmd/test/Makefile src/comerr/Makefile src/comerr/test/Makefile src/config/Makefile src/config/Makefile.config src/config/Makefile.version-NOCML src/dauth/Makefile src/des/Makefile src/des/test/Makefile src/des_stub/Makefile src/dir/Makefile src/dir/test/Makefile src/export/Makefile src/finale/Makefile src/fsint/Makefile src/fsprobe/Makefile src/gtx/Makefile src/JAVA/libjafs/Makefile src/kauth/Makefile src/kauth/test/Makefile src/libacl/Makefile src/libacl/test/Makefile src/libadmin/Makefile src/libadmin/adminutil/Makefile src/libadmin/bos/Makefile src/libadmin/cfg/Makefile src/libadmin/cfg/test/Makefile src/libadmin/client/Makefile src/libadmin/kas/Makefile src/libadmin/pts/Makefile src/libadmin/samples/Makefile src/libadmin/test/Makefile src/libadmin/vos/Makefile src/libafs/Makefile.common src/libafs/MakefileProto.${MKAFS_OSTYPE} ${DARWIN_PLIST} src/libafsauthent/Makefile src/libafsrpc/Makefile src/libuafs/Makefile.common src/libuafs/MakefileProto.${MKAFS_OSTYPE} src/log/Makefile src/log/test/Makefile src/login/Makefile src/lwp/Makefile src/lwp/test/Makefile src/mpp/Makefile src/null/Makefile src/package/Makefile src/packaging/MacOS/OpenAFS.Info.plist src/packaging/MacOS/OpenAFS.info src/packaging/MacOS/buildpkg.sh src/packaging/RedHat/openafs.spec src/pam/Makefile src/pinstall/Makefile src/pinstall/test/Makefile src/platform/Makefile src/platform/${MKAFS_OSTYPE}/Makefile src/procmgmt/Makefile src/procmgmt/test/Makefile src/ptserver/Makefile src/rx/Makefile src/rx/bulk.example/Makefile src/rx/bulktest/Makefile src/rx/multi.example/Makefile src/rx/simple.example/Makefile src/rx/test/Makefile src/rxdebug/Makefile src/rxgen/Makefile src/rxkad/Makefile src/rxkad/test/Makefile src/rxstat/Makefile src/scout/Makefile src/sgistuff/Makefile src/shlibafsauthent/Makefile src/shlibafsrpc/Makefile src/sia/Makefile src/sys/Makefile src/tbutc/Makefile src/tests/Makefile src/tests/run-tests src/tsm41/Makefile src/tviced/Makefile src/tvolser/Makefile src/ubik/Makefile src/update/Makefile src/usd/Makefile src/usd/test/Makefile src/uss/Makefile src/util/Makefile src/util/test/Makefile src/venus/Makefile src/venus/test/Makefile src/vfsck/Makefile src/viced/Makefile src/vlserver/Makefile src/vol/Makefile src/vol/test/Makefile src/volser/Makefile src/wsadmin.src/Makefile src/xstat/Makefile src/helper-splint.sh"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
"src/package/Makefile") CONFIG_FILES="$CONFIG_FILES src/package/Makefile" ;;
"src/packaging/MacOS/OpenAFS.Info.plist") CONFIG_FILES="$CONFIG_FILES src/packaging/MacOS/OpenAFS.Info.plist" ;;
"src/packaging/MacOS/OpenAFS.info") CONFIG_FILES="$CONFIG_FILES src/packaging/MacOS/OpenAFS.info" ;;
+ "src/packaging/MacOS/buildpkg.sh") CONFIG_FILES="$CONFIG_FILES src/packaging/MacOS/buildpkg.sh" ;;
"src/packaging/RedHat/openafs.spec") CONFIG_FILES="$CONFIG_FILES src/packaging/RedHat/openafs.spec" ;;
"src/pam/Makefile") CONFIG_FILES="$CONFIG_FILES src/pam/Makefile" ;;
"src/pinstall/Makefile") CONFIG_FILES="$CONFIG_FILES src/pinstall/Makefile" ;;
"src/tbutc/Makefile") CONFIG_FILES="$CONFIG_FILES src/tbutc/Makefile" ;;
"src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
"src/tests/run-tests") CONFIG_FILES="$CONFIG_FILES src/tests/run-tests" ;;
- "src/tests/OpenAFS/Dirpath.pm") CONFIG_FILES="$CONFIG_FILES src/tests/OpenAFS/Dirpath.pm" ;;
"src/tsm41/Makefile") CONFIG_FILES="$CONFIG_FILES src/tsm41/Makefile" ;;
"src/tviced/Makefile") CONFIG_FILES="$CONFIG_FILES src/tviced/Makefile" ;;
"src/tvolser/Makefile") CONFIG_FILES="$CONFIG_FILES src/tvolser/Makefile" ;;
CCDEPMODE!$CCDEPMODE$ac_delim
am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
+CPP!$CPP$ac_delim
build!$build$ac_delim
build_cpu!$build_cpu$ac_delim
build_vendor!$build_vendor$ac_delim
host_cpu!$host_cpu$ac_delim
host_vendor!$host_vendor$ac_delim
host_os!$host_os$ac_delim
-CPP!$CPP$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LN_S!$LN_S$ac_delim
MT_CC!$MT_CC$ac_delim
MT_CFLAGS!$MT_CFLAGS$ac_delim
MT_LIBS!$MT_LIBS$ac_delim
+NO_STRIP_BIN!$NO_STRIP_BIN$ac_delim
+NO_STRIP_KRB!$NO_STRIP_KRB$ac_delim
OPTMZ!$OPTMZ$ac_delim
PAM_CFLAGS!$PAM_CFLAGS$ac_delim
PAM_LIBS!$PAM_LIBS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 91; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
MT_CC
MT_CFLAGS
MT_LIBS
+NO_STRIP_BIN
+NO_STRIP_KRB
OPTMZ
PAM_CFLAGS
PAM_LIBS
--enable-debug-kernel enable compilation of the kernel module with debugging information (defaults to disabled)
--disable-optimize-kernel disable compilation of the kernel module with optimization (defaults based on platform)
--enable-debug enable compilation of the user space code with debugging information (defaults to disabled)
+ --disable-strip-binaries disable stripping of symbol information from binaries (defaults to enabled)
--disable-optimize disable optimization for compilation of the user space code (defaults to enabled)
--enable-debug-lwp enable compilation of the LWP code with debugging information (defaults to disabled)
--disable-optimize-lwp disable optimization for compilation of the LWP code (defaults to enabled)
+ --enable-warnings enable compilation warnings when building with gcc (defaults to disabled)
--enable-bigendian the target is big endian
--enable-littleendian the target is little endian
# Define the identity of the package.
PACKAGE=openafs-libafs
- VERSION=1.4.6
+ VERSION=1.4.7pre1
cat >>confdefs.h <<_ACEOF
ac_config_headers="$ac_config_headers src/config/afsconfig.h"
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
fi
+# Check whether --enable-strip-binaries was given.
+if test "${enable_strip_binaries+set}" = set; then
+ enableval=$enable_strip_binaries;
+else
+ enable_strip_binaries="maybe"
+
+fi
+
# Check whether --enable-optimize was given.
if test "${enable_optimize+set}" = set; then
enableval=$enable_optimize;
fi
+# Check whether --enable-warnings was given.
+if test "${enable_warnings+set}" = set; then
+ enableval=$enable_warnings;
+else
+ enable_warnings="no"
+
+fi
+
enable_login="no"
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="amd64_nbsd20"
;;
+ x86_64-*-netbsd*3.0-8*)
+ AFS_PARAM_COMMON=param.nbsd30.h
+ AFS_SYSNAME="amd64_nbsd30"
+ ;;
+ x86_64-*-netbsd*4.0-8*)
+ AFS_PARAM_COMMON=param.nbsd40.h
+ AFS_SYSNAME="amd64_nbsd40"
+ ;;
powerpc-*-netbsd*2.0*)
AFS_PARAM_COMMON=param.nbsd20.h
AFS_SYSNAME="ppc_nbsd20"
hppa*-hp-hpux11.11)
AFS_SYSNAME="hp_ux11i"
;;
+ hppa*-hp-hpux11.23)
+ AFS_SYSNAME="hp_ux1123"
+ ;;
ia64-hp-hpux11.22)
AFS_SYSNAME="ia64_hpux1122"
;;
- { echo "$as_me:$LINENO: checking for linux kernel module build works" >&5
-echo $ECHO_N "checking for linux kernel module build works... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: checking if linux kbuild requires EXTRA_CFLAGS" >&5
+echo $ECHO_N "checking if linux kbuild requires EXTRA_CFLAGS... $ECHO_C" >&6; }
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS=-Wall
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then :
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_kbuild_requires_extra_cflags=no
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&5
-echo "$as_me: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ ac_linux_kbuild_requires_extra_cflags=yes
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
int
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- :
+ ac_linux_kbuild_requires_extra_cflags=no
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
- { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&5
-echo "$as_me: error: Fix problem or use --disable-kernel-module...
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ ac_linux_kbuild_requires_extra_cflags=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
- { echo "$as_me:$LINENO: checking whether kmem_cache_t exists" >&5
-echo $ECHO_N "checking whether kmem_cache_t exists... $ECHO_C" >&6; }
- if test "${ac_cv_linux_have_kmem_cache_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+ CPPFLAGS="$save_CPPFLAGS"
+ { echo "$as_me:$LINENO: result: $ac_linux_kbuild_requires_extra_cflags" >&5
+echo "${ECHO_T}$ac_linux_kbuild_requires_extra_cflags" >&6; }
+ { echo "$as_me:$LINENO: checking for linux kernel module build works" >&5
+echo $ECHO_N "checking for linux kernel module build works... $ECHO_C" >&6; }
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/slab.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
void conftest(void)
{
-kmem_cache_t *k;
+
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_have_kmem_cache_t=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then :
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_have_kmem_cache_t=no
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&5
+echo "$as_me: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/slab.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
int
main ()
{
-kmem_cache_t *k;
+
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_have_kmem_cache_t=yes
+ :
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_have_kmem_cache_t=no
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ { { echo "$as_me:$LINENO: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&5
+echo "$as_me: error: Fix problem or use --disable-kernel-module...
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
-fi
-
- { echo "$as_me:$LINENO: result: $ac_cv_linux_have_kmem_cache_t" >&5
-echo "${ECHO_T}$ac_cv_linux_have_kmem_cache_t" >&6; }
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
- { echo "$as_me:$LINENO: checking whether kmem_cache_create takes a destructor argument" >&5
-echo $ECHO_N "checking whether kmem_cache_create takes a destructor argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kmem_cache_create_takes_dtor+set}" = set; then
+ { echo "$as_me:$LINENO: checking for current_kernel_time()" >&5
+echo $ECHO_N "checking for current_kernel_time()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_current_kernel_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/slab.h>
+#include <linux/time.h>
void conftest(void)
{
-kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
+struct timespec s = current_kernel_time();
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_current_kernel_time=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kmem_cache_create_takes_dtor=no
+ ac_cv_linux_have_current_kernel_time=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/slab.h>
+
+#include <linux/kernel.h>
+#include <linux/time.h>
int
main ()
{
-kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
+struct timespec s = current_kernel_time();
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ ac_cv_linux_have_current_kernel_time=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kmem_cache_create_takes_dtor=no
+ ac_cv_linux_have_current_kernel_time=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_create_takes_dtor" >&5
-echo "${ECHO_T}$ac_cv_linux_kmem_cache_create_takes_dtor" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_current_kernel_time" >&5
+echo "${ECHO_T}$ac_cv_linux_have_current_kernel_time" >&6; }
- { echo "$as_me:$LINENO: checking for linux/config.h existance" >&5
-echo $ECHO_N "checking for linux/config.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_config_h_exists+set}" = set; then
+ { echo "$as_me:$LINENO: checking for new kmem_cache init function parameters" >&5
+echo $ECHO_N "checking for new kmem_cache init function parameters... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kmem_cache_init+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/config.h>
+#include <linux/slab.h>
void conftest(void)
{
+extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+ unsigned long,
+ void (*)(struct kmem_cache *, void *));
return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_config_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_init=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_config_h_exists=no
+ ac_cv_linux_kmem_cache_init=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/config.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
+extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+ unsigned long,
+ void (*)(struct kmem_cache *, void *));
return;
;
return 0;
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_config_h_exists=yes
+ ac_cv_linux_kmem_cache_init=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_config_h_exists=no
+ ac_cv_linux_kmem_cache_init=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_config_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_config_h_exists" >&6; }
- if test "x$ac_cv_linux_config_h_exists" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define CONFIG_H_EXISTS 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_init" >&5
+echo "${ECHO_T}$ac_cv_linux_kmem_cache_init" >&6; }
- { echo "$as_me:$LINENO: checking for linux/completion.h existance" >&5
-echo $ECHO_N "checking for linux/completion.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_completion_h_exists+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether kmem_cache_t exists" >&5
+echo $ECHO_N "checking whether kmem_cache_t exists... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_kmem_cache_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/version.h>
-#include <linux/completion.h>
+#include <linux/slab.h>
void conftest(void)
{
-struct completion _c;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
-lose
-#endif
+kmem_cache_t *k;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_completion_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_kmem_cache_t=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_completion_h_exists=no
+ ac_cv_linux_have_kmem_cache_t=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/version.h>
-#include <linux/completion.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
-struct completion _c;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
-lose
-#endif
+kmem_cache_t *k;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_completion_h_exists=yes
+ ac_cv_linux_have_kmem_cache_t=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_completion_h_exists=no
+ ac_cv_linux_have_kmem_cache_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_completion_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_completion_h_exists" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_kmem_cache_t" >&5
+echo "${ECHO_T}$ac_cv_linux_have_kmem_cache_t" >&6; }
- { echo "$as_me:$LINENO: checking for defined for_each_process" >&5
-echo $ECHO_N "checking for defined for_each_process... $ECHO_C" >&6; }
- if test "${ac_cv_linux_defines_for_each_process+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether kmem_cache_create takes a destructor argument" >&5
+echo $ECHO_N "checking whether kmem_cache_create takes a destructor argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kmem_cache_create_takes_dtor+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/slab.h>
void conftest(void)
{
-#ifndef for_each_process
-#error for_each_process not defined
-#endif
+kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_defines_for_each_process=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_takes_dtor=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_defines_for_each_process=no
+ ac_cv_linux_kmem_cache_create_takes_dtor=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
int
main ()
{
-#ifndef for_each_process
-#error for_each_process not defined
-#endif
+kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_defines_for_each_process=yes
+ ac_cv_linux_kmem_cache_create_takes_dtor=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_defines_for_each_process=no
+ ac_cv_linux_kmem_cache_create_takes_dtor=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_for_each_process" >&5
-echo "${ECHO_T}$ac_cv_linux_defines_for_each_process" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kmem_cache_create_takes_dtor" >&5
+echo "${ECHO_T}$ac_cv_linux_kmem_cache_create_takes_dtor" >&6; }
- { echo "$as_me:$LINENO: checking for defined prev_task" >&5
-echo $ECHO_N "checking for defined prev_task... $ECHO_C" >&6; }
- if test "${ac_cv_linux_defines_prev_task+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux/config.h existance" >&5
+echo $ECHO_N "checking for linux/config.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_config_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/config.h>
void conftest(void)
{
-#ifndef prev_task
-#error prev_task not defined
-#endif
+return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_defines_prev_task=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_config_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_defines_prev_task=no
+ ac_cv_linux_config_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/config.h>
int
main ()
{
-#ifndef prev_task
-#error prev_task not defined
-#endif
+return;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_defines_prev_task=yes
+ ac_cv_linux_config_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_defines_prev_task=no
+ ac_cv_linux_config_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_prev_task" >&5
-echo "${ECHO_T}$ac_cv_linux_defines_prev_task" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_config_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_config_h_exists" >&6; }
+ if test "x$ac_cv_linux_config_h_exists" = "xyes"; then
- { echo "$as_me:$LINENO: checking for alloc_inode in struct super_operations" >&5
-echo $ECHO_N "checking for alloc_inode in struct super_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_super_has_alloc_inode+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define CONFIG_H_EXISTS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux/completion.h existance" >&5
+echo $ECHO_N "checking for linux/completion.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_completion_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/version.h>
+#include <linux/completion.h>
void conftest(void)
{
-struct super_operations _super;
-printk("%p\n", _super.alloc_inode);
+struct completion _c;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
+lose
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_super_has_alloc_inode=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_completion_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_super_has_alloc_inode=no
+ ac_cv_linux_completion_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
-int
+
+#include <linux/kernel.h>
+#include <linux/version.h>
+#include <linux/completion.h>
+int
main ()
{
-struct super_operations _super;
-printk("%p\n", _super.alloc_inode);
+struct completion _c;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,8)
+lose
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_super_has_alloc_inode=yes
+ ac_cv_linux_completion_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_super_has_alloc_inode=no
+ ac_cv_linux_completion_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_super_has_alloc_inode" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_super_has_alloc_inode" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_completion_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_completion_h_exists" >&6; }
- { echo "$as_me:$LINENO: checking for page_lock in struct address_space" >&5
-echo $ECHO_N "checking for page_lock in struct address_space... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_address_space_has_page_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for defined for_each_process" >&5
+echo $ECHO_N "checking for defined for_each_process... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_defines_for_each_process+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-struct address_space _a_s;
-printk("%x\n", _a_s.page_lock);
+#ifndef for_each_process
+#error for_each_process not defined
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_address_space_has_page_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_defines_for_each_process=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_address_space_has_page_lock=no
+ ac_cv_linux_defines_for_each_process=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-struct address_space _a_s;
-printk("%x\n", _a_s.page_lock);
+#ifndef for_each_process
+#error for_each_process not defined
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_address_space_has_page_lock=yes
+ ac_cv_linux_defines_for_each_process=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_address_space_has_page_lock=no
+ ac_cv_linux_defines_for_each_process=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_page_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_page_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_for_each_process" >&5
+echo "${ECHO_T}$ac_cv_linux_defines_for_each_process" >&6; }
- { echo "$as_me:$LINENO: checking for gfp_mask in struct address_space" >&5
-echo $ECHO_N "checking for gfp_mask in struct address_space... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_address_space_has_gfp_mask+set}" = set; then
+ { echo "$as_me:$LINENO: checking for defined prev_task" >&5
+echo $ECHO_N "checking for defined prev_task... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_defines_prev_task+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-struct address_space _a;
-printk("%d\n", _a.gfp_mask);
+#ifndef prev_task
+#error prev_task not defined
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_defines_prev_task=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
+ ac_cv_linux_defines_prev_task=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-struct address_space _a;
-printk("%d\n", _a.gfp_mask);
+#ifndef prev_task
+#error prev_task not defined
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
+ ac_cv_linux_defines_prev_task=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
+ ac_cv_linux_defines_prev_task=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_defines_prev_task" >&5
+echo "${ECHO_T}$ac_cv_linux_defines_prev_task" >&6; }
- { echo "$as_me:$LINENO: checking for i_alloc_sem in struct inode" >&5
-echo $ECHO_N "checking for i_alloc_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_alloc_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for alloc_inode in struct super_operations" >&5
+echo $ECHO_N "checking for alloc_inode in struct super_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_super_has_alloc_inode+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _i;
-printk("%x\n", _i.i_alloc_sem);
+struct super_operations _super;
+printk("%p\n", _super.alloc_inode);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_super_has_alloc_inode=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
+ ac_cv_linux_fs_struct_super_has_alloc_inode=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _i;
-printk("%x\n", _i.i_alloc_sem);
+struct super_operations _super;
+printk("%p\n", _super.alloc_inode);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
+ ac_cv_linux_fs_struct_super_has_alloc_inode=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
+ ac_cv_linux_fs_struct_super_has_alloc_inode=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_super_has_alloc_inode" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_super_has_alloc_inode" >&6; }
- { echo "$as_me:$LINENO: checking for i_blkbits in struct inode" >&5
-echo $ECHO_N "checking for i_blkbits in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_blkbits+set}" = set; then
+ { echo "$as_me:$LINENO: checking for page_lock in struct address_space" >&5
+echo $ECHO_N "checking for page_lock in struct address_space... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_address_space_has_page_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_blkbits);
+struct address_space _a_s;
+printk("%x\n", _a_s.page_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_address_space_has_page_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_blkbits=no
+ ac_cv_linux_fs_struct_address_space_has_page_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_blkbits);
+struct address_space _a_s;
+printk("%x\n", _a_s.page_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
+ ac_cv_linux_fs_struct_address_space_has_page_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_blkbits=no
+ ac_cv_linux_fs_struct_address_space_has_page_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blkbits" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blkbits" >&6; }
- if test "x$ac_cv_linux_fs_struct_inode_has_i_blkbits" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STRUCT_INODE_HAS_I_BLKBITS 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_page_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_page_lock" >&6; }
- { echo "$as_me:$LINENO: checking for i_blksize in struct inode" >&5
-echo $ECHO_N "checking for i_blksize in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_blksize+set}" = set; then
+ { echo "$as_me:$LINENO: checking for gfp_mask in struct address_space" >&5
+echo $ECHO_N "checking for gfp_mask in struct address_space... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_address_space_has_gfp_mask+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_blksize);
+struct address_space _a;
+printk("%d\n", _a.gfp_mask);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_blksize=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_blksize=no
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_blksize);
+struct address_space _a;
+printk("%d\n", _a.gfp_mask);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_blksize=yes
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_blksize=no
+ ac_cv_linux_fs_struct_address_space_has_gfp_mask=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blksize" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blksize" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_address_space_has_gfp_mask" >&6; }
- { echo "$as_me:$LINENO: checking for i_truncate_sem in struct inode" >&5
-echo $ECHO_N "checking for i_truncate_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_truncate_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_alloc_sem in struct inode" >&5
+echo $ECHO_N "checking for i_alloc_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_alloc_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _i;
-printk("%x\n", _i.i_truncate_sem);
+printk("%x\n", _i.i_alloc_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _i;
-printk("%x\n", _i.i_truncate_sem);
+printk("%x\n", _i.i_alloc_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_alloc_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" >&6; }
- { echo "$as_me:$LINENO: checking for i_dirty_data_buffers in struct inode" >&5
-echo $ECHO_N "checking for i_dirty_data_buffers in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_blkbits in struct inode" >&5
+echo $ECHO_N "checking for i_blkbits in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_blkbits+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_dirty_data_buffers);
+printk("%d\n", _inode.i_blkbits);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_dirty_data_buffers);
+printk("%d\n", _inode.i_blkbits);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
+ ac_cv_linux_fs_struct_inode_has_i_blkbits=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blkbits" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blkbits" >&6; }
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_blkbits" = "xyes"; then
- { echo "$as_me:$LINENO: checking for i_devices in struct inode" >&5
-echo $ECHO_N "checking for i_devices in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_devices+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_INODE_HAS_I_BLKBITS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for i_blksize in struct inode" >&5
+echo $ECHO_N "checking for i_blksize in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_blksize+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_devices);
+printk("%d\n", _inode.i_blksize);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_devices=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_blksize=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_devices=no
+ ac_cv_linux_fs_struct_inode_has_i_blksize=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_devices);
+printk("%d\n", _inode.i_blksize);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_devices=yes
+ ac_cv_linux_fs_struct_inode_has_i_blksize=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_devices=no
+ ac_cv_linux_fs_struct_inode_has_i_blksize=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_devices" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_devices" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_blksize" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_blksize" >&6; }
- { echo "$as_me:$LINENO: checking for i_mmap_shared in struct inode" >&5
-echo $ECHO_N "checking for i_mmap_shared in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_mmap_shared+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_truncate_sem in struct inode" >&5
+echo $ECHO_N "checking for i_truncate_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_truncate_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct inode _inode;
-printk("%d\n", _inode.i_mmap_shared);
+struct inode _i;
+printk("%x\n", _i.i_truncate_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct inode _inode;
-printk("%d\n", _inode.i_mmap_shared);
+struct inode _i;
+printk("%x\n", _i.i_truncate_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
+ ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" >&6; }
- { echo "$as_me:$LINENO: checking for i_mutex in struct inode" >&5
-echo $ECHO_N "checking for i_mutex in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_mutex+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_dirty_data_buffers in struct inode" >&5
+echo $ECHO_N "checking for i_dirty_data_buffers in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_mutex);
+printk("%d\n", _inode.i_dirty_data_buffers);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_mutex=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_mutex=no
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_mutex);
+printk("%d\n", _inode.i_dirty_data_buffers);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_mutex=yes
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_mutex=no
+ ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mutex" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mutex" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" >&6; }
- { echo "$as_me:$LINENO: checking for i_sb_list in struct inode" >&5
-echo $ECHO_N "checking for i_sb_list in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_sb_list+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_devices in struct inode" >&5
+echo $ECHO_N "checking for i_devices in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_devices+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_sb_list);
+printk("%d\n", _inode.i_devices);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_devices=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_sb_list=no
+ ac_cv_linux_fs_struct_inode_has_i_devices=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_sb_list);
+printk("%d\n", _inode.i_devices);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
+ ac_cv_linux_fs_struct_inode_has_i_devices=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_sb_list=no
+ ac_cv_linux_fs_struct_inode_has_i_devices=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_sb_list" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_sb_list" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_devices" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_devices" >&6; }
- { echo "$as_me:$LINENO: checking for i_security in struct inode" >&5
-echo $ECHO_N "checking for i_security in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_i_security+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_mmap_shared in struct inode" >&5
+echo $ECHO_N "checking for i_mmap_shared in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_mmap_shared+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.i_security);
+printk("%d\n", _inode.i_mmap_shared);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_i_security=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_i_security=no
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.i_security);
+printk("%d\n", _inode.i_mmap_shared);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_i_security=yes
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_i_security=no
+ ac_cv_linux_fs_struct_inode_has_i_mmap_shared=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_security" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_security" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mmap_shared" >&6; }
- { echo "$as_me:$LINENO: checking for inotify_lock in struct inode" >&5
-echo $ECHO_N "checking for inotify_lock in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_inotify_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_mutex in struct inode" >&5
+echo $ECHO_N "checking for i_mutex in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_mutex+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%d\n", _inode.inotify_lock);
+printk("%d\n", _inode.i_mutex);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_mutex=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_inotify_lock=no
+ ac_cv_linux_fs_struct_inode_has_i_mutex=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%d\n", _inode.inotify_lock);
+printk("%d\n", _inode.i_mutex);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
+ ac_cv_linux_fs_struct_inode_has_i_mutex=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_inotify_lock=no
+ ac_cv_linux_fs_struct_inode_has_i_mutex=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_mutex" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_mutex" >&6; }
- { echo "$as_me:$LINENO: checking for inotify_sem in struct inode" >&5
-echo $ECHO_N "checking for inotify_sem in struct inode... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_inode_has_inotify_sem+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_sb_list in struct inode" >&5
+echo $ECHO_N "checking for i_sb_list in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_sb_list+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-printk("%x\n", _inode.inotify_sem);
+printk("%d\n", _inode.i_sb_list);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_inode_has_inotify_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-printk("%x\n", _inode.inotify_sem);
+printk("%d\n", _inode.i_sb_list);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_inode_has_inotify_sem=no
+ ac_cv_linux_fs_struct_inode_has_i_sb_list=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_sem" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_sem" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_sb_list" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_sb_list" >&6; }
- { echo "$as_me:$LINENO: checking for inode_setattr return type" >&5
-echo $ECHO_N "checking for inode_setattr return type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_inode_setattr_returns_int+set}" = set; then
+ { echo "$as_me:$LINENO: checking for i_security in struct inode" >&5
+echo $ECHO_N "checking for i_security in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_i_security+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-struct iattr _iattr;
-int i;
-i = inode_setattr(&_inode, &_iattr);
+printk("%d\n", _inode.i_security);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_inode_setattr_returns_int=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_i_security=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_inode_setattr_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_i_security=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-struct iattr _iattr;
-int i;
-i = inode_setattr(&_inode, &_iattr);
+printk("%d\n", _inode.i_security);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_inode_setattr_returns_int=yes
+ ac_cv_linux_fs_struct_inode_has_i_security=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_inode_setattr_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_i_security=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_inode_setattr_returns_int" >&5
-echo "${ECHO_T}$ac_cv_linux_func_inode_setattr_returns_int" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_i_security" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_i_security" >&6; }
- { echo "$as_me:$LINENO: checking for write_inode return type" >&5
-echo $ECHO_N "checking for write_inode return type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_write_inode_returns_int+set}" = set; then
+ { echo "$as_me:$LINENO: checking for inotify_lock in struct inode" >&5
+echo $ECHO_N "checking for inotify_lock in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_inotify_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct inode _inode;
-struct super_operations _sops;
-int i;
-i = _sops.write_inode(&_inode, 0);
+printk("%d\n", _inode.inotify_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_write_inode_returns_int=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_write_inode_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
struct inode _inode;
-struct super_operations _sops;
-int i;
-i = _sops.write_inode(&_inode, 0);
+printk("%d\n", _inode.inotify_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_write_inode_returns_int=yes
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_write_inode_returns_int=no
+ ac_cv_linux_fs_struct_inode_has_inotify_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_write_inode_returns_int" >&5
-echo "${ECHO_T}$ac_cv_linux_func_write_inode_returns_int" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_lock" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.create takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.create takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_create_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking for inotify_sem in struct inode" >&5
+echo $ECHO_N "checking for inotify_sem in struct inode... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_inode_has_inotify_sem+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
+printk("%x\n", _inode.inotify_sem);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_create_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_create_takes_nameidata=no
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
+printk("%x\n", _inode.inotify_sem);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_create_takes_nameidata=yes
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_create_takes_nameidata=no
+ ac_cv_linux_fs_struct_inode_has_inotify_sem=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_create_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_create_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_inode_has_inotify_sem" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_inode_has_inotify_sem" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.lookup takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.lookup takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_lookup_takes_nameidata+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+ { echo "$as_me:$LINENO: checking for inode_setattr return type" >&5
+echo $ECHO_N "checking for inode_setattr return type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_inode_setattr_returns_int+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
+struct iattr _iattr;
+int i;
+i = inode_setattr(&_inode, &_iattr);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr_returns_int=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_lookup_takes_nameidata=no
+ ac_cv_linux_func_inode_setattr_returns_int=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
+struct iattr _iattr;
+int i;
+i = inode_setattr(&_inode, &_iattr);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ ac_cv_linux_func_inode_setattr_returns_int=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_lookup_takes_nameidata=no
+ ac_cv_linux_func_inode_setattr_returns_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_lookup_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_lookup_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_inode_setattr_returns_int" >&5
+echo "${ECHO_T}$ac_cv_linux_func_inode_setattr_returns_int" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.permission takes a nameidata" >&5
-echo $ECHO_N "checking whether inode_operations.permission takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_permission_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking for write_inode return type" >&5
+echo $ECHO_N "checking for write_inode return type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_write_inode_returns_int+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
+struct super_operations _sops;
+int i;
+i = _sops.write_inode(&_inode, 0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_permission_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_write_inode_returns_int=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_permission_takes_nameidata=no
+ ac_cv_linux_func_write_inode_returns_int=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct dentry _dentry;
-struct nameidata _nameidata;
-(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
+struct super_operations _sops;
+int i;
+i = _sops.write_inode(&_inode, 0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_permission_takes_nameidata=yes
+ ac_cv_linux_func_write_inode_returns_int=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_permission_takes_nameidata=no
+ ac_cv_linux_func_write_inode_returns_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_permission_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_permission_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_write_inode_returns_int" >&5
+echo "${ECHO_T}$ac_cv_linux_func_write_inode_returns_int" >&6; }
- { echo "$as_me:$LINENO: checking whether inode_operations.put_link takes an opaque cookie" >&5
-echo $ECHO_N "checking whether inode_operations.put_link takes an opaque cookie... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_i_put_link_takes_cookie+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.create takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.create takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_create_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-void *cookie;
-(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
+(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_i_put_link_takes_cookie=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_i_put_link_takes_cookie=no
+ ac_cv_linux_func_i_create_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/namei.h>
int
struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-void *cookie;
-(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
+(void)_inode.i_op->create(&_inode, &_dentry, 0, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_i_put_link_takes_cookie=yes
+ ac_cv_linux_func_i_create_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_i_put_link_takes_cookie=no
+ ac_cv_linux_func_i_create_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_put_link_takes_cookie" >&5
-echo "${ECHO_T}$ac_cv_linux_func_i_put_link_takes_cookie" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_create_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_create_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether dentry_operations.d_revalidate takes a nameidata" >&5
-echo $ECHO_N "checking whether dentry_operations.d_revalidate takes a nameidata... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_d_revalidate_takes_nameidata+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.lookup takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.lookup takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_lookup_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
+struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
+(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_lookup_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_d_revalidate_takes_nameidata=no
+ ac_cv_linux_func_i_lookup_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/namei.h>
int
main ()
{
+struct inode _inode;
struct dentry _dentry;
struct nameidata _nameidata;
-(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
+(void)_inode.i_op->lookup(&_inode, &_dentry, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ ac_cv_linux_func_i_lookup_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_d_revalidate_takes_nameidata=no
+ ac_cv_linux_func_i_lookup_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_d_revalidate_takes_nameidata" >&5
-echo "${ECHO_T}$ac_cv_linux_func_d_revalidate_takes_nameidata" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_lookup_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_lookup_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether file_operations.flush takes a fl_owner_t" >&5
-echo $ECHO_N "checking whether file_operations.flush takes a fl_owner_t... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_f_flush_takes_fl_owner_t+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.permission takes a nameidata" >&5
+echo $ECHO_N "checking whether inode_operations.permission takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_permission_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/namei.h>
void conftest(void)
{
struct inode _inode;
-struct file _file;
-fl_owner_t id;
-(void)_inode.i_fop->flush(&_file, &id);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_f_flush_takes_fl_owner_t=no
+ ac_cv_linux_func_i_permission_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
+#include <linux/namei.h>
int
main ()
{
struct inode _inode;
-struct file _file;
-fl_owner_t id;
-(void)_inode.i_fop->flush(&_file, &id);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_inode.i_op->permission(&_inode, 0, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ ac_cv_linux_func_i_permission_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_f_flush_takes_fl_owner_t=no
+ ac_cv_linux_func_i_permission_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_f_flush_takes_fl_owner_t" >&5
-echo "${ECHO_T}$ac_cv_linux_func_f_flush_takes_fl_owner_t" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_permission_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_permission_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking whether address_space_operations.writepage takes a writeback_control" >&5
-echo $ECHO_N "checking whether address_space_operations.writepage takes a writeback_control... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_a_writepage_takes_writeback_control+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether inode_operations.put_link takes an opaque cookie" >&5
+echo $ECHO_N "checking whether inode_operations.put_link takes an opaque cookie... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_i_put_link_takes_cookie+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/writeback.h>
+#include <linux/namei.h>
void conftest(void)
{
-struct address_space_operations _aops;
-struct page _page;
-struct writeback_control _writeback_control;
-(void)_aops.writepage(&_page, &_writeback_control);
+struct inode _inode;
+struct dentry _dentry;
+struct nameidata _nameidata;
+void *cookie;
+(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_put_link_takes_cookie=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_a_writepage_takes_writeback_control=no
+ ac_cv_linux_func_i_put_link_takes_cookie=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/writeback.h>
+#include <linux/namei.h>
int
main ()
{
-struct address_space_operations _aops;
-struct page _page;
-struct writeback_control _writeback_control;
-(void)_aops.writepage(&_page, &_writeback_control);
+struct inode _inode;
+struct dentry _dentry;
+struct nameidata _nameidata;
+void *cookie;
+(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ ac_cv_linux_func_i_put_link_takes_cookie=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_a_writepage_takes_writeback_control=no
+ ac_cv_linux_func_i_put_link_takes_cookie=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_a_writepage_takes_writeback_control" >&5
-echo "${ECHO_T}$ac_cv_linux_func_a_writepage_takes_writeback_control" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_i_put_link_takes_cookie" >&5
+echo "${ECHO_T}$ac_cv_linux_func_i_put_link_takes_cookie" >&6; }
- { echo "$as_me:$LINENO: checking for flock in struct file_operations" >&5
-echo $ECHO_N "checking for flock in struct file_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_fop_has_flock+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether dentry_operations.d_revalidate takes a nameidata" >&5
+echo $ECHO_N "checking whether dentry_operations.d_revalidate takes a nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_d_revalidate_takes_nameidata+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
/* end confdefs.h */
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/namei.h>
void conftest(void)
{
-struct file_operations _fop;
-_fop.flock(NULL, 0, NULL);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_fop_has_flock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_fop_has_flock=no
+ ac_cv_linux_func_d_revalidate_takes_nameidata=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
+#include <linux/namei.h>
int
main ()
{
-struct file_operations _fop;
-_fop.flock(NULL, 0, NULL);
+struct dentry _dentry;
+struct nameidata _nameidata;
+(void)_dentry.d_op->d_revalidate(&_dentry, &_nameidata);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_fop_has_flock=yes
+ ac_cv_linux_func_d_revalidate_takes_nameidata=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_fop_has_flock=no
+ ac_cv_linux_func_d_revalidate_takes_nameidata=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_flock" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_flock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_d_revalidate_takes_nameidata" >&5
+echo "${ECHO_T}$ac_cv_linux_func_d_revalidate_takes_nameidata" >&6; }
- { echo "$as_me:$LINENO: checking for sendfile in struct file_operations" >&5
-echo $ECHO_N "checking for sendfile in struct file_operations... $ECHO_C" >&6; }
- if test "${ac_cv_linux_fs_struct_fop_has_sendfile+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether file_operations.flush takes a fl_owner_t" >&5
+echo $ECHO_N "checking whether file_operations.flush takes a fl_owner_t... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_f_flush_takes_fl_owner_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-struct file_operations _fop;
-_fop.sendfile(NULL, NULL, 0, 0, NULL);
+struct inode _inode;
+struct file _file;
+fl_owner_t id;
+(void)_inode.i_fop->flush(&_file, &id);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_fs_struct_fop_has_sendfile=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_fs_struct_fop_has_sendfile=no
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-struct file_operations _fop;
-_fop.sendfile(NULL, NULL, 0, 0, NULL);
+struct inode _inode;
+struct file _file;
+fl_owner_t id;
+(void)_inode.i_fop->flush(&_file, &id);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_fs_struct_fop_has_sendfile=yes
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_fs_struct_fop_has_sendfile=no
+ ac_cv_linux_func_f_flush_takes_fl_owner_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_sendfile" >&5
-echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_sendfile" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_f_flush_takes_fl_owner_t" >&5
+echo "${ECHO_T}$ac_cv_linux_func_f_flush_takes_fl_owner_t" >&6; }
- { echo "$as_me:$LINENO: checking for linux/syscall.h in kernel" >&5
-echo $ECHO_N "checking for linux/syscall.h in kernel... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/syscall.h"; then
- ac_linux_syscall=yes
- { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
-echo "${ECHO_T}$ac_linux_syscall" >&6; }
- else
- ac_linux_syscall=no
- { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
-echo "${ECHO_T}$ac_linux_syscall" >&6; }
+ { echo "$as_me:$LINENO: checking whether address_space_operations.writepage takes a writeback_control" >&5
+echo $ECHO_N "checking whether address_space_operations.writepage takes a writeback_control... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_a_writepage_takes_writeback_control+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/writeback.h>
- { echo "$as_me:$LINENO: checking for linux/seq_file.h in kernel" >&5
-echo $ECHO_N "checking for linux/seq_file.h in kernel... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/seq_file.h"; then
- ac_linux_seq_file=yes
- { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
-echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+void conftest(void)
+{
+struct address_space_operations _aops;
+struct page _page;
+struct writeback_control _writeback_control;
+(void)_aops.writepage(&_page, &_writeback_control);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_func_a_writepage_takes_writeback_control=no
+ fi; rm -fr conftest.err conftest.dir
else
- ac_linux_seq_file=no
- { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
-echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/writeback.h>
+int
+main ()
+{
+struct address_space_operations _aops;
+struct page _page;
+struct writeback_control _writeback_control;
+(void)_aops.writepage(&_page, &_writeback_control);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_func_a_writepage_takes_writeback_control=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
fi
+fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_a_writepage_takes_writeback_control" >&5
+echo "${ECHO_T}$ac_cv_linux_func_a_writepage_takes_writeback_control" >&6; }
- { echo "$as_me:$LINENO: checking for 3rd argument in posix_lock_file found in new kernels" >&5
-echo $ECHO_N "checking for 3rd argument in posix_lock_file found in new kernels... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_posix_lock_file_wait_arg+set}" = set; then
+ { echo "$as_me:$LINENO: checking for flock in struct file_operations" >&5
+echo $ECHO_N "checking for flock in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_flock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-posix_lock_file(0,0,0);
+struct file_operations _fop;
+_fop.flock(NULL, 0, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_flock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+ ac_cv_linux_fs_struct_fop_has_flock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/fs.h>
int
main ()
{
-posix_lock_file(0,0,0);
+struct file_operations _fop;
+_fop.flock(NULL, 0, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ ac_cv_linux_fs_struct_fop_has_flock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+ ac_cv_linux_fs_struct_fop_has_flock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_posix_lock_file_wait_arg" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_posix_lock_file_wait_arg" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_flock" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_flock" >&6; }
-{ echo "$as_me:$LINENO: checking for SELinux kernel" >&5
-echo $ECHO_N "checking for SELinux kernel... $ECHO_C" >&6; }
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
-if test "${ac_cv_linux_kernel_is_selinux+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sendfile in struct file_operations" >&5
+echo $ECHO_N "checking for sendfile in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_sendfile+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-cat >conftest.$ac_ext <<_ACEOF
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+struct file_operations _fop;
+_fop.sendfile(NULL, NULL, 0, 0, NULL);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_sendfile=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_fs_struct_fop_has_sendfile=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+struct file_operations _fop;
+_fop.sendfile(NULL, NULL, 0, 0, NULL);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_fs_struct_fop_has_sendfile=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_fs_struct_fop_has_sendfile=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_sendfile" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_sendfile" >&6; }
+
+ { echo "$as_me:$LINENO: checking for splice_write and splice_read in struct file_operations" >&5
+echo $ECHO_N "checking for splice_write and splice_read in struct file_operations... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_fs_struct_fop_has_splice+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_splice=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_fs_struct_fop_has_splice=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_fs_struct_fop_has_splice=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_fs_struct_fop_has_splice=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_fs_struct_fop_has_splice" >&5
+echo "${ECHO_T}$ac_cv_linux_fs_struct_fop_has_splice" >&6; }
+
+ { echo "$as_me:$LINENO: checking for linux/syscall.h in kernel" >&5
+echo $ECHO_N "checking for linux/syscall.h in kernel... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/syscall.h"; then
+ ac_linux_syscall=yes
+ { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
+echo "${ECHO_T}$ac_linux_syscall" >&6; }
+ else
+ ac_linux_syscall=no
+ { echo "$as_me:$LINENO: result: $ac_linux_syscall" >&5
+echo "${ECHO_T}$ac_linux_syscall" >&6; }
+ fi
+
+
+ { echo "$as_me:$LINENO: checking for linux/seq_file.h in kernel" >&5
+echo $ECHO_N "checking for linux/seq_file.h in kernel... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/seq_file.h"; then
+ ac_linux_seq_file=yes
+ { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
+echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+ else
+ ac_linux_seq_file=no
+ { echo "$as_me:$LINENO: result: $ac_linux_seq_file" >&5
+echo "${ECHO_T}$ac_linux_seq_file" >&6; }
+ fi
+
+
+ { echo "$as_me:$LINENO: checking for 3rd argument in posix_lock_file found in new kernels" >&5
+echo $ECHO_N "checking for 3rd argument in posix_lock_file found in new kernels... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_posix_lock_file_wait_arg+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+posix_lock_file(0,0,0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+posix_lock_file(0,0,0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_kernel_posix_lock_file_wait_arg=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_posix_lock_file_wait_arg" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_posix_lock_file_wait_arg" >&6; }
+
+{ echo "$as_me:$LINENO: checking for SELinux kernel" >&5
+echo $ECHO_N "checking for SELinux kernel... $ECHO_C" >&6; }
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
+if test "${ac_cv_linux_kernel_is_selinux+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/autoconf.h>
+int
+main ()
+{
+#ifndef CONFIG_SECURITY_SELINUX
+ #error not SELINUX
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_kernel_is_selinux=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_kernel_is_selinux=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_is_selinux" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_is_selinux" >&6; }
+CPPFLAGS="$save_CPPFLAGS"
+
+ { echo "$as_me:$LINENO: checking for 5th argument in sock_create found in some SELinux kernels" >&5
+echo $ECHO_N "checking for 5th argument in sock_create found in some SELinux kernels... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_sock_create_v+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/net.h>
+
+void conftest(void)
+{
+sock_create(0,0,0,0,0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_sock_create_v=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_kernel_sock_create_v=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/net.h>
+int
+main ()
+{
+sock_create(0,0,0,0,0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_kernel_sock_create_v=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_kernel_sock_create_v=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_sock_create_v" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_sock_create_v" >&6; }
+
+ { echo "$as_me:$LINENO: checking for page_follow_link_light vs page_follow_link" >&5
+echo $ECHO_N "checking for page_follow_link_light vs page_follow_link... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_kernel_page_follow_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/fs.h>
+
+void conftest(void)
+{
+page_follow_link(0,0);
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_page_follow_link=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_kernel_page_follow_link=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+int
+main ()
+{
+page_follow_link(0,0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_kernel_page_follow_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_kernel_page_follow_link=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CPPFLAGS="$save_CPPFLAGS"
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_page_follow_link" >&5
+echo "${ECHO_T}$ac_cv_linux_kernel_page_follow_link" >&6; }
+
+ { echo "$as_me:$LINENO: checking for linux/key-type.h existance" >&5
+echo $ECHO_N "checking for linux/key-type.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_key_type_h_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/key-type.h>
+
+void conftest(void)
+{
+return;
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_key_type_h_exists=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_key_type_h_exists=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <linux/kernel.h>
+#include <linux/key-type.h>
+int
+main ()
+{
+return;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_linux_key_type_h_exists=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_key_type_h_exists=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+fi
+
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_key_type_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_key_type_h_exists" >&6; }
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KEY_TYPE_H_EXISTS 1
+_ACEOF
+
+ fi
+
+RHCONFIG_SP=""
+RHCONFIG_MP=""
+if test "x$enable_redhat_buildsys" = "xyes"; then
+ { echo "$as_me:$LINENO: WARNING: Configured to build from a Red Hat SPEC file" >&5
+echo "$as_me: WARNING: Configured to build from a Red Hat SPEC file" >&2;}
+else
+ { echo "$as_me:$LINENO: checking for redhat kernel configuration" >&5
+echo $ECHO_N "checking for redhat kernel configuration... $ECHO_C" >&6; }
+ if test -f "${LINUX_KERNEL_PATH}/include/linux/rhconfig.h"; then
+ ac_linux_rhconfig=yes
+ RHCONFIG_SP="-D__BOOT_KERNEL_UP=1 -D__BOOT_KERNEL_SMP=0"
+ RHCONFIG_MP="-D__BOOT_KERNEL_UP=0 -D__BOOT_KERNEL_SMP=1"
+ { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
+echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
+ if test ! -f "/boot/kernel.h"; then
+ { echo "$as_me:$LINENO: WARNING: /boot/kernel.h does not exist. build may fail" >&5
+echo "$as_me: WARNING: /boot/kernel.h does not exist. build may fail" >&2;}
+ fi
+ else
+ ac_linux_rhconfig=no
+ { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
+echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
+ fi
+fi
+
+
+
+
+ { echo "$as_me:$LINENO: checking for recalc_sigpending arg type" >&5
+echo $ECHO_N "checking for recalc_sigpending arg type... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_recalc_sigpending_takes_void+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+ if test $AFS_SYSKVERS -ge 26 ; then
+ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
+ if mkdir conftest.dir &&
+ cat >conftest.dir/Makefile <<_ACEOF &&
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
+
+obj-m += conftest.o
+_ACEOF
+ cat >conftest.dir/conftest.c <<\_ACEOF &&
+/* confdefs.h */
+_ACEOF
+ cat confdefs.h >>conftest.dir/conftest.c &&
+ cat >>conftest.dir/conftest.c <<\_ACEOF &&
+/* end confdefs.h */
+#include <linux/module.h>
+#include <linux/sched.h>
+
+void conftest(void)
+{
+recalc_sigpending();
+}
+
+MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+_ACEOF
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ else
+ sed '/^ *+/d' conftest.err >&5
+ echo "$as_me: failed using Makefile:" >&5
+ sed 's/^/| /' conftest.dir/Makefile >&5
+ echo "$as_me: and program was:" >&5
+ sed 's/^/| /' conftest.dir/conftest.c >&5
+ ac_cv_linux_func_recalc_sigpending_takes_void=no
+ fi; rm -fr conftest.err conftest.dir
+ else
+
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/autoconf.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-#ifndef CONFIG_SECURITY_SELINUX
- #error not SELINUX
- #endif
+recalc_sigpending();
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_is_selinux=yes
+ ac_cv_linux_func_recalc_sigpending_takes_void=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_is_selinux=no
+ ac_cv_linux_func_recalc_sigpending_takes_void=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
fi
-{ echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_is_selinux" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_is_selinux" >&6; }
-CPPFLAGS="$save_CPPFLAGS"
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_recalc_sigpending_takes_void" >&5
+echo "${ECHO_T}$ac_cv_linux_func_recalc_sigpending_takes_void" >&6; }
- { echo "$as_me:$LINENO: checking for 5th argument in sock_create found in some SELinux kernels" >&5
-echo $ECHO_N "checking for 5th argument in sock_create found in some SELinux kernels... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_sock_create_v+set}" = set; then
+ { echo "$as_me:$LINENO: checking for parent in struct task_struct" >&5
+echo $ECHO_N "checking for parent in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_parent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/net.h>
+#include <linux/sched.h>
void conftest(void)
{
-sock_create(0,0,0,0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.parent);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_sock_create_v=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_parent=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_sock_create_v=no
+ ac_cv_linux_sched_struct_task_struct_has_parent=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/net.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-sock_create(0,0,0,0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.parent);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_sock_create_v=yes
+ ac_cv_linux_sched_struct_task_struct_has_parent=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_sock_create_v=no
+ ac_cv_linux_sched_struct_task_struct_has_parent=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_sock_create_v" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_sock_create_v" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_parent" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_parent" >&6; }
- { echo "$as_me:$LINENO: checking for page_follow_link_light vs page_follow_link" >&5
-echo $ECHO_N "checking for page_follow_link_light vs page_follow_link... $ECHO_C" >&6; }
- if test "${ac_cv_linux_kernel_page_follow_link+set}" = set; then
+ { echo "$as_me:$LINENO: checking for real_parent in struct task_struct" >&5
+echo $ECHO_N "checking for real_parent in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_real_parent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
void conftest(void)
{
-page_follow_link(0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.real_parent);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_kernel_page_follow_link=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_kernel_page_follow_link=no
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
int
main ()
{
-page_follow_link(0,0);
+struct task_struct _tsk;
+printk("%d\n", _tsk.real_parent);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_kernel_page_follow_link=yes
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_kernel_page_follow_link=no
+ ac_cv_linux_sched_struct_task_struct_has_real_parent=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
- fi
- CPPFLAGS="$save_CPPFLAGS"
-fi
-
- { echo "$as_me:$LINENO: result: $ac_cv_linux_kernel_page_follow_link" >&5
-echo "${ECHO_T}$ac_cv_linux_kernel_page_follow_link" >&6; }
-
-RHCONFIG_SP=""
-RHCONFIG_MP=""
-if test "x$enable_redhat_buildsys" = "xyes"; then
- { echo "$as_me:$LINENO: WARNING: Configured to build from a Red Hat SPEC file" >&5
-echo "$as_me: WARNING: Configured to build from a Red Hat SPEC file" >&2;}
-else
- { echo "$as_me:$LINENO: checking for redhat kernel configuration" >&5
-echo $ECHO_N "checking for redhat kernel configuration... $ECHO_C" >&6; }
- if test -f "${LINUX_KERNEL_PATH}/include/linux/rhconfig.h"; then
- ac_linux_rhconfig=yes
- RHCONFIG_SP="-D__BOOT_KERNEL_UP=1 -D__BOOT_KERNEL_SMP=0"
- RHCONFIG_MP="-D__BOOT_KERNEL_UP=0 -D__BOOT_KERNEL_SMP=1"
- { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
-echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
- if test ! -f "/boot/kernel.h"; then
- { echo "$as_me:$LINENO: WARNING: /boot/kernel.h does not exist. build may fail" >&5
-echo "$as_me: WARNING: /boot/kernel.h does not exist. build may fail" >&2;}
- fi
- else
- ac_linux_rhconfig=no
- { echo "$as_me:$LINENO: result: $ac_linux_rhconfig" >&5
-echo "${ECHO_T}$ac_linux_rhconfig" >&6; }
fi
fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_real_parent" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_real_parent" >&6; }
-
-
- { echo "$as_me:$LINENO: checking for recalc_sigpending arg type" >&5
-echo $ECHO_N "checking for recalc_sigpending arg type... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_recalc_sigpending_takes_void+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sig in struct task_struct" >&5
+echo $ECHO_N "checking for sig in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sig+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
-recalc_sigpending();
+struct task_struct _tsk;
+printk("%d\n", _tsk.sig);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sig=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_recalc_sigpending_takes_void=no
+ ac_cv_linux_sched_struct_task_struct_has_sig=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
-recalc_sigpending();
+struct task_struct _tsk;
+printk("%d\n", _tsk.sig);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ ac_cv_linux_sched_struct_task_struct_has_sig=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_recalc_sigpending_takes_void=no
+ ac_cv_linux_sched_struct_task_struct_has_sig=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_recalc_sigpending_takes_void" >&5
-echo "${ECHO_T}$ac_cv_linux_func_recalc_sigpending_takes_void" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sig" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sig" >&6; }
- { echo "$as_me:$LINENO: checking for parent in struct task_struct" >&5
-echo $ECHO_N "checking for parent in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_parent+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sighand in struct task_struct" >&5
+echo $ECHO_N "checking for sighand in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sighand+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.parent);
+printk("%d\n", _tsk.sighand);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_parent=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sighand=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_parent=no
+ ac_cv_linux_sched_struct_task_struct_has_sighand=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.parent);
+printk("%d\n", _tsk.sighand);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_parent=yes
+ ac_cv_linux_sched_struct_task_struct_has_sighand=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_parent=no
+ ac_cv_linux_sched_struct_task_struct_has_sighand=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_parent" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_parent" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sighand" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sighand" >&6; }
- { echo "$as_me:$LINENO: checking for real_parent in struct task_struct" >&5
-echo $ECHO_N "checking for real_parent in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_real_parent+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sigmask_lock in struct task_struct" >&5
+echo $ECHO_N "checking for sigmask_lock in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_sigmask_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.real_parent);
+printk("%d\n", _tsk.sigmask_lock);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_real_parent=no
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.real_parent);
+printk("%d\n", _tsk.sigmask_lock);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_real_parent=yes
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_real_parent=no
+ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_real_parent" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_real_parent" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&6; }
- { echo "$as_me:$LINENO: checking for sig in struct task_struct" >&5
-echo $ECHO_N "checking for sig in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sig+set}" = set; then
+ { echo "$as_me:$LINENO: checking for rlim in struct task_struct" >&5
+echo $ECHO_N "checking for rlim in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_rlim+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sig);
+printk("%d\n", _tsk.rlim);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sig=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_rlim=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sig=no
+ ac_cv_linux_sched_struct_task_struct_has_rlim=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sig);
+printk("%d\n", _tsk.rlim);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sig=yes
+ ac_cv_linux_sched_struct_task_struct_has_rlim=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sig=no
+ ac_cv_linux_sched_struct_task_struct_has_rlim=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sig" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sig" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_rlim" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_rlim" >&6; }
- { echo "$as_me:$LINENO: checking for sighand in struct task_struct" >&5
-echo $ECHO_N "checking for sighand in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sighand+set}" = set; then
+ { echo "$as_me:$LINENO: checking for signal->rlim in struct task_struct" >&5
+echo $ECHO_N "checking for signal->rlim in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_signal_rlim+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sighand);
+printk("%d\n", _tsk.signal->rlim);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sighand=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sighand=no
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sighand);
+printk("%d\n", _tsk.signal->rlim);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sighand=yes
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sighand=no
+ ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sighand" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sighand" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&6; }
- { echo "$as_me:$LINENO: checking for sigmask_lock in struct task_struct" >&5
-echo $ECHO_N "checking for sigmask_lock in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_sigmask_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for exit_state in struct task_struct" >&5
+echo $ECHO_N "checking for exit_state in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_exit_state+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sigmask_lock);
+printk("%d\n", _tsk.exit_state);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.sigmask_lock);
+printk("%d\n", _tsk.exit_state);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no
+ ac_cv_linux_sched_struct_task_struct_has_exit_state=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_exit_state" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_exit_state" >&6; }
- { echo "$as_me:$LINENO: checking for rlim in struct task_struct" >&5
-echo $ECHO_N "checking for rlim in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_rlim+set}" = set; then
+ { echo "$as_me:$LINENO: checking for tgid in struct task_struct" >&5
+echo $ECHO_N "checking for tgid in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_tgid+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.rlim);
+printk("%d\n", _tsk.tgid);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_rlim=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_tgid=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_tgid=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.rlim);
+printk("%d\n", _tsk.tgid);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_rlim=yes
+ ac_cv_linux_sched_struct_task_struct_has_tgid=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_tgid=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_rlim" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_rlim" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_tgid" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_tgid" >&6; }
- { echo "$as_me:$LINENO: checking for signal->rlim in struct task_struct" >&5
-echo $ECHO_N "checking for signal->rlim in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_signal_rlim+set}" = set; then
+ { echo "$as_me:$LINENO: checking for todo in struct task_struct" >&5
+echo $ECHO_N "checking for todo in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_todo+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.signal->rlim);
+printk("%d\n", _tsk.todo);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_todo=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_todo=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.signal->rlim);
+printk("%d\n", _tsk.todo);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ ac_cv_linux_sched_struct_task_struct_has_todo=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no
+ ac_cv_linux_sched_struct_task_struct_has_todo=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_todo" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_todo" >&6; }
- { echo "$as_me:$LINENO: checking for exit_state in struct task_struct" >&5
-echo $ECHO_N "checking for exit_state in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_exit_state+set}" = set; then
+ { echo "$as_me:$LINENO: checking for thread_info in struct task_struct" >&5
+echo $ECHO_N "checking for thread_info in struct task_struct... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sched_struct_task_struct_has_thread_info+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
void conftest(void)
{
struct task_struct _tsk;
-printk("%d\n", _tsk.exit_state);
+printk("%d\n", _tsk.thread_info);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_exit_state=no
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/sched.h>
int
main ()
{
struct task_struct _tsk;
-printk("%d\n", _tsk.exit_state);
+printk("%d\n", _tsk.thread_info);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_exit_state=yes
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_exit_state=no
+ ac_cv_linux_sched_struct_task_struct_has_thread_info=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_exit_state" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_exit_state" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_thread_info" >&5
+echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_thread_info" >&6; }
- { echo "$as_me:$LINENO: checking for tgid in struct task_struct" >&5
-echo $ECHO_N "checking for tgid in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_tgid+set}" = set; then
+ { echo "$as_me:$LINENO: checking for exported tasklist_lock" >&5
+echo $ECHO_N "checking for exported tasklist_lock... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_exports_tasklist_lock+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
+
#include <linux/sched.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.tgid);
+
+extern rwlock_t tasklist_lock __attribute__((weak));
+read_lock(&tasklist_lock);
+
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_tgid=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_tasklist_lock=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_tgid=no
+ ac_cv_linux_exports_tasklist_lock=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
+
#include <linux/sched.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.tgid);
+
+extern rwlock_t tasklist_lock __attribute__((weak));
+read_lock(&tasklist_lock);
+
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_tgid=yes
+ ac_cv_linux_exports_tasklist_lock=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_tgid=no
+ ac_cv_linux_exports_tasklist_lock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_tgid" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_tgid" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_exports_tasklist_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_exports_tasklist_lock" >&6; }
- { echo "$as_me:$LINENO: checking for todo in struct task_struct" >&5
-echo $ECHO_N "checking for todo in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_todo+set}" = set; then
+ { echo "$as_me:$LINENO: checking for struct vfsmount * in get_sb_nodev()" >&5
+echo $ECHO_N "checking for struct vfsmount * in get_sb_nodev()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_get_sb_has_struct_vfsmount+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/fs.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.todo);
+get_sb_nodev(0,0,0,0,0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_todo=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_get_sb_has_struct_vfsmount=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_todo=no
+ ac_cv_linux_get_sb_has_struct_vfsmount=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.todo);
+get_sb_nodev(0,0,0,0,0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_todo=yes
+ ac_cv_linux_get_sb_has_struct_vfsmount=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_todo=no
+ ac_cv_linux_get_sb_has_struct_vfsmount=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_todo" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_todo" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_get_sb_has_struct_vfsmount" >&5
+echo "${ECHO_T}$ac_cv_linux_get_sb_has_struct_vfsmount" >&6; }
- { echo "$as_me:$LINENO: checking for thread_info in struct task_struct" >&5
-echo $ECHO_N "checking for thread_info in struct task_struct... $ECHO_C" >&6; }
- if test "${ac_cv_linux_sched_struct_task_struct_has_thread_info+set}" = set; then
+ { echo "$as_me:$LINENO: checking for dentry in statfs" >&5
+echo $ECHO_N "checking for dentry in statfs... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_statfs_takes_dentry+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
+#include <linux/fs.h>
+#include <linux/statfs.h>
void conftest(void)
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.thread_info);
+
+extern int vfs_statfs(struct dentry *, struct kstatfs *);
+
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_statfs_takes_dentry=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_sched_struct_task_struct_has_thread_info=no
+ ac_cv_linux_statfs_takes_dentry=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+#include <linux/statfs.h>
int
main ()
{
-struct task_struct _tsk;
-printk("%d\n", _tsk.thread_info);
+
+extern int vfs_statfs(struct dentry *, struct kstatfs *);
+
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_sched_struct_task_struct_has_thread_info=yes
+ ac_cv_linux_statfs_takes_dentry=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_sched_struct_task_struct_has_thread_info=no
+ ac_cv_linux_statfs_takes_dentry=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_sched_struct_task_struct_has_thread_info" >&5
-echo "${ECHO_T}$ac_cv_linux_sched_struct_task_struct_has_thread_info" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_statfs_takes_dentry" >&5
+echo "${ECHO_T}$ac_cv_linux_statfs_takes_dentry" >&6; }
- { echo "$as_me:$LINENO: checking for exported tasklist_lock" >&5
-echo $ECHO_N "checking for exported tasklist_lock... $ECHO_C" >&6; }
- if test "${ac_cv_linux_exports_tasklist_lock+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux/freezer.h existance" >&5
+echo $ECHO_N "checking for linux/freezer.h existance... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_freezer_h_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-
-#include <linux/sched.h>
+#include <linux/freezer.h>
void conftest(void)
{
-
-extern rwlock_t tasklist_lock __attribute__((weak));
-read_lock(&tasklist_lock);
-
+return;
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_exports_tasklist_lock=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_freezer_h_exists=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_exports_tasklist_lock=no
+ ac_cv_linux_freezer_h_exists=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
+#include <linux/kernel.h>
+#include <linux/freezer.h>
int
main ()
{
-
-extern rwlock_t tasklist_lock __attribute__((weak));
-read_lock(&tasklist_lock);
-
+return;
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_exports_tasklist_lock=yes
+ ac_cv_linux_freezer_h_exists=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_exports_tasklist_lock=no
+ ac_cv_linux_freezer_h_exists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_exports_tasklist_lock" >&5
-echo "${ECHO_T}$ac_cv_linux_exports_tasklist_lock" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_freezer_h_exists" >&5
+echo "${ECHO_T}$ac_cv_linux_freezer_h_exists" >&6; }
+ if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
- { echo "$as_me:$LINENO: checking for struct vfsmount * in get_sb_nodev()" >&5
-echo $ECHO_N "checking for struct vfsmount * in get_sb_nodev()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_get_sb_has_struct_vfsmount+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define FREEZER_H_EXISTS 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define FREEZER_H_EXISTS 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking whether refrigerator takes PF_FREEZE" >&5
+echo $ECHO_N "checking whether refrigerator takes PF_FREEZE... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_func_refrigerator_takes_pf_freeze+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sched.h>
+#ifdef FREEZER_H_EXISTS
+#include <linux/freezer.h>
+#endif
void conftest(void)
{
-get_sb_nodev(0,0,0,0,0);
+refrigerator(PF_FREEZE);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_get_sb_has_struct_vfsmount=no
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#ifdef FREEZER_H_EXISTS
+#include <linux/freezer.h>
+#endif
int
main ()
{
-get_sb_nodev(0,0,0,0,0);
+refrigerator(PF_FREEZE);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_get_sb_has_struct_vfsmount=no
+ ac_cv_linux_func_refrigerator_takes_pf_freeze=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_get_sb_has_struct_vfsmount" >&5
-echo "${ECHO_T}$ac_cv_linux_get_sb_has_struct_vfsmount" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_func_refrigerator_takes_pf_freeze" >&5
+echo "${ECHO_T}$ac_cv_linux_func_refrigerator_takes_pf_freeze" >&6; }
- { echo "$as_me:$LINENO: checking for dentry in statfs" >&5
-echo $ECHO_N "checking for dentry in statfs... $ECHO_C" >&6; }
- if test "${ac_cv_linux_statfs_takes_dentry+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux kernel keyring support" >&5
+echo $ECHO_N "checking for linux kernel keyring support... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_keyring_support+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/statfs.h>
+#include <linux/rwsem.h>
+#ifdef KEY_TYPE_H_EXISTS
+#include <linux/key-type.h>
+#endif
+#include <linux/key.h>
+#include <linux/keyctl.h>
void conftest(void)
{
-
-extern int vfs_statfs(struct dentry *, struct kstatfs *);
-
+#ifdef CONFIG_KEYS
+request_key(NULL, NULL, NULL);
+#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
+#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
+#endif
+#else
+#error rebuild your kernel with CONFIG_KEYS
+#endif
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_statfs_takes_dentry=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_keyring_support=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_statfs_takes_dentry=no
+ ac_cv_linux_keyring_support=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
-#include <linux/statfs.h>
+
+#include <linux/kernel.h>
+#include <linux/rwsem.h>
+#ifdef KEY_TYPE_H_EXISTS
+#include <linux/key-type.h>
+#endif
+#include <linux/key.h>
+#include <linux/keyctl.h>
int
main ()
{
-
-extern int vfs_statfs(struct dentry *, struct kstatfs *);
-
+#ifdef CONFIG_KEYS
+request_key(NULL, NULL, NULL);
+#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
+#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
+#endif
+#else
+#error rebuild your kernel with CONFIG_KEYS
+#endif
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_statfs_takes_dentry=yes
+ ac_cv_linux_keyring_support=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_statfs_takes_dentry=no
+ ac_cv_linux_keyring_support=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_statfs_takes_dentry" >&5
-echo "${ECHO_T}$ac_cv_linux_statfs_takes_dentry" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_keyring_support" >&5
+echo "${ECHO_T}$ac_cv_linux_keyring_support" >&6; }
+ if test "x$ac_cv_linux_keyring_support" = "xyes"; then
- { echo "$as_me:$LINENO: checking for linux/freezer.h existance" >&5
-echo $ECHO_N "checking for linux/freezer.h existance... $ECHO_C" >&6; }
- if test "${ac_cv_linux_freezer_h_exists+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define LINUX_KEYRING_SUPPORT 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking if key_alloc() takes a struct task *" >&5
+echo $ECHO_N "checking if key_alloc() takes a struct task *... $ECHO_C" >&6; }
+ if test "${ac_cv_key_alloc_needs_struct_task+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/freezer.h>
+#include <linux/rwsem.h>
+#include <linux/key.h>
+
void conftest(void)
{
-return;
+(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_freezer_h_exists=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_struct_task=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_freezer_h_exists=no
+ ac_cv_key_alloc_needs_struct_task=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/freezer.h>
+
+#include <linux/kernel.h>
+#include <linux/rwsem.h>
+#include <linux/key.h>
+
int
main ()
{
-return;
+(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_freezer_h_exists=yes
+ ac_cv_key_alloc_needs_struct_task=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_freezer_h_exists=no
+ ac_cv_key_alloc_needs_struct_task=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_freezer_h_exists" >&5
-echo "${ECHO_T}$ac_cv_linux_freezer_h_exists" >&6; }
- if test "x$ac_cv_linux_freezer_h_exists" = "xyes"; then
+ { echo "$as_me:$LINENO: result: $ac_cv_key_alloc_needs_struct_task" >&5
+echo "${ECHO_T}$ac_cv_key_alloc_needs_struct_task" >&6; }
+ if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
-#define FREEZER_H_EXISTS 1
+#define KEY_ALLOC_NEEDS_STRUCT_TASK 1
_ACEOF
fi
- if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
-
-cat >>confdefs.h <<\_ACEOF
-#define FREEZER_H_EXISTS 1
-_ACEOF
-
- fi
- { echo "$as_me:$LINENO: checking whether refrigerator takes PF_FREEZE" >&5
-echo $ECHO_N "checking whether refrigerator takes PF_FREEZE... $ECHO_C" >&6; }
- if test "${ac_cv_linux_func_refrigerator_takes_pf_freeze+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
+echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_do_sync_read+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sched.h>
-#ifdef FREEZER_H_EXISTS
-#include <linux/freezer.h>
-#endif
+#include <linux/fs.h>
void conftest(void)
{
-refrigerator(PF_FREEZE);
+do_sync_read(NULL, NULL, 0, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_do_sync_read=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+ ac_cv_linux_do_sync_read=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sched.h>
-#ifdef FREEZER_H_EXISTS
-#include <linux/freezer.h>
-#endif
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-refrigerator(PF_FREEZE);
+do_sync_read(NULL, NULL, 0, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ ac_cv_linux_do_sync_read=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_func_refrigerator_takes_pf_freeze=no
+ ac_cv_linux_do_sync_read=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
+ CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_func_refrigerator_takes_pf_freeze" >&5
-echo "${ECHO_T}$ac_cv_linux_func_refrigerator_takes_pf_freeze" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
+echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
+ if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
- { echo "$as_me:$LINENO: checking for linux kernel keyring support" >&5
-echo $ECHO_N "checking for linux kernel keyring support... $ECHO_C" >&6; }
- if test "${ac_cv_linux_keyring_support+set}" = set; then
+cat >>confdefs.h <<\_ACEOF
+#define DO_SYNC_READ 1
+_ACEOF
+
+ fi
+
+ { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
+echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/rwsem.h>
-#include <linux/key.h>
-#include <linux/keyctl.h>
+#include <linux/fs.h>
void conftest(void)
{
-#ifdef CONFIG_KEYS
-request_key(NULL, NULL, NULL);
-#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
-#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
-#endif
-#else
-#error rebuild your kernel with CONFIG_KEYS
-#endif
+generic_file_aio_read(NULL, NULL, 0, 0);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_keyring_support=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_generic_file_aio_read=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_keyring_support=no
+ ac_cv_linux_generic_file_aio_read=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/rwsem.h>
-#include <linux/key.h>
-#include <linux/keyctl.h>
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
int
main ()
{
-#ifdef CONFIG_KEYS
-request_key(NULL, NULL, NULL);
-#if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH) || !defined(KEY_POS_SETATTR)
-#error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH or KEY_POS_SETATTR"
-#endif
-#else
-#error rebuild your kernel with CONFIG_KEYS
-#endif
+generic_file_aio_read(NULL, NULL, 0, 0);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_keyring_support=yes
+ ac_cv_linux_generic_file_aio_read=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_keyring_support=no
+ ac_cv_linux_generic_file_aio_read=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
+ CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_keyring_support" >&5
-echo "${ECHO_T}$ac_cv_linux_keyring_support" >&6; }
- if test "x$ac_cv_linux_keyring_support" = "xyes"; then
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
+echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
+ if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
-#define LINUX_KEYRING_SUPPORT 1
+#define GENERIC_FILE_AIO_READ 1
_ACEOF
fi
- { echo "$as_me:$LINENO: checking if key_alloc() takes a struct task *" >&5
-echo $ECHO_N "checking if key_alloc() takes a struct task *... $ECHO_C" >&6; }
- if test "${ac_cv_key_alloc_needs_struct_task+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether INIT_WORK has a _data argument" >&5
+echo $ECHO_N "checking whether INIT_WORK has a _data argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_init_work_has_data+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/rwsem.h>
-#include <linux/key.h>
-
+#include <linux/kernel.h>
+#include <linux/workqueue.h>
void conftest(void)
{
-(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+
+void f(struct work_struct *w) {}
+struct work_struct *w;
+int *i;
+INIT_WORK(w,f,i);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_key_alloc_needs_struct_task=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_init_work_has_data=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_key_alloc_needs_struct_task=no
+ ac_cv_linux_init_work_has_data=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/rwsem.h>
-#include <linux/key.h>
+#include <linux/kernel.h>
+#include <linux/kernel.h>
+#include <linux/workqueue.h>
int
main ()
{
-(void) key_alloc(NULL, NULL, 0, 0, NULL, 0, 0);
+
+void f(struct work_struct *w) {}
+struct work_struct *w;
+int *i;
+INIT_WORK(w,f,i);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_key_alloc_needs_struct_task=yes
+ ac_cv_linux_init_work_has_data=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_key_alloc_needs_struct_task=no
+ ac_cv_linux_init_work_has_data=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_key_alloc_needs_struct_task" >&5
-echo "${ECHO_T}$ac_cv_key_alloc_needs_struct_task" >&6; }
- if test "x$ac_cv_key_alloc_needs_struct_task" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define KEY_ALLOC_NEEDS_STRUCT_TASK 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_init_work_has_data" >&5
+echo "${ECHO_T}$ac_cv_linux_init_work_has_data" >&6; }
- { echo "$as_me:$LINENO: checking for linux do_sync_read()" >&5
-echo $ECHO_N "checking for linux do_sync_read()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_do_sync_read+set}" = set; then
+ { echo "$as_me:$LINENO: checking whether register_sysctl_table has an insert_at_head flag argument" >&5
+echo $ECHO_N "checking whether register_sysctl_table has an insert_at_head flag argument... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_register_sysctl_table_noflag+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sysctl.h>
void conftest(void)
{
-do_sync_read(NULL, NULL, 0, NULL);
+ctl_table *t;
+register_sysctl_table (t);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_do_sync_read=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_register_sysctl_table_noflag=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_do_sync_read=no
+ ac_cv_linux_register_sysctl_table_noflag=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sysctl.h>
int
main ()
{
-do_sync_read(NULL, NULL, 0, NULL);
+ctl_table *t;
+register_sysctl_table (t);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_do_sync_read=yes
+ ac_cv_linux_register_sysctl_table_noflag=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_do_sync_read=no
+ ac_cv_linux_register_sysctl_table_noflag=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_do_sync_read" >&5
-echo "${ECHO_T}$ac_cv_linux_do_sync_read" >&6; }
- if test "x$ac_cv_linux_do_sync_read" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define DO_SYNC_READ 1
-_ACEOF
-
- fi
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_register_sysctl_table_noflag" >&5
+echo "${ECHO_T}$ac_cv_linux_register_sysctl_table_noflag" >&6; }
- { echo "$as_me:$LINENO: checking for linux generic_file_aio_read()" >&5
-echo $ECHO_N "checking for linux generic_file_aio_read()... $ECHO_C" >&6; }
- if test "${ac_cv_linux_generic_file_aio_read+set}" = set; then
+ { echo "$as_me:$LINENO: checking for sysctl table checking" >&5
+echo $ECHO_N "checking for sysctl table checking... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_sysctl_table_checking+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/fs.h>
+#include <linux/sysctl.h>
void conftest(void)
{
-generic_file_aio_read(NULL, NULL, 0, 0);
+ extern int sysctl_check_table(int) __attribute__((weak));
+sysctl_check_table(NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_generic_file_aio_read=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sysctl_table_checking=no
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_generic_file_aio_read=no
+ ac_cv_linux_sysctl_table_checking=yes
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/fs.h>
+
+#include <linux/kernel.h>
+#include <linux/sysctl.h>
int
main ()
{
-generic_file_aio_read(NULL, NULL, 0, 0);
+ extern int sysctl_check_table(int) __attribute__((weak));
+sysctl_check_table(NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_generic_file_aio_read=yes
+ ac_cv_linux_sysctl_table_checking=no
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_generic_file_aio_read=no
+ ac_cv_linux_sysctl_table_checking=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
- CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_generic_file_aio_read" >&5
-echo "${ECHO_T}$ac_cv_linux_generic_file_aio_read" >&6; }
- if test "x$ac_cv_linux_generic_file_aio_read" = "xyes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define GENERIC_FILE_AIO_READ 1
-_ACEOF
-
- fi
+{ echo "$as_me:$LINENO: result: $ac_cv_linux_sysctl_table_checking" >&5
+echo "${ECHO_T}$ac_cv_linux_sysctl_table_checking" >&6; }
- { echo "$as_me:$LINENO: checking whether INIT_WORK has a _data argument" >&5
-echo $ECHO_N "checking whether INIT_WORK has a _data argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_init_work_has_data+set}" = set; then
+ { echo "$as_me:$LINENO: checking for linux iget()" >&5
+echo $ECHO_N "checking for linux iget()... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_have_iget+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/workqueue.h>
+#include <linux/fs.h>
void conftest(void)
{
-
-void f(struct work_struct *w) {}
-struct work_struct *w;
-int *i;
-INIT_WORK(w,f,i);
+iget(NULL, NULL);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_init_work_has_data=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_iget=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_init_work_has_data=no
+ ac_cv_linux_have_iget=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
#include <linux/kernel.h>
-#include <linux/workqueue.h>
+#include <linux/fs.h>
int
main ()
{
-
-void f(struct work_struct *w) {}
-struct work_struct *w;
-int *i;
-INIT_WORK(w,f,i);
+iget(NULL, NULL);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_init_work_has_data=yes
+ ac_cv_linux_have_iget=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_init_work_has_data=no
+ ac_cv_linux_have_iget=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CPPFLAGS="$ac_save_CPPFLAGS"
fi
+ CPPFLAGS="$save_CPPFLAGS"
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_init_work_has_data" >&5
-echo "${ECHO_T}$ac_cv_linux_init_work_has_data" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_have_iget" >&5
+echo "${ECHO_T}$ac_cv_linux_have_iget" >&6; }
- { echo "$as_me:$LINENO: checking whether register_sysctl_table has an insert_at_head flag argument" >&5
-echo $ECHO_N "checking whether register_sysctl_table has an insert_at_head flag argument... $ECHO_C" >&6; }
- if test "${ac_cv_linux_register_sysctl_table_noflag+set}" = set; then
+ { echo "$as_me:$LINENO: checking for path in struct nameidata" >&5
+echo $ECHO_N "checking for path in struct nameidata... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_struct_nameidata_has_path+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
cat >>conftest.dir/conftest.c <<\_ACEOF &&
/* end confdefs.h */
#include <linux/module.h>
-#include <linux/sysctl.h>
+#include <linux/namei.h>
void conftest(void)
{
-ctl_table *t;
-register_sysctl_table (t);
+struct nameidata _nd;
+printk("%x\n", _nd.path);
}
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
- then ac_cv_linux_register_sysctl_table_noflag=yes
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_nameidata_has_path=yes
else
sed '/^ *+/d' conftest.err >&5
echo "$as_me: failed using Makefile:" >&5
sed 's/^/| /' conftest.dir/Makefile >&5
echo "$as_me: and program was:" >&5
sed 's/^/| /' conftest.dir/conftest.c >&5
- ac_cv_linux_register_sysctl_table_noflag=no
+ ac_cv_linux_struct_nameidata_has_path=no
fi; rm -fr conftest.err conftest.dir
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <linux/sysctl.h>
+
+#include <linux/kernel.h>
+#include <linux/namei.h>
int
main ()
{
-ctl_table *t;
-register_sysctl_table (t);
+struct nameidata _nd;
+printk("%x\n", _nd.path);
;
return 0;
}
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_linux_register_sysctl_table_noflag=yes
+ ac_cv_linux_struct_nameidata_has_path=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_linux_register_sysctl_table_noflag=no
+ ac_cv_linux_struct_nameidata_has_path=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
fi
- { echo "$as_me:$LINENO: result: $ac_cv_linux_register_sysctl_table_noflag" >&5
-echo "${ECHO_T}$ac_cv_linux_register_sysctl_table_noflag" >&6; }
+ { echo "$as_me:$LINENO: result: $ac_cv_linux_struct_nameidata_has_path" >&5
+echo "${ECHO_T}$ac_cv_linux_struct_nameidata_has_path" >&6; }
{ echo "$as_me:$LINENO: checking for exported sys_chdir" >&5
echo $ECHO_N "checking for exported sys_chdir... $ECHO_C" >&6; }
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_chdir=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_chdir(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_close=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_close(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_open=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_open(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_wait4=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
extern asmlinkage long sys_wait4(void) __attribute__((weak));
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_config_smp=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#ifdef CONFIG_H_EXISTS
#include <linux/config.h>
#endif
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_init_mm=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_kallsyms_address=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_kallsyms_symbol=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_sys_call_table=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
if test $AFS_SYSKVERS -ge 26 ; then
rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then ac_cv_linux_exports_ia32_sys_call_table=yes
else
sed '/^ *+/d' conftest.err >&5
else
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
+
+#include <linux/kernel.h>
#include <linux/modversions.h>
int
main ()
cat >>confdefs.h <<\_ACEOF
#define CONFIG_H_EXISTS 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KEY_TYPE_H_EXISTS 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define STRUCT_FILE_OPERATIONS_HAS_SENDFILE 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_FILE_OPERATIONS_HAS_SPLICE 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define REGISTER_SYSCTL_TABLE_NOFLAG 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define SYSCTL_TABLE_CHECKING 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_have_iget" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IGET 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STRUCT_NAMEIDATA_HAS_PATH 1
_ACEOF
fi
cat >>confdefs.h <<\_ACEOF
#define HAVE_KMEM_CACHE_T 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define KMEM_CACHE_INIT 1
+_ACEOF
+
+ fi
+ if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CURRENT_KERNEL_TIME 1
_ACEOF
fi
-for ac_header in sys/mount.h strings.h termios.h signal.h
+
+for ac_header in sys/mount.h strings.h termios.h signal.h poll.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
done
-for ac_func in setvbuf
+
+for ac_func in setvbuf vsyslog
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
OPTMZ=-O
LWP_DBG=-g
LWP_OPTMZ=-O
+NO_STRIP_BIN=-ns
+NO_STRIP_KRB=-ns
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
SHLIB_LINKER="${MT_CC} -shared"
;;
+ arm_linux24)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
+ arm_linux26)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
hp_ux102)
AS="/usr/ccs/bin/as"
CC="/opt/ansic/bin/cc -Ae"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE -G0"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="/usr/lib64/libncurses.so"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
;;
*_obsd*)
+ KRB5CFLAGS="-I/usr/include/kerberosV"
+ KRB5LIBS="-lkrb5 -lcrypto"
LEX="flex -l"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-pthread"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=v9'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=amd64'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
if test "x$enable_debug" = "xno"; then
DBG=
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
fi
if test "x$enable_optimize" = "xno"; then
LWP_OPTMZ=
fi
+if test "x$enable_strip_binaries" != "xno"; then
+ if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+ else
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
+ fi
+else
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+fi
+
+if test "x$enable_warnings" = "xyes"; then
+ if test "x$GCC" = "xyes"; then
+ XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition"
+ fi
+fi
+
+
+
-for ac_func in add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket
+
+
+
+
+for ac_func in add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket krb5_c_encrypt krb5_c_encrypt_length krb5_cc_register krb5_decode_ticket
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
LIBS="$save_LIBS"
fi
+if test "x$ac_cv_krb5_cc_register_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KRB5_CC_REGISTER 1
+_ACEOF
+
+fi
+
MT_CC!$MT_CC$ac_delim
MT_CFLAGS!$MT_CFLAGS$ac_delim
MT_LIBS!$MT_LIBS$ac_delim
+NO_STRIP_BIN!$NO_STRIP_BIN$ac_delim
+NO_STRIP_KRB!$NO_STRIP_KRB$ac_delim
OPTMZ!$OPTMZ$ac_delim
PAM_CFLAGS!$PAM_CFLAGS$ac_delim
PAM_LIBS!$PAM_LIBS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 91; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
AC_INIT(src/libafs/Makefile.common.in)
-AM_INIT_AUTOMAKE(openafs-libafs,1.4.6)
+AM_INIT_AUTOMAKE(openafs-libafs,1.4.7pre1)
AC_CONFIG_HEADER(src/config/afsconfig.h)
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
AC_SUBST(MACOS_VERSION)
AC_INIT(src/config/stds.h)
-AM_INIT_AUTOMAKE(openafs,1.4.6)
+AM_INIT_AUTOMAKE(openafs,1.4.7pre1)
AC_CONFIG_HEADER(src/config/afsconfig.h)
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
AC_SUBST(MACOS_VERSION)
AC_PROG_CC
+AC_CHECK_PROGS(CPP,[/lib/cpp /usr/bin/cpp /usr/ccs/lib/cpp cpp],,[$PATH:/])
OPENAFS_CONFIGURE_COMMON
if test -d 'doc/man-pages' ; then
src/package/Makefile \
src/packaging/MacOS/OpenAFS.Info.plist \
src/packaging/MacOS/OpenAFS.info \
+src/packaging/MacOS/buildpkg.sh \
src/packaging/RedHat/openafs.spec \
src/pam/Makefile \
src/pinstall/Makefile \
src/tbutc/Makefile \
src/tests/Makefile \
src/tests/run-tests \
-src/tests/OpenAFS/Dirpath.pm \
src/tsm41/Makefile \
src/tviced/Makefile \
src/tvolser/Makefile \
-openafs (1.4.6.dfsg1-4) UNRELEASED; urgency=low
+openafs (1.4.7~pre1.dfsg1-1) UNRELEASED; urgency=low
+ * New upstream release candidate.
* Update doc-base control file sections for the new categorization.
-- Russ Allbery <rra@debian.org> Mon, 03 Mar 2008 18:49:17 -0800
# These variable is used only by get-orig-source, which will normally only be
# run by maintainers.
-VERSION = 1.4.6
-DEBVERS = 1.4.6.dfsg1
-UPSTREAM = /afs/grand.central.org/software/openafs/$(VERSION)
+VERSION = 1.4.7pre1
+DEBVERS = 1.4.7~pre1.dfsg1
+UPSTREAM = /afs/grand.central.org/software/openafs/candidate/$(VERSION)
# Download the upstream source, merge in the doc tarball, and do the
# repackaging that we have to do for DFSG reasons. This assumes AFS is
*/
src/afs/LINUX/osi_flush.s included code under IBM Public License with permission of the author, Paul MacKerras.
+
+===========================================================
+
+Personal contributions made by Jason Edgecombe
+<jason@rampaginggeek.com> that refer to the "BSD license" are subject
+to the following license:
+
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ * Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the following
+ disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ * Neither the name of OpenAFS nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+====================================================
\ No newline at end of file
documents common options, and discusses the general use of the suite.
Then, each operation code in the suite should have a separate man page,
named after the command with the space between the command suite and the
- operation code replaced with an underscore.
+ operation code replaced with an underscore. The NAME section of the
+ operation man page must also use an underscore (fs_listacl, not fs
+ listacl) for compatibility with some man programs. The SYNOPSIS section
+ should, of course, use a space, since that's what the user must type.
All man pages must follow the standard layout for man page sections and
formatting. The best general reference is the pod2man man page,
* The following installed commands have no man pages:
copyauth
+ fs cscpolicy
+ fs memdump
+ fs monitor
fs rxstatpeer
fs rxstatproc
fs setcbaddr
- kseal
- read_tape
restorevol
rmtsysd
vldb_convert
vos clone
- vos convertROtoRW
- vos copy
+ vos setfields
vos shadow
vsys
* Some of the documentation in fs getserverprefs needs minor updates to
reflect what happens in the dynroot case.
- * fs sysname documentation needs to include the possibility of setting
- multiple sysnames and the resulting behavior.
-
* bos listkeys and the KeyFile man page assume that you're using the
kaserver.
.nr % 0
.rr F
.\}
-.TH CMDEBUG 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH CMDEBUG 1 "OpenAFS" "14/Jan/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
cmdebug \- Reports the status of a host Cache Manager
.SH "SYNOPSIS"
\fBcmdebug\fR <<\ \fB\-servers\fR\ <\fImachine\fR >>> <<\ [\fB\-port\fR\ <\fIIP\ port\fR] >>>
- [\fB\-long\fR] [\fB\-refcounts\fR] [\fB\-callbacks\fR] [\fB\-addrs\fR] [\fB\-cache\fR]
+ [\fB\-long\fR] [\fB\-refcounts\fR] [\fB\-callbacks\fR] [\fB\-ctime\fR] [\fB\-addrs\fR]
+ [\fB\-cache\fR] [\fB\-cellservdb\fR] [\fB\-help\fR]
.PP
-\fBcmdebug\fR <<\ \fB\-s\fR\ <\fImachine\fR >>> <<\ [\fB\-p\fR\ <\fIIP\ port\fR] >>> [\fB\-l\fR] [\fB\-r\fR] [\fB\-c\fR]
- [\fB\-a\fR] [\fB\-h\fR]
+\fBcmdebug\fR <<\ \fB\-s\fR\ <\fImachine\fR >>> <<\ [\fB\-p\fR\ <\fIIP\ port\fR] >>> [\fB\-l\fR] [\fB\-r\fR] [\fB\-cal\fR]
+ [\fB\-ct\fR] [\fB\-a\fR] [\fB\-cac\fR] \fB\-ce\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
-The \fBcmdebug\fR command displays information about the Cache Manager and
-client cache status on an AFS client machine. By default, it displays all
-locked cache entries, but other information can be requested via various
-options.
+The \fBcmdebug\fR command displays information about the Cache Manager
+and client cache status on a local or remote AFS client machine. By
+default, it displays all locked cache entries, but other information
+can be requested via various options.
+.SH "CAUTIONS"
+The \fB\-ctime\fR option is only available with OpenAFS version 1.4.7 and
+later or version 1.5.28 or later. This option can be used to gather
+information from any version of the Unix OpenAFS client, but can only
+query Windows clients running OpenAFS version 1.5.28 or later.
+.PP
+The \fB\-cellservdb\fR option is only available with OpenAFS version 1.4.7
+and later or version 1.5.31 or later. This option can be used to gather
+information from any version of the Unix OpenAFS client, but can only
+query Windows clients running OpenAFS version 1.5.31 or later.
.SH "OPTIONS"
.Ip "\fB\-servers\fR <\fImachine\fR>" 4
Names the client machine for which to display Cache Manager status.
Provide the machine's \s-1IP\s0 address in dotted decimal format, its fully
-qualified host name (for example, \fBfs1.abc.com\fR), or the shortest
+qualified host name (for example, \fBfs1.example.com\fR), or the shortest
abbreviated form of its host name that distinguishes it from other
machines. Successful use of an abbreviated form depends on the
-availability of a name resolution service (such as the Domain Name Service
-or a local host table) at the time the command is issued.
+availability of a name resolution service (such as the Domain Name
+Service or a local host table) at the time the command is issued.
.Ip "\fB\-port\fR <\fI\s-1IP\s0 port\fR>" 4
Identifies the port on which to contact the Cache Manager. By default,
the standard port 7001 is used, so this option is very rarely needed.
.Ip "\fB\-long\fR" 4
Reports on all lock statuses and all cache entries, rather than only
locked cache entries. Do not use this option with \fB\-refcounts\fR,
-\fB\-callbacks\fR, \fB\-addrs\fR, or \fB\-cache\fR.
+\fB\-callbacks\fR, \fB\-addrs\fR, \fB\-cache\fR, or \fB\-cellservdb\fR.
.Ip "\fB\-refcounts\fR" 4
Reports only those cache entries with non-zero reference counts. Do not
use this option with \fB\-long\fR, \fB\-callbacks\fR, \fB\-addrs\fR, or \fB\-cache\fR.
.Ip "\fB\-callbacks\fR" 4
Reports only those cache entries with callbacks. Do not use this option
with \fB\-long\fR, \fB\-refcounts\fR, \fB\-addrs\fR, or \fB\-cache\fR.
+.Ip "\fB\-ctime\fR" 4
+Causes entry expiration times to be shown in human-readable format. Do
+not use this option with \fB\-addrs\fR or \fB\-cache\fR.
.Ip "\fB\-addrs\fR" 4
Rather than showing any cache entries, displays the interfaces the Cache
Manager answers on, including their netmasks and MTUs. This is useful for
for the client machine. The information displayed is essentially the
information that can be configured via parameters to \fBafsd\fR. Do not use
this option with \fB\-long\fR, \fB\-refcounts\fR, \fB\-callbacks\fR, or \fB\-addrs\fR.
+.Ip "\fB\-cellservdb\fR" 4
+Lists all known volume location database records in a
+CellServDB\-compatible format. This includes all records in memory,
+including those from the CellServDB file, \s-1AFSDB\s0 \s-1DNS\s0 records, and the
+\fBfs newcell\fR command. This option could be used to see if a client
+has the latest copy of the CellServDB file. Do not use this option
+with \fB\-long\fR, \fB\-refcounts\fR, \fB\-callbacks\fR, or \fB\-cache\fR.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.Vb 1
\& % cmdebug client1
.Ve
-Displays the cache configuration for \f(CWclient1.abc.com\fR:
+Displays the cache configuration for \f(CWclient1.example.com\fR:
.PP
.Vb 1
-\& % cmdebug client1.abc.com -cache
+\& % cmdebug client1.example.com -cache
.Ve
-Displays all cache entries for \f(CWclient2.abc.com\fR:
+Displays all cache entries for \f(CWclient2.example.com\fR:
.PP
.Vb 1
-\& % cmdebug client2.abc.com -long
+\& % cmdebug client2.example.com -long
.Ve
.SH "PRIVILEGE REQUIRED"
None
.SH "SEE ALSO"
-the \fIafsd(8)\fR manpage
+the \fIafsd(8)\fR manpage,
+the \fICellServDB(5)\fR manpage,
+the \fIfs_newcell(1)\fR manpage
.SH "COPYRIGHT"
Copyright 2005 Russ Allbery <rra@stanford.edu>
.PP
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-servers\fR <\fImachine\fR>"
.IX Item "\fB\-callbacks\fR"
+.IX Item "\fB\-ctime\fR"
+
.IX Item "\fB\-addrs\fR"
.IX Item "\fB\-cache\fR"
+.IX Item "\fB\-cellservdb\fR"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH FS 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH FS 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
\fBfs setcrypt\fR,
\fBfs setserverprefs\fR,
\fBfs sysname\fR,
+\fBfs uuid\fR,
and \fBfs wscell\fR.
.Ip "\(bu" 4
Commands to administer access control lists (ACLs):
.nr % 0
.rr F
.\}
-.TH FS_APROPOS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_APROPOS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs apropos \- Displays each help entry containing a keyword string
+fs_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBfs apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_APROPOS 1"
-.IX Name "fs apropos - Displays each help entry containing a keyword string"
+.IX Name "fs_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_CHECKSERVERS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_CHECKSERVERS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs checkservers \- Displays the status of server machines
+fs_checkservers \- Displays the status of server machines
.SH "SYNOPSIS"
\fBfs checkservers\fR <<\ [\fB\-cell\fR\ <\fIcell\ to\ check\fR] >>> [\fB\-all\fR] [\fB\-fast\fR]
<<\ [\fB\-interval\fR\ <\fIseconds\ between\ probes\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "FS_CHECKSERVERS 1"
-.IX Name "fs checkservers - Displays the status of server machines"
+.IX Name "fs_checkservers - Displays the status of server machines"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_CHECKVOLUMES 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_CHECKVOLUMES 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs checkvolumes \- Forces the Cache Manager to update volume information
+fs_checkvolumes \- Forces the Cache Manager to update volume information
.SH "SYNOPSIS"
\fBfs checkvolumes\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_CHECKVOLUMES 1"
-.IX Name "fs checkvolumes - Forces the Cache Manager to update volume information"
+.IX Name "fs_checkvolumes - Forces the Cache Manager to update volume information"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_CLEANACL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_CLEANACL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs cleanacl \- Remove obsolete entries from an ACL
+fs_cleanacl \- Remove obsolete entries from an ACL
.SH "SYNOPSIS"
\fBfs cleanacl\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_CLEANACL 1"
-.IX Name "fs cleanacl - Remove obsolete entries from an ACL"
+.IX Name "fs_cleanacl - Remove obsolete entries from an ACL"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_COPYACL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_COPYACL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs copyacl \- Copies an ACL from a directory to one or more other directories
+fs_copyacl \- Copies an ACL from a directory to one or more other directories
.SH "SYNOPSIS"
\fBfs copyacl\fR <<\ \fB\-fromdir\fR\ <\fIsource\ directory\ (or\ DFS\ file)\fR >>>
<<\ \fB\-todir\fR\ <\fIdestination\ directory\ (or\ DFS\ file)\fR+ >>>
.rn }` ''
.IX Title "FS_COPYACL 1"
-.IX Name "fs copyacl - Copies an ACL from a directory to one or more other directories"
+.IX Name "fs_copyacl - Copies an ACL from a directory to one or more other directories"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_DISKFREE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_DISKFREE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs diskfree \- Shows data about the partition housing a directory or file
+fs_diskfree \- Shows data about the partition housing a directory or file
.SH "SYNOPSIS"
\fBfs diskfree\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_DISKFREE 1"
-.IX Name "fs diskfree - Shows data about the partition housing a directory or file"
+.IX Name "fs_diskfree - Shows data about the partition housing a directory or file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_EXAMINE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_EXAMINE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs examine \- Shows data about the volume containing a directory or file
+fs_examine \- Shows data about the volume containing a directory or file
.SH "SYNOPSIS"
\fBfs examine\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_EXAMINE 1"
-.IX Name "fs examine - Shows data about the volume containing a directory or file"
+.IX Name "fs_examine - Shows data about the volume containing a directory or file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_EXPORTAFS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_EXPORTAFS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs exportafs \- Configures export of AFS to clients of other file systems
+fs_exportafs \- Configures export of AFS to clients of other file systems
.SH "SYNOPSIS"
\fBfs exportafs\fR <<\ \fB\-type\fR\ <\fIexporter\ name\fR >>>
<<\ [\fB\-start\fR\ <\fIstart/stop\ translator\ (on\ |\ off)\fR] >>>
.rn }` ''
.IX Title "FS_EXPORTAFS 1"
-.IX Name "fs exportafs - Configures export of AFS to clients of other file systems"
+.IX Name "fs_exportafs - Configures export of AFS to clients of other file systems"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_FLUSH 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_FLUSH 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs flush \- Forces the Cache Manager to discard a cached file or directory
+fs_flush \- Forces the Cache Manager to discard a cached file or directory
.SH "SYNOPSIS"
\fBfs flush\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_FLUSH 1"
-.IX Name "fs flush - Forces the Cache Manager to discard a cached file or directory"
+.IX Name "fs_flush - Forces the Cache Manager to discard a cached file or directory"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_FLUSHALL 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH FS_FLUSHALL 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs flushall \- Force the AFS Cache Manager to discard all data
+fs_flushall \- Force the AFS Cache Manager to discard all data
.SH "SYNOPSIS"
\fBfs flushall\fR [\fB\-help\fR]
.PP
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_FLUSHALL 1"
-.IX Name "fs flushall - Force the AFS Cache Manager to discard all data"
+.IX Name "fs_flushall - Force the AFS Cache Manager to discard all data"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_FLUSHMOUNT 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_FLUSHMOUNT 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs flushmount \- Forces the Cache Manager to discard a mount point
+fs_flushmount \- Forces the Cache Manager to discard a mount point
.SH "SYNOPSIS"
\fBfs flushmount\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_FLUSHMOUNT 1"
-.IX Name "fs flushmount - Forces the Cache Manager to discard a mount point"
+.IX Name "fs_flushmount - Forces the Cache Manager to discard a mount point"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_FLUSHVOLUME 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_FLUSHVOLUME 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs flushvolume \- Forces the Cache Manager to discard cached data from a volume
+fs_flushvolume \- Forces the Cache Manager to discard cached data from a volume
.SH "SYNOPSIS"
\fBfs flushvolume\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_FLUSHVOLUME 1"
-.IX Name "fs flushvolume - Forces the Cache Manager to discard cached data from a volume"
+.IX Name "fs_flushvolume - Forces the Cache Manager to discard cached data from a volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETCACHEPARMS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_GETCACHEPARMS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getcacheparms \- Displays the current size and usage of the cache
+fs_getcacheparms \- Displays the current size and usage of the cache
.SH "SYNOPSIS"
\fBfs getcacheparms\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_GETCACHEPARMS 1"
-.IX Name "fs getcacheparms - Displays the current size and usage of the cache"
+.IX Name "fs_getcacheparms - Displays the current size and usage of the cache"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETCALLERACCESS 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH FS_GETCALLERACCESS 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getcalleraccess \- Show the current user's access to a file or directory
+fs_getcalleraccess \- Show the current user's access to a file or directory
.SH "SYNOPSIS"
\fBfs getcalleraccess\fR <<\ [\fB\-path\fR\ <\fIpath\fR+] >>> [\fB\-help\fR]
.PP
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_GETCALLERACCESS 1"
-.IX Name "fs getcalleraccess - Show the current user's access to a file or directory"
+.IX Name "fs_getcalleraccess - Show the current user's access to a file or directory"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETCELLSTATUS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_GETCELLSTATUS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getcellstatus \- Reports whether setuid programs are honored in a cell
+fs_getcellstatus \- Reports whether setuid programs are honored in a cell
.SH "SYNOPSIS"
\fBfs getcellstatus\fR <<\ \fB\-cell\fR\ <\fIcell\ name\fR+ >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_GETCELLSTATUS 1"
-.IX Name "fs getcellstatus - Reports whether setuid programs are honored in a cell"
+.IX Name "fs_getcellstatus - Reports whether setuid programs are honored in a cell"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETCLIENTADDRS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_GETCLIENTADDRS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getclientaddrs \- Displays the client interfaces to register
+fs_getclientaddrs \- Displays the client interfaces to register
.SH "SYNOPSIS"
\fBfs getclientaddrs\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_GETCLIENTADDRS 1"
-.IX Name "fs getclientaddrs - Displays the client interfaces to register"
+.IX Name "fs_getclientaddrs - Displays the client interfaces to register"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETCRYPT 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH FS_GETCRYPT 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getcrypt \- Displays the state of encryption for AFS file transfers
+fs_getcrypt \- Displays the state of encryption for AFS file transfers
.SH "SYNOPSIS"
\fBfs getcrypt\fR [\fB\-help\fR]
.SH "DESCRIPTION"
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_GETCRYPT 1"
-.IX Name "fs getcrypt - Displays the state of encryption for AFS file transfers"
+.IX Name "fs_getcrypt - Displays the state of encryption for AFS file transfers"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_GETSERVERPREFS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_GETSERVERPREFS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs getserverprefs \- Displays preference ranks for file servers or VL servers
+fs_getserverprefs \- Displays preference ranks for file servers or VL servers
.SH "SYNOPSIS"
\fBfs getserverprefs\fR <<\ [\fB\-file\fR\ <\fIoutput\ to\ named\ file\fR] >>>
[\fB\-numeric\fR] [\fB\-vlservers\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "FS_GETSERVERPREFS 1"
-.IX Name "fs getserverprefs - Displays preference ranks for file servers or VL servers"
+.IX Name "fs_getserverprefs - Displays preference ranks for file servers or VL servers"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_HELP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_HELP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs help \- Displays help for fs commands
+fs_help \- Displays help for fs commands
.SH "SYNOPSIS"
\fBfs help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_HELP 1"
-.IX Name "fs help - Displays help for fs commands"
+.IX Name "fs_help - Displays help for fs commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_LISTACL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_LISTACL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs listacl \- Displays ACLs
+fs_listacl \- Displays ACLs
.SH "SYNOPSIS"
\fBfs listacl\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-id\fR] [\fB\-if\fR] [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_LISTACL 1"
-.IX Name "fs listacl - Displays ACLs"
+.IX Name "fs_listacl - Displays ACLs"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_LISTALIASES 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH FS_LISTALIASES 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs listaliases \- Displays the current list of aliases for AFS cells
+fs_listaliases \- Displays the current list of aliases for AFS cells
.SH "SYNOPSIS"
\fBfs listaliases\fR [\fB\-help\fR]
.SH "DESCRIPTION"
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_LISTALIASES 1"
-.IX Name "fs listaliases - Displays the current list of aliases for AFS cells"
+.IX Name "fs_listaliases - Displays the current list of aliases for AFS cells"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_LISTCELLS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_LISTCELLS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs listcells \- Displays the database server machines known to the Cache Manager
+fs_listcells \- Displays the database server machines known to the Cache Manager
.SH "SYNOPSIS"
\fBfs listcells\fR [\fB\-numeric\fR] [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_LISTCELLS 1"
-.IX Name "fs listcells - Displays the database server machines known to the Cache Manager"
+.IX Name "fs_listcells - Displays the database server machines known to the Cache Manager"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_LISTQUOTA 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_LISTQUOTA 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs listquota \- Displays quota information for a volume
+fs_listquota \- Displays quota information for a volume
.SH "SYNOPSIS"
\fBfs listquota\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
examine\fR command.
.PP
To set volume quota, use the \fBfs setquota\fR or \fBfs setvol\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-path\fR <\fIdir/file path\fR>+" 4
Names a file or directory that resides in the volume about which to
.rn }` ''
.IX Title "FS_LISTQUOTA 1"
-.IX Name "fs listquota - Displays quota information for a volume"
+.IX Name "fs_listquota - Displays quota information for a volume"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-path\fR <\fIdir/file path\fR>+"
.nr % 0
.rr F
.\}
-.TH FS_LSMOUNT 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_LSMOUNT 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs lsmount \- Reports the volume for which a directory is the mount point.
+fs_lsmount \- Reports the volume for which a directory is the mount point.
.SH "SYNOPSIS"
\fBfs lsmount\fR <<\ \fB\-dir\fR\ <\fIdirectory\fR+ >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_LSMOUNT 1"
-.IX Name "fs lsmount - Reports the volume for which a directory is the mount point."
+.IX Name "fs_lsmount - Reports the volume for which a directory is the mount point."
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_MESSAGES 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_MESSAGES 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs messages \- Sets whether the Cache Manager writes log messages
+fs_messages \- Sets whether the Cache Manager writes log messages
.SH "SYNOPSIS"
\fBfs messages\fR <<\ [\fB\-show\fR\ (user|console|all|none)]\ >> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_MESSAGES 1"
-.IX Name "fs messages - Sets whether the Cache Manager writes log messages"
+.IX Name "fs_messages - Sets whether the Cache Manager writes log messages"
.IX Header "NAME"
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH FS_MINIDUMP 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+fs_minidump \- Generate a minidump from the current afsd service
+.SH "SYNOPSIS"
+\fBfs minidump\fR [\fB\-help\fR]
+.SH "DESCRIPTION"
+\fBfs minidump\fR generates a mini dump file containing the current stack
+of the afsd_service.exe process. This output can be very helpful when
+debugging the AFS Client Service when it is unresponsive to SMB/CIFS
+requests.
+.SH "CAUTIONS"
+This command is only available in OpenAFS for Windows version 1.4 and later.
+.SH "OPTIONS"
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "SEE ALSO"
+the \fIfs(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "FS_MINIDUMP 1"
+.IX Name "fs_minidump - Generate a minidump from the current afsd service"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH FS_MKMOUNT 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_MKMOUNT 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs mkmount \- Creates a mount point for a volume
+fs_mkmount \- Creates a mount point for a volume
.SH "SYNOPSIS"
\fBfs mkmount\fR <<\ \fB\-dir\fR\ <\fIdirectory\fR >>> <<\ \fB\-vol\fR\ <\fIvolume\ name\fR >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-rw\fR] [\fB\-fast\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "FS_MKMOUNT 1"
-.IX Name "fs mkmount - Creates a mount point for a volume"
+.IX Name "fs_mkmount - Creates a mount point for a volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_NEWALIAS 1 "OpenAFS" "5/Aug/2007" "AFS Command Reference"
+.TH FS_NEWALIAS 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs newalias \- Creates a new alias for a cell
+fs_newalias \- Creates a new alias for a cell
.SH "SYNOPSIS"
\fBfs newalias\fR <<\ [\fB\-alias\fR]\ <\fIalias\ name\fR >>>
<<\ [\fB\-name\fR]\ <\fIcell\ name\fR >>> [\fB\-help\fR]
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_NEWALIAS 1"
-.IX Name "fs newalias - Creates a new alias for a cell"
+.IX Name "fs_newalias - Creates a new alias for a cell"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_NEWCELL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_NEWCELL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs newcell \- Changes the kernel-resident list of a cell's database servers
+fs_newcell \- Changes the kernel-resident list of a cell's database servers
.SH "SYNOPSIS"
\fBfs newcell\fR <<\ \fB\-name\fR\ <\fIcell\ name\fR >>> \-servers <\fIprimary servers\fR>+
<<\ [\fB\-linkedcell\fR\ <\fIlinked\ cell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "FS_NEWCELL 1"
-.IX Name "fs newcell - Changes the kernel-resident list of a cell's database servers"
+.IX Name "fs_newcell - Changes the kernel-resident list of a cell's database servers"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_QUOTA 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_QUOTA 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs quota \- Displays the quota used in the volume containing a directory or file
+fs_quota \- Displays the quota used in the volume containing a directory or file
.SH "SYNOPSIS"
\fBfs quota\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
resides on, use the \fBfs examine\fR and \fBfs listquota\fR commands.
.PP
To set volume quota, use the \fBfs setquota\fR or \fBfs setvol\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-path\fR <\fIdir/file path\fR>" 4
Names each file or directory for which to display the quota consumed in
.rn }` ''
.IX Title "FS_QUOTA 1"
-.IX Name "fs quota - Displays the quota used in the volume containing a directory or file"
+.IX Name "fs_quota - Displays the quota used in the volume containing a directory or file"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-path\fR <\fIdir/file path\fR>"
.nr % 0
.rr F
.\}
-.TH FS_RMMOUNT 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_RMMOUNT 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs rmmount \- Removes a mount point
+fs_rmmount \- Removes a mount point
.SH "SYNOPSIS"
\fBfs rmmount\fR <<\ \fB\-dir\fR\ <\fIdirectory\fR+ >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_RMMOUNT 1"
-.IX Name "fs rmmount - Removes a mount point"
+.IX Name "fs_rmmount - Removes a mount point"
.IX Header "NAME"
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH FS_RXSTATPEER 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+fs_rxstatpeer \- Enables Rx packet logging in the OpenAFS kernel module
+.SH "SYNOPSIS"
+\fBfs rxstatpeer\fR [\fB\-clear\fR] [\fB\-disable\fR] [\fB\-enable\fR] [\fB\-help\fR]
+.SH "DESCRIPTION"
+\fBfs rxstatpeer\fR manipulates some of the Rx protocol counters in the
+OpenAFS kernel interface.
+.SH "OPTIONS"
+.Ip "\fB\-clear\fR" 4
+Clear the Rx stats for peers in the kernel module.
+.Ip "\fB\-disable\fR" 4
+Disable logging of Rx stats for peers in the kernel module.
+.Ip "\fB\-enable\fR" 4
+Enable logging of Rx stats for peers in the kernel module.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "OUTPUT"
+This command produces no output other than error messages.
+.SH "EXAMPLES"
+Enable Rx Stats for peers:
+.PP
+.Vb 1
+\& % fs rxstatpeer -enable
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must be logged in as the local superuser root.
+.SH "SEE ALSO"
+the \fIfs(1)\fR manpage,
+the \fIrxdebug(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "FS_RXSTATPEER 1"
+.IX Name "fs_rxstatpeer - Enables Rx packet logging in the OpenAFS kernel module"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "OPTIONS"
+
+.IX Item "\fB\-clear\fR"
+
+.IX Item "\fB\-disable\fR"
+
+.IX Item "\fB\-enable\fR"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "OUTPUT"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH FS_SETACL 1 "OpenAFS" "29/Jan/2007" "AFS Command Reference"
+.TH FS_SETACL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setacl \- Sets the ACL for a directory
+fs_setacl \- Sets the ACL for a directory
.SH "SYNOPSIS"
\fBfs setacl\fR <<\ \fB\-dir\fR\ <\fIdirectory\fR+ >>> <<\ \fB\-acl\fR\ <\fIaccess\ list\ entries\fR+ >>>
[\fB\-clear\fR] [\fB\-negative\fR] [\fB\-id\fR] [\fB\-if\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "FS_SETACL 1"
-.IX Name "fs setacl - Sets the ACL for a directory"
+.IX Name "fs_setacl - Sets the ACL for a directory"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETCACHESIZE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETCACHESIZE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setcachesize \- Sets the size of the disk cache
+fs_setcachesize \- Sets the size of the disk cache
.SH "SYNOPSIS"
\fBfs setcachesize\fR [\fB\-blocks\fR <\fIsize in 1K byte blocks (0 =\fR reset)>>]
[\fB\-reset\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "FS_SETCACHESIZE 1"
-.IX Name "fs setcachesize - Sets the size of the disk cache"
+.IX Name "fs_setcachesize - Sets the size of the disk cache"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETCELL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETCELL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setcell \- Configures permissions for setuid programs from specified cells
+fs_setcell \- Configures permissions for setuid programs from specified cells
.SH "SYNOPSIS"
\fBfs setcell\fR <<\ \fB\-cell\fR\ <\fIcell\ name\fR+ >>> [\fB\-suid\fR] [\fB\-nosuid\fR] [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_SETCELL 1"
-.IX Name "fs setcell - Configures permissions for setuid programs from specified cells"
+.IX Name "fs_setcell - Configures permissions for setuid programs from specified cells"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETCLIENTADDRS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETCLIENTADDRS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setclientaddrs \- Sets the client interfaces to register with the File Server
+fs_setclientaddrs \- Sets the client interfaces to register with the File Server
.SH "SYNOPSIS"
\fBfs setclientaddrs\fR <<\ [\fB\-address\fR\ <\fIclient\ network\ interfaces\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_SETCLIENTADDRS 1"
-.IX Name "fs setclientaddrs - Sets the client interfaces to register with the File Server"
+.IX Name "fs_setclientaddrs - Sets the client interfaces to register with the File Server"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETCRYPT 1 "OpenAFS" "5/Aug/2007" "AFS Command Reference"
+.TH FS_SETCRYPT 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setcrypt \- Enables of disables the encryption of AFS file transfers
+fs_setcrypt \- Enables of disables the encryption of AFS file transfers
.SH "SYNOPSIS"
\fBfs setcrypt\fR <<\ [\fB\-crypt\fR]\ <\fIon/off\fR >>> [\fB\-help\fR]
.SH "DESCRIPTION"
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_SETCRYPT 1"
-.IX Name "fs setcrypt - Enables of disables the encryption of AFS file transfers"
+.IX Name "fs_setcrypt - Enables of disables the encryption of AFS file transfers"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETQUOTA 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETQUOTA 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setquota \- Sets the quota for the volume containing a file or directory
+fs_setquota \- Sets the quota for the volume containing a file or directory
.SH "SYNOPSIS"
\fBfs setquota\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR] >>>
<<\ \fB\-max\fR\ <\fImax\ quota\ in\ kbytes\fR >>> [\fB\-help\fR]
.PP
To display a volume's quota, use the \fBfs examine\fR, \fBfs listquota\fR, or
\fBfs quota\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-path\fR <\fIdir/file path\fR>" 4
Names the directory or file for which to set the host volume's
.rn }` ''
.IX Title "FS_SETQUOTA 1"
-.IX Name "fs setquota - Sets the quota for the volume containing a file or directory"
+.IX Name "fs_setquota - Sets the quota for the volume containing a file or directory"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-path\fR <\fIdir/file path\fR>"
.nr % 0
.rr F
.\}
-.TH FS_SETSERVERPREFS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETSERVERPREFS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setserverprefs \- Sets the preference ranks for file servers or VL servers
+fs_setserverprefs \- Sets the preference ranks for file servers or VL servers
.SH "SYNOPSIS"
\fBfs setserverprefs\fR <<\ [\fB\-servers\fR\ <\fIfileserver\ names\ and\ ranks\fR+] >>>
<<\ [\fB\-vlservers\fR\ <\fIVL\ server\ names\ and\ ranks\fR+] >>>
.rn }` ''
.IX Title "FS_SETSERVERPREFS 1"
-.IX Name "fs setserverprefs - Sets the preference ranks for file servers or VL servers"
+.IX Name "fs_setserverprefs - Sets the preference ranks for file servers or VL servers"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SETVOL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SETVOL 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs setvol \- Set quota and messages for a volume containing a file or directory
+fs_setvol \- Set quota and messages for a volume containing a file or directory
.SH "SYNOPSIS"
\fBfs setvol\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>>
<<\ [\fB\-max\fR\ <\fIdisk\ space\ quota\ in\ 1K\ units\fR] >>>
and the \fBfs quota\fR command the percent of quota used.
.PP
To set quota on one volume at a time, use the \fBfs setquota\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-path\fR <\fIdir/file path\fR>+" 4
Names each file or directory for which to set the host volume's quota and
.rn }` ''
.IX Title "FS_SETVOL 1"
-.IX Name "fs setvol - Set quota and messages for a volume containing a file or directory"
+.IX Name "fs_setvol - Set quota and messages for a volume containing a file or directory"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-path\fR <\fIdir/file path\fR>+"
.nr % 0
.rr F
.\}
-.TH FS_STOREBEHIND 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_STOREBEHIND 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs storebehind \- Enables asynchronous writes to the file server
+fs_storebehind \- Enables asynchronous writes to the file server
.SH "SYNOPSIS"
\fBfs storebehind\fR <<\ [\fB\-kbytes\fR\ <\fIasynchrony\ for\ specified\ names\fR] >>>
<<\ [\fB\-files\fR\ <\fIspecific\ pathnames\fR+] >>>
.rn }` ''
.IX Title "FS_STOREBEHIND 1"
-.IX Name "fs storebehind - Enables asynchronous writes to the file server"
+.IX Name "fs_storebehind - Enables asynchronous writes to the file server"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_SYSNAME 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_SYSNAME 1 "OpenAFS" "29/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs sysname \- Reports or sets the CPU/operating system type
+fs_sysname \- Reports or sets the CPU/operating system type
.SH "SYNOPSIS"
-\fBfs sysname\fR <<\ [\fB\-newsys\fR\ <\fInew\ sysname\fR] >>> [\fB\-help\fR]
+\fBfs sysname\fR <<\ [\fB\-newsys\fR\ <\fInew\ sysname\fR]+ >>> [\fB\-help\fR]
.PP
-\fBfs sy\fR <<\ [\fB\-n\fR\ <\fInew\ sysname\fR] >>> [\fB\-h\fR]
+\fBfs sy\fR <<\ [\fB\-n\fR\ <\fInew\ sysname\fR]+ >>> [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBfs sysname\fR command sets or displays the local machine's
CPU/operating system type as recorded in kernel memory. The Cache Manager
substitutes the string for the \fI@sys\fR variable which can occur in AFS
-pathnames; the \fIIBM AFS Quick Beginnings\fR and \fIIBM AFS Administration
+pathnames; the \fIOpenAFS Quick Beginnings\fR and \fIOpenAFS Administration
Guide\fR explain how using \fI@sys\fR can simplify cell configuration. It is
best to use it sparingly, however, because it can make the effect of
changing directories unpredictable.
must verify that the correct string is set for the new identity also.
.SH "OPTIONS"
.Ip "\fB\-newsys\fR <\fInew sysname\fR>" 4
-Sets the \s-1CPU/\s0operating system indicator string for the local machine. If
-this argument is omitted, the output displays the current setting
-instead. \s-1AFS\s0 uses a standardized set of strings; consult the \fI\s-1IBM\s0 \s-1AFS\s0
-Quick Beginnings\fR or \fI\s-1AFS\s0 Release Notes\fR.
+Sets the \s-1CPU/\s0operating system indicator string for the local machine. This
+option may be used multiple times in the same invocation, which sets \fI@sys\fR
+to an array of values. When \fI@sys\fR contains an array of values, the first
+value that matches a path is used.
+.Sp
+If this argument is omitted, the output displays the current setting
+instead. \s-1AFS\s0 uses a standardized set of strings; consult the \fIOpenAFS Quick
+Beginnings\fR or \fIOpenAFS Release Notes\fR.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.Vb 1
\& Current sysname is '<system_type>'
.Ve
+When the \fB\-newsys\fR argument is included, the output is the following:
+.PP
+.Vb 1
+\& fs: new sysname list set.
+.Ve
.SH "EXAMPLES"
The following example shows the output produced on a Sun SPARCStation
running Solaris 5.7:
.Vb 1
\& % fs sysname -newsys rs_aix42
.Ve
+The following command defines a machine to be Mac OS X PPC and a
+custom type \*(L'foo\*(R'. The second command queries the new sysname:
+.PP
+.Vb 4
+\& % fs sysname -newsys ppc_darwin_80 -newsys foo
+\& fs: new sysname list set.
+\& % fs sysname
+\& Current sysname list is 'ppc_darwin_80' 'foo'
+.Ve
+If \fI@sys\fR is \f(CWppc_darwin_80 foo\fR, then \f(CWcd @sys\fR will try to change
+to the \f(CWppc_darwin_80\fR directory. If the \f(CWppc_darwin_80\fR directory
+doesn't exist, then the \f(CWfoo\fR directory is tried.
.SH "PRIVILEGE REQUIRED"
To display the current setting, no privilege is required. To include the
\fB\-newsys\fR argument on an AFS client machine, the issuer must be logged in
the \fIfs_exportafs(1)\fR manpage,
the \fIsys(1)\fR manpage
.PP
-\fIIBM AFS Quick Beginnings\fR
+\fIOpenAFS Quick Beginnings\fR
+the section on \fI/www.openafs.org/pages/doc/QuickStartUnix/auqbg000.htm\fR in the \fIhttp:\fR manpage
+.PP
+\fIOpenAFS Administration Guide\fR
+the section on \fI/www.openafs.org/pages/doc/AdminGuide/auagd000.htm\fR in the \fIhttp:\fR manpage
.PP
-\fIIBM AFS Administration Guide\fR
+For the list of assigned standard sysname values, see
+the section on \fI/grand.central.org/numbers/systypes.html\fR in the \fIhttp:\fR manpage
.SH "COPYRIGHT"
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
.PP
.rn }` ''
.IX Title "FS_SYSNAME 1"
-.IX Name "fs sysname - Reports or sets the CPU/operating system type"
+.IX Name "fs_sysname - Reports or sets the CPU/operating system type"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_UUID 1 "OpenAFS" "23/Oct/2007" "AFS Command Reference"
+.TH FS_UUID 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs uuid \- Prints the uuid of the client or generates a new one
+fs_uuid \- Prints the uuid of the client or generates a new one
.SH "SYNOPSIS"
\fBfs uuid\fR [\fB\-generate\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
-\fBfs uuid\fR prints the current uuid of an OpenAFS client. It can
-optionally force the generation of a new uuid, if needed. The client
-uuid is used by the \fBfileserver\fR to differentiate clients with the
-same IP address.
+\fBfs uuid\fR prints the current UUID of an OpenAFS client. It can
+optionally force the generation of a new UUID, if needed. The client UUID
+is used by the \fBfileserver\fR to differentiate clients with the same IP
+address.
.SH "CAUTIONS"
-The \fBfs uuid\fR command is only available in OpenAFS versions after
-1.4.5 and 1.5.8. The behavior differs slightly between versions. In
-OpenAFS 1.4.5 and later, the \fB\-generate\fR option is required and the
-uuid for the client machine is never printed. OpenAFS versions 1.5.8
-and later will print the uuid.
+The \fBfs uuid\fR command is only available in OpenAFS versions after 1.4.5
+and 1.5.8. The behavior differs slightly between versions. In OpenAFS
+1.4.5 and later, the \fB\-generate\fR option is required and the UUID for the
+client machine is never printed. OpenAFS versions 1.5.8 and later will
+print the UUID.
.SH "OPTIONS"
.Ip "\fB\-generate\fR" 4
-Generates a new uuid for the cache manager. This is useful if two
-clients share the same uuid. \fB\-generate\fR is optional in OpenAFS
-versions 1.5.8 and later, but it is required in OpenAFS versions 1.4.5
-and later.
+Generates a new \s-1UUID\s0 for the cache manager. This is useful if two clients
+share the same \s-1UUID\s0 (if systems were cloned incorrectly, for example).
+\fB\-generate\fR is optional in OpenAFS versions 1.5.8 and later, but it is
+required in OpenAFS versions 1.4.5 and later.
.Ip "\fB\-help\fR" 4
-Prints the online help for this command. All other valid options are
+Prints the online help for this command. All other valid options are
ignored.
.SH "OUTPUT"
-\fBfs uuid\fR prints out the current uuid for the client or the new uuid
+\fBfs uuid\fR prints out the current UUID for the client or the new UUID
if the \fB\-generate\fR option is passed to it.
.SH "EXAMPLES"
There are only two ways to invoke \fBfs uuid\fR under 1.5.8 and later:
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "FS_UUID 1"
-.IX Name "fs uuid - Prints the uuid of the client or generates a new one"
+.IX Name "fs_uuid - Prints the uuid of the client or generates a new one"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_WHEREIS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_WHEREIS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs whereis \- Reports each file server housing a file or directory
+fs_whereis \- Reports each file server housing a file or directory
.SH "SYNOPSIS"
\fBfs whereis\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_WHEREIS 1"
-.IX Name "fs whereis - Reports each file server housing a file or directory"
+.IX Name "fs_whereis - Reports each file server housing a file or directory"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_WHICHCELL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_WHICHCELL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs whichcell \- Returns the cell to which a file or directory belongs
+fs_whichcell \- Returns the cell to which a file or directory belongs
.SH "SYNOPSIS"
\fBfs whichcell\fR <<\ [\fB\-path\fR\ <\fIdir/file\ path\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_WHICHCELL 1"
-.IX Name "fs whichcell - Returns the cell to which a file or directory belongs"
+.IX Name "fs_whichcell - Returns the cell to which a file or directory belongs"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH FS_WSCELL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH FS_WSCELL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fs wscell \- Returns the name of the cell to which a machine belongs
+fs_wscell \- Returns the name of the cell to which a machine belongs
.SH "SYNOPSIS"
\fBfs wscell\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "FS_WSCELL 1"
-.IX Name "fs wscell - Returns the name of the cell to which a machine belongs"
+.IX Name "fs_wscell - Returns the name of the cell to which a machine belongs"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH PTS 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH PTS 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
The value of the \s-1AFSCELL\s0 environment variable.
.Ip "\(bu" 8
The local \fI/usr/vice/etc/ThisCell\fR file.
+.Sp
+Do not combine the \fB\-cell\fR and \fB\-localauth\fR options. A command on which
+the \fB\-localauth\fR flag is included always runs in the local cell (as
+defined in the server machine's local \fI/usr/afs/etc/ThisCell\fR file),
+whereas a command on which the \fB\-cell\fR argument is included runs in the
+specified foreign cell.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution immediately.
privileged users to issue commands that change the Protection Database,
and refuses to perform such an action even if the \fB\-noauth\fR flag is
provided.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using the server encryption key with the
+highest key version number in the local \fI/usr/afs/etc/KeyFile\fR file. The
+\fBpts\fR command interpreter presents the ticket, which never expires, to
+the \s-1BOS\s0 Server during mutual authentication.
+.Sp
+Use this flag only when issuing a command on a server machine; client
+machines do not usually have a \fI/usr/afs/etc/KeyFile\fR file. The issuer
+of a command that includes this flag must be logged on to the server
+machine as the local superuser \f(CWroot\fR. The flag is useful for commands
+invoked by an unattended application program, such as a process controlled
+by the \s-1UNIX\s0 \fBcron\fR utility. It is also useful if an administrator is
+unable to authenticate to \s-1AFS\s0 but is logged in as the local superuser
+\f(CWroot\fR.
+.Sp
+Do not combine the \fB\-cell\fR and \fB\-localauth\fR options. A command on which
+the \fB\-localauth\fR flag is included always runs in the local cell (as
+defined in the server machine's local \fI/usr/afs/etc/ThisCell\fR file),
+whereas a command on which the \fB\-cell\fR argument is included runs in the
+specified foreign cell. Also, do not combine the \fB\-localauth\fR and
+\fB\-noauth\fR flags.
.SH "PRIVILEGE REQUIRED"
Members of the system:administrators group can issue all \fBpts\fR commands
on any entry in the Protection Database.
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Header "PRIVILEGE REQUIRED"
.IX Header "SEE ALSO"
.nr % 0
.rr F
.\}
-.TH PTS_ADDUSER 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_ADDUSER 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts adduser \- Adds a user or machine to a Protection Database group
+pts_adduser \- Adds a user or machine to a Protection Database group
.SH "SYNOPSIS"
\fBpts adduser\fR <<\ \fB\-user\fR\ <\fIuser\ name\fR+ >>> <<\ \fB\-group\fR\ <\fIgroup\ name\fR+ >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts ad\fR <<\ \fB\-u\fR\ <\fIuser\ name\fR+ >>> <<\ \fB\-g\fR\ <\fIgroup\ name\fR+ >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts adduser\fR command adds each user or machine entry named by the
\fB\-user\fR argument as a member of each group named by the \fB\-group\fR
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. The \fBpts\fR command interpreter presents the
+ticket to the Protection Server during mutual authentication. Do not combine
+this flag with the \fB\-cell\fR or \fB\-noauth\fR options. For more details, see
+the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_ADDUSER 1"
-.IX Name "pts adduser - Adds a user or machine to a Protection Database group"
+.IX Name "pts_adduser - Adds a user or machine to a Protection Database group"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_APROPOS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_APROPOS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts apropos \- Displays each help entry containing a keyword string
+pts_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBpts apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "PTS_APROPOS 1"
-.IX Name "pts apropos - Displays each help entry containing a keyword string"
+.IX Name "pts_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH PTS_CHOWN 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_CHOWN 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts chown \- Changes the owner of a Protection Database entry
+pts_chown \- Changes the owner of a Protection Database entry
.SH "SYNOPSIS"
\fBpts chown\fR <<\ \fB\-name\fR\ <\fIgroup\ name\fR >>> <<\ \fB\-owner\fR\ <\fInew\ owner\fR >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts cho\fR <<\ \fB\-na\fR\ <\fIgroup\ name\fR >>> <<\ \fB\-o\fR\ <\fInew\ owner\fR >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts chown\fR command designates the user or group named by the
\fB\-owner\fR argument as the owner of the group named by the \fB\-name\fR
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the \fB\-cell\fR
+or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_CHOWN 1"
-.IX Name "pts chown - Changes the owner of a Protection Database entry"
+.IX Name "pts_chown - Changes the owner of a Protection Database entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_CREATEGROUP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_CREATEGROUP 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts creategroup \- Creates an (empty) Protection Database group entry
+pts_creategroup \- Creates an (empty) Protection Database group entry
.SH "SYNOPSIS"
\fBpts creategroup\fR <<\ \fB\-name\fR\ <\fIgroup\ name\fR+ >>>
<<\ [\fB\-owner\fR\ <\fIowner\ of\ the\ group\fR] >>>
<<\ [\fB\-id\fR\ <\fIid\ (negated)\ for\ the\ group\fR+] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
- [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts createg\fR <<\ \fB\-na\fR\ <\fIgroup\ name\fR+ >>> <<\ [\fB\-o\fR\ <\fIowner\ of\ the\ group\fR] >>>
<<\ [\fB\-i\fR\ <\fIid\ (negated)\ for\ the\ group\fR+] >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts cg\fR <<\ \fB\-na\fR\ <\fIgroup\ name\fR+ >>> <<\ [\fB\-o\fR\ <\fIowner\ of\ the\ group\fR] >>>
<<\ [\fB\-i\fR\ <\fIid\ (negated)\ for\ the\ group\fR+] >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts creategroup\fR command creates an entry in the Protection Database
for each group specified by the \fB\-name\fR argument. The entry records the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_CREATEGROUP 1"
-.IX Name "pts creategroup - Creates an (empty) Protection Database group entry"
+.IX Name "pts_creategroup - Creates an (empty) Protection Database group entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_CREATEUSER 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_CREATEUSER 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts createuser \- Creates a user or machine entry in the Protection Database
+pts_createuser \- Creates a user or machine entry in the Protection Database
.SH "SYNOPSIS"
\fBpts createuser\fR <<\ \fB\-name\fR\ <\fIuser\ name\fR+ >>> <<\ [\fB\-id\fR\ <\fIuser\ id\fR+] >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR]
+ [\fB\-help\fR]
.PP
\fBpts createu\fR <<\ \fB\-na\fR\ <\fIuser\ name\fR+ >>> <<\ [\fB\-i\fR\ <\fIuser\ id\fR+] >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts cu\fR <<\ \fB\-na\fR\ <\fIuser\ name\fR+ >>> <<\ [\fB\-i\fR\ <\fIuser\ id\fR+] >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts createuser\fR command creates an entry in the Protection Database
for each user or machine specified by the \fB\-name\fR argument. A user entry
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_CREATEUSER 1"
-.IX Name "pts createuser - Creates a user or machine entry in the Protection Database"
+.IX Name "pts_createuser - Creates a user or machine entry in the Protection Database"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_DELETE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_DELETE 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts delete \- Deletes a Protection Database entry
+pts_delete \- Deletes a Protection Database entry
.SH "SYNOPSIS"
\fBpts delete\fR <<\ \fB\-nameorid\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts d\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-f\fR] [\-h]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\-h]
.SH "DESCRIPTION"
The \fBpts delete\fR command removes each entry specified by the \fB\-nameorid\fR
argument from the Protection Database. Deleting entries affects other
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_DELETE 1"
-.IX Name "pts delete - Deletes a Protection Database entry"
+.IX Name "pts_delete - Deletes a Protection Database entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_EXAMINE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_EXAMINE 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts examine \- Displays a Protection Database entry
+pts_examine \- Displays a Protection Database entry
.SH "SYNOPSIS"
\fBpts examine\fR <<\ \fB\-nameorid\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts e\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts check\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts che\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts examine\fR command displays information from the Protection
Database entry of each user, machine or group specified by the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_EXAMINE 1"
-.IX Name "pts examine - Displays a Protection Database entry"
+.IX Name "pts_examine - Displays a Protection Database entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_HELP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_HELP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts help \- Displays help for pts commands
+pts_help \- Displays help for pts commands
.SH "SYNOPSIS"
\fBpts help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "PTS_HELP 1"
-.IX Name "pts help - Displays help for pts commands"
+.IX Name "pts_help - Displays help for pts commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH PTS_INTERACTIVE 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH PTS_INTERACTIVE 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts interactive \- Enters interactive mode
+pts_interactive \- Enters interactive mode
.SH "SYNOPSIS"
\fBpts interactive\fR <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>> [\fB\-noauth\fR]
- [\fB\-force\fR]
+ [\fB\-auth\fR] [\fB\-localauth\fR] [\fB\-force\fR]
.PP
\fBpts in\fR <<\ [\fB\-c\fR]\ <\fIcell\ name\fR >>> [\fB\-n\fR] [\fB\-f\fR]
.SH "DESCRIPTION"
The \fBpts interactive\fR command allows the user to enter an interactive
mode, useful for running bulk commands like creating new users or groups.
+.PP
+\fBpts interactive\fR uses the authentication state supplied on its command
+line to run all bulk commands. However, if a bulk command is supplied
+with authentication options such as \fB\-cell\fR, \fB\-localauth\fR, \fB\-auth\fR
+or \fB\-noauth\fR then it, and all subsequent bulk commands, will be run with
+those options.
.SH "CAUTIONS"
Prior to OpenAFS 1.4.5 and OpenAFS 1.5.23, the \fBpts interactive\fR command
was only available on Unix or Linux and when OpenAFS was compiled with the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.SH "OUTPUT"
The output is the same as if each individual command were run from the
command line.
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "PTS_INTERACTIVE 1"
-.IX Name "pts interactive - Enters interactive mode"
+.IX Name "pts_interactive - Enters interactive mode"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Header "OUTPUT"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH PTS_LISTENTRIES 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_LISTENTRIES 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts listentries \- Displays all users or groups in the Protection Database
+pts_listentries \- Displays all users or groups in the Protection Database
.SH "SYNOPSIS"
\fBpts listentries\fR [\fB\-users\fR] [\fB\-groups\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
- [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
-\fBpts liste\fR [\fB\-u\fR] [\fB\-g\fR] <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-f\fR] [\fB\-h\fR]
+\fBpts liste\fR [\fB\-u\fR] [\fB\-g\fR] <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR]
+ [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts listentries\fR command displays the name and AFS ID of all
Protection Database entries of the indicated type. It also displays the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_LISTENTRIES 1"
-.IX Name "pts listentries - Displays all users or groups in the Protection Database"
+.IX Name "pts_listentries - Displays all users or groups in the Protection Database"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_LISTMAX 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_LISTMAX 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts listmax \- Displays the max user id and max group id counters
+pts_listmax \- Displays the max user id and max group id counters
.SH "SYNOPSIS"
-\fBpts listmax\fR <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+\fBpts listmax\fR <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
-\fBpts listm\fR <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-f\fR] [\fB\-h\fR]
+\fBpts listm\fR <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts listmax\fR command displays the values of the \f(CWmax user id\fR and
\f(CWmax group id\fR counters, which the Protection Server uses to track the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_LISTMAX 1"
-.IX Name "pts listmax - Displays the max user id and max group id counters"
+.IX Name "pts_listmax - Displays the max user id and max group id counters"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_LISTOWNED 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_LISTOWNED 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts listowned \- Show the Protection Database groups owned by a user or group
+pts_listowned \- Show the Protection Database groups owned by a user or group
.SH "SYNOPSIS"
\fBpts listowned\fR <<\ \fB\-nameorid\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- [\-cell <\fIcell name\fR>] [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ [\-cell <\fIcell name\fR>] [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts listo\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- [\-c <\fIcell name\fR>] [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\-c <\fIcell name\fR>] [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts listowned\fR command lists the groups owned by each user or group
specified by the \fB\-nameorid\fR argument.
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_LISTOWNED 1"
-.IX Name "pts listowned - Show the Protection Database groups owned by a user or group"
+.IX Name "pts_listowned - Show the Protection Database groups owned by a user or group"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_MEMBERSHIP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_MEMBERSHIP 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts membership \- Displays the membership list for a user or group
+pts_membership \- Displays the membership list for a user or group
.SH "SYNOPSIS"
\fBpts membership\fR <<\ \fB\-nameorid\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-localauth\fR] [\fB\-noauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts m\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts groups\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> [\-c <\fIcell name\fR>]
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.PP
\fBpts g\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts membership\fR command lists the groups to which each user or
machine specified by the \fB\-nameorid\fR argument belongs, or lists the users
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_MEMBERSHIP 1"
-.IX Name "pts membership - Displays the membership list for a user or group"
+.IX Name "pts_membership - Displays the membership list for a user or group"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_QUIT 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH PTS_QUIT 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts quit \- Exit from pts interactive mode
+pts_quit \- Exit from pts interactive mode
.SH "SYNOPSIS"
-\fBpts quit\fR <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>> [\fB\-noauth\fR] [\fB\-force\fR]
+\fBpts quit\fR <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR]
.PP
-\fBpts q\fR <<\ [\fB\-c\fR]\ <\fIcell\ name\fR >>> [\fB\-n\fR] [\fB\-f\fR]
+\fBpts q\fR <<\ [\fB\-c\fR]\ <\fIcell\ name\fR >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR]
.SH "DESCRIPTION"
The \fBpts quit\fR command exits from \fBpts interactive\fR mode. The command
can be run from the command line or interactively, but on the command line
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "PTS_QUIT 1"
-.IX Name "pts quit - Exit from pts interactive mode"
+.IX Name "pts_quit - Exit from pts interactive mode"
.IX Header "NAME"
.IX Item "\fB\-force\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-noauth\fR"
.IX Header "OUTPUT"
.nr % 0
.rr F
.\}
-.TH PTS_REMOVEUSER 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_REMOVEUSER 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts removeuser \- Removes a user from a Protection Database group
+pts_removeuser \- Removes a user from a Protection Database group
.SH "SYNOPSIS"
\fBpts removeuser\fR <<\ \fB\-user\fR\ <\fIuser\ name\fR+ >>> <<\ \fB\-group\fR\ <\fIgroup\ name\fR+ >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR]
+ [\fB\-help\fR]
.PP
\fBpts rem\fR <<\ \fB\-u\fR\ <\fIuser\ name\fR+ >>> <<\ \fB\-g\fR\ <\fIgroup\ name\fR+ >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts removeuser\fR command removes each user or machine named by the
\fB\-user\fR argument from each group named by the \fB\-group\fR argument.
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_REMOVEUSER 1"
-.IX Name "pts removeuser - Removes a user from a Protection Database group"
+.IX Name "pts_removeuser - Removes a user from a Protection Database group"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_RENAME 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_RENAME 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts rename \- Changes the name of a Protection Database entry
+pts_rename \- Changes the name of a Protection Database entry
.SH "SYNOPSIS"
\fBpts rename\fR <<\ \fB\-oldname\fR\ <\fIold\ name\fR >>> <<\ \fB\-newname\fR\ <\fInew\ name\fR >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts ren\fR <<\ \fB\-o\fR\ <\fIold\ name\fR >>> <<\ \fB\-ne\fR\ <\fInew\ name\fR >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts rename\fR command changes the name of the user, machine, or group
entry specified by the \fB\-oldname\fR argument to the name specified by the
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_RENAME 1"
-.IX Name "pts rename - Changes the name of a Protection Database entry"
+.IX Name "pts_rename - Changes the name of a Protection Database entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_SETFIELDS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_SETFIELDS 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts setfields \- Sets privacy flags or quota for a Protection Database entry
+pts_setfields \- Sets privacy flags or quota for a Protection Database entry
.SH "SYNOPSIS"
\fBpts setfields\fR <<\ \fB\-nameorid\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
<<\ [\fB\-access\fR\ <\fIset\ privacy\ flags\fR] >>>
<<\ [\fB\-groupquota\fR\ <\fIset\ limit\ on\ group\ creation\fR] >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts setf\fR <<\ \fB\-na\fR\ <\fIuser\ or\ group\ name\ or\ id\fR+ >>>
<<\ [\fB\-a\fR\ <\fIset\ privacy\ flags\fR] >>>
<<\ [\fB\-g\fR\ <\fIset\ limit\ on\ group\ creation\fR] >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-no\fR] [\fB\-f\fR] [\fB\-h\fR]
+ [\fB\-no\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts setfields\fR command sets the group-creation quota, the privacy
flags, or both, associated with each user, machine, or group entry
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_SETFIELDS 1"
-.IX Name "pts setfields - Sets privacy flags or quota for a Protection Database entry"
+.IX Name "pts_setfields - Sets privacy flags or quota for a Protection Database entry"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_SETMAX 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH PTS_SETMAX 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts setmax \- Sets the value of the max group id or max user id counter
+pts_setmax \- Sets the value of the max group id or max user id counter
.SH "SYNOPSIS"
\fBpts setmax\fR <<\ [\fB\-group\fR\ <\fIgroup\ max\fR] >>> <<\ [\fB\-user\fR\ <\fIuser\ max\fR] >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-force\fR] [\fB\-help\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR] [\fB\-help\fR]
.PP
\fBpts setm\fR [\fB\-g\fR \fIgroup max\fR>] <<\ [\fB\-u\fR\ <\fIuser\ max\fR] >>>
- <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-f\fR] [\fB\-h\fR]
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBpts setmax\fR command sets the value of one or both counters that
track the IDs the Protection Server allocates to new users, machines, or
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.Ip "\fB\-force\fR" 4
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
.rn }` ''
.IX Title "PTS_SETMAX 1"
-.IX Name "pts setmax - Sets the value of the max group id or max user id counter"
+.IX Name "pts_setmax - Sets the value of the max group id or max user id counter"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Item "\fB\-force\fR"
.IX Item "\fB\-help\fR"
.nr % 0
.rr F
.\}
-.TH PTS_SLEEP 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH PTS_SLEEP 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts sleep \- Pauses for a few seconds
+pts_sleep \- Pauses for a few seconds
.SH "SYNOPSIS"
\fBpts sleep\fR <<\ [\fB\-delay\fR]\ <\fI#\ of\ seconds\fR >>>
- <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>> [\fB\-noauth\fR] [\fB\-force\fR]
+ <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR]
.PP
\fBpts sl\fR <<\ [\fB\-d\fR]\ <\fI#\ of\ seconds\fR >>> <<\ [\fB\-c\fR]\ <\fIcell\ name\fR >>>
- [\fB\-n\fR] [\fB\-f\fR]
+ [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR]
.SH "DESCRIPTION"
The \fBpts sleep\fR pauses for a specified number of seconds. The command can
be run from the command line or interactively, although from the command
supergroups option (disabled by default). As of OpenAFS 1.4.5 and 1.5.23,
it is always available.
.SH "OPTIONS"
-Although they have no effect, \fBpts quit\fR takes the following standard
+Although they have no effect, \fBpts sleep\fR takes the following standard
\fBpts\fR options:
.Ip "\fB\-cell\fR <\fIcell name\fR>" 4
Names the cell in which to run the command. For more details, see
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.SH "OUTPUT"
This command produces no output.
.SH "EXAMPLES"
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "PTS_SLEEP 1"
-.IX Name "pts sleep - Pauses for a few seconds"
+.IX Name "pts_sleep - Pauses for a few seconds"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Header "OUTPUT"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH PTS_SOURCE 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH PTS_SOURCE 1 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-pts source \- Read pts commands from a file
+pts_source \- Read pts commands from a file
.SH "SYNOPSIS"
\fBpts source\fR <<\ [\fB\-file\fR]\ <\fIfile\ name\fR >>> <<\ [\fB\-cell\fR]\ <\fIcell\ name\fR >>>
- [\fB\-noauth\fR] [\fB\-force\fR]
+ [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-force\fR]
.PP
\fBpts so\fR <<\ [\fB\-f\fR]\ <\fIfile\ name\fR >>> <<\ [\fB\-c\fR]\ <\fIcell\ name\fR >>>
- [\fB\-n\fR] [\fB\-f\fR]
+ [\fB\-n\fR] [\fB\-l\fR] [\fB\-f\fR]
.SH "DESCRIPTION"
The \fBpts source\fR runs commands from a file as if they were typed in \fBpts
interactive\fR mode. The command can be run from the command line or
.Ip "\fB\-noauth\fR" 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see the \fIpts(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. Do not combine this flag with the
+\fB\-cell\fR or \fB\-noauth\fR options. For more details, see the \fIpts(1)\fR manpage.
.SH "OUTPUT"
This command shows the output of each comand in the file as if it were
run normally.
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "PTS_SOURCE 1"
-.IX Name "pts source - Read pts commands from a file"
+.IX Name "pts_source - Read pts commands from a file"
.IX Header "NAME"
.IX Item "\fB\-noauth\fR"
+.IX Item "\fB\-localauth\fR"
+
.IX Header "OUTPUT"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH RXDEBUG 1 "OpenAFS" "4/Aug/2006" "AFS Command Reference"
+.TH RXDEBUG 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
additional information as described in the \fIOPTIONS\fR manpage. The output is intended
for debugging purposes and is meaningful to someone familiar with the
implementation of Rx.
+.SH "EXAMPLES"
+The following command shows Rx statistics on the server 192.168.1.100:
+.PP
+.Vb 7
+\& % rxdebug 192.168.1.100
+\& Trying 192.168.1.100 (port 7000):
+\& Free packets: 265, packet reclaims: 0, calls: 0, used FDs: 34
+\& not waiting for packets.
+\& 0 calls waiting for a thread
+\& 11 threads are idle
+\& Done.
+.Ve
+The following command shows the OpenAFS version running on the server
+192.168.1.100:
+.PP
+.Vb 3
+\& % rxdebug 192.168.1.100 -version
+\& Trying 192.168.1.100 (port 7000):
+\& AFS version: OpenAFS 1.4.2fc2 built 2006-08-31
+.Ve
.SH "PRIVILEGE REQUIRED"
None.
.SH "SEE ALSO"
.IX Header "OUTPUT"
+.IX Header "EXAMPLES"
+
.IX Header "PRIVILEGE REQUIRED"
.IX Header "SEE ALSO"
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH SYMLINK 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+symlink \- Introduction to the symlink command suite
+.SH "DESCRIPTION"
+The \fBsymlink\fR command creates, lists and removes Unix-style symbolic links
+(symlinks) in OpenAFS filespace from a platform that does not support
+symlinks, like Windows. The \fBsymlink make\fR command is equivalent to
+\f(CWln -s\fR on a Unix platform. \fBsymlink\fR can manipulate symlinks created
+by \f(CWln -s\fR on Unix and vice versa.
+.SH "CAUTIONS"
+The \fBsymlink\fR commands are only available on Windows platforms. On
+other platforms, use the \f(CWln -s\fR command.
+.SH "OPTIONS"
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "SEE ALSO"
+the \fIsymlink_list(1)\fR manpage,
+the \fIsymlink_make(1)\fR manpage,
+the \fIsymlink_remove(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "SYMLINK 1"
+.IX Name "symlink - Introduction to the symlink command suite"
+
+.IX Header "NAME"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH SYMLINK_LIST 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+symlink_list \- Show the file to which a symlink points
+.SH "SYNOPSIS"
+\fBsymlink list\fR <<\ [\fB\-name\fR]\ <\fIfile\ name\fR >>> [\fB\-help\fR]
+.SH "DESCRIPTION"
+The \fBsymlink list\fR command shows if a file is a symbolic link and, if so,
+shows to which file the link points.
+.SH "CAUTIONS"
+The \fBsymlink\fR commands are only available on Windows platforms. On other
+platforms, use the \fBreadlink\fR command.
+.SH "OPTIONS"
+.Ip "[\fB\-name\fR] <\fIfile name\fR>" 4
+Specify one or more symbolic links to list. The \f(CW-name\fR is optional, but
+the file name is not.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "OUTPUT"
+This command prints \*(L"'file\*(R' is a symlink to \*(L'otherfile'\*(R" or \*(L"'file\*(R' is
+not a symlink.\*(R"
+.SH "EXAMPLES"
+Given that file \f(CWmylink\fR is a link pointing to file \f(CWmyfile\fR, the
+following commands will list the files:
+.PP
+.Vb 2
+\& % symlink list -name mylink
+\& 'mylink' is a symlink to 'myfile'
+.Ve
+.Vb 2
+\& % symlink list mylink
+\& 'mylink' is a symlink to 'myfile'
+.Ve
+.Vb 2
+\& % symlink list -name myfile
+\& 'myfile' is not a symlink.
+.Ve
+.Vb 2
+\& % symlink list myfile
+\& 'myfile' is not a symlink.
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must have the \f(CWl\fR (look) and \f(CWr\fR (read) permissions on the ACL
+of the directory that houses the symlink.
+.SH "SEE ALSO"
+the \fIsymlink(1)\fR manpage,
+the \fIsymlink_make(1)\fR manpage,
+the \fIsymlink_remove(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "SYMLINK_LIST 1"
+.IX Name "symlink_list - Show the file to which a symlink points"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "[\fB\-name\fR] <\fIfile name\fR>"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "OUTPUT"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH SYMLINK_MAKE 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+symlink_make \- Create a symbolic link
+.SH "SYNOPSIS"
+\fBsymlink make\fR <<\ [\fB\-name\fR]\ <\fIfile\ name\fR >>>
+ <<\ [\fB\-to\fR]\ <\fIfile\ name\fR >>> [\fB\-help\fR]
+.SH "DESCRIPTION"
+The \fBsymlink make\fR command creates a new symbolic link to a file. The file
+to which the link points does not have to exist when the link is created.
+.SH "CAUTIONS"
+The \fBsymlink\fR commands are only available on Windows platforms. On other
+platforms, use the \f(CWln -s\fR command.
+.SH "OPTIONS"
+.Ip "[\fB\-name\fR] <\fIfile name\fR>" 4
+Specify the name of the new link. \fB\-name\fR is optional, but the file name
+is not.
+.Ip "[\fB\-to\fR] <\fIfile name\fR>" 4
+Specify the file to which the new link points. \fB\-to\fR is optional, but the
+file name is not.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "OUTPUT"
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "EXAMPLES"
+In order to create a link named \f(CWmylink\fR pointing to the file \f(CWmyfile\fR,
+use one of the following commands:
+.PP
+.Vb 2
+\& % symlink make -name mylink -to myfile
+\& % symlink make mylink myfile
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must have the \f(CWl\fR (look) and \f(CWi\fR (insert) permissions on the
+ACL of the directory that houses the symlink.
+.SH "SEE ALSO"
+the \fIsymlink(1)\fR manpage,
+the \fIsymlink_list(1)\fR manpage,
+the \fIsymlink_remove(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "SYMLINK_MAKE 1"
+.IX Name "symlink_make - Create a symbolic link"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "[\fB\-name\fR] <\fIfile name\fR>"
+
+.IX Item "[\fB\-to\fR] <\fIfile name\fR>"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "OUTPUT"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH SYMLINK_REMOVE 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+symlink_remove \- Remove a symbolic link.
+.SH "SYNOPSIS"
+\fBsymlink remove\fR <<\ [\fB\-name\fR]\ <\fIfile\ name\fR >>> [\fB\-help\fR]
+.SH "DESCRIPTION"
+The \fBsymlink remove\fR command removes a symbolic link to a file.
+.SH "CAUTIONS"
+The \fBsymlink\fR commands are only available on Windows platforms. On other
+platforms, use the \fBrm\fR command.
+.SH "OPTIONS"
+.Ip "[\fB\-name\fR] <\fIfile name\fR>" 4
+Specify one or more symbolic links to remove. The \fB\-name\fR is optional, but
+the file name is not.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "OUTPUT"
+This command has no output except error and help messages. If the command
+is passed a real file instead of a symlink, it prints \*(L"symlink: \*(L'file name\*(R'
+is not a symlink\*(R" instead of removing the file.
+.SH "EXAMPLES"
+Given that file \f(CWmylink\fR is a link pointing to file \f(CWmyfile\fR, the
+following commands will remove the link \f(CWmylink\fR:
+.PP
+.Vb 2
+\& % symlink remove -name mylink
+\& % symlink remove mylink
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must have the \f(CWl\fR (look) and \f(CWd\fR (delete) permissions on
+the ACL of the directory that houses the symlink.
+.SH "SEE ALSO"
+the \fIsymlink(1)\fR manpage,
+the \fIsymlink_list(1)\fR manpage,
+the \fIsymlink_make(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "SYMLINK_REMOVE 1"
+.IX Name "symlink_remove - Remove a symbolic link."
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "[\fB\-name\fR] <\fIfile name\fR>"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "OUTPUT"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH SYS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH SYS 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
the \fIfs_sysname(1)\fR manpage,
the \fIlivesys(1)\fR manpage
.PP
-\fIIBM AFS Quick Beginnings\fR
+\fIOpenAFS Quick Beginnings\fR
.PP
-\fIIBM AFS Administration Guide\fR
+\fIOpenAFS Administration Guide\fR
.SH "COPYRIGHT"
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
.PP
.nr % 0
.rr F
.\}
-.TH VOS 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH VOS 1 "OpenAFS" "19/Jan/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
A command to report Volume Server status: \fBvos status\fR.
.Ip "\(bu" 4
Commands to obtain help: \fBvos apropos\fR and \fBvos help\fR.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
The following arguments and flags are available on many commands in the
\fBbos\fR suite. The reference page for each command also lists them, but
the \fIvos_backup(1)\fR manpage,
the \fIvos_backupsys(1)\fR manpage,
the \fIvos_changeaddr(1)\fR manpage,
-the \fIvos_changeloc(1)\fR manpage,
+the \fIvos_convertROtoRW(1)\fR manpage,
+the \fIvos_copy(1)\fR manpage,
the \fIvos_create(1)\fR manpage,
the \fIvos_delentry(1)\fR manpage,
the \fIvos_dump(1)\fR manpage,
.IX Item "\(bu"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-cell\fR <\fIcell name\fR>"
.nr % 0
.rr F
.\}
-.TH VOS_ADDSITE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_ADDSITE 1 "OpenAFS" "20/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos addsite \- Adds a read-only site definition to a volume's VLDB entry
+vos_addsite \- Adds a read-only site definition to a volume's VLDB entry
.SH "SYNOPSIS"
\fBvos addsite\fR <<\ \fB\-server\fR\ <\fImachine\ name\ for\ new\ site\fR >>>
<<\ \fB\-partition\fR\ <\fIpartition\ name\ for\ new\ site\fR >>>
- <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
- [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
+ <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ \fB\-valid\fR\ <\fIold\ volume\ id\fR >>>
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-verbose\fR] [\fB\-help\fR]
.PP
\fBvos ad\fR <<\ \fB\-s\fR\ <\fImachine\ name\ for\ new\ site\fR >>>
<<\ \fB\-p\fR\ <\fIpartition\ name\ for\ new\ site\fR >>>
- <<\ \fB\-i\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>>
- [\fB\-n\fR] [\fB\-l\fR] [\fB\-v\fR] [\fB\-h\fR]
+ <<\ \fB\-i\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ \fB\-valid\fR\ <\fIold\ volume\ id\fR >>>
+ <<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-v\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBvos addsite\fR command defines a new read-only site (partition on a
file server machine, specified by the \fB\-server\fR and \fB\-partition\fR
.Ip "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>" 4
Specifies either the complete name or volume \s-1ID\s0 number of the read/write
source volume.
+.Ip "\fB\-valid\fR <\fIvolume \s-1ID\s0\fR>" 4
+Specifies the volume \s-1ID\s0 number of the existing release-equivalent
+volume that is not already marked as a replica. This is useful when an
+existing read-only volume is dumped and restored with the \fB\-readonly\fR
+flag at the new site. This option is available in OpenAFS clients
+1.4.7 or later and 1.5.31 and later. This option can be used with
+OpenAFS server versions later than 1.4.1 or 1.5.0.
.Ip "\fB\-cell\fR <\fIcell name\fR>" 4
Names the cell in which to run the command. Do not combine this argument
with the \fB\-localauth\fR flag. For more details, see the \fIvos(1)\fR manpage.
.rn }` ''
.IX Title "VOS_ADDSITE 1"
-.IX Name "vos addsite - Adds a read-only site definition to a volume's VLDB entry"
+.IX Name "vos_addsite - Adds a read-only site definition to a volume's VLDB entry"
.IX Header "NAME"
.IX Item "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>"
+.IX Item "\fB\-valid\fR <\fIvolume \s-1ID\s0\fR>"
+
.IX Item "\fB\-cell\fR <\fIcell name\fR>"
.IX Item "\fB\-noauth\fR"
.nr % 0
.rr F
.\}
-.TH VOS_APROPOS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_APROPOS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos apropos \- Displays each help entry containing a keyword string
+vos_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBvos apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "VOS_APROPOS 1"
-.IX Name "vos apropos - Displays each help entry containing a keyword string"
+.IX Name "vos_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_BACKUP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_BACKUP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos backup \- Creates a backup volume for a single read/write volume
+vos_backup \- Creates a backup volume for a single read/write volume
.SH "SYNOPSIS"
\fBvos backup\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_BACKUP 1"
-.IX Name "vos backup - Creates a backup volume for a single read/write volume"
+.IX Name "vos_backup - Creates a backup volume for a single read/write volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_BACKUPSYS 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH VOS_BACKUPSYS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos backupsys \- Creates a backup volume for several read/write volumes
+vos_backupsys \- Creates a backup volume for several read/write volumes
.SH "SYNOPSIS"
\fBvos backupsys\fR <<\ [\fB\-prefix\fR\ <\fIcommon\ prefix\ on\ volume(s)\fR+] >>>
<<\ [\fB\-server\fR\ <\fImachine\ name\fR] >>> <<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>>
.rn }` ''
.IX Title "VOS_BACKUPSYS 1"
-.IX Name "vos backupsys - Creates a backup volume for several read/write volumes"
+.IX Name "vos_backupsys - Creates a backup volume for several read/write volumes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_CHANGEADDR 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_CHANGEADDR 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos changeaddr \- Changes or removes a file server machine's entry in the VLDB
+vos_changeaddr \- Changes or removes a file server machine's entry in the VLDB
.SH "SYNOPSIS"
\fBvos changeaddr\fR <<\ \fB\-oldaddr\fR\ <\fIoriginal\ IP\ address\fR >>>
<<\ [\fB\-newaddr\fR\ <\fInew\ IP\ address\fR] >>> [\fB\-remove\fR]
.rn }` ''
.IX Title "VOS_CHANGEADDR 1"
-.IX Name "vos changeaddr - Changes or removes a file server machine's entry in the VLDB"
+.IX Name "vos_changeaddr - Changes or removes a file server machine's entry in the VLDB"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_CHANGELOC 1 "OpenAFS" "19/Aug/2007" "AFS Command Reference"
+.TH VOS_CHANGELOC 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos changeloc \- Change a volume's entry in the VLDB
+vos_changeloc \- Change a volume's entry in the VLDB
.SH "SYNOPSIS"
\fBvos changeloc\fR <<\ [\fB\-server\fR]\ <\fInew\ server\ name\fR >>>
<<\ [\fB\-partition\fR]\ <\fInew\ partition\ location\fR >>>
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "VOS_CHANGELOC 1"
-.IX Name "vos changeloc - Change a volume's entry in the VLDB"
+.IX Name "vos_changeloc - Change a volume's entry in the VLDB"
.IX Header "NAME"
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH VOS_CONVERTROTORW 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+vos_convertROtoRW \- Converts a Read-Only volume into a Read/Write volume
+.SH "SYNOPSIS"
+\fBvos convertROtoRW\fR <<\ [\fB\-server\fR]\ <\fImachine\ name\fR >>>
+ <<\ [\fB\-partition\fR]\ <\fIpartition\ name\fR >>>
+ <<\ [\fB\-id\fR]\ <\fIvolume\ name\ or\ ID\fR >>> [\fB\-force\fR]
+ <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
+ [\fB\-verbose\fR] [\fB\-encrypt\fR] [\fB\-help\fR]
+.SH "DESCRIPTION"
+\fBvos convertROtoRW\fR converts a Read-Only volume into a Read/Write volume
+when the original Read/Write volume is no longer available. It's normal use
+is to recover the Read/Write volume from a replica after a failed disk,
+failed server, or accidental deletion.
+.SH "CAUTIONS"
+This command can only be used with namei AFS file servers. If used on an
+inode AFS file server, it will fail with an error.
+.PP
+The command name is case-sensitive. It must be issued with the capital \*(L"RO\*(R"
+and \*(L"RW\*(R".
+.SH "OPTIONS"
+.Ip "\fB\-server\fR <\fIserver name\fR>" 4
+Identifies the file server machine that houses the Read-Only volume which
+will be converted. Provide the machine's \s-1IP\s0 address or its host name
+(either fully qualified or using an unambiguous abbreviation). For details,
+see the \fIvos(1)\fR manpage.
+.Ip "\fB\-partition\fR <\fIpartition name\fR>" 4
+Identifies the partition on the file server machine that houses the
+Read-Only volume which will be converted. Provide the full partition name
+(for, example, \fB/vicepa\fR) or one of the abbreviated forms described in
+the \fIvos(1)\fR manpage.
+.Ip "\fB\-id\fR <\fIvolume \s-1ID\s0\fR>" 4
+Specifies either the complete name or volume \s-1ID\s0 number of a Read/Write
+volume.
+.Ip "\fB\-force\fR" 4
+Don't ask for confirmation.
+.Ip "\fB\-cell\fR <\fIcell name\fR>" 4
+Names the cell in which to run the command. Do not combine this argument
+with the \fB\-localauth\fR flag. For more details, see the \fIvos(1)\fR manpage.
+.Ip "\fB\-noauth\fR" 4
+Assigns the unprivileged identity \f(CWanonymous\fR to the issuer. Do not
+combine this flag with the \fB\-localauth\fR flag. For more details, see
+the \fIvos(1)\fR manpage.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. The \fBvos\fR command interpreter presents it
+to the Volume Server and Volume Location Server during mutual
+authentication. Do not combine this flag with the \fB\-cell\fR argument or
+\fB\-noauth\fR flag. For more details, see the \fIvos(1)\fR manpage.
+.Ip "\fB\-verbose\fR" 4
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+.Ip "\fB\-encrypt\fR" 4
+Encrypts the command so that the operation's results are not transmitted
+across the network in clear text.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "EXAMPLES"
+The following example converts the read-only volume test3.readonly in
+partition vicepb on server1 to a read-write volume:
+.PP
+.Vb 1
+\& % vos convertROtoRW server1 b test3.readonly
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must be listed in the \fI/usr/afs/etc/UserList\fR file on the
+machines specified with the \fB\-toserver\fR and \fB\-fromserver\fR arguments and
+on each database server machine. If the \fB\-localauth\fR flag is included,
+the issuer must instead be logged on to a server machine as the local
+superuser \f(CWroot\fR.
+.SH "SEE ALSO"
+the \fIvos(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "VOS_CONVERTROTORW 1"
+.IX Name "vos_convertROtoRW - Converts a Read-Only volume into a Read/Write volume"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "\fB\-server\fR <\fIserver name\fR>"
+
+.IX Item "\fB\-partition\fR <\fIpartition name\fR>"
+
+.IX Item "\fB\-id\fR <\fIvolume \s-1ID\s0\fR>"
+
+.IX Item "\fB\-force\fR"
+
+.IX Item "\fB\-cell\fR <\fIcell name\fR>"
+
+.IX Item "\fB\-noauth\fR"
+
+.IX Item "\fB\-localauth\fR"
+
+.IX Item "\fB\-verbose\fR"
+
+.IX Item "\fB\-encrypt\fR"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH VOS_COPY 1 "OpenAFS" "19/Jan/2008" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+vos_copy \- Make a copy of a volume
+.SH "SYNOPSIS"
+\fBvos copy\fR <<\ [\fB\-id\fR]\ <\fIvolume\ name\ or\ ID\ of\ source\fR >>>
+ <<\ [\fB\-fromserver\fR]\ <\fImachine\ name\ for\ source\fR >>>
+ <<\ [\fB\-frompartition\fR]\ <\fIpartition\ name\ for\ source\fR >>>
+ <<\ [\fB\-toname\fR]\ <\fIvolume\ name\ for\ new\ copy\fR >>>
+ <<\ [\fB\-toserver\fR]\ <\fImachine\ name\ for\ destination\fR >>>
+ <<\ [\fB\-topartition\fR]\ <\fIpartition\ name\ for\ destination\fR >>>
+ [\fB\-offline\fR] [\fB\-readonly\fR] [\fB\-live\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
+ [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-encrypt\fR] [\fB\-help\fR]
+.SH "DESCRIPTION"
+The \fBvos copy\fR command makes a copy of a volume with a new name. It is
+equivalent to \fBvos dump\fR followed by \fBvos restore\fR, but doesn't require
+the volume be stored locally by the client.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+.SH "OPTIONS"
+.Ip "[\fB\-id\fR] <\fIvolume name or \s-1ID\s0\fR>" 4
+Specifies either the complete name or volume \s-1ID\s0 number of a read/write
+volume.
+.Ip "[\fB\-fromserver\fR] <\fImachine name for source\fR>" 4
+Identifies the file server machine where the source volume resides. Provide
+the machine's \s-1IP\s0 address or its host name (either fully qualified or using
+an unambiguous abbreviation). For details, see the \fIvos(1)\fR manpage.
+.Ip "[\fB\-frompartition\fR] <\fIpartition name for source\fR>" 4
+Names the partition where the source volume resides. Provide the full
+partition name (for, example, \fB/vicepa\fR) or one of the abbreviated forms
+described in the \fIvos(1)\fR manpage.
+.Ip "[\fB\-toname\fR] <\fIvolume name for new copy\fR>" 4
+The complete name of the new volume to create.
+.Ip "[\fB\-toserver\fR] <\fImachine name for destination\fR>" 4
+Identifies the file server machine to which to copy the volume. Provide
+the machine's \s-1IP\s0 address or its host name (either fully qualified or using
+an unambiguous abbreviation). For details, see the \fIvos(1)\fR manpage.
+.Ip "[\fB\-topartition\fR] <\fIpartition name for destination\fR>" 4
+Names the partition to which to copy the volume. Provide the full partition
+name (for, example, \fB/vicepa\fR) or one of the abbreviated forms described in
+the \fIvos(1)\fR manpage.
+.Ip "\fB\-offline\fR" 4
+Leaves the new volume flagged as off-line in the volume database.
+.Ip "\fB\-readonly\fR" 4
+Flags the new volume as read-only in the volume database.
+.Ip "\fB\-live\fR" 4
+Copies the live volume without cloning. This is normally not necessary and
+causes the volume to be kept locked for longer than the normal copy
+mechanism.
+.Ip "\fB\-localauth\fR" 4
+Constructs a server ticket using a key from the local
+\fI/usr/afs/etc/KeyFile\fR file. The \fBvos\fR command interpreter presents it to
+the Volume Server and Volume Location Server during mutual
+authentication. Do not combine this flag with the \fB\-cell\fR argument or
+\fB\-noauth\fR flag. For more details, see the \fIvos(1)\fR manpage.
+.Ip "\fB\-verbose\fR" 4
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+.Ip "\fB\-encrypt\fR" 4
+Encrypts the command so that the operation's results are not transmitted
+across the network in clear text.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "OUTPUT"
+This command has no output unless \f(CW-verbose\fR is specified or there is
+an error.
+.SH "EXAMPLES"
+The following example makes a verbose copy of the \f(CWtest\fR volume named
+\f(CWtest2\fR in the cell \f(CWlocalcell\fR. The volume and copy both reside on
+\f(CW/vicepa\fR of \f(CWserver1\fR.
+.PP
+.Vb 23
+\& % vos copy test server1 a test2 server1 a -cell localcell -verbose
+\& Starting transaction on source volume 536870921 ... done
+\& Allocating new volume id for clone of volume 536870921 ... done
+\& Allocating new volume id for copy of volume 536870921 ... done
+\& Cloning source volume 536870921 ... done
+\& Ending the transaction on the source volume 536870921 ... done
+\& Starting transaction on the cloned volume 536870926 ... done
+\& Setting flags on cloned volume 536870926 ... done
+\& Getting status of cloned volume 536870926 ... done
+\& Creating the destination volume 536870927 ... done
+\& Setting volume flags on destination volume 536870927 ... done
+\& Dumping from clone 536870926 on source to volume 536870927 on destination ... done
+\& Ending transaction on cloned volume 536870926 ... done
+\& Starting transaction on source volume 536870921 ... done
+\& Doing the incremental dump from source to destination for volume 536870921 ... done
+\& Setting volume flags on destination volume 536870927 ... done
+\& Ending transaction on destination volume 536870927 ... done
+\& Ending transaction on source volume 536870921 ... done
+\& Starting transaction on the cloned volume 536870926 ... done
+\& Deleting the cloned volume 536870926 ... done
+\& Ending transaction on cloned volume 536870926 ... done
+\& Created the VLDB entry for the volume test2 536870927
+\& Volume 536870921 copied from server1 /vicepa to test2 on server1 /vicepa
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must be listed in the \fI/usr/afs/etc/UserList\fR file on the
+machine specified with the \fB\-server\fR argument and on each database server
+machine. If the \fB\-localauth\fR flag is included, the issuer must instead be
+logged on to a server machine as the local superuser \f(CWroot\fR.
+.SH "SEE ALSO"
+the \fIvos(1)\fR manpage,
+the \fIvos_clone(1)\fR manpage,
+the \fIvos_move(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "VOS_COPY 1"
+.IX Name "vos_copy - Make a copy of a volume"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "CAUTIONS"
+
+.IX Header "OPTIONS"
+
+.IX Item "[\fB\-id\fR] <\fIvolume name or \s-1ID\s0\fR>"
+
+.IX Item "[\fB\-fromserver\fR] <\fImachine name for source\fR>"
+
+.IX Item "[\fB\-frompartition\fR] <\fIpartition name for source\fR>"
+
+.IX Item "[\fB\-toname\fR] <\fIvolume name for new copy\fR>"
+
+.IX Item "[\fB\-toserver\fR] <\fImachine name for destination\fR>"
+
+.IX Item "[\fB\-topartition\fR] <\fIpartition name for destination\fR>"
+
+.IX Item "\fB\-offline\fR"
+
+.IX Item "\fB\-readonly\fR"
+
+.IX Item "\fB\-live\fR"
+
+.IX Item "\fB\-localauth\fR"
+
+.IX Item "\fB\-verbose\fR"
+
+.IX Item "\fB\-encrypt\fR"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "OUTPUT"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH VOS_CREATE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_CREATE 1 "OpenAFS" "19/Jan/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos create \- Creates a read/write volume and associated VLDB entry
+vos_create \- Creates a read/write volume and associated VLDB entry
.SH "SYNOPSIS"
\fBvos create\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
<<\ \fB\-name\fR\ <\fIvolume\ name\fR >>> <<\ [\fB\-maxquota\fR\ <\fIinitial\ quota\ (KB)\fR] >>>
.PP
The volume is empty when created. To access it via the Cache Manager,
mount it in the file space by using the \fBfs mkmount\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-server\fR <\fIserver name\fR>" 4
Identifies the file server machine on which to create the read/write
.rn }` ''
.IX Title "VOS_CREATE 1"
-.IX Name "vos create - Creates a read/write volume and associated VLDB entry"
+.IX Name "vos_create - Creates a read/write volume and associated VLDB entry"
.IX Header "NAME"
.IX Item "\(bu"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-server\fR <\fIserver name\fR>"
.nr % 0
.rr F
.\}
-.TH VOS_DELENTRY 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_DELENTRY 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos delentry \- Removes a volume entry from the VLDB.
+vos_delentry \- Removes a volume entry from the VLDB.
.SH "SYNOPSIS"
\fBvos delentry\fR <<\ [\fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR+] >>>
<<\ [\fB\-prefix\fR\ <\fIprefix\ of\ volume\ whose\ VLDB\ entry\ is\ to\ be\ deleted\fR] >>>
.rn }` ''
.IX Title "VOS_DELENTRY 1"
-.IX Name "vos delentry - Removes a volume entry from the VLDB."
+.IX Name "vos_delentry - Removes a volume entry from the VLDB."
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_DUMP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_DUMP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos dump \- Converts a volume into ASCII format and writes it to a file
+vos_dump \- Converts a volume into ASCII format and writes it to a file
.SH "SYNOPSIS"
\fBvos dump\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-time\fR\ <\fIdump\ from\ time\fR] >>>
<<\ [\fB\-file\fR\ <\fIdump\ file\fR] >>> <<\ [\fB\-server\fR\ <\fIserver\fR] >>>
.rn }` ''
.IX Title "VOS_DUMP 1"
-.IX Name "vos dump - Converts a volume into ASCII format and writes it to a file"
+.IX Name "vos_dump - Converts a volume into ASCII format and writes it to a file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_EXAMINE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_EXAMINE 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos examine \- Shows volume header and VLDB entry information for a volume
+vos_examine \- Shows volume header and VLDB entry information for a volume
.SH "SYNOPSIS"
\fBvos examine\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> [\fB\-extended\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR]
.PP
To display the volume header only, use the \fBvos listvol\fR command. To
display information from the VLDB only, use the \fBvos listvldb\fR command.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>" 4
Specifies either the complete name or volume \s-1ID\s0 number of the volume,
.rn }` ''
.IX Title "VOS_EXAMINE 1"
-.IX Name "vos examine - Shows volume header and VLDB entry information for a volume"
+.IX Name "vos_examine - Shows volume header and VLDB entry information for a volume"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>"
.nr % 0
.rr F
.\}
-.TH VOS_HELP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_HELP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos help \- Displays help for vos commands
+vos_help \- Displays help for vos commands
.SH "SYNOPSIS"
\fBvos help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "VOS_HELP 1"
-.IX Name "vos help - Displays help for vos commands"
+.IX Name "vos_help - Displays help for vos commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_LISTADDRS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_LISTADDRS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos listaddrs \- Displays all VLDB server entries
+vos_listaddrs \- Displays all VLDB server entries
.SH "SYNOPSIS"
\fBvos listaddrs\fR <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR]
[\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_LISTADDRS 1"
-.IX Name "vos listaddrs - Displays all VLDB server entries"
+.IX Name "vos_listaddrs - Displays all VLDB server entries"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_LISTPART 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_LISTPART 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos listpart \- Displays all AFS partitions on a file server machine
+vos_listpart \- Displays all AFS partitions on a file server machine
.SH "SYNOPSIS"
\fBvos listpart\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_LISTPART 1"
-.IX Name "vos listpart - Displays all AFS partitions on a file server machine"
+.IX Name "vos_listpart - Displays all AFS partitions on a file server machine"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_LISTVLDB 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_LISTVLDB 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos listvldb \- Displays a volume's VLDB entry
+vos_listvldb \- Displays a volume's VLDB entry
.SH "SYNOPSIS"
\fBvos listvldb\fR <<\ [\fB\-name\fR\ <\fIvolume\ name\ or\ ID\fR] >>>
<<\ [\fB\-server\fR\ <\fImachine\ name\fR] >>> <<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>>
.rn }` ''
.IX Title "VOS_LISTVLDB 1"
-.IX Name "vos listvldb - Displays a volume's VLDB entry"
+.IX Name "vos_listvldb - Displays a volume's VLDB entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_LISTVOL 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_LISTVOL 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos listvol \- Displays information from a volume header
+vos_listvol \- Displays information from a volume header
.SH "SYNOPSIS"
\fBvos listvol\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>> [\fB\-fast\fR] [\fB\-long\fR] [\fB\-quiet\fR]
.rn }` ''
.IX Title "VOS_LISTVOL 1"
-.IX Name "vos listvol - Displays information from a volume header"
+.IX Name "vos_listvol - Displays information from a volume header"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_LOCK 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_LOCK 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos lock \- Locks a VLDB volume entry
+vos_lock \- Locks a VLDB volume entry
.SH "SYNOPSIS"
\fBvos lock\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_LOCK 1"
-.IX Name "vos lock - Locks a VLDB volume entry"
+.IX Name "vos_lock - Locks a VLDB volume entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_MOVE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_MOVE 1 "OpenAFS" "19/Jan/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos move \- Moves a read/write volume to another site
+vos_move \- Moves a read/write volume to another site
.SH "SYNOPSIS"
\fBvos move\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>>
<<\ \fB\-fromserver\fR\ <\fImachine\ name\ on\ source\fR >>>
<<\ \fB\-frompartition\fR\ <\fIpartition\ name\ on\ source\fR >>>
<<\ \fB\-toserver\fR\ <\fImachine\ name\ on\ destination\fR >>>
<<\ \fB\-topartition\fR\ <\fIpartition\ name\ on\ destination\fR >>>
- <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR]
- [\fB\-help\fR]
+ [\fB\-live\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR]
+ [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.PP
\fBvos m\fR <<\ \fB\-i\fR\ <\fIvolume\ name\ or\ ID\fR >>>
<<\ \fB\-froms\fR\ <\fImachine\ name\ on\ source\fR >>>
<<\ \fB\-fromp\fR\ <\fIpartition\ name\ on\ source\fR >>>
<<\ \fB\-tos\fR\ <\fImachine\ name\ on\ destination\fR >>>
- <<\ \fB\-top\fR\ <\fIpartition\ name\ on\ destination\fR >>>
+ <<\ \fB\-top\fR\ <\fIpartition\ name\ on\ destination\fR >>> [\fB\-li\fR]
<<\ [\fB\-c\fR\ <\fIcell\ name\fR] >>> [\fB\-n\fR] [\fB\-l\fR] [\fB\-v\fR] [\fB\-h\fR]
.SH "DESCRIPTION"
The \fBvos move\fR command moves the indicated read/write volume from its
.Ve
To confirm termination of the operation, press Ctrl-C a second time; press
any other key to continue the operation.
+.PP
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>" 4
Specifies either the complete name or volume \s-1ID\s0 number of a read/write
Names the partition to which to move the volume. Provide the full
partition name (for, example, \fB/vicepa\fR) or one of the abbreviated forms
described in the \fIvos(1)\fR manpage.
+.Ip "\fB\-live\fR" 4
+Avoids making a temporary copy of the volume during the move. This is
+useful if the partition is full, but the administrator needs to move
+volumes to a another partition or server to free up disk space. The
+caveat is that the volume is locked during the entire operation
+instead of the short time that is needed to make the temporary clone.
.Ip "\fB\-cell\fR <\fIcell name\fR>" 4
Names the cell in which to run the command. Do not combine this argument
with the \fB\-localauth\fR flag. For more details, see the \fIvos(1)\fR manpage.
the \fIvos(1)\fR manpage,
the \fIvos_addsite(1)\fR manpage,
the \fIvos_backup(1)\fR manpage,
+the \fIvos_copy(1)\fR manpage,
the \fIvos_release(1)\fR manpage,
the \fIvos_listvol(1)\fR manpage,
the \fIvos_remove(1)\fR manpage
.rn }` ''
.IX Title "VOS_MOVE 1"
-.IX Name "vos move - Moves a read/write volume to another site"
+.IX Name "vos_move - Moves a read/write volume to another site"
.IX Header "NAME"
.IX Item "\fB\-topartition\fR <\fIpartition name\fR>"
+.IX Item "\fB\-live\fR"
+
.IX Item "\fB\-cell\fR <\fIcell name\fR>"
.IX Item "\fB\-noauth\fR"
.nr % 0
.rr F
.\}
-.TH VOS_OFFLINE 1 "OpenAFS" "12/Jun/2007" "AFS Command Reference"
+.TH VOS_OFFLINE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos offline \- Takes a volume offline
+vos_offline \- Takes a volume offline
.SH "SYNOPSIS"
\fBvos offline\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
<<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-unbless\fR]\ >> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "VOS_OFFLINE 1"
-.IX Name "vos offline - Takes a volume offline"
+.IX Name "vos_offline - Takes a volume offline"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_ONLINE 1 "OpenAFS" "12/Jun/2007" "AFS Command Reference"
+.TH VOS_ONLINE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos online \- Brings a volume online
+vos_online \- Brings a volume online
.SH "SYNOPSIS"
\fBvos online\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
<<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-bless\fR]\ >> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "VOS_ONLINE 1"
-.IX Name "vos online - Brings a volume online"
+.IX Name "vos_online - Brings a volume online"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_PARTINFO 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_PARTINFO 1 "OpenAFS" "19/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos partinfo \- Reports the available and total space on a partition
+vos_partinfo \- Reports the available and total space on a partition
.SH "SYNOPSIS"
\fBvos partinfo\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
(if the \fB\-partition\fR argument is omitted) or the specified partition on
that file server machine. The Volume Location Database (VLDB) is not
consulted.
+.SH "CAUTIONS"
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
.SH "OPTIONS"
.Ip "\fB\-server\fR <\fIserver name\fR>" 4
Identifies the file server machine for which to display partition
.rn }` ''
.IX Title "VOS_PARTINFO 1"
-.IX Name "vos partinfo - Reports the available and total space on a partition"
+.IX Name "vos_partinfo - Reports the available and total space on a partition"
.IX Header "NAME"
.IX Header "DESCRIPTION"
+.IX Header "CAUTIONS"
+
.IX Header "OPTIONS"
.IX Item "\fB\-server\fR <\fIserver name\fR>"
.nr % 0
.rr F
.\}
-.TH VOS_RELEASE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_RELEASE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos release \- Updates read-only volumes to match the read/write source volume
+vos_release \- Updates read-only volumes to match the read/write source volume
.SH "SYNOPSIS"
\fBvos release\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> [\fB\-f\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR]
.rn }` ''
.IX Title "VOS_RELEASE 1"
-.IX Name "vos release - Updates read-only volumes to match the read/write source volume"
+.IX Name "vos_release - Updates read-only volumes to match the read/write source volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_REMOVE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_REMOVE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos remove \- Removes a volume from a site
+vos_remove \- Removes a volume from a site
.SH "SYNOPSIS"
\fBvos remove\fR <<\ [\fB\-server\fR\ <\fImachine\ name\fR] >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>>
.rn }` ''
.IX Title "VOS_REMOVE 1"
-.IX Name "vos remove - Removes a volume from a site"
+.IX Name "vos_remove - Removes a volume from a site"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_REMSITE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_REMSITE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos remsite \- Removes a read-only site definition from a VLDB entry
+vos_remsite \- Removes a read-only site definition from a VLDB entry
.SH "SYNOPSIS"
\fBvos remsite\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>> <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>>
.rn }` ''
.IX Title "VOS_REMSITE 1"
-.IX Name "vos remsite - Removes a read-only site definition from a VLDB entry"
+.IX Name "vos_remsite - Removes a read-only site definition from a VLDB entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_RENAME 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_RENAME 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos rename \- Renames a volume
+vos_rename \- Renames a volume
.SH "SYNOPSIS"
\fBvos rename\fR <<\ \fB\-oldname\fR\ <\fIold\ volume\ name\fR >>>
<<\ \fB\-newname\fR\ <\fInew\ volume\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "VOS_RENAME 1"
-.IX Name "vos rename - Renames a volume"
+.IX Name "vos_rename - Renames a volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_RESTORE 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_RESTORE 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos restore \- Converts an ASCII dump file into an AFS volume
+vos_restore \- Converts an ASCII dump file into an AFS volume
.SH "SYNOPSIS"
\fBvos restore\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
<<\ \fB\-name\fR\ <\fIname\ of\ volume\ to\ be\ restored\fR >>> <<\ [\fB\-file\fR\ <\fIdump\ file\fR] >>>
.rn }` ''
.IX Title "VOS_RESTORE 1"
-.IX Name "vos restore - Converts an ASCII dump file into an AFS volume"
+.IX Name "vos_restore - Converts an ASCII dump file into an AFS volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_SIZE 1 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH VOS_SIZE 1 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos size \- Computes the size of a volume dump
+vos_size \- Computes the size of a volume dump
.SH "SYNOPSIS"
\fBvos size\fR <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-dump\fR]
[\fB\-encrypt\fR] [\fB\-help\fR] [\fB\-id\fR] <\fIvolume name or id\fR>
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version
-1.0. This man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "VOS_SIZE 1"
-.IX Name "vos size - Computes the size of a volume dump"
+.IX Name "vos_size - Computes the size of a volume dump"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_STATUS 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_STATUS 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos status \- Reports a Volume Server's status
+vos_status \- Reports a Volume Server's status
.SH "SYNOPSIS"
\fBvos status\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_STATUS 1"
-.IX Name "vos status - Reports a Volume Server's status"
+.IX Name "vos_status - Reports a Volume Server's status"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_SYNCSERV 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_SYNCSERV 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos syncserv \- Verifies VLDB entries that mention a specified site
+vos_syncserv \- Verifies VLDB entries that mention a specified site
.SH "SYNOPSIS"
\fBvos syncserv\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "VOS_SYNCSERV 1"
-.IX Name "vos syncserv - Verifies VLDB entries that mention a specified site"
+.IX Name "vos_syncserv - Verifies VLDB entries that mention a specified site"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_SYNCVLDB 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_SYNCVLDB 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos syncvldb \- Verifies VLDB entries for volumes residing at specified site
+vos_syncvldb \- Verifies VLDB entries for volumes residing at specified site
.SH "SYNOPSIS"
\fBvos syncvldb\fR <<\ [\fB\-server\fR\ <\fImachine\ name\fR] >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>> <<\ [\fB\-volume\fR\ <\fIvolume\ name\ or\ ID\fR] >>>
.rn }` ''
.IX Title "VOS_SYNCVLDB 1"
-.IX Name "vos syncvldb - Verifies VLDB entries for volumes residing at specified site"
+.IX Name "vos_syncvldb - Verifies VLDB entries for volumes residing at specified site"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_UNLOCK 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_UNLOCK 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos unlock \- Unlocks a single VLDB entry
+vos_unlock \- Unlocks a single VLDB entry
.SH "SYNOPSIS"
\fBvos unlock\fR <<\ \fB\-id\fR\ <\fIvolume\ name\ or\ ID\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-verbose\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "VOS_UNLOCK 1"
-.IX Name "vos unlock - Unlocks a single VLDB entry"
+.IX Name "vos_unlock - Unlocks a single VLDB entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_UNLOCKVLDB 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_UNLOCKVLDB 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos unlockvldb \- Unlocks several locked VLDB entries
+vos_unlockvldb \- Unlocks several locked VLDB entries
.SH "SYNOPSIS"
\fBvos unlockvldb\fR <<\ [\fB\-server\fR\ <\fImachine\ name\fR] >>>
<<\ [\fB\-partition\fR\ <\fIpartition\ name\fR] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "VOS_UNLOCKVLDB 1"
-.IX Name "vos unlockvldb - Unlocks several locked VLDB entries"
+.IX Name "vos_unlockvldb - Unlocks several locked VLDB entries"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH VOS_ZAP 1 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH VOS_ZAP 1 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-vos zap \- Removes a volume from its site without writing to the VLDB
+vos_zap \- Removes a volume from its site without writing to the VLDB
.SH "SYNOPSIS"
\fBvos zap\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
<<\ \fB\-id\fR\ <\fIvolume\ ID\fR >>> [\fB\-force\fR] [\fB\-backup\fR]
.rn }` ''
.IX Title "VOS_ZAP 1"
-.IX Name "vos zap - Removes a volume from its site without writing to the VLDB"
+.IX Name "vos_zap - Removes a volume from its site without writing to the VLDB"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH CellAlias 5 "OpenAFS" "5/Aug/2007" "AFS File Reference"
+.TH CellAlias 5 "OpenAFS" "25/Dec/2007" "AFS File Reference"
.UC
.if n .hy 0
.if n .na
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "CellAlias 5"
.nr % 0
.rr F
.\}
-.TH afsd 8 "OpenAFS" "5/Aug/2007" "AFS Command Reference"
+.TH afsd 8 "OpenAFS" "9/Mar/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
minutes for the best callback performance.
.SH "OPTIONS"
.Ip "\fB\-afsdb\fR" 4
-Enable afsdb support. This will use \s-1DNS\s0 to lookup the \s-1AFSDB\s0 record and use
-that for the database servers for each cell instead of the values in the
-\fICellServDB\fR file. This has the advantage of only needing to update one
-\s-1DNS\s0 record to reconfigure the \s-1AFS\s0 clients for a new database server as
-opposed to touching all of the clients, and also allows one to access a
-cell without preconfiguring its database servers in \fICellServDB\fR.
+Enable afsdb support. This will use \s-1DNS\s0 to lookup the \s-1AFSDB\s0 record and
+use that for the database servers for each cell instead of the values
+in the \fICellServDB\fR file. This has the advantage of only needing to
+update one \s-1DNS\s0 record to reconfigure the \s-1AFS\s0 clients for a new
+database server as opposed to touching all of the clients, and also
+allows one to access a cell without preconfiguring its database
+servers in \fICellServDB\fR. The format of \s-1AFSDB\s0 records is defined in
+\s-1RFC\s0 1183.
.Ip "\fB\-backuptree\fR" 4
Prefer backup volumes for mountpoints in backup volumes. This option means
that the \s-1AFS\s0 client will prefer to resolve mount points to backup volumes
.Ip "\fB\-rxbind\fR" 4
Bind the Rx socket (one interface only).
.Ip "\fB\-rxpck\fR <\fIvalue for rx_extraPackets\fR>" 4
-Set rx_extraPackets to this value.
+Set rx_extraPackets to this value. This sets the number of extra Rx
+packet structures that are available to handle Rx connections. This
+value should be increased if the \*(L"rxdebug 127.0.0.1 \-port 7001
+\-rxstats\*(R" command shows no free Rx packets. Increasing this value may
+improve OpenAFS client performance in some circumstances.
.Ip "\fB\-settime\fR" 4
Enable native \s-1AFS\s0 time synchronization. This option is the opposite of
\fB\-nosettime\fR and cannot be used with the \fB\-nosettime\fR option.
the \fIafs_cache(5)\fR manpage,
the \fICellServDB(5)\fR manpage,
the \fIcacheinfo(5)\fR manpage
+.PP
+RFC 1183 the section on \fI/www.faqs.org/rfcs/rfc1183.html\fR in the \fIhttp:\fR manpage
.SH "COPYRIGHT"
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
.PP
.nr % 0
.rr F
.\}
-.TH backup_adddump 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_adddump 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup adddump \- Defines a dump level in the dump hierarchy
+backup_adddump \- Defines a dump level in the dump hierarchy
.SH "SYNOPSIS"
\fBbackup adddump\fR <<\ \fB\-dump\fR\ <\fIdump\ level\ name\fR+ >>>
<<\ [\fB\-expires\fR\ <\fIexpiration\ date\fR+] >>>
.rn }` ''
.IX Title "backup_adddump 8"
-.IX Name "backup adddump - Defines a dump level in the dump hierarchy"
+.IX Name "backup_adddump - Defines a dump level in the dump hierarchy"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_addhost 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_addhost 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup addhost \- Adds a Tape Coordinator entry to the Backup Database
+backup_addhost \- Adds a Tape Coordinator entry to the Backup Database
.SH "SYNOPSIS"
\fBbackup addhost\fR <<\ \fB\-tapehost\fR\ <\fItape\ machine\ name\fR >>>
<<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>>
.rn }` ''
.IX Title "backup_addhost 8"
-.IX Name "backup addhost - Adds a Tape Coordinator entry to the Backup Database"
+.IX Name "backup_addhost - Adds a Tape Coordinator entry to the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_addvolentry 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_addvolentry 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup addvolentry \- Defines a volume entry in a volume set
+backup_addvolentry \- Defines a volume entry in a volume set
.SH "SYNOPSIS"
\fBbackup addvolentry\fR <<\ \fB\-name\fR\ <\fIvolume\ set\ name\fR >>>
<<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-partition\fR\ <\fIpartition\ name\fR >>>
.rn }` ''
.IX Title "backup_addvolentry 8"
-.IX Name "backup addvolentry - Defines a volume entry in a volume set"
+.IX Name "backup_addvolentry - Defines a volume entry in a volume set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_addvolset 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_addvolset 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup addvolset \- Creates a new (empty) volume set
+backup_addvolset \- Creates a new (empty) volume set
.SH "SYNOPSIS"
\fBbackup addvolset\fR <<\ \fB\-name\fR\ <\fIvolume\ set\ name\fR >>> [\fB\-temporary\fR]
[\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_addvolset 8"
-.IX Name "backup addvolset - Creates a new (empty) volume set"
+.IX Name "backup_addvolset - Creates a new (empty) volume set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_apropos 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_apropos 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup apropos \- Displays each help entry containing a keyword string
+backup_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBbackup apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_apropos 8"
-.IX Name "backup apropos - Displays each help entry containing a keyword string"
+.IX Name "backup_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_dbverify 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_dbverify 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup dbverify \- Checks the integrity of the Backup Database
+backup_dbverify \- Checks the integrity of the Backup Database
.SH "SYNOPSIS"
\fBbackup dbverify\fR [\fB\-detail\fR] [\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-help\fR]
.rn }` ''
.IX Title "backup_dbverify 8"
-.IX Name "backup dbverify - Checks the integrity of the Backup Database"
+.IX Name "backup_dbverify - Checks the integrity of the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_deldump 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_deldump 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup deldump \- Deletes a dump level from the Backup Database
+backup_deldump \- Deletes a dump level from the Backup Database
.SH "SYNOPSIS"
\fBbackup deldump\fR <<\ \fB\-dump\fR\ <\fIdump\ level\ name\fR >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_deldump 8"
-.IX Name "backup deldump - Deletes a dump level from the Backup Database"
+.IX Name "backup_deldump - Deletes a dump level from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_deletedump 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_deletedump 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup deletedump \- Deletes one or more dump records from the Backup Database
+backup_deletedump \- Deletes one or more dump records from the Backup Database
.SH "SYNOPSIS"
\fBbackup deletedump\fR <<\ [\fB\-dumpid\fR\ <\fIdump\ id\fR+] >>> <<\ [\fB\-from\fR\ <\fIdate\ time\fR+] >>>
<<\ [\fB\-to\fR\ <\fIdate\ time\fR+] >>> [\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "backup_deletedump 8"
-.IX Name "backup deletedump - Deletes one or more dump records from the Backup Database"
+.IX Name "backup_deletedump - Deletes one or more dump records from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_delhost 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_delhost 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup delhost \- Deletes a Tape Coordinator entry from the Backup Database
+backup_delhost \- Deletes a Tape Coordinator entry from the Backup Database
.SH "SYNOPSIS"
\fBbackup delhost\fR <<\ \fB\-tapehost\fR\ <\fItape\ machine\ name\fR >>>
<<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>> [\fB\-localauth\fR]
.rn }` ''
.IX Title "backup_delhost 8"
-.IX Name "backup delhost - Deletes a Tape Coordinator entry from the Backup Database"
+.IX Name "backup_delhost - Deletes a Tape Coordinator entry from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_delvolentry 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_delvolentry 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup delvolentry \- Deletes a volume entry from a volume set
+backup_delvolentry \- Deletes a volume entry from a volume set
.SH "SYNOPSIS"
\fBbackup delvolentry\fR <<\ \fB\-name\fR\ <\fIvolume\ set\ name\fR >>>
<<\ \fB\-entry\fR\ <\fIvolume\ set\ index\fR >>> [\fB\-localauth\fR]
.rn }` ''
.IX Title "backup_delvolentry 8"
-.IX Name "backup delvolentry - Deletes a volume entry from a volume set"
+.IX Name "backup_delvolentry - Deletes a volume entry from a volume set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_delvolset 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_delvolset 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup delvolset \- Deletes one or more volume sets from the Backup Database
+backup_delvolset \- Deletes one or more volume sets from the Backup Database
.SH "SYNOPSIS"
\fBbackup delvolset\fR <<\ \fB\-name\fR\ <\fIvolume\ set\ name\fR+ >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_delvolset 8"
-.IX Name "backup delvolset - Deletes one or more volume sets from the Backup Database"
+.IX Name "backup_delvolset - Deletes one or more volume sets from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_diskrestore 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_diskrestore 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup diskrestore \- Restores the entire contents of a partition
+backup_diskrestore \- Restores the entire contents of a partition
.SH "SYNOPSIS"
\fBbackup diskrestore\fR <<\ \fB\-server\fR\ <\fImachine\ to\ restore\fR >>>
<<\ \fB\-partition\fR\ <\fIpartition\ to\ restore\fR >>>
.rn }` ''
.IX Title "backup_diskrestore 8"
-.IX Name "backup diskrestore - Restores the entire contents of a partition"
+.IX Name "backup_diskrestore - Restores the entire contents of a partition"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_dump 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_dump 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup dump \- Creates a dump (dumps a volume set at a particular dump level)
+backup_dump \- Creates a dump (dumps a volume set at a particular dump level)
.SH "SYNOPSIS"
\fBbackup dump\fR <<\ [\fB\-volumeset\fR\ <\fIvolume\ set\ name\fR] >>>
<<\ [\fB\-dump\fR\ <\fIdump\ level\ name\fR] >>>
.rn }` ''
.IX Title "backup_dump 8"
-.IX Name "backup dump - Creates a dump (dumps a volume set at a particular dump level)"
+.IX Name "backup_dump - Creates a dump (dumps a volume set at a particular dump level)"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_dumpinfo 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_dumpinfo 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup dumpinfo \- Displays a dump record from the Backup Database
+backup_dumpinfo \- Displays a dump record from the Backup Database
.SH "SYNOPSIS"
\fBbackup dumpinfo\fR <<\ [\fB\-ndumps\fR\ <\fInumber\ of\ dumps\fR] >>>
<<\ [\fB\-id\fR\ <\fIdump\ id\fR] >>> [\fB\-verbose\fR] [\fB\-localauth\fR]
.rn }` ''
.IX Title "backup_dumpinfo 8"
-.IX Name "backup dumpinfo - Displays a dump record from the Backup Database"
+.IX Name "backup_dumpinfo - Displays a dump record from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_help 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_help 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup help \- Displays help for backup commands
+backup_help \- Displays help for backup commands
.SH "SYNOPSIS"
\fBbackup help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_help 8"
-.IX Name "backup help - Displays help for backup commands"
+.IX Name "backup_help - Displays help for backup commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_interactive 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_interactive 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup interactive \- Enters interactive mode
+backup_interactive \- Enters interactive mode
.SH "SYNOPSIS"
\fBbackup\fR [\fBinteractive\fR] [\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-help\fR]
.rn }` ''
.IX Title "backup_interactive 8"
-.IX Name "backup interactive - Enters interactive mode"
+.IX Name "backup_interactive - Enters interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_jobs 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_jobs 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup jobs \- Lists pending and running operations in interactive mode
+backup_jobs \- Lists pending and running operations in interactive mode
.SH "SYNOPSIS"
\fBjobs\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_jobs 8"
-.IX Name "backup jobs - Lists pending and running operations in interactive mode"
+.IX Name "backup_jobs - Lists pending and running operations in interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_kill 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_kill 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup kill \- Terminates a pending or running operation
+backup_kill \- Terminates a pending or running operation
.SH "SYNOPSIS"
\fBkill\fR <<\ \fB\-id\fR\ <\fIjob\ ID\ or\ dump\ set\ name\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_kill 8"
-.IX Name "backup kill - Terminates a pending or running operation"
+.IX Name "backup_kill - Terminates a pending or running operation"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_labeltape 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_labeltape 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup labeltape \- Creates the magnetic label on a tape
+backup_labeltape \- Creates the magnetic label on a tape
.SH "SYNOPSIS"
\fBbackup labeltape\fR <<\ [\fB\-name\fR\ <\fIAFS\ tape\ name,\ defaults\ to\ NULL\fR] >>>
<<\ [\fB\-size\fR\ <\fItape\ size\ in\ Kbytes,\ defaults\ to\ size\ in\ tapeconfig\fR] >>>
.rn }` ''
.IX Title "backup_labeltape 8"
-.IX Name "backup labeltape - Creates the magnetic label on a tape"
+.IX Name "backup_labeltape - Creates the magnetic label on a tape"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_listdumps 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_listdumps 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup listdumps \- Displays the dump hierarchy from the Backup Database
+backup_listdumps \- Displays the dump hierarchy from the Backup Database
.SH "SYNOPSIS"
\fBbackup listdumps\fR [\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_listdumps 8"
-.IX Name "backup listdumps - Displays the dump hierarchy from the Backup Database"
+.IX Name "backup_listdumps - Displays the dump hierarchy from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_listhosts 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_listhosts 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup listhosts \- Lists Tape Coordinators registered in the Backup Database
+backup_listhosts \- Lists Tape Coordinators registered in the Backup Database
.SH "SYNOPSIS"
\fBbackup listhosts\fR [\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_listhosts 8"
-.IX Name "backup listhosts - Lists Tape Coordinators registered in the Backup Database"
+.IX Name "backup_listhosts - Lists Tape Coordinators registered in the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_listvolsets 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_listvolsets 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup listvolsets \- Lists volume set entries from the Backup Database
+backup_listvolsets \- Lists volume set entries from the Backup Database
.SH "SYNOPSIS"
\fBbackup listvolsets\fR <<\ [\fB\-name\fR\ <\fIvolume\ set\ name\fR] >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_listvolsets 8"
-.IX Name "backup listvolsets - Lists volume set entries from the Backup Database"
+.IX Name "backup_listvolsets - Lists volume set entries from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_quit 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_quit 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup quit \- Leaves interactive mode
+backup_quit \- Leaves interactive mode
.SH "SYNOPSIS"
\fBquit\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "backup_quit 8"
-.IX Name "backup quit - Leaves interactive mode"
+.IX Name "backup_quit - Leaves interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_readlabel 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_readlabel 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup readlabel \- Reads and displays a tape's label
+backup_readlabel \- Reads and displays a tape's label
.SH "SYNOPSIS"
\fBbackup readlabel\fR <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_readlabel 8"
-.IX Name "backup readlabel - Reads and displays a tape's label"
+.IX Name "backup_readlabel - Reads and displays a tape's label"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_restoredb 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_restoredb 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup restoredb \- Restores a saved copy of the Backup Database
+backup_restoredb \- Restores a saved copy of the Backup Database
.SH "SYNOPSIS"
\fBbackup restoredb\fR <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_restoredb 8"
-.IX Name "backup restoredb - Restores a saved copy of the Backup Database"
+.IX Name "backup_restoredb - Restores a saved copy of the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_savedb 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_savedb 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup savedb \- Creates a saved copy of the Backup Database
+backup_savedb \- Creates a saved copy of the Backup Database
.SH "SYNOPSIS"
\fBbackup savedb\fR <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>>
<<\ [\fB\-archive\fR\ <\fIdate\ time\fR+] >>> [\fB\-localauth\fR]
.rn }` ''
.IX Title "backup_savedb 8"
-.IX Name "backup savedb - Creates a saved copy of the Backup Database"
+.IX Name "backup_savedb - Creates a saved copy of the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_scantape 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_scantape 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup scantape \- Extracts dump information from a tape
+backup_scantape \- Extracts dump information from a tape
.SH "SYNOPSIS"
\fBbackup scantape\fR [\fB\-dbadd\fR] <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>>
[\fB\-localauth\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_scantape 8"
-.IX Name "backup scantape - Extracts dump information from a tape"
+.IX Name "backup_scantape - Extracts dump information from a tape"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_setexp 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_setexp 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup setexp \- Sets the expiration date for existing dump levels.
+backup_setexp \- Sets the expiration date for existing dump levels.
.SH "SYNOPSIS"
\fBbackup setexp\fR <<\ \fB\-dump\fR\ <\fIdump\ level\ name\fR+ >>>
<<\ [\fB\-expires\fR\ <\fIexpiration\ date\fR+] >>> [\fB\-localauth\fR]
.rn }` ''
.IX Title "backup_setexp 8"
-.IX Name "backup setexp - Sets the expiration date for existing dump levels."
+.IX Name "backup_setexp - Sets the expiration date for existing dump levels."
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_status 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_status 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup status \- Reports a Tape Coordinator's status
+backup_status \- Reports a Tape Coordinator's status
.SH "SYNOPSIS"
\fBbackup status\fR <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR] >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_status 8"
-.IX Name "backup status - Reports a Tape Coordinator's status"
+.IX Name "backup_status - Reports a Tape Coordinator's status"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_volinfo 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_volinfo 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup volinfo \- Displays a volume's dump history from the Backup Database
+backup_volinfo \- Displays a volume's dump history from the Backup Database
.SH "SYNOPSIS"
\fBbackup volinfo\fR <<\ \fB\-volume\fR\ <\fIvolume\ name\fR >>> [\fB\-localauth\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "backup_volinfo 8"
-.IX Name "backup volinfo - Displays a volume's dump history from the Backup Database"
+.IX Name "backup_volinfo - Displays a volume's dump history from the Backup Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_volrestore 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_volrestore 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup volrestore \- Restores one or more volumes
+backup_volrestore \- Restores one or more volumes
.SH "SYNOPSIS"
\fBbackup volrestore\fR <<\ \fB\-server\fR\ <\fIdestination\ machine\fR >>>
<<\ \fB\-partition\fR\ <\fIdestination\ partition\fR >>>
.rn }` ''
.IX Title "backup_volrestore 8"
-.IX Name "backup volrestore - Restores one or more volumes"
+.IX Name "backup_volrestore - Restores one or more volumes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH backup_volsetrestore 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH backup_volsetrestore 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-backup volsetrestore \- Restores all volumes in a volume set
+backup_volsetrestore \- Restores all volumes in a volume set
.SH "SYNOPSIS"
\fBbackup volsetrestore\fR <<\ [\fB\-name\fR\ <\fIvolume\ set\ name\fR] >>>
<<\ [\fB\-file\fR\ <\fIfile\ name\fR] >>> <<\ [\fB\-portoffset\fR\ <\fITC\ port\ offset\fR+] >>>
.rn }` ''
.IX Title "backup_volsetrestore 8"
-.IX Name "backup volsetrestore - Restores all volumes in a volume set"
+.IX Name "backup_volsetrestore - Restores all volumes in a volume set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_addhost 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_addhost 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos addhost \- Adds a database server machine to the CellServDB file
+bos_addhost \- Adds a database server machine to the CellServDB file
.SH "SYNOPSIS"
\fBbos addhost\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-host\fR\ <\fIhost\ name\fR+ >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_addhost 8"
-.IX Name "bos addhost - Adds a database server machine to the CellServDB file"
+.IX Name "bos_addhost - Adds a database server machine to the CellServDB file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_addkey 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_addkey 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos addkey \- Adds a new server encryption key to the KeyFile file
+bos_addkey \- Adds a new server encryption key to the KeyFile file
.SH "SYNOPSIS"
\fBbos addkey\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-key\fR\ <\fIkey\fR] >>>
<<\ \fB\-kvno\fR\ <\fIkey\ version\ number\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_addkey 8"
-.IX Name "bos addkey - Adds a new server encryption key to the KeyFile file"
+.IX Name "bos_addkey - Adds a new server encryption key to the KeyFile file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_adduser 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_adduser 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos adduser \- Adds a privileged user to the UserList file
+bos_adduser \- Adds a privileged user to the UserList file
.SH "SYNOPSIS"
\fBbos adduser\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-user\fR\ <\fIuser\ names\fR+ >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_adduser 8"
-.IX Name "bos adduser - Adds a privileged user to the UserList file"
+.IX Name "bos_adduser - Adds a privileged user to the UserList file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_apropos 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_apropos 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos apropos \- Displays each help entry containing a keyword string
+bos_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBbos apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "bos_apropos 8"
-.IX Name "bos apropos - Displays each help entry containing a keyword string"
+.IX Name "bos_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_create 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_create 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos create \- Defines a new process in the BosConfig file and starts it
+bos_create \- Defines a new process in the BosConfig file and starts it
.SH "SYNOPSIS"
\fBbos create\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-instance\fR\ <\fIserver\ process\ name\fR >>> <<\ \fB\-type\fR\ <\fIserver\ type\fR >>>
.rn }` ''
.IX Title "bos_create 8"
-.IX Name "bos create - Defines a new process in the BosConfig file and starts it"
+.IX Name "bos_create - Defines a new process in the BosConfig file and starts it"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_delete 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_delete 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos delete \- Deletes a server process from the BosConfig file
+bos_delete \- Deletes a server process from the BosConfig file
.SH "SYNOPSIS"
\fBbos delete\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-instance\fR\ <\fIserver\ process\ name\fR+ >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_delete 8"
-.IX Name "bos delete - Deletes a server process from the BosConfig file"
+.IX Name "bos_delete - Deletes a server process from the BosConfig file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_exec 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_exec 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos exec \- Executes a command on a remote server machine
+bos_exec \- Executes a command on a remote server machine
.SH "SYNOPSIS"
\fBbos exec\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-cmd\fR\ <\fIcommand\ to\ execute\fR >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_exec 8"
-.IX Name "bos exec - Executes a command on a remote server machine"
+.IX Name "bos_exec - Executes a command on a remote server machine"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_getdate 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_getdate 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos getdate \- Displays the time stamps on an AFS binary file
+bos_getdate \- Displays the time stamps on an AFS binary file
.SH "SYNOPSIS"
\fBbos getdate\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-file\fR\ <\fIfiles\ to\ check\fR+ >>>
<<\ [\fB\-dir\fR\ <\fIdestination\ dir\fR] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_getdate 8"
-.IX Name "bos getdate - Displays the time stamps on an AFS binary file"
+.IX Name "bos_getdate - Displays the time stamps on an AFS binary file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_getlog 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_getlog 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos getlog \- Prints a server process's log file
+bos_getlog \- Prints a server process's log file
.SH "SYNOPSIS"
\fBbos getlog\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-file\fR\ <\fIlog\ file\ to\ examine\fR >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_getlog 8"
-.IX Name "bos getlog - Prints a server process's log file"
+.IX Name "bos_getlog - Prints a server process's log file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_getrestart 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_getrestart 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos getrestart \- Displays the automatic restart times for server processes
+bos_getrestart \- Displays the automatic restart times for server processes
.SH "SYNOPSIS"
\fBbos getrestart\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_getrestart 8"
-.IX Name "bos getrestart - Displays the automatic restart times for server processes"
+.IX Name "bos_getrestart - Displays the automatic restart times for server processes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_help 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_help 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos help \- Displays help for bos commands
+bos_help \- Displays help for bos commands
.SH "SYNOPSIS"
\fBbos help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "bos_help 8"
-.IX Name "bos help - Displays help for bos commands"
+.IX Name "bos_help - Displays help for bos commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_install 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_install 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos install \- Installs a new version of a binary file
+bos_install \- Installs a new version of a binary file
.SH "SYNOPSIS"
\fBbos install\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-file\fR\ <\fIfiles\ to\ install\fR+ >>>
<<\ [\fB\-dir\fR\ <\fIdestination\ dir\fR] >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_install 8"
-.IX Name "bos install - Installs a new version of a binary file"
+.IX Name "bos_install - Installs a new version of a binary file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_listhosts 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_listhosts 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos listhosts \- Displays the contents of the CellServDB file
+bos_listhosts \- Displays the contents of the CellServDB file
.SH "SYNOPSIS"
\fBbos listhosts\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_listhosts 8"
-.IX Name "bos listhosts - Displays the contents of the CellServDB file"
+.IX Name "bos_listhosts - Displays the contents of the CellServDB file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_listkeys 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_listkeys 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos listkeys \- Displays the server encryption keys from the KeyFile file
+bos_listkeys \- Displays the server encryption keys from the KeyFile file
.SH "SYNOPSIS"
\fBbos listkeys\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> [\fB\-showkey\fR]
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_listkeys 8"
-.IX Name "bos listkeys - Displays the server encryption keys from the KeyFile file"
+.IX Name "bos_listkeys - Displays the server encryption keys from the KeyFile file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_listusers 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_listusers 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos listusers \- Lists the privileged users from the UserList file
+bos_listusers \- Lists the privileged users from the UserList file
.SH "SYNOPSIS"
\fBbos listusers\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
[\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_listusers 8"
-.IX Name "bos listusers - Lists the privileged users from the UserList file"
+.IX Name "bos_listusers - Lists the privileged users from the UserList file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_prune 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_prune 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos prune \- Removes obsolete files from /usr/afs/bin and /usr/afs/logs
+bos_prune \- Removes obsolete files from /usr/afs/bin and /usr/afs/logs
.SH "SYNOPSIS"
\fBbos prune\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> [\fB\-bak\fR] [\fB\-old\fR] [\fB\-core\fR]
[\fB\-all\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR]
.rn }` ''
.IX Title "bos_prune 8"
-.IX Name "bos prune - Removes obsolete files from /usr/afs/bin and /usr/afs/logs"
+.IX Name "bos_prune - Removes obsolete files from /usr/afs/bin and /usr/afs/logs"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_removehost 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_removehost 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos removehost \- Removes a database server machine from the CellServDB file
+bos_removehost \- Removes a database server machine from the CellServDB file
.SH "SYNOPSIS"
\fBbos removehost\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-host\fR\ <\fIhost\ name\fR+ >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_removehost 8"
-.IX Name "bos removehost - Removes a database server machine from the CellServDB file"
+.IX Name "bos_removehost - Removes a database server machine from the CellServDB file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_removekey 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_removekey 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos removekey \- Removes a server encryption key from the KeyFile file
+bos_removekey \- Removes a server encryption key from the KeyFile file
.SH "SYNOPSIS"
\fBbos removekey\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-kvno\fR\ <\fIkey\ version\ number\fR+ >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_removekey 8"
-.IX Name "bos removekey - Removes a server encryption key from the KeyFile file"
+.IX Name "bos_removekey - Removes a server encryption key from the KeyFile file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_removeuser 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_removeuser 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos removeuser \- Removes a privileged user from the UserList file
+bos_removeuser \- Removes a privileged user from the UserList file
.SH "SYNOPSIS"
\fBbos removeuser\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-user\fR\ <\fIuser\ names\fR+ >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_removeuser 8"
-.IX Name "bos removeuser - Removes a privileged user from the UserList file"
+.IX Name "bos_removeuser - Removes a privileged user from the UserList file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_restart 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_restart 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos restart \- Restarts a server process
+bos_restart \- Restarts a server process
.SH "SYNOPSIS"
\fBbos restart\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-instance\fR\ <\fIinstances\fR+] >>>
[\fB\-bosserver\fR] [\fB\-all\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR]
.rn }` ''
.IX Title "bos_restart 8"
-.IX Name "bos restart - Restarts a server process"
+.IX Name "bos_restart - Restarts a server process"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_salvage 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_salvage 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos salvage \- Restores internal consistency to a file system or volume
+bos_salvage \- Restores internal consistency to a file system or volume
.SH "SYNOPSIS"
\fBbos salvage\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ [\fB\-partition\fR\ <\fIsalvage\ partition\fR] >>>
.rn }` ''
.IX Title "bos_salvage 8"
-.IX Name "bos salvage - Restores internal consistency to a file system or volume"
+.IX Name "bos_salvage - Restores internal consistency to a file system or volume"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_setauth 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_setauth 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos setauth \- Sets authorization checking requirements for all server processes
+bos_setauth \- Sets authorization checking requirements for all server processes
.SH "SYNOPSIS"
\fBbos setauth\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-authrequired\fR\ (on\ |\ off)\ >>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_setauth 8"
-.IX Name "bos setauth - Sets authorization checking requirements for all server processes"
+.IX Name "bos_setauth - Sets authorization checking requirements for all server processes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_setcellname 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_setcellname 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos setcellname \- Sets the cell's name in ThisCell and CellServDB
+bos_setcellname \- Sets the cell's name in ThisCell and CellServDB
.SH "SYNOPSIS"
\fBbos setcellname\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ \fB\-name\fR\ <\fIcell\ name\fR >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_setcellname 8"
-.IX Name "bos setcellname - Sets the cell's name in ThisCell and CellServDB"
+.IX Name "bos_setcellname - Sets the cell's name in ThisCell and CellServDB"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_setrestart 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_setrestart 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos setrestart \- Sets when the BOS Server restarts processes
+bos_setrestart \- Sets when the BOS Server restarts processes
.SH "SYNOPSIS"
\fBbos setrestart\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-time\fR\ <\fItime\ to\ restart\ server\fR >>> [\fB\-general\fR] [\fB\-newbinary\fR]
.rn }` ''
.IX Title "bos_setrestart 8"
-.IX Name "bos setrestart - Sets when the BOS Server restarts processes"
+.IX Name "bos_setrestart - Sets when the BOS Server restarts processes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_shutdown 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_shutdown 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos shutdown \- Stops a process without changing its status flag
+bos_shutdown \- Stops a process without changing its status flag
.SH "SYNOPSIS"
\fBbos shutdown\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ [\fB\-instance\fR\ <\fIinstances\fR+] >>> [\fB\-wait\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_shutdown 8"
-.IX Name "bos shutdown - Stops a process without changing its status flag"
+.IX Name "bos_shutdown - Stops a process without changing its status flag"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_start 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_start 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos start \- Starts a process after setting its status flag
+bos_start \- Starts a process after setting its status flag
.SH "SYNOPSIS"
\fBbos start\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-instance\fR\ <\fIserver\ process\ name\fR+ >>> <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>>
.rn }` ''
.IX Title "bos_start 8"
-.IX Name "bos start - Starts a process after setting its status flag"
+.IX Name "bos_start - Starts a process after setting its status flag"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_startup 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_startup 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos startup \- Starts a process without changing its status flag
+bos_startup \- Starts a process without changing its status flag
.SH "SYNOPSIS"
\fBbos startup\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>> <<\ [\fB\-instance\fR\ <\fIinstances\fR+] >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_startup 8"
-.IX Name "bos startup - Starts a process without changing its status flag"
+.IX Name "bos_startup - Starts a process without changing its status flag"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_status 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_status 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos status \- Displays the status of server processes
+bos_status \- Displays the status of server processes
.SH "SYNOPSIS"
<<\ \fBbos\ status\ \-server\fR\ <\fImachine\ name\fR >>> [\-instance <\fIserver process name\fR>+]
[\fB\-long\fR] <<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-noauth\fR] [\fB\-localauth\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "bos_status 8"
-.IX Name "bos status - Displays the status of server processes"
+.IX Name "bos_status - Displays the status of server processes"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_stop 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_stop 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos stop \- Stops a process after changing its status flag
+bos_stop \- Stops a process after changing its status flag
.SH "SYNOPSIS"
\fBbos stop\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-instance\fR\ <\fIserver\ process\ name\fR+ >>> [\fB\-wait\fR]
.rn }` ''
.IX Title "bos_stop 8"
-.IX Name "bos stop - Stops a process after changing its status flag"
+.IX Name "bos_stop - Stops a process after changing its status flag"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_uninstall 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bos_uninstall 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-bos uninstall \- Reverts to the former version of a process's binary file
+bos_uninstall \- Reverts to the former version of a process's binary file
.SH "SYNOPSIS"
\fBbos uninstall\fR <<\ \fB\-server\fR\ <\fImachine\ name\fR >>>
<<\ \fB\-file\fR\ <\fIfiles\ to\ uninstall\fR+ >>> <<\ [\fB\-dir\fR\ <\fIdestination\ dir\fR] >>>
.rn }` ''
.IX Title "bos_uninstall 8"
-.IX Name "bos uninstall - Reverts to the former version of a process's binary file"
+.IX Name "bos_uninstall - Reverts to the former version of a process's binary file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH bos_util 8 "OpenAFS" "17/Aug/2007" "AFS Command Reference"
+.TH bos_util 8 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.SH "COPYRIGHT"
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
.PP
-This documentation is covered by the IBM Public License Version 1.0.
-This man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
.rn }` ''
.IX Title "bos_util 8"
.nr % 0
.rr F
.\}
-.TH bosserver 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH bosserver 8 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
bosserver \- Initializes the BOS Server
.SH "SYNOPSIS"
\fBbosserver\fR [\fB\-noauth\fR] [\fB\-log\fR] [\fB\-enable_peer_stats\fR]
- [\fB\-enable_process_stats\fR] [\fB\-help\fR]
+ [\fB\-enable_process_stats\fR] [\fB\-allow-dotted-principal\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
The bosserver command initializes the Basic OverSeer (BOS) Server
(\fBbosserver\fR process). In the conventional configuration, the binary file
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring \s-1API\s0.
+.Ip "\fB\-allow-dotted-principal\fR" 4
+By default, the \s-1RXKAD\s0 security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin \s-1PTS\s0 entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disable this check by starting the server
+with this option.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.IX Item "\fB\-enable_process_stats\fR"
+.IX Item "\fB\-allow-dotted-principal\fR"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH fileserver 8 "OpenAFS" "11/Jun/2007" "AFS Command Reference"
+.TH fileserver 8 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.SH "NAME"
fileserver \- Initializes the File Server component of the fs process
.SH "SYNOPSIS"
-\fBfileserver\fR <<\ [\fB\-auditlog\fR\ <\fIlog\ path\fR] >>>
+\fBfileserver\fR <<\ [\fB\-auditlog\fR\ <\fIpath\ to\ log\ file\fR] >>>
<<\ [\fB\-d\fR\ <\fIdebug\ level\fR] >>>
<<\ [\fB\-p\fR\ <\fInumber\ of\ processes\fR] >>>
<<\ [\fB\-spare\fR\ <\fInumber\ of\ spare\ blocks\fR] >>>
<<\ [\fB\-pctspare\fR\ <\fIpercentage\ spare\fR] >>> <<\ [\fB\-b\fR\ <\fIbuffers\fR] >>>
- <<\ [\fB\-l\fR\ <\fIlarge\ vnodes\fR] >>> <<\ [\fB\-s\fR\ <\fIsmall\ nodes\fR] >>>
+ <<\ [\fB\-l\fR\ <\fIlarge\ vnodes\fR] >>> <<\ [\fB\-s\fR\ <\fIsmall\ vnodes\fR] >>>
<<\ [\fB\-vc\fR\ <\fIvolume\ cachesize\fR] >>> <<\ [\fB\-w\fR\ <\fIcall\ back\ wait\ interval\fR] >>>
<<\ [\fB\-cb\fR\ <\fInumber\ of\ call\ backs\fR] >>> [\fB\-banner\fR] [\fB\-novbc\fR]
<<\ [\fB\-implicit\fR\ <\fIadmin\ mode\ bits:\ rlidwka\fR] >>> [\fB\-readonly\fR]
<<\ [\fB\-hr\fR\ <\fInumber\ of\ hours\ between\ refreshing\ the\ host\ cps\fR] >>>
- [\fB\-busyat\fR <\fI< redirect clients when queue \fR n >>>]
+ <<\ [\fB\-busyat\fR\ <\fI<\ redirect\ clients\ when\ queue\ \fR\ n\ >>] >>>
[\fB\-nobusy\fR] <<\ [\fB\-rxpck\fR\ <\fInumber\ of\ rx\ extra\ packets\fR] >>>
[\fB\-rxdbg\fR] [\fB\-rxdbge\fR] <<\ [\fB\-rxmaxmtu\fR\ <\fIbytes\fR] >>>
+ [\fB\-allow-dotted-principal\fR]
<<\ [\fB\-rxbind\fR\ <\fIaddress\ to\ bind\ the\ Rx\ socket\ to\fR] >>>
<<\ [\fB\-vattachpar\fR\ <\fInumber\ of\ volume\ attach\ threads\fR] >>>
<<\ [\fB\-m\fR\ <\fImin\ percentage\ spare\ in\ partition\fR] >>>
<<\ [\fB\-udpsize\fR\ <\fIsize\ of\ socket\ buffer\ in\ bytes\fR] >>>
<<\ [\fB\-sendsize\fR\ <\fIsize\ of\ send\ buffer\ in\ bytes\fR] >>>
<<\ [\fB\-abortthreshold\fR\ <\fIabort\ threshold\fR] >>>
- <<\ [\fB\-auditlog\fR\ <\fIpath\ to\ log\ file\fR] >>>
[\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
The \fBfileserver\fR command initializes the File Server component of the
.PP
The File Server creates the \fI/usr/afs/logs/FileLog\fR log file as it
initializes, if the file does not already exist. It does not write a
-detailed trace by default, but use the \fB\-d\fR option to increase the amount
-of detail. Use the \fBbos getlog\fR command to display the contents of the
-log file.
+detailed trace by default, but the \fB\-d\fR option may be used to
+increase the amount of detail. Use the \fBbos getlog\fR command to
+display the contents of the log file.
.PP
The command's arguments enable the administrator to control many aspects
of the File Server's performance, as detailed in the \fIOPTIONS\fR manpage. By default
.Ip "\(bu" 4
The maximum number of lightweight processes (LWPs) the File Server uses to
handle requests for data; corresponds to the \fB\-p\fR argument. The File
-Server always uses a minimum of 32 \s-1KB\s0 for these processes.
+Server always uses a minimum of 32 \s-1KB\s0 of memory for these processes.
.Ip "\(bu" 4
The maximum number of directory blocks the File Server caches in memory;
corresponds to the \fB\-b\fR argument. Each cached directory block (buffer)
that it can take that long for changed group memberships to become
effective. To change this frequency, use the \fB\-hr\fR argument.
.PP
+The File Server stores volumes in partitions. A partition is a
+filesystem or directory on the server machine that is named \f(CW/vicepX\fR
+or \f(CW/vicepXX\fR where \s-1XX\s0 is \*(L"a\*(R" through \*(L"z\*(R" or \*(L"aa\*(R" though \*(L"zz\*(R". The
+File Server expects that the /vicepXX directories are each on a
+dedicated filesystem. The File Server will only use a /vicepXX if it's
+a mountpoint for another filesystem, unless the file
+\f(CW/vicepXX/AlwaysAttach\fR exists. The data in the partition is a
+special format that can only be access using OpenAFS commands or an
+OpenAFS client.
+.PP
The File Server generates the following message when a partition is nearly
full:
.PP
This command does not use the syntax conventions of the \s-1AFS\s0 command
suites. Provide the command name and all option names in full.
.SH "CAUTIONS"
-Do not use the \fB\-k\fR and \-w arguments, which are intended for use by the
-AFS Development group only. Changing them from their default values can
-result in unpredictable File Server behavior. In any case, on many
-operating systems the File Server uses native threads rather than the LWP
-threads, so using the \fB\-k\fR argument to set the number of LWP threads has
-no effect.
+Do not use the \fB\-k\fR and \fB\-w\fR arguments, which are intended for use
+by the OpenAFS developers only. Changing them from their default
+values can result in unpredictable File Server behavior. In any case,
+on many operating systems the File Server uses native threads rather
+than the LWP threads, so using the \fB\-k\fR argument to set the number of
+LWP threads has no effect.
.PP
Do not specify both the \fB\-spare\fR and \fB\-pctspare\fR arguments. Doing so
causes the File Server to exit, leaving an error message in the
Options that are available only on some system types, such as the \fB\-m\fR
and \fB\-lock\fR options, appear in the output generated by the \fB\-help\fR
option only on the relevant system type.
+.PP
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+\fBvos partinfo\fR or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+.PP
+The maximum number of directory entries is 64,000 if all of the
+entries have names that are 15 characters or less in length. A name
+that is 15 characters long requires the use of only one block in the
+directory. Additional sequential blocks are required to store entries
+with names that are longer than 15 characters. Each additional block
+provides an additional length of 32 characters for the name of the
+entry.
+.PP
+In real world use, the maximum number of objects in an AFS directory
+is usually between 16,000 and 25,000, depending on the average name
+length.
.SH "OPTIONS"
.Ip "\fB\-auditlog\fR <\fIlog path\fR>" 4
Set and enable auditing.
.Ip "\fI\-rxdbge\fR" 4
Writes a trace of the File Server's operations on Rx events (such as
retransmissions) to the file \fI/usr/afs/logs/rx_dbg\fR.
+.Ip "\fB\-allow-dotted-principal\fR" 4
+By default, the \s-1RXKAD\s0 security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin \s-1PTS\s0 entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
.Ip "\fI\-m\fR <\fImin percentage spare in partition\fR>" 4
Specifies the percentage of each \s-1AFS\s0 server partition that the \s-1AIX\s0 version
of the File Server creates as a reserve. Specify an integer value between
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring \s-1API\s0.
+.Ip "\fB\-abortthreshold\fR <\fIabort threshold\fR>" 4
+Sets the abort threshold, which is triggered when an \s-1AFS\s0 client sends
+a number of FetchStatus requests in a row and all of them fail due to
+access control or some other error. When the abort threshold is
+reached, the file server starts to slow down the responses to the
+problem client in order to reduce the load on the file server.
+.Sp
+The throttling behaviour can cause issues especially for some versions
+of the Windows OpenAFS client. When using Windows Explorer to navigate
+the \s-1AFS\s0 directory tree, directories with only \*(L"look\*(R" access for the
+current user may load more slowly because of the throttling. This is
+because the Windows OpenAFS client sends FetchStatus calls one at a
+time instead of in bulk like the Unix Open \s-1AFS\s0 client.
+.Sp
+Setting the threshold to 0 disables the throttling behavior. This
+option is available in OpenAFS versions 1.4.1 and later.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
\& -cmd "/usr/afs/bin/fileserver -pctspare 10 \e
\& -L" /usr/afs/bin/volserver /usr/afs/bin/salvager
.Ve
+.SH "TROUBLESHOOTING"
+Sending process signals to the File Server Process can change its
+behavior in the following ways:
+.PP
+.Vb 2
+\& Process Signal OS Result
+\& ---------------------------------------------------------------------
+.Ve
+.Vb 2
+\& File Server XCPU Unix Prints a list of client IP
+\& Addresses.
+.Ve
+.Vb 2
+\& File Server USR2 Windows Prints a list of client IP
+\& Addresses.
+.Ve
+.Vb 2
+\& File Server POLL HPUX Prints a list of client IP
+\& Addresses.
+.Ve
+.Vb 4
+\& Any server TSTP Any Increases Debug level by a power
+\& of 5 -- 1,5,25,125, etc.
+\& This has the same effect as the
+\& -d XXX command-line option.
+.Ve
+.Vb 1
+\& Any Server HUP Any Resets Debug level to 0
+.Ve
+.Vb 2
+\& File Server TERM Any Run minor instrumentation over
+\& the list of descriptors.
+.Ve
+.Vb 1
+\& Other Servers TERM Any Causes the process to quit.
+.Ve
+.Vb 2
+\& File Server QUIT Any Causes the File Server to Quit.
+\& Bos Server knows this.
+.Ve
+The basic metric of whether an AFS file server is doing well is the number
+of connections waiting for a thread,
+which can be found by running the following command:
+.PP
+.Vb 1
+\& % rxdebug <server> | grep waiting_for | wc -l
+.Ve
+Each line returned by \f(CWrxdebug\fR that contains the text \*(L"waiting_for\*(R"
+represents a connection that's waiting for a file server thread.
+.PP
+If the blocked connection count is ever above 0, the server is having
+problems replying to clients in a timely fashion. If it gets above 10,
+roughly, there will be noticable slowness by the user. The total number of
+connections is a mostly irrelevant number that goes essentially
+monotonically for as long as the server has been running and then goes back
+down to zero when it's restarted.
+.PP
+The most common cause of blocked connections rising on a server is some
+process somewhere performing an abnormal number of accesses to that server
+and its volumes. If multiple servers have a blocked connection count, the
+most likely explanation is that there is a volume replicated between those
+servers that is absorbing an abnormally high access rate.
+.PP
+To get an access count on all the volumes on a server, run:
+.PP
+.Vb 1
+\& % vos listvol <server> -long
+.Ve
+and save the output in a file. The results will look like a bunch of \fBvos
+examine\fR output for each volume on the server. Look for lines like:
+.PP
+.Vb 1
+\& 40065 accesses in the past day (i.e., vnode references)
+.Ve
+and look for volumes with an abnormally high number of accesses. Anything
+over 10,000 is fairly high, but some volumes like root.cell and other
+volumes close to the root of the cell will have that many hits routinely.
+Anything over 100,000 is generally abnormally high. The count resets about
+once a day.
+.PP
+Another approach that can be used to narrow the possibilities for a
+replicated volume, when multiple servers are having trouble, is to find all
+replicated volumes for that server. Run:
+.PP
+.Vb 1
+\& % vos listvldb -server <server>
+.Ve
+where <server> is one of the servers having problems to refresh the VLDB
+cache, and then run:
+.PP
+.Vb 1
+\& % vos listvldb -server <server> -part <partition>
+.Ve
+to get a list of all volumes on that server and partition, including every
+other server with replicas.
+.PP
+Once the volume causing the problem has been identified, the best way to
+deal with the problem is to move that volume to another server with a low
+load or to stop any runaway programs that are accessing that volume
+unnecessarily. Often the volume will be enough information to tell what's
+going on.
+.PP
+If you still need additional information about who's hitting that server,
+sometimes you can guess at that information from the failed callbacks in the
+\fIFileLog\fR log in \fI/var/log/afs\fR on the server, or from the output of:
+.PP
+.Vb 1
+\& % /usr/afsws/etc/rxdebug <server> -rxstats
+.Ve
+but the best way is to turn on debugging output from the file server.
+(Warning: This generates a lot of output into FileLog on the AFS server.)
+To do this, log on to the AFS server, find the PID of the fileserver
+process, and do:
+.PP
+.Vb 1
+\& kill -TSTP <pid>
+.Ve
+where <pid> is the PID of the file server process. This will raise the
+debugging level so that you'll start seeing what people are actually doing
+on the server. You can do this up to three more times to get even more
+output if needed. To reset the debugging level back to normal, use (The
+following command will NOT terminate the file server):
+.PP
+.Vb 1
+\& kill -HUP <pid>
+.Ve
+The debugging setting on the File Server should be reset back to normal when
+debugging is no longer needed. Otherwise, the AFS server may well fill its
+disks with debugging output.
+.PP
+The lines of the debugging output that are most useful for debugging load
+problems are:
+.PP
+.Vb 2
+\& SAFS_FetchStatus, Fid = 2003828163.77154.82248, Host 171.64.15.76
+\& SRXAFS_FetchData, Fid = 2003828163.77154.82248
+.Ve
+(The example above is partly truncated to highlight the interesting
+information). The Fid identifies the volume and inode within the volume;
+the volume is the first long number. So, for example, this was:
+.PP
+.Vb 8
+\& % vos examine 2003828163
+\& pubsw.matlab61 2003828163 RW 1040060 K On-line
+\& afssvr5.Stanford.EDU /vicepa
+\& RWrite 2003828163 ROnly 2003828164 Backup 2003828165
+\& MaxQuota 3000000 K
+\& Creation Mon Aug 6 16:40:55 2001
+\& Last Update Tue Jul 30 19:00:25 2002
+\& 86181 accesses in the past day (i.e., vnode references)
+.Ve
+.Vb 5
+\& RWrite: 2003828163 ROnly: 2003828164 Backup: 2003828165
+\& number of sites -> 3
+\& server afssvr5.Stanford.EDU partition /vicepa RW Site
+\& server afssvr11.Stanford.EDU partition /vicepd RO Site
+\& server afssvr5.Stanford.EDU partition /vicepa RO Site
+.Ve
+and from the Host information one can tell what system is accessing that
+volume.
+.PP
+Note that the output of the \fIvos_examine(1)\fR manpage also includes the access count, so
+once the problem has been identified, vos examine can be used to see if the
+access count is still increasing. Also remember that you can run vos
+examine on the read-only replica (e.g., pubsw.matlab61.readonly) to see the
+access counts on the read-only replica on all of the servers that it's
+located on.
.SH "PRIVILEGE REQUIRED"
The issuer must be logged in as the superuser \f(CWroot\fR on a file server
-machine to issue the command at a command shell prompt. It is conventional
+machine to issue the command at a command shell prompt. It is conventional
instead to create and start the process by issuing the \fBbos create\fR
command.
.SH "SEE ALSO"
the \fIbos_getlog(8)\fR manpage,
the \fIfs_setacl(1)\fR manpage,
the \fIsalvager(8)\fR manpage,
-the \fIvolserver(8)\fR manpage
+the \fIvolserver(8)\fR manpage,
+the \fIvos_examine(1)\fR manpage
.SH "COPYRIGHT"
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
.PP
.IX Item "\fI\-rxdbge\fR"
+.IX Item "\fB\-allow-dotted-principal\fR"
+
.IX Item "\fI\-m\fR <\fImin percentage spare in partition\fR>"
.IX Item "\fB\-lock\fR"
.IX Item "\fB\-enable_process_stats\fR"
+.IX Item "\fB\-abortthreshold\fR <\fIabort threshold\fR>"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
+.IX Header "TROUBLESHOOTING"
+
.IX Header "PRIVILEGE REQUIRED"
.IX Header "SEE ALSO"
.nr % 0
.rr F
.\}
-.TH fstrace_apropos 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_apropos 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace apropos \- Displays each help entry containing a keyword string
+fstrace_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBfstrace apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "fstrace_apropos 8"
-.IX Name "fstrace apropos - Displays each help entry containing a keyword string"
+.IX Name "fstrace_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_clear 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_clear 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace clear \- Clears the trace log
+fstrace_clear \- Clears the trace log
.SH "SYNOPSIS"
\fBfstrace clear\fR <<\ [\fB\-set\fR\ <\fIset\ name\fR+] >>> <<\ [\fB\-log\fR\ <\fIlog\ name\fR+] >>>
[\fB\-help\fR]
.rn }` ''
.IX Title "fstrace_clear 8"
-.IX Name "fstrace clear - Clears the trace log"
+.IX Name "fstrace_clear - Clears the trace log"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_dump 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_dump 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace dump \- Dumps a trace log
+fstrace_dump \- Dumps a trace log
.SH "SYNOPSIS"
\fBfstrace dump\fR <<\ [\fB\-set\fR\ <\fIset\ name\fR+] >>> <<\ [\fB\-follow\fR\ <\fIlog\ name\fR] >>>
<<\ [\fB\-file\fR\ <\fIoutput\ filename\fR] >>> <<\ [\fB\-sleep\fR\ <\fIseconds\ between\ reads\fR] >>>
.rn }` ''
.IX Title "fstrace_dump 8"
-.IX Name "fstrace dump - Dumps a trace log"
+.IX Name "fstrace_dump - Dumps a trace log"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_help 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_help 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace help \- Displays help for fstrace commands
+fstrace_help \- Displays help for fstrace commands
.SH "SYNOPSIS"
\fBfstrace help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "fstrace_help 8"
-.IX Name "fstrace help - Displays help for fstrace commands"
+.IX Name "fstrace_help - Displays help for fstrace commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_lslog 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_lslog 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace lslog \- Displays information about a log
+fstrace_lslog \- Displays information about a log
.SH "SYNOPSIS"
\fBfstrace lslog\fR <<\ [\fB\-set\fR\ <\fIset\ name\fR+] >>> <<\ [\fB\-log\fR\ <\fIlog\ name\fR] >>>
[\fB\-long\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "fstrace_lslog 8"
-.IX Name "fstrace lslog - Displays information about a log"
+.IX Name "fstrace_lslog - Displays information about a log"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_lsset 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_lsset 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace lsset \- Reports the status of an event set
+fstrace_lsset \- Reports the status of an event set
.SH "SYNOPSIS"
\fBfstrace lsset\fR <<\ [\fB\-set\fR\ <\fIset\ name\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "fstrace_lsset 8"
-.IX Name "fstrace lsset - Reports the status of an event set"
+.IX Name "fstrace_lsset - Reports the status of an event set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_setlog 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_setlog 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace setlog \- Sets the size of a trace log
+fstrace_setlog \- Sets the size of a trace log
.SH "SYNOPSIS"
\fBfstrace setlog\fR <<\ [\fB\-log\fR\ <\fIlog\ name\fR+] >>>
<<\ \fB\-buffersize\fR\ <\fI1-kilobyte\ units\fR >>> [\fB\-help\fR]
.rn }` ''
.IX Title "fstrace_setlog 8"
-.IX Name "fstrace setlog - Sets the size of a trace log"
+.IX Name "fstrace_setlog - Sets the size of a trace log"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH fstrace_setset 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH fstrace_setset 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-fstrace setset \- Sets the status of an event set
+fstrace_setset \- Sets the status of an event set
.SH "SYNOPSIS"
\fBfstrace setset\fR <<\ [\fB\-set\fR\ <\fIset\ name\fR+] >>> [\fB\-active\fR] [\fB\-inactive\fR]
[\fB\-dormant\fR] [\fB\-help\fR]
.rn }` ''
.IX Title "fstrace_setset 8"
-.IX Name "fstrace setset - Sets the status of an event set"
+.IX Name "fstrace_setset - Sets the status of an event set"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_apropos 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_apropos 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas apropos \- Displays each help entry containing a keyword string
+kas_apropos \- Displays each help entry containing a keyword string
.SH "SYNOPSIS"
\fBkas apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_apropos 8"
-.IX Name "kas apropos - Displays each help entry containing a keyword string"
+.IX Name "kas_apropos - Displays each help entry containing a keyword string"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_create 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_create 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas create \- Creates an entry in the Authentication Database
+kas_create \- Creates an entry in the Authentication Database
.SH "SYNOPSIS"
\fBkas create\fR <<\ \fB\-name\fR\ <\fIname\ of\ user\fR >>>
<<\ [\fB\-initial_password\fR\ <\fIinitial\ password\fR] >>>
.rn }` ''
.IX Title "kas_create 8"
-.IX Name "kas create - Creates an entry in the Authentication Database"
+.IX Name "kas_create - Creates an entry in the Authentication Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_delete 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_delete 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas delete \- Deletes an entry from the Authentication Database
+kas_delete \- Deletes an entry from the Authentication Database
.SH "SYNOPSIS"
\fBkas delete\fR <<\ \fB\-name\fR\ <\fIname\ of\ user\fR >>>
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_delete 8"
-.IX Name "kas delete - Deletes an entry from the Authentication Database"
+.IX Name "kas_delete - Deletes an entry from the Authentication Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_examine 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_examine 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas examine \- Displays information from an Authentication Database entry
+kas_examine \- Displays information from an Authentication Database entry
.SH "SYNOPSIS"
\fBkas examine\fR <<\ \fB\-name\fR\ <\fIname\ of\ user\fR >>> [\fB\-showkey\fR]
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_examine 8"
-.IX Name "kas examine - Displays information from an Authentication Database entry"
+.IX Name "kas_examine - Displays information from an Authentication Database entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_forgetticket 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_forgetticket 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas forgetticket \- Discards all tickets for the issuer
+kas_forgetticket \- Discards all tickets for the issuer
.SH "SYNOPSIS"
\fBkas forgetticket\fR [\fB\-all\fR] [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_forgetticket 8"
-.IX Name "kas forgetticket - Discards all tickets for the issuer"
+.IX Name "kas_forgetticket - Discards all tickets for the issuer"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_help 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_help 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas help \- Displays help for kas commands
+kas_help \- Displays help for kas commands
.SH "SYNOPSIS"
\fBkas help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_help 8"
-.IX Name "kas help - Displays help for kas commands"
+.IX Name "kas_help - Displays help for kas commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_interactive 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_interactive 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas interactive \- Enters interactive mode
+kas_interactive \- Enters interactive mode
.SH "SYNOPSIS"
\fBkas interactive\fR
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_interactive 8"
-.IX Name "kas interactive - Enters interactive mode"
+.IX Name "kas_interactive - Enters interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_list 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_list 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas list \- Displays all entries in the Authentication Database
+kas_list \- Displays all entries in the Authentication Database
.SH "SYNOPSIS"
\fBkas list\fR [\fB\-long\fR] [\fB\-showadmin\fR] [\fB\-showkey\fR]
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_list 8"
-.IX Name "kas list - Displays all entries in the Authentication Database"
+.IX Name "kas_list - Displays all entries in the Authentication Database"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_listtickets 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_listtickets 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas listtickets \- Displays all of the issuer's tickets (tokens)
+kas_listtickets \- Displays all of the issuer's tickets (tokens)
.SH "SYNOPSIS"
\fBkas listtickets\fR <<\ [\fB\-name\fR\ <\fIname\ of\ server\fR] >>> [\fB\-long\fR] [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_listtickets 8"
-.IX Name "kas listtickets - Displays all of the issuer's tickets (tokens)"
+.IX Name "kas_listtickets - Displays all of the issuer's tickets (tokens)"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_noauthentication 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_noauthentication 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas noauthentication \- Discards an authenticated identity in interactive mode
+kas_noauthentication \- Discards an authenticated identity in interactive mode
.SH "SYNOPSIS"
\fBnoauthentication\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_noauthentication 8"
-.IX Name "kas noauthentication - Discards an authenticated identity in interactive mode"
+.IX Name "kas_noauthentication - Discards an authenticated identity in interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_quit 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_quit 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas quit \- Leaves interactive mode
+kas_quit \- Leaves interactive mode
.SH "SYNOPSIS"
\fBquit\fR [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "kas_quit 8"
-.IX Name "kas quit - Leaves interactive mode"
+.IX Name "kas_quit - Leaves interactive mode"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_setfields 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_setfields 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas setfields \- Sets fields in an Authentication Database entry
+kas_setfields \- Sets fields in an Authentication Database entry
.SH "SYNOPSIS"
\fBkas setfields\fR <<\ \fB\-name\fR\ <\fIname\ of\ user\fR >>>
<<\ [\fB\-flags\fR\ <\fIhex\ flag\ value\ or\ flag\ name\ expression\fR] >>>
.rn }` ''
.IX Title "kas_setfields 8"
-.IX Name "kas setfields - Sets fields in an Authentication Database entry"
+.IX Name "kas_setfields - Sets fields in an Authentication Database entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_setpassword 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_setpassword 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas setpassword \- Changes the key field in an Authentication Database entry
+kas_setpassword \- Changes the key field in an Authentication Database entry
.SH "SYNOPSIS"
\fBkas setpassword\fR <<\ \fB\-name\fR\ <\fIname\ of\ user\fR >>>
<<\ [\fB\-new_password\fR\ <\fInew\ password\fR] >>> <<\ [\fB\-kvno\fR\ <\fIkey\ version\ number\fR] >>>
.rn }` ''
.IX Title "kas_setpassword 8"
-.IX Name "kas setpassword - Changes the key field in an Authentication Database entry"
+.IX Name "kas_setpassword - Changes the key field in an Authentication Database entry"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_statistics 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_statistics 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas statistics \- Displays statistics from an Authentication Server process
+kas_statistics \- Displays statistics from an Authentication Server process
.SH "SYNOPSIS"
\fBkas statistics\fR
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_statistics 8"
-.IX Name "kas statistics - Displays statistics from an Authentication Server process"
+.IX Name "kas_statistics - Displays statistics from an Authentication Server process"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_stringtokey 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_stringtokey 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas stringtokey \- Converts a character string into an octal key
+kas_stringtokey \- Converts a character string into an octal key
.SH "SYNOPSIS"
\fBkas stringtokey\fR <<\ \fB\-string\fR\ <\fIpassword\ string\fR >>>
<<\ [\fB\-cell\fR\ <\fIcell\ name\fR] >>> [\fB\-help\fR]
.rn }` ''
.IX Title "kas_stringtokey 8"
-.IX Name "kas stringtokey - Converts a character string into an octal key"
+.IX Name "kas_stringtokey - Converts a character string into an octal key"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH kas_unlock 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH kas_unlock 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-kas unlock \- Unlocks a locked user account
+kas_unlock \- Unlocks a locked user account
.SH "SYNOPSIS"
\fBkas unlock\fR <<\ \fB\-name\fR\ <\fIauthentication\ ID\fR >>>
<<\ [\fB\-admin_username\fR\ <\fIadmin\ principal\ to\ use\ for\ authentication\fR] >>>
.rn }` ''
.IX Title "kas_unlock 8"
-.IX Name "kas unlock - Unlocks a locked user account"
+.IX Name "kas_unlock - Unlocks a locked user account"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH ptserver 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH ptserver 8 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.SH "SYNOPSIS"
\fBptserver\fR <<\ [\fB\-database\fR\ <\fIdb\ path\fR] >>> <<\ [\fB\-p\fR\ <\fInumber\ of\ processes\fR] >>>
[\fB\-rebuildDB\fR] [\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR]
- [\fB\-help\fR]
+ [\fB\-allow-dotted-principal\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
The \fBptserver\fR command initializes the Protection Server, which must run
on every database server machine. In the conventional configuration, its
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring \s-1API\s0.
+.Ip "\fB\-allow-dotted-principal\fR" 4
+By default, the \s-1RXKAD\s0 security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin \s-1PTS\s0 entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.IX Item "\fB\-enable_process_stats\fR"
+.IX Item "\fB\-allow-dotted-principal\fR"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
--- /dev/null
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp
+.if t .sp .5v
+.if n .sp
+..
+.de Ip
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve
+.ft R
+
+.fi
+..
+'''
+'''
+''' Set up \*(-- to give an unbreakable dash;
+''' string Tr holds user defined translation string.
+''' Bell System Logo is used as a dummy character.
+'''
+.tr \(*W-|\(bv\*(Tr
+.ie n \{\
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+''' \*(L" and \*(R", except that they are used on ".xx" lines,
+''' such as .IP and .SH, which do another additional levels of
+''' double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
+'br\}
+.el\{\
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
+'br\}
+.\" If the F register is turned on, we'll generate
+.\" index entries out stderr for the following things:
+.\" TH Title
+.\" SH Header
+.\" Sh Subsection
+.\" Ip Item
+.\" X<> Xref (embedded
+.\" Of course, you have to process the output yourself
+.\" in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
+..
+.nr % 0
+.rr F
+.\}
+.TH read_tape 8 "OpenAFS" "25/Dec/2007" "AFS Command Reference"
+.UC
+.if n .hy 0
+.if n .na
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+. \" AM - accent mark definitions
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds ? ?
+. ds ! !
+. ds /
+. ds q
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds v \h'-1'\o'\(aa\(ga'
+. ds _ \h'-1'^
+. ds . \h'-1'.
+. ds 3 3
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+. ds oe oe
+. ds Oe OE
+.\}
+.rm #[ #] #H #V #F C
+.SH "NAME"
+read_tape \- Reads volume dumps from a backup tape to a file
+.SH "SYNOPSIS"
+\fBread_tape\fR <<\ \fB\-tape\fR\ <\fItape\ device\fR >>>
+ <<\ \fB\-restore\fR\ <\fI#\ of\ volumes\ to\ restore\fR >>>
+ <<\ \fB\-skip\fR\ <\fI#\ of\ volumes\ to\ skip\fR >>>
+ <<\ \fB\-file\fR\ <\fIfilename\fR >>> [\fB\-scan\fR] [\fB\-noask\fR] [\fB\-label\fR]
+ [\fB\-vheaders\fR] [\fB\-verbose\fR] [\fB\-help\fR]
+.SH "DESCRIPTION"
+\fBread_tape\fR reads an OpenAFS backup tape and prompts for each dump file to
+save. This command does not require any OpenAFS infrastructure. This
+command does not need an OpenAFS client or server to be available, which is
+not the case with the the \fIbackup(8)\fR manpage command.
+.PP
+The dump files will be named for the Read/Write name of the volume restored.
+After saving each dump file, \fBvos restore\fR or \fBrestorevol\fR can be used to
+restore the volume into AFS and non-AFS space respectively.
+.PP
+\fBread_tape\fR reads the tape while skipping the specified number of volumes.
+After that, it restores the specified number of volumes. \fBread_tape\fR
+doesn't rewind the tape so that it may be used multiple times in succession.
+.SH "OPTIONS"
+.Ip "\fB\-tape\fR <\fItape device\fR>" 4
+Specifies the tape device from which to restore.
+.Ip "\fB\-restore\fR <\fI# of volumes to restore\fR>" 4
+Specifies the number of volumes to restore from tape.
+.Ip "\fB\-skip\fR <\fI# of volumes to skip\fR>" 4
+Specifies the number of volumes to skip before starting the restore.
+.Ip "\fB\-file\fR <\fIfilename\fR>" 4
+Specifies an alternate name for the restored volume dump file rather than
+the default of the volume name.
+.Ip "\fB\-scan\fR" 4
+Scans the tape.
+.Ip "\fB\-noask\fR" 4
+Doesn't prompt for each volume.
+.Ip "\fB\-label\fR" 4
+Displays the full dump label.
+.Ip "\fB\-vheaders\fR" 4
+Displays the full volume headers.
+.Ip "\fB\-verbose\fR" 4
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+.Ip "\fB\-help\fR" 4
+Prints the online help for this command. All other valid options are
+ignored.
+.SH "EXAMPLES"
+The following command will read the third through fifth volumes from
+the tape device /dev/tape without prompting:
+.PP
+.Vb 1
+\& % read_tape -tape /dev/tape -skip 2 -restore 3 -noask
+.Ve
+.SH "PRIVILEGE REQUIRED"
+The issuer must have access to read and write to the specified tape device.
+.SH "SEE ALSO"
+the \fIbackup(8)\fR manpage,
+the \fIrestorevol(8)\fR manpage,
+the \fIvos_restore(1)\fR manpage
+.SH "COPYRIGHT"
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+.PP
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
+
+.rn }` ''
+.IX Title "read_tape 8"
+.IX Name "read_tape - Reads volume dumps from a backup tape to a file"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "OPTIONS"
+
+.IX Item "\fB\-tape\fR <\fItape device\fR>"
+
+.IX Item "\fB\-restore\fR <\fI# of volumes to restore\fR>"
+
+.IX Item "\fB\-skip\fR <\fI# of volumes to skip\fR>"
+
+.IX Item "\fB\-file\fR <\fIfilename\fR>"
+
+.IX Item "\fB\-scan\fR"
+
+.IX Item "\fB\-noask\fR"
+
+.IX Item "\fB\-label\fR"
+
+.IX Item "\fB\-vheaders\fR"
+
+.IX Item "\fB\-verbose\fR"
+
+.IX Item "\fB\-help\fR"
+
+.IX Header "EXAMPLES"
+
+.IX Header "PRIVILEGE REQUIRED"
+
+.IX Header "SEE ALSO"
+
+.IX Header "COPYRIGHT"
+
.nr % 0
.rr F
.\}
-.TH uss_add 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH uss_add 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-uss add \- Creates a user account
+uss_add \- Creates a user account
.SH "SYNOPSIS"
\fBuss add\fR <<\ \fB\-user\fR\ <\fIlogin\ name\fR >>> <<\ [\fB\-realname\fR\ <\fIfull\ name\ in\ quotes\fR] >>>
<<\ [\fB\-pass\fR\ <\fIinitial\ password\fR] >>>
.rn }` ''
.IX Title "uss_add 8"
-.IX Name "uss add - Creates a user account"
+.IX Name "uss_add - Creates a user account"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH uss_apropos 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH uss_apropos 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-uss apropos \- Displays each help entry containing a keyword string.
+uss_apropos \- Displays each help entry containing a keyword string.
.SH "SYNOPSIS"
\fBuss apropos\fR <<\ \fB\-topic\fR\ <\fIhelp\ string\fR >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "uss_apropos 8"
-.IX Name "uss apropos - Displays each help entry containing a keyword string."
+.IX Name "uss_apropos - Displays each help entry containing a keyword string."
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH uss_bulk 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH uss_bulk 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-uss bulk \- Executes multiple uss commands listed in a file
+uss_bulk \- Executes multiple uss commands listed in a file
.SH "SYNOPSIS"
\fBuss bulk\fR <<\ \fB\-file\fR\ <\fIbulk\ input\ file\fR >>>
<<\ [\fB\-template\fR\ <\fIpathname\ of\ template\ file\fR] >>> [\fB\-verbose\fR]
.rn }` ''
.IX Title "uss_bulk 8"
-.IX Name "uss bulk - Executes multiple uss commands listed in a file"
+.IX Name "uss_bulk - Executes multiple uss commands listed in a file"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH uss_delete 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH uss_delete 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-uss delete \- Deletes a user account
+uss_delete \- Deletes a user account
.SH "SYNOPSIS"
\fBuss delete\fR <<\ \fB\-user\fR\ <\fIlogin\ name\fR >>>
<<\ [\fB\-mountpoint\fR\ <\fImountpoint\ for\ user's\ volume\fR] >>>
.rn }` ''
.IX Title "uss_delete 8"
-.IX Name "uss delete - Deletes a user account"
+.IX Name "uss_delete - Deletes a user account"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH uss_help 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH uss_help 8 "OpenAFS" "11/Nov/2007" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
-uss help \- Displays help for uss commands
+uss_help \- Displays help for uss commands
.SH "SYNOPSIS"
\fBuss help\fR <<\ [\fB\-topic\fR\ <\fIhelp\ string\fR+] >>> [\fB\-help\fR]
.PP
.rn }` ''
.IX Title "uss_help 8"
-.IX Name "uss help - Displays help for uss commands"
+.IX Name "uss_help - Displays help for uss commands"
.IX Header "NAME"
.nr % 0
.rr F
.\}
-.TH vlserver 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH vlserver 8 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
vlserver \- Initializes the Volume Location Server
.SH "SYNOPSIS"
\fBvlserver\fR <<\ [\fB\-p\fR\ <\fIlwp\ processes\fR] >>> [\fB\-nojumbo\fR]
- [\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR] [\fB\-help\fR]
+ [\fB\-allow-dotted-principal\fR] [\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR]
+ [\fB\-help\fR]
.SH "DESCRIPTION"
The \fBvlserver\fR command initializes the Volume Location (VL) Server, which
runs on every database server machine. In the conventional configuration,
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring \s-1API\s0.
+.Ip "\fB\-allow-dotted-principal\fR" 4
+By default, the \s-1RXKAD\s0 security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin \s-1PTS\s0 entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.IX Item "\fB\-enable_process_stats\fR"
+.IX Item "\fB\-allow-dotted-principal\fR"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
.nr % 0
.rr F
.\}
-.TH volserver 8 "OpenAFS" "1/Mar/2006" "AFS Command Reference"
+.TH volserver 8 "OpenAFS" "4/Feb/2008" "AFS Command Reference"
.UC
.if n .hy 0
.if n .na
.SH "SYNOPSIS"
\fBvolserver\fR [\fB\-log\fR] <<\ [\fB\-p\fR\ <\fInumber\ of\ processes\fR] >>>
<<\ [\fB\-udpsize\fR\ <\fIsize\ of\ socket\ buffer\ in\ bytes\fR] >>>
- [\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR] [\fB\-help\fR]
+ [\fB\-enable_peer_stats\fR] [\fB\-enable_process_stats\fR]
+ [\fB\-allow-dotted-principal\fR] [\fB\-help\fR]
.SH "DESCRIPTION"
The \fBvolserver\fR command initializes the Volume Server component of the
\f(CWfs\fR process. In the conventional configuration, its binary file is
GetStatus, and so on) sent or received, aggregated over all connections to
other machines. To display or otherwise access the records, use the Rx
Monitoring \s-1API\s0.
+.Ip "\fB\-allow-dotted-principal\fR" 4
+By default, the \s-1RXKAD\s0 security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin \s-1PTS\s0 entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
.Ip "\fB\-help\fR" 4
Prints the online help for this command. All other valid options are
ignored.
.IX Item "\fB\-enable_process_stats\fR"
+.IX Item "\fB\-allow-dotted-principal\fR"
+
.IX Item "\fB\-help\fR"
.IX Header "EXAMPLES"
<div class="synopsis">
B<cmdebug> S<<< B<-servers> <I<machine>> >>> S<<< [B<-port> <I<IP port>>] >>>
- [B<-long>] [B<-refcounts>] [B<-callbacks>] [B<-addrs>] [B<-cache>]
+ [B<-long>] [B<-refcounts>] [B<-callbacks>] [B<-ctime>] [B<-addrs>]
+ [B<-cache>] [B<-cellservdb>] [B<-help>]
-B<cmdebug> S<<< B<-s> <I<machine>> >>> S<<< [B<-p> <I<IP port>>] >>> [B<-l>] [B<-r>] [B<-c>]
- [B<-a>] [B<-h>]
+B<cmdebug> S<<< B<-s> <I<machine>> >>> S<<< [B<-p> <I<IP port>>] >>> [B<-l>] [B<-r>] [B<-cal>]
+ [B<-ct>] [B<-a>] [B<-cac>] B<-ce>] [B<-h>]
=for html
</div>
=head1 DESCRIPTION
-The B<cmdebug> command displays information about the Cache Manager and
-client cache status on an AFS client machine. By default, it displays all
-locked cache entries, but other information can be requested via various
-options.
+The B<cmdebug> command displays information about the Cache Manager
+and client cache status on a local or remote AFS client machine. By
+default, it displays all locked cache entries, but other information
+can be requested via various options.
+
+=head1 CAUTIONS
+
+The B<-ctime> option is only available with OpenAFS version 1.4.7 and
+later or version 1.5.28 or later. This option can be used to gather
+information from any version of the Unix OpenAFS client, but can only
+query Windows clients running OpenAFS version 1.5.28 or later.
+
+The B<-cellservdb> option is only available with OpenAFS version 1.4.7
+and later or version 1.5.31 or later. This option can be used to gather
+information from any version of the Unix OpenAFS client, but can only
+query Windows clients running OpenAFS version 1.5.31 or later.
=head1 OPTIONS
Names the client machine for which to display Cache Manager status.
Provide the machine's IP address in dotted decimal format, its fully
-qualified host name (for example, B<fs1.abc.com>), or the shortest
+qualified host name (for example, B<fs1.example.com>), or the shortest
abbreviated form of its host name that distinguishes it from other
machines. Successful use of an abbreviated form depends on the
-availability of a name resolution service (such as the Domain Name Service
-or a local host table) at the time the command is issued.
+availability of a name resolution service (such as the Domain Name
+Service or a local host table) at the time the command is issued.
=item B<-port> <I<IP port>>
Reports on all lock statuses and all cache entries, rather than only
locked cache entries. Do not use this option with B<-refcounts>,
-B<-callbacks>, B<-addrs>, or B<-cache>.
+B<-callbacks>, B<-addrs>, B<-cache>, or B<-cellservdb>.
=item B<-refcounts>
Reports only those cache entries with callbacks. Do not use this option
with B<-long>, B<-refcounts>, B<-addrs>, or B<-cache>.
+=item B<-ctime>
+
+Causes entry expiration times to be shown in human-readable format. Do
+not use this option with B<-addrs> or B<-cache>.
+
=item B<-addrs>
Rather than showing any cache entries, displays the interfaces the Cache
information that can be configured via parameters to B<afsd>. Do not use
this option with B<-long>, B<-refcounts>, B<-callbacks>, or B<-addrs>.
+=item B<-cellservdb>
+
+Lists all known volume location database records in a
+CellServDB-compatible format. This includes all records in memory,
+including those from the CellServDB file, AFSDB DNS records, and the
+B<fs newcell> command. This option could be used to see if a client
+has the latest copy of the CellServDB file. Do not use this option
+with B<-long>, B<-refcounts>, B<-callbacks>, or B<-cache>.
+
=item B<-help>
Prints the online help for this command. All other valid options are
% cmdebug client1
-Displays the cache configuration for C<client1.abc.com>:
+Displays the cache configuration for C<client1.example.com>:
- % cmdebug client1.abc.com -cache
+ % cmdebug client1.example.com -cache
-Displays all cache entries for C<client2.abc.com>:
+Displays all cache entries for C<client2.example.com>:
- % cmdebug client2.abc.com -long
+ % cmdebug client2.example.com -long
=head1 PRIVILEGE REQUIRED
=head1 SEE ALSO
-L<afsd(8)>
+L<afsd(8)>,
+L<CellServDB(5)>,
+L<fs_newcell(1)>
=head1 COPYRIGHT
L<B<fs setcrypt>|fs_setcrypt(1)>,
L<B<fs setserverprefs>|fs_setserverprefs(1)>,
L<B<fs sysname>|fs_sysname(1)>,
+L<B<fs uuid>|fs_uuid(1)>,
and L<B<fs wscell>|fs_wscell(1)>.
=item *
=head1 NAME
-fs apropos - Displays each help entry containing a keyword string
+fs_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-fs checkservers - Displays the status of server machines
+fs_checkservers - Displays the status of server machines
=head1 SYNOPSIS
=head1 NAME
-fs checkvolumes - Forces the Cache Manager to update volume information
+fs_checkvolumes - Forces the Cache Manager to update volume information
=head1 SYNOPSIS
=head1 NAME
-fs cleanacl - Remove obsolete entries from an ACL
+fs_cleanacl - Remove obsolete entries from an ACL
=head1 SYNOPSIS
=head1 NAME
-fs copyacl - Copies an ACL from a directory to one or more other directories
+fs_copyacl - Copies an ACL from a directory to one or more other directories
=head1 SYNOPSIS
=head1 NAME
-fs diskfree - Shows data about the partition housing a directory or file
+fs_diskfree - Shows data about the partition housing a directory or file
=head1 SYNOPSIS
=head1 NAME
-fs examine - Shows data about the volume containing a directory or file
+fs_examine - Shows data about the volume containing a directory or file
=head1 SYNOPSIS
=head1 NAME
-fs exportafs - Configures export of AFS to clients of other file systems
+fs_exportafs - Configures export of AFS to clients of other file systems
=head1 SYNOPSIS
=head1 NAME
-fs flush - Forces the Cache Manager to discard a cached file or directory
+fs_flush - Forces the Cache Manager to discard a cached file or directory
=head1 SYNOPSIS
=head1 NAME
-fs flushall - Force the AFS Cache Manager to discard all data
+fs_flushall - Force the AFS Cache Manager to discard all data
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs flushmount - Forces the Cache Manager to discard a mount point
+fs_flushmount - Forces the Cache Manager to discard a mount point
=head1 SYNOPSIS
=head1 NAME
-fs flushvolume - Forces the Cache Manager to discard cached data from a volume
+fs_flushvolume - Forces the Cache Manager to discard cached data from a volume
=head1 SYNOPSIS
=head1 NAME
-fs getcacheparms - Displays the current size and usage of the cache
+fs_getcacheparms - Displays the current size and usage of the cache
=head1 SYNOPSIS
=head1 NAME
-fs getcalleraccess - Show the current user's access to a file or directory
+fs_getcalleraccess - Show the current user's access to a file or directory
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs getcellstatus - Reports whether setuid programs are honored in a cell
+fs_getcellstatus - Reports whether setuid programs are honored in a cell
=head1 SYNOPSIS
=head1 NAME
-fs getclientaddrs - Displays the client interfaces to register
+fs_getclientaddrs - Displays the client interfaces to register
=head1 SYNOPSIS
=head1 NAME
-fs getcrypt - Displays the state of encryption for AFS file transfers
+fs_getcrypt - Displays the state of encryption for AFS file transfers
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs getserverprefs - Displays preference ranks for file servers or VL servers
+fs_getserverprefs - Displays preference ranks for file servers or VL servers
=head1 SYNOPSIS
=head1 NAME
-fs help - Displays help for fs commands
+fs_help - Displays help for fs commands
=head1 SYNOPSIS
=head1 NAME
-fs listacl - Displays ACLs
+fs_listacl - Displays ACLs
=head1 SYNOPSIS
=head1 NAME
-fs listaliases - Displays the current list of aliases for AFS cells
+fs_listaliases - Displays the current list of aliases for AFS cells
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs listcells - Displays the database server machines known to the Cache Manager
+fs_listcells - Displays the database server machines known to the Cache Manager
=head1 SYNOPSIS
=head1 NAME
-fs listquota - Displays quota information for a volume
+fs_listquota - Displays quota information for a volume
=head1 SYNOPSIS
To set volume quota, use the B<fs setquota> or B<fs setvol> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-fs lsmount - Reports the volume for which a directory is the mount point.
+fs_lsmount - Reports the volume for which a directory is the mount point.
=head1 SYNOPSIS
=head1 NAME
-fs messages - Sets whether the Cache Manager writes log messages
+fs_messages - Sets whether the Cache Manager writes log messages
=head1 SYNOPSIS
--- /dev/null
+=head1 NAME
+
+fs_minidump - Generate a minidump from the current afsd service
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<fs minidump> [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+B<fs minidump> generates a mini dump file containing the current stack
+of the afsd_service.exe process. This output can be very helpful when
+debugging the AFS Client Service when it is unresponsive to SMB/CIFS
+requests.
+
+=head1 CAUTIONS
+
+This command is only available in OpenAFS for Windows version 1.4 and later.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 SEE ALSO
+
+L<fs(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs mkmount - Creates a mount point for a volume
+fs_mkmount - Creates a mount point for a volume
=head1 SYNOPSIS
=head1 NAME
-fs newalias - Creates a new alias for a cell
+fs_newalias - Creates a new alias for a cell
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs newcell - Changes the kernel-resident list of a cell's database servers
+fs_newcell - Changes the kernel-resident list of a cell's database servers
=head1 SYNOPSIS
=head1 NAME
-fs quota - Displays the quota used in the volume containing a directory or file
+fs_quota - Displays the quota used in the volume containing a directory or file
=head1 SYNOPSIS
To set volume quota, use the B<fs setquota> or B<fs setvol> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-fs rmmount - Removes a mount point
+fs_rmmount - Removes a mount point
=head1 SYNOPSIS
--- /dev/null
+=head1 NAME
+
+fs_rxstatpeer - Enables Rx packet logging in the OpenAFS kernel module
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<fs rxstatpeer> [B<-clear>] [B<-disable>] [B<-enable>] [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+B<fs rxstatpeer> manipulates some of the Rx protocol counters in the
+OpenAFS kernel interface.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-clear>
+
+Clear the Rx stats for peers in the kernel module.
+
+=item B<-disable>
+
+Disable logging of Rx stats for peers in the kernel module.
+
+=item B<-enable>
+
+Enable logging of Rx stats for peers in the kernel module.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 OUTPUT
+
+This command produces no output other than error messages.
+
+=head1 EXAMPLES
+
+Enable Rx Stats for peers:
+
+ % fs rxstatpeer -enable
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must be logged in as the local superuser root.
+
+=head1 SEE ALSO
+
+L<fs(1)>,
+L<rxdebug(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs setacl - Sets the ACL for a directory
+fs_setacl - Sets the ACL for a directory
=head1 SYNOPSIS
=head1 NAME
-fs setcachesize - Sets the size of the disk cache
+fs_setcachesize - Sets the size of the disk cache
=head1 SYNOPSIS
=head1 NAME
-fs setcell - Configures permissions for setuid programs from specified cells
+fs_setcell - Configures permissions for setuid programs from specified cells
=head1 SYNOPSIS
=head1 NAME
-fs setclientaddrs - Sets the client interfaces to register with the File Server
+fs_setclientaddrs - Sets the client interfaces to register with the File Server
=head1 SYNOPSIS
=head1 NAME
-fs setcrypt - Enables of disables the encryption of AFS file transfers
+fs_setcrypt - Enables of disables the encryption of AFS file transfers
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs setquota - Sets the quota for the volume containing a file or directory
+fs_setquota - Sets the quota for the volume containing a file or directory
=head1 SYNOPSIS
To display a volume's quota, use the B<fs examine>, B<fs listquota>, or
B<fs quota> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-fs setserverprefs - Sets the preference ranks for file servers or VL servers
+fs_setserverprefs - Sets the preference ranks for file servers or VL servers
=head1 SYNOPSIS
=head1 NAME
-fs setvol - Set quota and messages for a volume containing a file or directory
+fs_setvol - Set quota and messages for a volume containing a file or directory
=head1 SYNOPSIS
To set quota on one volume at a time, use the B<fs setquota> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-fs storebehind - Enables asynchronous writes to the file server
+fs_storebehind - Enables asynchronous writes to the file server
=head1 SYNOPSIS
=head1 NAME
-fs sysname - Reports or sets the CPU/operating system type
+fs_sysname - Reports or sets the CPU/operating system type
=head1 SYNOPSIS
=for html
<div class="synopsis">
-B<fs sysname> S<<< [B<-newsys> <I<new sysname>>] >>> [B<-help>]
+B<fs sysname> S<<< [B<-newsys> <I<new sysname>>]+ >>> [B<-help>]
-B<fs sy> S<<< [B<-n> <I<new sysname>>] >>> [B<-h>]
+B<fs sy> S<<< [B<-n> <I<new sysname>>]+ >>> [B<-h>]
=for html
</div>
The B<fs sysname> command sets or displays the local machine's
CPU/operating system type as recorded in kernel memory. The Cache Manager
substitutes the string for the I<@sys> variable which can occur in AFS
-pathnames; the I<IBM AFS Quick Beginnings> and I<IBM AFS Administration
+pathnames; the I<OpenAFS Quick Beginnings> and I<OpenAFS Administration
Guide> explain how using I<@sys> can simplify cell configuration. It is
best to use it sparingly, however, because it can make the effect of
changing directories unpredictable.
=item B<-newsys> <I<new sysname>>
-Sets the CPU/operating system indicator string for the local machine. If
-this argument is omitted, the output displays the current setting
-instead. AFS uses a standardized set of strings; consult the I<IBM AFS
-Quick Beginnings> or I<AFS Release Notes>.
+Sets the CPU/operating system indicator string for the local machine. This
+option may be used multiple times in the same invocation, which sets I<@sys>
+to an array of values. When I<@sys> contains an array of values, the first
+value that matches a path is used.
+
+If this argument is omitted, the output displays the current setting
+instead. AFS uses a standardized set of strings; consult the I<OpenAFS Quick
+Beginnings> or I<OpenAFS Release Notes>.
=item B<-help>
Current sysname is '<system_type>'
+When the B<-newsys> argument is included, the output is the following:
+
+ fs: new sysname list set.
+
=head1 EXAMPLES
The following example shows the output produced on a Sun SPARCStation
% fs sysname -newsys rs_aix42
+The following command defines a machine to be Mac OS X PPC and a
+custom type 'foo'. The second command queries the new sysname:
+
+ % fs sysname -newsys ppc_darwin_80 -newsys foo
+ fs: new sysname list set.
+ % fs sysname
+ Current sysname list is 'ppc_darwin_80' 'foo'
+
+If I<@sys> is C<ppc_darwin_80 foo>, then C<cd @sys> will try to change
+to the C<ppc_darwin_80> directory. If the C<ppc_darwin_80> directory
+doesn't exist, then the C<foo> directory is tried.
+
=head1 PRIVILEGE REQUIRED
To display the current setting, no privilege is required. To include the
L<fs_exportafs(1)>,
L<sys(1)>
-I<IBM AFS Quick Beginnings>
+I<OpenAFS Quick Beginnings>
+L<http://www.openafs.org/pages/doc/QuickStartUnix/auqbg000.htm>
+
+I<OpenAFS Administration Guide>
+L<http://www.openafs.org/pages/doc/AdminGuide/auagd000.htm>
-I<IBM AFS Administration Guide>
+For the list of assigned standard sysname values, see
+L<http://grand.central.org/numbers/systypes.html>
=head1 COPYRIGHT
=head1 NAME
-fs uuid - Prints the uuid of the client or generates a new one
+fs_uuid - Prints the uuid of the client or generates a new one
=head1 SYNOPSIS
=head1 DESCRIPTION
-B<fs uuid> prints the current uuid of an OpenAFS client. It can
-optionally force the generation of a new uuid, if needed. The client
-uuid is used by the B<fileserver> to differentiate clients with the
-same IP address.
+B<fs uuid> prints the current UUID of an OpenAFS client. It can
+optionally force the generation of a new UUID, if needed. The client UUID
+is used by the B<fileserver> to differentiate clients with the same IP
+address.
=head1 CAUTIONS
-The B<fs uuid> command is only available in OpenAFS versions after
-1.4.5 and 1.5.8. The behavior differs slightly between versions. In
-OpenAFS 1.4.5 and later, the B<-generate> option is required and the
-uuid for the client machine is never printed. OpenAFS versions 1.5.8
-and later will print the uuid.
+The B<fs uuid> command is only available in OpenAFS versions after 1.4.5
+and 1.5.8. The behavior differs slightly between versions. In OpenAFS
+1.4.5 and later, the B<-generate> option is required and the UUID for the
+client machine is never printed. OpenAFS versions 1.5.8 and later will
+print the UUID.
=head1 OPTIONS
=item B<-generate>
-Generates a new uuid for the cache manager. This is useful if two
-clients share the same uuid. B<-generate> is optional in OpenAFS
-versions 1.5.8 and later, but it is required in OpenAFS versions 1.4.5
-and later.
+Generates a new UUID for the cache manager. This is useful if two clients
+share the same UUID (if systems were cloned incorrectly, for example).
+B<-generate> is optional in OpenAFS versions 1.5.8 and later, but it is
+required in OpenAFS versions 1.4.5 and later.
=item B<-help>
-Prints the online help for this command. All other valid options are
+Prints the online help for this command. All other valid options are
ignored.
=back
=head1 OUTPUT
-B<fs uuid> prints out the current uuid for the client or the new uuid
+B<fs uuid> prints out the current UUID for the client or the new UUID
if the B<-generate> option is passed to it.
=head1 EXAMPLES
% fs uuid -generate
New uuid generated.
-
=head1 PRIVILEGE REQUIRED
The issuer must be logged on as the local superuser C<root>.
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-fs whereis - Reports each file server housing a file or directory
+fs_whereis - Reports each file server housing a file or directory
=head1 SYNOPSIS
=head1 NAME
-fs whichcell - Returns the cell to which a file or directory belongs
+fs_whichcell - Returns the cell to which a file or directory belongs
=head1 SYNOPSIS
=head1 NAME
-fs wscell - Returns the name of the cell to which a machine belongs
+fs_wscell - Returns the name of the cell to which a machine belongs
=head1 SYNOPSIS
The local F</usr/vice/etc/ThisCell> file.
+Do not combine the B<-cell> and B<-localauth> options. A command on which
+the B<-localauth> flag is included always runs in the local cell (as
+defined in the server machine's local F</usr/afs/etc/ThisCell> file),
+whereas a command on which the B<-cell> argument is included runs in the
+specified foreign cell.
+
=back
=item B<-force>
and refuses to perform such an action even if the B<-noauth> flag is
provided.
+=item B<-localauth>
+
+Constructs a server ticket using the server encryption key with the
+highest key version number in the local F</usr/afs/etc/KeyFile> file. The
+B<pts> command interpreter presents the ticket, which never expires, to
+the BOS Server during mutual authentication.
+
+Use this flag only when issuing a command on a server machine; client
+machines do not usually have a F</usr/afs/etc/KeyFile> file. The issuer
+of a command that includes this flag must be logged on to the server
+machine as the local superuser C<root>. The flag is useful for commands
+invoked by an unattended application program, such as a process controlled
+by the UNIX B<cron> utility. It is also useful if an administrator is
+unable to authenticate to AFS but is logged in as the local superuser
+C<root>.
+
+Do not combine the B<-cell> and B<-localauth> options. A command on which
+the B<-localauth> flag is included always runs in the local cell (as
+defined in the server machine's local F</usr/afs/etc/ThisCell> file),
+whereas a command on which the B<-cell> argument is included runs in the
+specified foreign cell. Also, do not combine the B<-localauth> and
+B<-noauth> flags.
+
=back
=head1 PRIVILEGE REQUIRED
=head1 NAME
-pts adduser - Adds a user or machine to a Protection Database group
+pts_adduser - Adds a user or machine to a Protection Database group
=head1 SYNOPSIS
<div class="synopsis">
B<pts adduser> S<<< B<-user> <I<user name>>+ >>> S<<< B<-group> <I<group name>>+ >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
B<pts ad> S<<< B<-u> <I<user name>>+ >>> S<<< B<-g> <I<group name>>+ >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. The B<pts> command interpreter presents the
+ticket to the Protection Server during mutual authentication. Do not combine
+this flag with the B<-cell> or B<-noauth> options. For more details, see
+L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts apropos - Displays each help entry containing a keyword string
+pts_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-pts chown - Changes the owner of a Protection Database entry
+pts_chown - Changes the owner of a Protection Database entry
=head1 SYNOPSIS
<div class="synopsis">
B<pts chown> S<<< B<-name> <I<group name>> >>> S<<< B<-owner> <I<new owner>> >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
B<pts cho> S<<< B<-na> <I<group name>> >>> S<<< B<-o> <I<new owner>> >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the B<-cell>
+or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts creategroup - Creates an (empty) Protection Database group entry
+pts_creategroup - Creates an (empty) Protection Database group entry
=head1 SYNOPSIS
B<pts creategroup> S<<< B<-name> <I<group name>>+ >>>
S<<< [B<-owner> <I<owner of the group>>] >>>
S<<< [B<-id> <I<id (negated) for the group>>+] >>> S<<< [B<-cell> <I<cell name>>] >>>
- [B<-noauth>] [B<-force>] [B<-help>]
+ [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
B<pts createg> S<<< B<-na> <I<group name>>+ >>> S<<< [B<-o> <I<owner of the group>>] >>>
S<<< [B<-i> <I<id (negated) for the group>>+] >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts cg> S<<< B<-na> <I<group name>>+ >>> S<<< [B<-o> <I<owner of the group>>] >>>
S<<< [B<-i> <I<id (negated) for the group>>+] >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts createuser - Creates a user or machine entry in the Protection Database
+pts_createuser - Creates a user or machine entry in the Protection Database
=head1 SYNOPSIS
<div class="synopsis">
B<pts createuser> S<<< B<-name> <I<user name>>+ >>> S<<< [B<-id> <I<user id>>+] >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-force>]
+ [B<-help>]
B<pts createu> S<<< B<-na> <I<user name>>+ >>> S<<< [B<-i> <I<user id>>+] >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts cu> S<<< B<-na> <I<user name>>+ >>> S<<< [B<-i> <I<user id>>+] >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts delete - Deletes a Protection Database entry
+pts_delete - Deletes a Protection Database entry
=head1 SYNOPSIS
<div class="synopsis">
B<pts delete> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>] [B<-help>]
B<pts d> S<<< B<-na> <I<user or group name or id>>+ >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-f>] [-h]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-no>] [B<-l>] [B<-f>] [-h]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts examine - Displays a Protection Database entry
+pts_examine - Displays a Protection Database entry
=head1 SYNOPSIS
<div class="synopsis">
B<pts examine> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>] [B<-help>]
B<pts e> S<<< B<-na> <I<user or group name or id>>+ >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts check> S<<< B<-na> <I<user or group name or id>>+ >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts che> S<<< B<-na> <I<user or group name or id>>+ >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts help - Displays help for pts commands
+pts_help - Displays help for pts commands
=head1 SYNOPSIS
=head1 NAME
-pts interactive - Enters interactive mode
+pts_interactive - Enters interactive mode
=head1 SYNOPSIS
<div class="synopsis">
B<pts interactive> S<<< [B<-cell>] <I<cell name>> >>> [B<-noauth>]
- [B<-force>]
+ [B<-auth>] [B<-localauth>] [B<-force>]
B<pts in> S<<< [B<-c>] <I<cell name>> >>> [B<-n>] [B<-f>]
The B<pts interactive> command allows the user to enter an interactive
mode, useful for running bulk commands like creating new users or groups.
+B<pts interactive> uses the authentication state supplied on its command
+line to run all bulk commands. However, if a bulk command is supplied
+with authentication options such as B<-cell>, B<-localauth>, B<-auth>
+or B<-noauth> then it, and all subsequent bulk commands, will be run with
+those options.
+
=head1 CAUTIONS
Prior to OpenAFS 1.4.5 and OpenAFS 1.5.23, the B<pts interactive> command
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=back
=head1 OUTPUT
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-pts listentries - Displays all users or groups in the Protection Database
+pts_listentries - Displays all users or groups in the Protection Database
=head1 SYNOPSIS
<div class="synopsis">
B<pts listentries> [B<-users>] [B<-groups>] S<<< [B<-cell> <I<cell name>>] >>>
- [B<-noauth>] [B<-force>] [B<-help>]
+ [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
-B<pts liste> [B<-u>] [B<-g>] S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-f>] [B<-h>]
+B<pts liste> [B<-u>] [B<-g>] S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>]
+ [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts listmax - Displays the max user id and max group id counters
+pts_listmax - Displays the max user id and max group id counters
=head1 SYNOPSIS
=for html
<div class="synopsis">
-B<pts listmax> S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+B<pts listmax> S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>] [B<-help>]
-B<pts listm> S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-f>] [B<-h>]
+B<pts listm> S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts listowned - Show the Protection Database groups owned by a user or group
+pts_listowned - Show the Protection Database groups owned by a user or group
=head1 SYNOPSIS
<div class="synopsis">
B<pts listowned> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
- [-cell <I<cell name>>] [B<-noauth>] [B<-force>] [B<-help>]
+ [-cell <I<cell name>>] [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
B<pts listo> S<<< B<-na> <I<user or group name or id>>+ >>>
- [-c <I<cell name>>] [B<-no>] [B<-f>] [B<-h>]
+ [-c <I<cell name>>] [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts membership - Displays the membership list for a user or group
+pts_membership - Displays the membership list for a user or group
=head1 SYNOPSIS
<div class="synopsis">
B<pts membership> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-localauth>] [B<-noauth>]
+ [B<-force>] [B<-help>]
B<pts m> S<<< B<-na> <I<user or group name or id>>+ >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts groups> S<<< B<-na> <I<user or group name or id>>+ >>> [-c <I<cell name>>]
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
B<pts g> S<<< B<-na> <I<user or group name or id>>+ >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts quit - Exit from pts interactive mode
+pts_quit - Exit from pts interactive mode
=head1 SYNOPSIS
=for html
<div class="synopsis">
-B<pts quit> S<<< [B<-cell>] <I<cell name>> >>> [B<-noauth>] [B<-force>]
+B<pts quit> S<<< [B<-cell>] <I<cell name>> >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>]
-B<pts q> S<<< [B<-c>] <I<cell name>> >>> [B<-n>] [B<-f>]
+B<pts q> S<<< [B<-c>] <I<cell name>> >>> [B<-n>] [B<-l>] [B<-f>]
=for html
</div>
Enables the command to continue executing as far as possible when errors
or other problems occur, rather than halting execution at the first error.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-noauth>
Assigns the unprivileged identity anonymous to the issuer. For more
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-pts removeuser - Removes a user from a Protection Database group
+pts_removeuser - Removes a user from a Protection Database group
=head1 SYNOPSIS
<div class="synopsis">
B<pts removeuser> S<<< B<-user> <I<user name>>+ >>> S<<< B<-group> <I<group name>>+ >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-force>]
+ [B<-help>]
B<pts rem> S<<< B<-u> <I<user name>>+ >>> S<<< B<-g> <I<group name>>+ >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts rename - Changes the name of a Protection Database entry
+pts_rename - Changes the name of a Protection Database entry
=head1 SYNOPSIS
<div class="synopsis">
B<pts rename> S<<< B<-oldname> <I<old name>> >>> S<<< B<-newname> <I<new name>> >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>] [B<-help>]
B<pts ren> S<<< B<-o> <I<old name>> >>> S<<< B<-ne> <I<new name>> >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts setfields - Sets privacy flags or quota for a Protection Database entry
+pts_setfields - Sets privacy flags or quota for a Protection Database entry
=head1 SYNOPSIS
B<pts setfields> S<<< B<-nameorid> <I<user or group name or id>>+ >>>
S<<< [B<-access> <I<set privacy flags>>] >>>
S<<< [B<-groupquota> <I<set limit on group creation>>] >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-force>] [B<-help>]
B<pts setf> S<<< B<-na> <I<user or group name or id>>+ >>>
S<<< [B<-a> <I<set privacy flags>>] >>>
S<<< [B<-g> <I<set limit on group creation>>] >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-no>] [B<-f>] [B<-h>]
+ [B<-no>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts setmax - Sets the value of the max group id or max user id counter
+pts_setmax - Sets the value of the max group id or max user id counter
=head1 SYNOPSIS
<div class="synopsis">
B<pts setmax> S<<< [B<-group> <I<group max>>] >>> S<<< [B<-user> <I<user max>>] >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-force>] [B<-help>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-force>] [B<-help>]
B<pts setm> [B<-g> I<group max>>] S<<< [B<-u> <I<user max>>] >>>
- S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-f>] [B<-h>]
+ S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-f>] [B<-h>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=item B<-force>
Enables the command to continue executing as far as possible when errors
=head1 NAME
-pts sleep - Pauses for a few seconds
+pts_sleep - Pauses for a few seconds
=head1 SYNOPSIS
<div class="synopsis">
B<pts sleep> S<<< [B<-delay>] <I<# of seconds>> >>>
- S<<< [B<-cell>] <I<cell name>> >>> [B<-noauth>] [B<-force>]
+ S<<< [B<-cell>] <I<cell name>> >>> [B<-noauth>] [B<-localauth>] [B<-force>]
B<pts sl> S<<< [B<-d>] <I<# of seconds>> >>> S<<< [B<-c>] <I<cell name>> >>>
- [B<-n>] [B<-f>]
+ [B<-n>] [B<-l>] [B<-f>]
=for html
</div>
=head1 OPTIONS
-Although they have no effect, B<pts quit> takes the following standard
+Although they have no effect, B<pts sleep> takes the following standard
B<pts> options:
=over 4
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=back
=head1 OUTPUT
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-pts source - Read pts commands from a file
+pts_source - Read pts commands from a file
=head1 SYNOPSIS
<div class="synopsis">
B<pts source> S<<< [B<-file>] <I<file name>> >>> S<<< [B<-cell>] <I<cell name>> >>>
- [B<-noauth>] [B<-force>]
+ [B<-noauth>] [B<-localauth>] [B<-force>]
B<pts so> S<<< [B<-f>] <I<file name>> >>> S<<< [B<-c>] <I<cell name>> >>>
- [B<-n>] [B<-f>]
+ [B<-n>] [B<-l>] [B<-f>]
=for html
</div>
Assigns the unprivileged identity anonymous to the issuer. For more
details, see L<pts(1)>.
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. Do not combine this flag with the
+B<-cell> or B<-noauth> options. For more details, see L<pts(1)>.
+
=back
=head1 OUTPUT
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
for debugging purposes and is meaningful to someone familiar with the
implementation of Rx.
+=head1 EXAMPLES
+
+The following command shows Rx statistics on the server 192.168.1.100:
+
+ % rxdebug 192.168.1.100
+ Trying 192.168.1.100 (port 7000):
+ Free packets: 265, packet reclaims: 0, calls: 0, used FDs: 34
+ not waiting for packets.
+ 0 calls waiting for a thread
+ 11 threads are idle
+ Done.
+
+The following command shows the OpenAFS version running on the server
+192.168.1.100:
+
+ % rxdebug 192.168.1.100 -version
+ Trying 192.168.1.100 (port 7000):
+ AFS version: OpenAFS 1.4.2fc2 built 2006-08-31
+
=head1 PRIVILEGE REQUIRED
None.
--- /dev/null
+=head1 NAME
+
+symlink - Introduction to the symlink command suite
+
+=head1 DESCRIPTION
+
+The B<symlink> command creates, lists and removes Unix-style symbolic links
+(symlinks) in OpenAFS filespace from a platform that does not support
+symlinks, like Windows. The B<symlink make> command is equivalent to
+C<ln -s> on a Unix platform. B<symlink> can manipulate symlinks created
+by C<ln -s> on Unix and vice versa.
+
+=head1 CAUTIONS
+
+The B<symlink> commands are only available on Windows platforms. On
+other platforms, use the C<ln -s> command.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 SEE ALSO
+
+L<symlink_list(1)>,
+L<symlink_make(1)>,
+L<symlink_remove(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
--- /dev/null
+=head1 NAME
+
+symlink_list - Show the file to which a symlink points
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<symlink list> S<<< [B<-name>] <I<file name>> >>> [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+The B<symlink list> command shows if a file is a symbolic link and, if so,
+shows to which file the link points.
+
+=head1 CAUTIONS
+
+The B<symlink> commands are only available on Windows platforms. On other
+platforms, use the B<readlink> command.
+
+=head1 OPTIONS
+
+=over 4
+
+=item [B<-name>] <I<file name>>
+
+Specify one or more symbolic links to list. The C<-name> is optional, but
+the file name is not.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 OUTPUT
+
+This command prints "'file' is a symlink to 'otherfile'" or "'file' is
+not a symlink."
+
+=head1 EXAMPLES
+
+Given that file C<mylink> is a link pointing to file C<myfile>, the
+following commands will list the files:
+
+ % symlink list -name mylink
+ 'mylink' is a symlink to 'myfile'
+
+ % symlink list mylink
+ 'mylink' is a symlink to 'myfile'
+
+ % symlink list -name myfile
+ 'myfile' is not a symlink.
+
+ % symlink list myfile
+ 'myfile' is not a symlink.
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must have the C<l> (look) and C<r> (read) permissions on the ACL
+of the directory that houses the symlink.
+
+=head1 SEE ALSO
+
+L<symlink(1)>,
+L<symlink_make(1)>,
+L<symlink_remove(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
--- /dev/null
+=head1 NAME
+
+symlink_make - Create a symbolic link
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<symlink make> S<<< [B<-name>] <I<file name>> >>>
+ S<<< [B<-to>] <I<file name>> >>> [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+The B<symlink make> command creates a new symbolic link to a file. The file
+to which the link points does not have to exist when the link is created.
+
+=head1 CAUTIONS
+
+The B<symlink> commands are only available on Windows platforms. On other
+platforms, use the C<ln -s> command.
+
+=head1 OPTIONS
+
+=over 4
+
+=item [B<-name>] <I<file name>>
+
+Specify the name of the new link. B<-name> is optional, but the file name
+is not.
+
+=item [B<-to>] <I<file name>>
+
+Specify the file to which the new link points. B<-to> is optional, but the
+file name is not.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 OUTPUT
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=head1 EXAMPLES
+
+In order to create a link named C<mylink> pointing to the file C<myfile>,
+use one of the following commands:
+
+ % symlink make -name mylink -to myfile
+ % symlink make mylink myfile
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must have the C<l> (look) and C<i> (insert) permissions on the
+ACL of the directory that houses the symlink.
+
+=head1 SEE ALSO
+
+L<symlink(1)>,
+L<symlink_list(1)>,
+L<symlink_remove(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
--- /dev/null
+=head1 NAME
+
+symlink_remove - Remove a symbolic link.
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<symlink remove> S<<< [B<-name>] <I<file name>> >>> [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+The B<symlink remove> command removes a symbolic link to a file.
+
+=head1 CAUTIONS
+
+The B<symlink> commands are only available on Windows platforms. On other
+platforms, use the B<rm> command.
+
+=head1 OPTIONS
+
+=over 4
+
+=item [B<-name>] <I<file name>>
+
+Specify one or more symbolic links to remove. The B<-name> is optional, but
+the file name is not.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 OUTPUT
+
+This command has no output except error and help messages. If the command
+is passed a real file instead of a symlink, it prints "symlink: 'file name'
+is not a symlink" instead of removing the file.
+
+=head1 EXAMPLES
+
+Given that file C<mylink> is a link pointing to file C<myfile>, the
+following commands will remove the link C<mylink>:
+
+ % symlink remove -name mylink
+ % symlink remove mylink
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must have the C<l> (look) and C<d> (delete) permissions on
+the ACL of the directory that houses the symlink.
+
+=head1 SEE ALSO
+
+L<symlink(1)>,
+L<symlink_list(1)>,
+L<symlink_make(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
L<fs_sysname(1)>,
L<livesys(1)>
-I<IBM AFS Quick Beginnings>
+I<OpenAFS Quick Beginnings>
-I<IBM AFS Administration Guide>
+I<OpenAFS Administration Guide>
=head1 COPYRIGHT
=back
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
The following arguments and flags are available on many commands in the
L<vos_backup(1)>,
L<vos_backupsys(1)>,
L<vos_changeaddr(1)>,
-L<vos_changeloc(1)>,
+L<vos_convertROtoRW(1)>,
+L<vos_copy(1)>,
L<vos_create(1)>,
L<vos_delentry(1)>,
L<vos_dump(1)>,
=head1 NAME
-vos addsite - Adds a read-only site definition to a volume's VLDB entry
+vos_addsite - Adds a read-only site definition to a volume's VLDB entry
=head1 SYNOPSIS
B<vos addsite> S<<< B<-server> <I<machine name for new site>> >>>
S<<< B<-partition> <I<partition name for new site>> >>>
- S<<< B<-id> <I<volume name or ID>> >>> S<<< [B<-cell> <I<cell name>>] >>>
- [B<-noauth>] [B<-localauth>] [B<-verbose>] [B<-help>]
+ S<<< B<-id> <I<volume name or ID>> >>> S<<< B<-valid> <I<old volume id>> >>>
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-verbose>] [B<-help>]
B<vos ad> S<<< B<-s> <I<machine name for new site>> >>>
S<<< B<-p> <I<partition name for new site>> >>>
- S<<< B<-i> <I<volume name or ID>> >>> S<<< [B<-c> <I<cell name>>] >>>
- [B<-n>] [B<-l>] [B<-v>] [B<-h>]
+ S<<< B<-i> <I<volume name or ID>> >>> S<<< B<-valid> <I<old volume id>> >>>
+ S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-v>] [B<-h>]
=for html
</div>
Specifies either the complete name or volume ID number of the read/write
source volume.
+=item B<-valid> <I<volume ID>>
+
+Specifies the volume ID number of the existing release-equivalent
+volume that is not already marked as a replica. This is useful when an
+existing read-only volume is dumped and restored with the B<-readonly>
+flag at the new site. This option is available in OpenAFS clients
+1.4.7 or later and 1.5.31 and later. This option can be used with
+OpenAFS server versions later than 1.4.1 or 1.5.0.
+
=item B<-cell> <I<cell name>>
Names the cell in which to run the command. Do not combine this argument
=head1 NAME
-vos apropos - Displays each help entry containing a keyword string
+vos_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-vos backup - Creates a backup volume for a single read/write volume
+vos_backup - Creates a backup volume for a single read/write volume
=head1 SYNOPSIS
=head1 NAME
-vos backupsys - Creates a backup volume for several read/write volumes
+vos_backupsys - Creates a backup volume for several read/write volumes
=head1 SYNOPSIS
=head1 NAME
-vos changeaddr - Changes or removes a file server machine's entry in the VLDB
+vos_changeaddr - Changes or removes a file server machine's entry in the VLDB
=head1 SYNOPSIS
=head1 NAME
-vos changeloc - Change a volume's entry in the VLDB
+vos_changeloc - Change a volume's entry in the VLDB
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
--- /dev/null
+=head1 NAME
+
+vos_convertROtoRW - Converts a Read-Only volume into a Read/Write volume
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<vos convertROtoRW> S<<< [B<-server>] <I<machine name>> >>>
+ S<<< [B<-partition>] <I<partition name>> >>>
+ S<<< [B<-id>] <I<volume name or ID>> >>> [B<-force>]
+ S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>]
+ [B<-verbose>] [B<-encrypt>] [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+B<vos convertROtoRW> converts a Read-Only volume into a Read/Write volume
+when the original Read/Write volume is no longer available. It's normal use
+is to recover the Read/Write volume from a replica after a failed disk,
+failed server, or accidental deletion.
+
+=head1 CAUTIONS
+
+This command can only be used with namei AFS file servers. If used on an
+inode AFS file server, it will fail with an error.
+
+The command name is case-sensitive. It must be issued with the capital "RO"
+and "RW".
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-server> <I<server name>>
+
+Identifies the file server machine that houses the Read-Only volume which
+will be converted. Provide the machine's IP address or its host name
+(either fully qualified or using an unambiguous abbreviation). For details,
+see L<vos(1)>.
+
+=item B<-partition> <I<partition name>>
+
+Identifies the partition on the file server machine that houses the
+Read-Only volume which will be converted. Provide the full partition name
+(for, example, B</vicepa>) or one of the abbreviated forms described in
+L<vos(1)>.
+
+=item B<-id> <I<volume ID>>
+
+Specifies either the complete name or volume ID number of a Read/Write
+volume.
+
+=item B<-force>
+
+Don't ask for confirmation.
+
+=item B<-cell> <I<cell name>>
+
+Names the cell in which to run the command. Do not combine this argument
+with the B<-localauth> flag. For more details, see L<vos(1)>.
+
+=item B<-noauth>
+
+Assigns the unprivileged identity C<anonymous> to the issuer. Do not
+combine this flag with the B<-localauth> flag. For more details, see
+L<vos(1)>.
+
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. The B<vos> command interpreter presents it
+to the Volume Server and Volume Location Server during mutual
+authentication. Do not combine this flag with the B<-cell> argument or
+B<-noauth> flag. For more details, see L<vos(1)>.
+
+=item B<-verbose>
+
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+
+=item B<-encrypt>
+
+Encrypts the command so that the operation's results are not transmitted
+across the network in clear text.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 EXAMPLES
+
+The following example converts the read-only volume test3.readonly in
+partition vicepb on server1 to a read-write volume:
+
+ % vos convertROtoRW server1 b test3.readonly
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must be listed in the F</usr/afs/etc/UserList> file on the
+machines specified with the B<-toserver> and B<-fromserver> arguments and
+on each database server machine. If the B<-localauth> flag is included,
+the issuer must instead be logged on to a server machine as the local
+superuser C<root>.
+
+=head1 SEE ALSO
+
+L<vos(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
--- /dev/null
+=head1 NAME
+
+vos_copy - Make a copy of a volume
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<vos copy> S<<< [B<-id>] <I<volume name or ID of source>> >>>
+ S<<< [B<-fromserver>] <I<machine name for source>> >>>
+ S<<< [B<-frompartition>] <I<partition name for source>> >>>
+ S<<< [B<-toname>] <I<volume name for new copy>> >>>
+ S<<< [B<-toserver>] <I<machine name for destination>> >>>
+ S<<< [B<-topartition>] <I<partition name for destination>> >>>
+ [B<-offline>] [B<-readonly>] [B<-live>] S<<< [B<-cell> <I<cell name>>] >>>
+ [B<-noauth>] [B<-localauth>] [B<-verbose>] [B<-encrypt>] [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+The B<vos copy> command makes a copy of a volume with a new name. It is
+equivalent to B<vos dump> followed by B<vos restore>, but doesn't require
+the volume be stored locally by the client.
+
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
+=head1 OPTIONS
+
+=over 4
+
+=item [B<-id>] <I<volume name or ID>>
+
+Specifies either the complete name or volume ID number of a read/write
+volume.
+
+=item [B<-fromserver>] <I<machine name for source>>
+
+Identifies the file server machine where the source volume resides. Provide
+the machine's IP address or its host name (either fully qualified or using
+an unambiguous abbreviation). For details, see L<vos(1)>.
+
+=item [B<-frompartition>] <I<partition name for source>>
+
+Names the partition where the source volume resides. Provide the full
+partition name (for, example, B</vicepa>) or one of the abbreviated forms
+described in L<vos(1)>.
+
+=item [B<-toname>] <I<volume name for new copy>>
+
+The complete name of the new volume to create.
+
+=item [B<-toserver>] <I<machine name for destination>>
+
+Identifies the file server machine to which to copy the volume. Provide
+the machine's IP address or its host name (either fully qualified or using
+an unambiguous abbreviation). For details, see L<vos(1)>.
+
+=item [B<-topartition>] <I<partition name for destination>>
+
+Names the partition to which to copy the volume. Provide the full partition
+name (for, example, B</vicepa>) or one of the abbreviated forms described in
+L<vos(1)>.
+
+=item B<-offline>
+
+Leaves the new volume flagged as off-line in the volume database.
+
+=item B<-readonly>
+
+Flags the new volume as read-only in the volume database.
+
+=item B<-live>
+
+Copies the live volume without cloning. This is normally not necessary and
+causes the volume to be kept locked for longer than the normal copy
+mechanism.
+
+=item B<-localauth>
+
+Constructs a server ticket using a key from the local
+F</usr/afs/etc/KeyFile> file. The B<vos> command interpreter presents it to
+the Volume Server and Volume Location Server during mutual
+authentication. Do not combine this flag with the B<-cell> argument or
+B<-noauth> flag. For more details, see L<vos(1)>.
+
+=item B<-verbose>
+
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+
+=item B<-encrypt>
+
+Encrypts the command so that the operation's results are not transmitted
+across the network in clear text.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 OUTPUT
+
+This command has no output unless C<-verbose> is specified or there is
+an error.
+
+=head1 EXAMPLES
+
+The following example makes a verbose copy of the C<test> volume named
+C<test2> in the cell C<localcell>. The volume and copy both reside on
+C</vicepa> of C<server1>.
+
+ % vos copy test server1 a test2 server1 a -cell localcell -verbose
+ Starting transaction on source volume 536870921 ... done
+ Allocating new volume id for clone of volume 536870921 ... done
+ Allocating new volume id for copy of volume 536870921 ... done
+ Cloning source volume 536870921 ... done
+ Ending the transaction on the source volume 536870921 ... done
+ Starting transaction on the cloned volume 536870926 ... done
+ Setting flags on cloned volume 536870926 ... done
+ Getting status of cloned volume 536870926 ... done
+ Creating the destination volume 536870927 ... done
+ Setting volume flags on destination volume 536870927 ... done
+ Dumping from clone 536870926 on source to volume 536870927 on destination ... done
+ Ending transaction on cloned volume 536870926 ... done
+ Starting transaction on source volume 536870921 ... done
+ Doing the incremental dump from source to destination for volume 536870921 ... done
+ Setting volume flags on destination volume 536870927 ... done
+ Ending transaction on destination volume 536870927 ... done
+ Ending transaction on source volume 536870921 ... done
+ Starting transaction on the cloned volume 536870926 ... done
+ Deleting the cloned volume 536870926 ... done
+ Ending transaction on cloned volume 536870926 ... done
+ Created the VLDB entry for the volume test2 536870927
+ Volume 536870921 copied from server1 /vicepa to test2 on server1 /vicepa
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must be listed in the F</usr/afs/etc/UserList> file on the
+machine specified with the B<-server> argument and on each database server
+machine. If the B<-localauth> flag is included, the issuer must instead be
+logged on to a server machine as the local superuser C<root>.
+
+=head1 SEE ALSO
+
+L<vos(1)>,
+L<vos_clone(1)>,
+L<vos_move(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-vos create - Creates a read/write volume and associated VLDB entry
+vos_create - Creates a read/write volume and associated VLDB entry
=head1 SYNOPSIS
The volume is empty when created. To access it via the Cache Manager,
mount it in the file space by using the B<fs mkmount> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-vos delentry - Removes a volume entry from the VLDB.
+vos_delentry - Removes a volume entry from the VLDB.
=head1 SYNOPSIS
=head1 NAME
-vos dump - Converts a volume into ASCII format and writes it to a file
+vos_dump - Converts a volume into ASCII format and writes it to a file
=head1 SYNOPSIS
=head1 NAME
-vos examine - Shows volume header and VLDB entry information for a volume
+vos_examine - Shows volume header and VLDB entry information for a volume
=head1 SYNOPSIS
To display the volume header only, use the B<vos listvol> command. To
display information from the VLDB only, use the B<vos listvldb> command.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-vos help - Displays help for vos commands
+vos_help - Displays help for vos commands
=head1 SYNOPSIS
=head1 NAME
-vos listaddrs - Displays all VLDB server entries
+vos_listaddrs - Displays all VLDB server entries
=head1 SYNOPSIS
=head1 NAME
-vos listpart - Displays all AFS partitions on a file server machine
+vos_listpart - Displays all AFS partitions on a file server machine
=head1 SYNOPSIS
=head1 NAME
-vos listvldb - Displays a volume's VLDB entry
+vos_listvldb - Displays a volume's VLDB entry
=head1 SYNOPSIS
=head1 NAME
-vos listvol - Displays information from a volume header
+vos_listvol - Displays information from a volume header
=head1 SYNOPSIS
=head1 NAME
-vos lock - Locks a VLDB volume entry
+vos_lock - Locks a VLDB volume entry
=head1 SYNOPSIS
=head1 NAME
-vos move - Moves a read/write volume to another site
+vos_move - Moves a read/write volume to another site
=head1 SYNOPSIS
S<<< B<-frompartition> <I<partition name on source>> >>>
S<<< B<-toserver> <I<machine name on destination>> >>>
S<<< B<-topartition> <I<partition name on destination>> >>>
- S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-verbose>]
- [B<-help>]
+ [B<-live>] S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>]
+ [B<-localauth>] [B<-verbose>] [B<-help>]
B<vos m> S<<< B<-i> <I<volume name or ID>> >>>
S<<< B<-froms> <I<machine name on source>> >>>
S<<< B<-fromp> <I<partition name on source>> >>>
S<<< B<-tos> <I<machine name on destination>> >>>
- S<<< B<-top> <I<partition name on destination>> >>>
+ S<<< B<-top> <I<partition name on destination>> >>> [B<-li>]
S<<< [B<-c> <I<cell name>>] >>> [B<-n>] [B<-l>] [B<-v>] [B<-h>]
=for html
To confirm termination of the operation, press Ctrl-C a second time; press
any other key to continue the operation.
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
partition name (for, example, B</vicepa>) or one of the abbreviated forms
described in L<vos(1)>.
+=item B<-live>
+
+Avoids making a temporary copy of the volume during the move. This is
+useful if the partition is full, but the administrator needs to move
+volumes to a another partition or server to free up disk space. The
+caveat is that the volume is locked during the entire operation
+instead of the short time that is needed to make the temporary clone.
+
=item B<-cell> <I<cell name>>
Names the cell in which to run the command. Do not combine this argument
L<vos(1)>,
L<vos_addsite(1)>,
L<vos_backup(1)>,
+L<vos_copy(1)>,
L<vos_release(1)>,
L<vos_listvol(1)>,
L<vos_remove(1)>
=head1 NAME
-vos offline - Takes a volume offline
+vos_offline - Takes a volume offline
=head1 SYNOPSIS
=head1 NAME
-vos online - Brings a volume online
+vos_online - Brings a volume online
=head1 SYNOPSIS
=head1 NAME
-vos partinfo - Reports the available and total space on a partition
+vos_partinfo - Reports the available and total space on a partition
=head1 SYNOPSIS
that file server machine. The Volume Location Database (VLDB) is not
consulted.
+=head1 CAUTIONS
+
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
=head1 OPTIONS
=over 4
=head1 NAME
-vos release - Updates read-only volumes to match the read/write source volume
+vos_release - Updates read-only volumes to match the read/write source volume
=head1 SYNOPSIS
=head1 NAME
-vos remove - Removes a volume from a site
+vos_remove - Removes a volume from a site
=head1 SYNOPSIS
=head1 NAME
-vos remsite - Removes a read-only site definition from a VLDB entry
+vos_remsite - Removes a read-only site definition from a VLDB entry
=head1 SYNOPSIS
=head1 NAME
-vos rename - Renames a volume
+vos_rename - Renames a volume
=head1 SYNOPSIS
=head1 NAME
-vos restore - Converts an ASCII dump file into an AFS volume
+vos_restore - Converts an ASCII dump file into an AFS volume
=head1 SYNOPSIS
=head1 NAME
-vos size - Computes the size of a volume dump
+vos_size - Computes the size of a volume dump
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version
-1.0. This man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-vos status - Reports a Volume Server's status
+vos_status - Reports a Volume Server's status
=head1 SYNOPSIS
=head1 NAME
-vos syncserv - Verifies VLDB entries that mention a specified site
+vos_syncserv - Verifies VLDB entries that mention a specified site
=head1 SYNOPSIS
=head1 NAME
-vos syncvldb - Verifies VLDB entries for volumes residing at specified site
+vos_syncvldb - Verifies VLDB entries for volumes residing at specified site
=head1 SYNOPSIS
=head1 NAME
-vos unlock - Unlocks a single VLDB entry
+vos_unlock - Unlocks a single VLDB entry
=head1 SYNOPSIS
=head1 NAME
-vos unlockvldb - Unlocks several locked VLDB entries
+vos_unlockvldb - Unlocks several locked VLDB entries
=head1 SYNOPSIS
=head1 NAME
-vos zap - Removes a volume from its site without writing to the VLDB
+vos_zap - Removes a volume from its site without writing to the VLDB
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0. This
-man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=item B<-afsdb>
-Enable afsdb support. This will use DNS to lookup the AFSDB record and use
-that for the database servers for each cell instead of the values in the
-F<CellServDB> file. This has the advantage of only needing to update one
-DNS record to reconfigure the AFS clients for a new database server as
-opposed to touching all of the clients, and also allows one to access a
-cell without preconfiguring its database servers in F<CellServDB>.
+Enable afsdb support. This will use DNS to lookup the AFSDB record and
+use that for the database servers for each cell instead of the values
+in the F<CellServDB> file. This has the advantage of only needing to
+update one DNS record to reconfigure the AFS clients for a new
+database server as opposed to touching all of the clients, and also
+allows one to access a cell without preconfiguring its database
+servers in F<CellServDB>. The format of AFSDB records is defined in
+RFC 1183.
=item B<-backuptree>
=item B<-rxpck> <I<value for rx_extraPackets>>
-Set rx_extraPackets to this value.
+Set rx_extraPackets to this value. This sets the number of extra Rx
+packet structures that are available to handle Rx connections. This
+value should be increased if the "rxdebug 127.0.0.1 -port 7001
+-rxstats" command shows no free Rx packets. Increasing this value may
+improve OpenAFS client performance in some circumstances.
=item B<-settime>
L<CellServDB(5)>,
L<cacheinfo(5)>
+RFC 1183 L<http://www.faqs.org/rfcs/rfc1183.html>
+
=head1 COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
=head1 NAME
-backup adddump - Defines a dump level in the dump hierarchy
+backup_adddump - Defines a dump level in the dump hierarchy
=head1 SYNOPSIS
=head1 NAME
-backup addhost - Adds a Tape Coordinator entry to the Backup Database
+backup_addhost - Adds a Tape Coordinator entry to the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup addvolentry - Defines a volume entry in a volume set
+backup_addvolentry - Defines a volume entry in a volume set
=head1 SYNOPSIS
=head1 NAME
-backup addvolset - Creates a new (empty) volume set
+backup_addvolset - Creates a new (empty) volume set
=head1 SYNOPSIS
=head1 NAME
-backup apropos - Displays each help entry containing a keyword string
+backup_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-backup dbverify - Checks the integrity of the Backup Database
+backup_dbverify - Checks the integrity of the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup deldump - Deletes a dump level from the Backup Database
+backup_deldump - Deletes a dump level from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup deletedump - Deletes one or more dump records from the Backup Database
+backup_deletedump - Deletes one or more dump records from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup delhost - Deletes a Tape Coordinator entry from the Backup Database
+backup_delhost - Deletes a Tape Coordinator entry from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup delvolentry - Deletes a volume entry from a volume set
+backup_delvolentry - Deletes a volume entry from a volume set
=head1 SYNOPSIS
=head1 NAME
-backup delvolset - Deletes one or more volume sets from the Backup Database
+backup_delvolset - Deletes one or more volume sets from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup diskrestore - Restores the entire contents of a partition
+backup_diskrestore - Restores the entire contents of a partition
=head1 SYNOPSIS
=head1 NAME
-backup dump - Creates a dump (dumps a volume set at a particular dump level)
+backup_dump - Creates a dump (dumps a volume set at a particular dump level)
=head1 SYNOPSIS
=head1 NAME
-backup dumpinfo - Displays a dump record from the Backup Database
+backup_dumpinfo - Displays a dump record from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup help - Displays help for backup commands
+backup_help - Displays help for backup commands
=head1 SYNOPSIS
=head1 NAME
-backup interactive - Enters interactive mode
+backup_interactive - Enters interactive mode
=head1 SYNOPSIS
=head1 NAME
-backup jobs - Lists pending and running operations in interactive mode
+backup_jobs - Lists pending and running operations in interactive mode
=head1 SYNOPSIS
=head1 NAME
-backup kill - Terminates a pending or running operation
+backup_kill - Terminates a pending or running operation
=head1 SYNOPSIS
=head1 NAME
-backup labeltape - Creates the magnetic label on a tape
+backup_labeltape - Creates the magnetic label on a tape
=head1 SYNOPSIS
=head1 NAME
-backup listdumps - Displays the dump hierarchy from the Backup Database
+backup_listdumps - Displays the dump hierarchy from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup listhosts - Lists Tape Coordinators registered in the Backup Database
+backup_listhosts - Lists Tape Coordinators registered in the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup listvolsets - Lists volume set entries from the Backup Database
+backup_listvolsets - Lists volume set entries from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup quit - Leaves interactive mode
+backup_quit - Leaves interactive mode
=head1 SYNOPSIS
=head1 NAME
-backup readlabel - Reads and displays a tape's label
+backup_readlabel - Reads and displays a tape's label
=head1 SYNOPSIS
=head1 NAME
-backup restoredb - Restores a saved copy of the Backup Database
+backup_restoredb - Restores a saved copy of the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup savedb - Creates a saved copy of the Backup Database
+backup_savedb - Creates a saved copy of the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup scantape - Extracts dump information from a tape
+backup_scantape - Extracts dump information from a tape
=head1 SYNOPSIS
=head1 NAME
-backup setexp - Sets the expiration date for existing dump levels.
+backup_setexp - Sets the expiration date for existing dump levels.
=head1 SYNOPSIS
=head1 NAME
-backup status - Reports a Tape Coordinator's status
+backup_status - Reports a Tape Coordinator's status
=head1 SYNOPSIS
=head1 NAME
-backup volinfo - Displays a volume's dump history from the Backup Database
+backup_volinfo - Displays a volume's dump history from the Backup Database
=head1 SYNOPSIS
=head1 NAME
-backup volrestore - Restores one or more volumes
+backup_volrestore - Restores one or more volumes
=head1 SYNOPSIS
=head1 NAME
-backup volsetrestore - Restores all volumes in a volume set
+backup_volsetrestore - Restores all volumes in a volume set
=head1 SYNOPSIS
=head1 NAME
-bos addhost - Adds a database server machine to the CellServDB file
+bos_addhost - Adds a database server machine to the CellServDB file
=head1 SYNOPSIS
=head1 NAME
-bos addkey - Adds a new server encryption key to the KeyFile file
+bos_addkey - Adds a new server encryption key to the KeyFile file
=head1 SYNOPSIS
=head1 NAME
-bos adduser - Adds a privileged user to the UserList file
+bos_adduser - Adds a privileged user to the UserList file
=head1 SYNOPSIS
=head1 NAME
-bos apropos - Displays each help entry containing a keyword string
+bos_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-bos create - Defines a new process in the BosConfig file and starts it
+bos_create - Defines a new process in the BosConfig file and starts it
=head1 SYNOPSIS
=head1 NAME
-bos delete - Deletes a server process from the BosConfig file
+bos_delete - Deletes a server process from the BosConfig file
=head1 SYNOPSIS
=head1 NAME
-bos exec - Executes a command on a remote server machine
+bos_exec - Executes a command on a remote server machine
=head1 SYNOPSIS
=head1 NAME
-bos getdate - Displays the time stamps on an AFS binary file
+bos_getdate - Displays the time stamps on an AFS binary file
=head1 SYNOPSIS
=head1 NAME
-bos getlog - Prints a server process's log file
+bos_getlog - Prints a server process's log file
=head1 SYNOPSIS
=head1 NAME
-bos getrestart - Displays the automatic restart times for server processes
+bos_getrestart - Displays the automatic restart times for server processes
=head1 SYNOPSIS
=head1 NAME
-bos help - Displays help for bos commands
+bos_help - Displays help for bos commands
=head1 SYNOPSIS
=head1 NAME
-bos install - Installs a new version of a binary file
+bos_install - Installs a new version of a binary file
=head1 SYNOPSIS
=head1 NAME
-bos listhosts - Displays the contents of the CellServDB file
+bos_listhosts - Displays the contents of the CellServDB file
=head1 SYNOPSIS
=head1 NAME
-bos listkeys - Displays the server encryption keys from the KeyFile file
+bos_listkeys - Displays the server encryption keys from the KeyFile file
=head1 SYNOPSIS
=head1 NAME
-bos listusers - Lists the privileged users from the UserList file
+bos_listusers - Lists the privileged users from the UserList file
=head1 SYNOPSIS
=head1 NAME
-bos prune - Removes obsolete files from /usr/afs/bin and /usr/afs/logs
+bos_prune - Removes obsolete files from /usr/afs/bin and /usr/afs/logs
=head1 SYNOPSIS
=head1 NAME
-bos removehost - Removes a database server machine from the CellServDB file
+bos_removehost - Removes a database server machine from the CellServDB file
=head1 SYNOPSIS
=head1 NAME
-bos removekey - Removes a server encryption key from the KeyFile file
+bos_removekey - Removes a server encryption key from the KeyFile file
=head1 SYNOPSIS
=head1 NAME
-bos removeuser - Removes a privileged user from the UserList file
+bos_removeuser - Removes a privileged user from the UserList file
=head1 SYNOPSIS
=head1 NAME
-bos restart - Restarts a server process
+bos_restart - Restarts a server process
=head1 SYNOPSIS
=head1 NAME
-bos salvage - Restores internal consistency to a file system or volume
+bos_salvage - Restores internal consistency to a file system or volume
=head1 SYNOPSIS
=head1 NAME
-bos setauth - Sets authorization checking requirements for all server processes
+bos_setauth - Sets authorization checking requirements for all server processes
=head1 SYNOPSIS
=head1 NAME
-bos setcellname - Sets the cell's name in ThisCell and CellServDB
+bos_setcellname - Sets the cell's name in ThisCell and CellServDB
=head1 SYNOPSIS
=head1 NAME
-bos setrestart - Sets when the BOS Server restarts processes
+bos_setrestart - Sets when the BOS Server restarts processes
=head1 SYNOPSIS
=head1 NAME
-bos shutdown - Stops a process without changing its status flag
+bos_shutdown - Stops a process without changing its status flag
=head1 SYNOPSIS
=head1 NAME
-bos start - Starts a process after setting its status flag
+bos_start - Starts a process after setting its status flag
=head1 SYNOPSIS
=head1 NAME
-bos startup - Starts a process without changing its status flag
+bos_startup - Starts a process without changing its status flag
=head1 SYNOPSIS
=head1 NAME
-bos status - Displays the status of server processes
+bos_status - Displays the status of server processes
=head1 SYNOPSIS
=head1 NAME
-bos stop - Stops a process after changing its status flag
+bos_stop - Stops a process after changing its status flag
=head1 SYNOPSIS
=head1 NAME
-bos uninstall - Reverts to the former version of a process's binary file
+bos_uninstall - Reverts to the former version of a process's binary file
=head1 SYNOPSIS
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
-This documentation is covered by the IBM Public License Version 1.0.
-This man page was written by Jason Edgecombe for OpenAFS.
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
<div class="synopsis">
B<bosserver> [B<-noauth>] [B<-log>] [B<-enable_peer_stats>]
- [B<-enable_process_stats>] [B<-help>]
+ [B<-enable_process_stats>] [B<-allow-dotted-principal>] [B<-help>]
=for html
</div>
other machines. To display or otherwise access the records, use the Rx
Monitoring API.
+=item B<-allow-dotted-principal>
+
+By default, the RXKAD security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin PTS entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disable this check by starting the server
+with this option.
+
=item B<-help>
Prints the online help for this command. All other valid options are
=for html
<div class="synopsis">
-B<fileserver> S<<< [B<-auditlog> <I<log path>>] >>>
+B<fileserver> S<<< [B<-auditlog> <I<path to log file>>] >>>
S<<< [B<-d> <I<debug level>>] >>>
S<<< [B<-p> <I<number of processes>>] >>>
S<<< [B<-spare> <I<number of spare blocks>>] >>>
S<<< [B<-pctspare> <I<percentage spare>>] >>> S<<< [B<-b> <I<buffers>>] >>>
- S<<< [B<-l> <I<large vnodes>>] >>> S<<< [B<-s> <I<small nodes>>] >>>
+ S<<< [B<-l> <I<large vnodes>>] >>> S<<< [B<-s> <I<small vnodes>>] >>>
S<<< [B<-vc> <I<volume cachesize>>] >>> S<<< [B<-w> <I<call back wait interval>>] >>>
S<<< [B<-cb> <I<number of call backs>>] >>> [B<-banner>] [B<-novbc>]
S<<< [B<-implicit> <I<admin mode bits: rlidwka>>] >>> [B<-readonly>]
S<<< [B<-hr> <I<number of hours between refreshing the host cps>>] >>>
- [B<-busyat> <I<< redirect clients when queue > n >>>]
+ S<<< [B<-busyat> <I<< redirect clients when queue > n >>>] >>>
[B<-nobusy>] S<<< [B<-rxpck> <I<number of rx extra packets>>] >>>
[B<-rxdbg>] [B<-rxdbge>] S<<< [B<-rxmaxmtu> <I<bytes>>] >>>
+ [B<-allow-dotted-principal>]
S<<< [B<-rxbind> <I<address to bind the Rx socket to>>] >>>
S<<< [B<-vattachpar> <I<number of volume attach threads>>] >>>
S<<< [B<-m> <I<min percentage spare in partition>>] >>>
S<<< [B<-udpsize> <I<size of socket buffer in bytes>>] >>>
S<<< [B<-sendsize> <I<size of send buffer in bytes>>] >>>
S<<< [B<-abortthreshold> <I<abort threshold>>] >>>
- S<<< [B<-auditlog> <I<path to log file>>] >>>
[B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>]
=for html
The File Server creates the F</usr/afs/logs/FileLog> log file as it
initializes, if the file does not already exist. It does not write a
-detailed trace by default, but use the B<-d> option to increase the amount
-of detail. Use the B<bos getlog> command to display the contents of the
-log file.
+detailed trace by default, but the B<-d> option may be used to
+increase the amount of detail. Use the B<bos getlog> command to
+display the contents of the log file.
The command's arguments enable the administrator to control many aspects
of the File Server's performance, as detailed in L<OPTIONS>. By default
The maximum number of lightweight processes (LWPs) the File Server uses to
handle requests for data; corresponds to the B<-p> argument. The File
-Server always uses a minimum of 32 KB for these processes.
+Server always uses a minimum of 32 KB of memory for these processes.
=item *
that it can take that long for changed group memberships to become
effective. To change this frequency, use the B<-hr> argument.
+The File Server stores volumes in partitions. A partition is a
+filesystem or directory on the server machine that is named C</vicepX>
+or C</vicepXX> where XX is "a" through "z" or "aa" though "zz". The
+File Server expects that the /vicepXX directories are each on a
+dedicated filesystem. The File Server will only use a /vicepXX if it's
+a mountpoint for another filesystem, unless the file
+C</vicepXX/AlwaysAttach> exists. The data in the partition is a
+special format that can only be access using OpenAFS commands or an
+OpenAFS client.
+
The File Server generates the following message when a partition is nearly
full:
=head1 CAUTIONS
-Do not use the B<-k> and -w arguments, which are intended for use by the
-AFS Development group only. Changing them from their default values can
-result in unpredictable File Server behavior. In any case, on many
-operating systems the File Server uses native threads rather than the LWP
-threads, so using the B<-k> argument to set the number of LWP threads has
-no effect.
+Do not use the B<-k> and B<-w> arguments, which are intended for use
+by the OpenAFS developers only. Changing them from their default
+values can result in unpredictable File Server behavior. In any case,
+on many operating systems the File Server uses native threads rather
+than the LWP threads, so using the B<-k> argument to set the number of
+LWP threads has no effect.
Do not specify both the B<-spare> and B<-pctspare> arguments. Doing so
causes the File Server to exit, leaving an error message in the
and B<-lock> options, appear in the output generated by the B<-help>
option only on the relevant system type.
+Currently, the maximum size of a volume is 2 terabytes (2^31 bytes)
+and the maximum size of a /vicepX partition on a fileserver is also 2
+terabytes. The fileserver will not report an error when it has access
+to a partition larger than 2 terabytes, but it will probably fail if
+the administrator attempts to use more than 2 terabytes of space. In
+addition, there are reports of erroneous disk usage numbers when
+B<vos partinfo> or other OpenAFS disk reporting tools are used with
+partitions larger than 2 terabytes.
+
+The maximum number of directory entries is 64,000 if all of the
+entries have names that are 15 characters or less in length. A name
+that is 15 characters long requires the use of only one block in the
+directory. Additional sequential blocks are required to store entries
+with names that are longer than 15 characters. Each additional block
+provides an additional length of 32 characters for the name of the
+entry.
+
+In real world use, the maximum number of objects in an AFS directory
+is usually between 16,000 and 25,000, depending on the average name
+length.
+
=head1 OPTIONS
=over 4
Writes a trace of the File Server's operations on Rx events (such as
retransmissions) to the file F</usr/afs/logs/rx_dbg>.
+=item B<-allow-dotted-principal>
+
+By default, the RXKAD security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin PTS entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
+
=item F<-m> <I<min percentage spare in partition>>
Specifies the percentage of each AFS server partition that the AIX version
other machines. To display or otherwise access the records, use the Rx
Monitoring API.
+=item B<-abortthreshold> <I<abort threshold>>
+
+Sets the abort threshold, which is triggered when an AFS client sends
+a number of FetchStatus requests in a row and all of them fail due to
+access control or some other error. When the abort threshold is
+reached, the file server starts to slow down the responses to the
+problem client in order to reduce the load on the file server.
+
+The throttling behaviour can cause issues especially for some versions
+of the Windows OpenAFS client. When using Windows Explorer to navigate
+the AFS directory tree, directories with only "look" access for the
+current user may load more slowly because of the throttling. This is
+because the Windows OpenAFS client sends FetchStatus calls one at a
+time instead of in bulk like the Unix Open AFS client.
+
+Setting the threshold to 0 disables the throttling behavior. This
+option is available in OpenAFS versions 1.4.1 and later.
+
=item B<-help>
Prints the online help for this command. All other valid options are
-cmd "/usr/afs/bin/fileserver -pctspare 10 \
-L" /usr/afs/bin/volserver /usr/afs/bin/salvager
+
+=head1 TROUBLESHOOTING
+
+Sending process signals to the File Server Process can change its
+behavior in the following ways:
+
+ Process Signal OS Result
+ ---------------------------------------------------------------------
+
+ File Server XCPU Unix Prints a list of client IP
+ Addresses.
+
+ File Server USR2 Windows Prints a list of client IP
+ Addresses.
+
+ File Server POLL HPUX Prints a list of client IP
+ Addresses.
+
+ Any server TSTP Any Increases Debug level by a power
+ of 5 -- 1,5,25,125, etc.
+ This has the same effect as the
+ -d XXX command-line option.
+
+ Any Server HUP Any Resets Debug level to 0
+
+ File Server TERM Any Run minor instrumentation over
+ the list of descriptors.
+
+ Other Servers TERM Any Causes the process to quit.
+
+ File Server QUIT Any Causes the File Server to Quit.
+ Bos Server knows this.
+
+The basic metric of whether an AFS file server is doing well is the number
+of connections waiting for a thread,
+which can be found by running the following command:
+
+ % rxdebug <server> | grep waiting_for | wc -l
+
+Each line returned by C<rxdebug> that contains the text "waiting_for"
+represents a connection that's waiting for a file server thread.
+
+If the blocked connection count is ever above 0, the server is having
+problems replying to clients in a timely fashion. If it gets above 10,
+roughly, there will be noticable slowness by the user. The total number of
+connections is a mostly irrelevant number that goes essentially
+monotonically for as long as the server has been running and then goes back
+down to zero when it's restarted.
+
+The most common cause of blocked connections rising on a server is some
+process somewhere performing an abnormal number of accesses to that server
+and its volumes. If multiple servers have a blocked connection count, the
+most likely explanation is that there is a volume replicated between those
+servers that is absorbing an abnormally high access rate.
+
+To get an access count on all the volumes on a server, run:
+
+ % vos listvol <server> -long
+
+and save the output in a file. The results will look like a bunch of B<vos
+examine> output for each volume on the server. Look for lines like:
+
+ 40065 accesses in the past day (i.e., vnode references)
+
+and look for volumes with an abnormally high number of accesses. Anything
+over 10,000 is fairly high, but some volumes like root.cell and other
+volumes close to the root of the cell will have that many hits routinely.
+Anything over 100,000 is generally abnormally high. The count resets about
+once a day.
+
+Another approach that can be used to narrow the possibilities for a
+replicated volume, when multiple servers are having trouble, is to find all
+replicated volumes for that server. Run:
+
+ % vos listvldb -server <server>
+
+where <server> is one of the servers having problems to refresh the VLDB
+cache, and then run:
+
+ % vos listvldb -server <server> -part <partition>
+
+to get a list of all volumes on that server and partition, including every
+other server with replicas.
+
+Once the volume causing the problem has been identified, the best way to
+deal with the problem is to move that volume to another server with a low
+load or to stop any runaway programs that are accessing that volume
+unnecessarily. Often the volume will be enough information to tell what's
+going on.
+
+If you still need additional information about who's hitting that server,
+sometimes you can guess at that information from the failed callbacks in the
+F<FileLog> log in F</var/log/afs> on the server, or from the output of:
+
+ % /usr/afsws/etc/rxdebug <server> -rxstats
+
+but the best way is to turn on debugging output from the file server.
+(Warning: This generates a lot of output into FileLog on the AFS server.)
+To do this, log on to the AFS server, find the PID of the fileserver
+process, and do:
+
+ kill -TSTP <pid>
+
+where <pid> is the PID of the file server process. This will raise the
+debugging level so that you'll start seeing what people are actually doing
+on the server. You can do this up to three more times to get even more
+output if needed. To reset the debugging level back to normal, use (The
+following command will NOT terminate the file server):
+
+ kill -HUP <pid>
+
+The debugging setting on the File Server should be reset back to normal when
+debugging is no longer needed. Otherwise, the AFS server may well fill its
+disks with debugging output.
+
+The lines of the debugging output that are most useful for debugging load
+problems are:
+
+ SAFS_FetchStatus, Fid = 2003828163.77154.82248, Host 171.64.15.76
+ SRXAFS_FetchData, Fid = 2003828163.77154.82248
+
+(The example above is partly truncated to highlight the interesting
+information). The Fid identifies the volume and inode within the volume;
+the volume is the first long number. So, for example, this was:
+
+ % vos examine 2003828163
+ pubsw.matlab61 2003828163 RW 1040060 K On-line
+ afssvr5.Stanford.EDU /vicepa
+ RWrite 2003828163 ROnly 2003828164 Backup 2003828165
+ MaxQuota 3000000 K
+ Creation Mon Aug 6 16:40:55 2001
+ Last Update Tue Jul 30 19:00:25 2002
+ 86181 accesses in the past day (i.e., vnode references)
+
+ RWrite: 2003828163 ROnly: 2003828164 Backup: 2003828165
+ number of sites -> 3
+ server afssvr5.Stanford.EDU partition /vicepa RW Site
+ server afssvr11.Stanford.EDU partition /vicepd RO Site
+ server afssvr5.Stanford.EDU partition /vicepa RO Site
+
+and from the Host information one can tell what system is accessing that
+volume.
+
+Note that the output of L<vos_examine(1)> also includes the access count, so
+once the problem has been identified, vos examine can be used to see if the
+access count is still increasing. Also remember that you can run vos
+examine on the read-only replica (e.g., pubsw.matlab61.readonly) to see the
+access counts on the read-only replica on all of the servers that it's
+located on.
+
=head1 PRIVILEGE REQUIRED
The issuer must be logged in as the superuser C<root> on a file server
-machine to issue the command at a command shell prompt. It is conventional
+machine to issue the command at a command shell prompt. It is conventional
instead to create and start the process by issuing the B<bos create>
command.
L<bos_getlog(8)>,
L<fs_setacl(1)>,
L<salvager(8)>,
-L<volserver(8)>
+L<volserver(8)>,
+L<vos_examine(1)>
=head1 COPYRIGHT
=head1 NAME
-fstrace apropos - Displays each help entry containing a keyword string
+fstrace_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-fstrace clear - Clears the trace log
+fstrace_clear - Clears the trace log
=head1 SYNOPSIS
=head1 NAME
-fstrace dump - Dumps a trace log
+fstrace_dump - Dumps a trace log
=head1 SYNOPSIS
=head1 NAME
-fstrace help - Displays help for fstrace commands
+fstrace_help - Displays help for fstrace commands
=head1 SYNOPSIS
=head1 NAME
-fstrace lslog - Displays information about a log
+fstrace_lslog - Displays information about a log
=head1 SYNOPSIS
=head1 NAME
-fstrace lsset - Reports the status of an event set
+fstrace_lsset - Reports the status of an event set
=head1 SYNOPSIS
=head1 NAME
-fstrace setlog - Sets the size of a trace log
+fstrace_setlog - Sets the size of a trace log
=head1 SYNOPSIS
=head1 NAME
-fstrace setset - Sets the status of an event set
+fstrace_setset - Sets the status of an event set
=head1 SYNOPSIS
=head1 NAME
-kas apropos - Displays each help entry containing a keyword string
+kas_apropos - Displays each help entry containing a keyword string
=head1 SYNOPSIS
=head1 NAME
-kas create - Creates an entry in the Authentication Database
+kas_create - Creates an entry in the Authentication Database
=head1 SYNOPSIS
=head1 NAME
-kas delete - Deletes an entry from the Authentication Database
+kas_delete - Deletes an entry from the Authentication Database
=head1 SYNOPSIS
=head1 NAME
-kas examine - Displays information from an Authentication Database entry
+kas_examine - Displays information from an Authentication Database entry
=head1 SYNOPSIS
=head1 NAME
-kas forgetticket - Discards all tickets for the issuer
+kas_forgetticket - Discards all tickets for the issuer
=head1 SYNOPSIS
=head1 NAME
-kas help - Displays help for kas commands
+kas_help - Displays help for kas commands
=head1 SYNOPSIS
=head1 NAME
-kas interactive - Enters interactive mode
+kas_interactive - Enters interactive mode
=head1 SYNOPSIS
=head1 NAME
-kas list - Displays all entries in the Authentication Database
+kas_list - Displays all entries in the Authentication Database
=head1 SYNOPSIS
=head1 NAME
-kas listtickets - Displays all of the issuer's tickets (tokens)
+kas_listtickets - Displays all of the issuer's tickets (tokens)
=head1 SYNOPSIS
=head1 NAME
-kas noauthentication - Discards an authenticated identity in interactive mode
+kas_noauthentication - Discards an authenticated identity in interactive mode
=head1 SYNOPSIS
=head1 NAME
-kas quit - Leaves interactive mode
+kas_quit - Leaves interactive mode
=head1 SYNOPSIS
=head1 NAME
-kas setfields - Sets fields in an Authentication Database entry
+kas_setfields - Sets fields in an Authentication Database entry
=head1 SYNOPSIS
=head1 NAME
-kas setpassword - Changes the key field in an Authentication Database entry
+kas_setpassword - Changes the key field in an Authentication Database entry
=head1 SYNOPSIS
=head1 NAME
-kas statistics - Displays statistics from an Authentication Server process
+kas_statistics - Displays statistics from an Authentication Server process
=head1 SYNOPSIS
=head1 NAME
-kas stringtokey - Converts a character string into an octal key
+kas_stringtokey - Converts a character string into an octal key
=head1 SYNOPSIS
=head1 NAME
-kas unlock - Unlocks a locked user account
+kas_unlock - Unlocks a locked user account
=head1 SYNOPSIS
B<ptserver> S<<< [B<-database> <I<db path>>] >>> S<<< [B<-p> <I<number of processes>>] >>>
[B<-rebuildDB>] [B<-enable_peer_stats>] [B<-enable_process_stats>]
- [B<-help>]
+ [B<-allow-dotted-principal>] [B<-help>]
=for html
</div>
other machines. To display or otherwise access the records, use the Rx
Monitoring API.
+=item B<-allow-dotted-principal>
+
+By default, the RXKAD security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin PTS entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
+
=item B<-help>
Prints the online help for this command. All other valid options are
--- /dev/null
+
+=head1 NAME
+
+read_tape - Reads volume dumps from a backup tape to a file
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<read_tape> S<<< B<-tape> <I<tape device>> >>>
+ S<<< B<-restore> <I<# of volumes to restore>> >>>
+ S<<< B<-skip> <I<# of volumes to skip>> >>>
+ S<<< B<-file> <I<filename>> >>> [B<-scan>] [B<-noask>] [B<-label>]
+ [B<-vheaders>] [B<-verbose>] [B<-help>]
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+B<read_tape> reads an OpenAFS backup tape and prompts for each dump file to
+save. This command does not require any OpenAFS infrastructure. This
+command does not need an OpenAFS client or server to be available, which is
+not the case with the L<backup(8)> command.
+
+The dump files will be named for the Read/Write name of the volume restored.
+After saving each dump file, B<vos restore> or B<restorevol> can be used to
+restore the volume into AFS and non-AFS space respectively.
+
+B<read_tape> reads the tape while skipping the specified number of volumes.
+After that, it restores the specified number of volumes. B<read_tape>
+doesn't rewind the tape so that it may be used multiple times in succession.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-tape> <I<tape device>>
+
+Specifies the tape device from which to restore.
+
+=item B<-restore> <I<# of volumes to restore>>
+
+Specifies the number of volumes to restore from tape.
+
+=item B<-skip> <I<# of volumes to skip>>
+
+Specifies the number of volumes to skip before starting the restore.
+
+=item B<-file> <I<filename>>
+
+Specifies an alternate name for the restored volume dump file rather than
+the default of the volume name.
+
+=item B<-scan>
+
+Scans the tape.
+
+=item B<-noask>
+
+Doesn't prompt for each volume.
+
+=item B<-label>
+
+Displays the full dump label.
+
+=item B<-vheaders>
+
+Displays the full volume headers.
+
+=item B<-verbose>
+
+Produces on the standard output stream a detailed trace of the command's
+execution. If this argument is omitted, only warnings and error messages
+appear.
+
+=item B<-help>
+
+Prints the online help for this command. All other valid options are
+ignored.
+
+=back
+
+=head1 EXAMPLES
+
+The following command will read the third through fifth volumes from
+the tape device /dev/tape without prompting:
+
+ % read_tape -tape /dev/tape -skip 2 -restore 3 -noask
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must have access to read and write to the specified tape device.
+
+=head1 SEE ALSO
+
+L<backup(8)>,
+L<restorevol(8)>,
+L<vos_restore(1)>
+
+=head1 COPYRIGHT
+
+Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com>
+
+This documentation is covered by the BSD License as written in the
+doc/LICENSE file. This man page was written by Jason Edgecombe for
+OpenAFS.
=head1 NAME
-uss add - Creates a user account
+uss_add - Creates a user account
=head1 SYNOPSIS
=head1 NAME
-uss apropos - Displays each help entry containing a keyword string.
+uss_apropos - Displays each help entry containing a keyword string.
=head1 SYNOPSIS
=head1 NAME
-uss bulk - Executes multiple uss commands listed in a file
+uss_bulk - Executes multiple uss commands listed in a file
=head1 SYNOPSIS
=head1 NAME
-uss delete - Deletes a user account
+uss_delete - Deletes a user account
=head1 SYNOPSIS
=head1 NAME
-uss help - Displays help for uss commands
+uss_help - Displays help for uss commands
=head1 SYNOPSIS
<div class="synopsis">
B<vlserver> S<<< [B<-p> <I<lwp processes>>] >>> [B<-nojumbo>]
- [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>]
+ [B<-allow-dotted-principal>] [B<-enable_peer_stats>] [B<-enable_process_stats>]
+ [B<-help>]
=for html
</div>
other machines. To display or otherwise access the records, use the Rx
Monitoring API.
+=item B<-allow-dotted-principal>
+
+By default, the RXKAD security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin PTS entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
+
=item B<-help>
Prints the online help for this command. All other valid options are
B<volserver> [B<-log>] S<<< [B<-p> <I<number of processes>>] >>>
S<<< [B<-udpsize> <I<size of socket buffer in bytes>>] >>>
- [B<-enable_peer_stats>] [B<-enable_process_stats>] [B<-help>]
+ [B<-enable_peer_stats>] [B<-enable_process_stats>]
+ [B<-allow-dotted-principal>] [B<-help>]
=for html
</div>
other machines. To display or otherwise access the records, use the Rx
Monitoring API.
+=item B<-allow-dotted-principal>
+
+By default, the RXKAD security layer will disallow access by Kerberos
+principals with a dot in the first component of their name. This is to avoid
+the confusion where principals user/admin and user.admin are both mapped to the
+user.admin PTS entry. Sites whose Kerberos realms don't have these collisions
+between principal names may disabled this check by starting the server
+with this option.
+
=item B<-help>
Prints the online help for this command. All other valid options are
if (automaticallyLogin) login();
}
+ /**
+ * Constructs a new <CODE>Token</CODE> object instance given the
+ * name of the AFS cell it represents; the token for administrative
+ * access will be extracted from the kernel cache manager if possible.
+ *
+ * @param cellName the name of the cell to Token into
+ * @exception AFSException If an error occurs in the native code
+ */
+ public Token(String cellName)
+ throws AFSException
+ {
+ this(null, null, cellName);
+ }
+
/**
* Constructs a new <CODE>Token</CODE> object instance given
* the name of the AFS cell it represents and the username and password
#include <kautils.h>
#include <cellconfig.h>
#include <afs_AdminClientErrors.h>
+#include <rx/rxkad.h>
/**
* Static function used to initialize the client library and the
const char *password;
void *tokenHandle;
int rc;
+ int err;
// convert java strings
if( jcellName != NULL ) {
password = NULL;
}
- if ( !(afsclient_TokenGetNew( cellName, userName, password, &tokenHandle,
- &ast) ) ) {
+ err = (password==NULL || userName==NULL)
+ ? afsclient_TokenGetExisting( cellName, &tokenHandle, &ast)
+ : afsclient_TokenGetNew( cellName, userName, password, &tokenHandle, &ast);
+
+ if ( !err ) {
// release converted strings
if( cellName != NULL ) {
(*env)->ReleaseStringUTFChars(env, jcellName, cellName);
TOP_INCDIR=@TOP_INCDIR@
TOP_LIBDIR=@TOP_LIBDIR@
TOP_JLIBDIR=@TOP_SRCDIR@/JAVA/libjafs
-JNI_INC=${JAVA_HOME}/include
+JNI_INC=-I ${JAVA_HOME}/include -I `dirname ${JAVA_HOME}/include/*/jni_md.h`
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
OBJECT_FLAGS = -fPIC -c
ifeq "$(BUILD_TYPE)" "admin"
- INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ -I${JAVA_HOME}/include -I ${JNI_INC}
+ INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ ${JNI_INC}
CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
else
- INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} -I${JAVA_HOME}/include -I ${JNI_INC}
+ INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} ${JNI_INC}
CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS}
endif
JAVADOCSDIR = javadocs/
JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR}
-JAVAC = ${JAVA_HOME}/bin/javac -classpath ${ROOTPACKAGEDIR}
+JAVAC = ${JAVA_HOME}/bin/javac -source 1.4 -classpath ${ROOTPACKAGEDIR}
J_NATIVE_PREFIX = org.openafs.jafs.
C_NATIVE_PREFIX = org_openafs_jafs_
LIBJAFS_LIBS =\
${TOP_LIBDIR}/libjuafs.a \
+ ${TOP_LIBDIR}/libafsutil.a \
${TOP_LIBDIR}/libdes.a \
-lresolv \
-lpthread
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/AIX/osi_file.c,v 1.9.2.2 2007/08/16 03:54:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/AIX/osi_file.c,v 1.9.2.3 2007/12/13 19:18:49 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11.2.1 2004/08/25 07:16:15 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11.2.2 2007/12/13 19:18:49 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
struct vfs *afs_globalVFS = 0;
struct vcache *afs_globalVp = 0;
-extern int afs_cold_shutdown;
-
static int afs_root_nolock(struct vfs *afsp, struct vnode **avpp);
static int
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.8.2.7 2007/10/10 16:57:55 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.8.2.8 2007/12/13 19:18:49 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v 1.18.2.28 2007/10/24 05:45:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v 1.18.2.29 2007/11/27 20:04:13 shadow Exp $");
#include <afs/sysincludes.h> /* Standard vendor system headers */
#include <afsincludes.h> /* Afs-based standard headers */
int code;
struct vnode *vp = ap->a_vp;
struct vcache *avc = VTOAFS(vp);
+
+ if (vnode_isdir(ap->a_vp))
+ return EISDIR;
#ifdef AFS_DARWIN80_ENV
ubc_sync_range(ap->a_vp, AFS_UIO_OFFSET(ap->a_uio), AFS_UIO_OFFSET(ap->a_uio) + AFS_UIO_RESID(ap->a_uio), UBC_PUSHDIRTY);
#else
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/DUX/Attic/osi_file.c,v 1.9 2003/07/15 23:14:18 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/DUX/Attic/osi_file.c,v 1.9.2.1 2007/12/13 19:18:50 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/FBSD/osi_file.c,v 1.13.2.1 2006/11/09 23:26:25 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/FBSD/osi_file.c,v 1.13.2.2 2007/12/13 19:18:50 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/HPUX/osi_file.c,v 1.8.2.1 2006/11/09 23:26:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/HPUX/osi_file.c,v 1.8.2.2 2007/12/13 19:18:50 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/IRIX/osi_file.c,v 1.11.2.1 2006/11/09 23:26:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/IRIX/osi_file.c,v 1.11.2.2 2007/12/13 19:18:53 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13.2.1 2004/08/25 07:09:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13.2.2 2007/12/13 19:18:53 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
int flags;
cred_t *cr;
{
- extern int afs_afs_cold_shutdown;
struct vcache *tvc;
vnode_t *vp, *rootvp = NULL;
register struct afs_q *tq;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_file.c,v 1.19.2.11 2006/11/09 23:26:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_file.c,v 1.19.2.15 2008/03/23 00:54:01 shadow Exp $");
#ifdef AFS_LINUX24_ENV
#include "h/module.h" /* early to avoid printf->printk mapping */
#include "afsincludes.h" /* Afs-based standard headers */
#include "afs/afs_stats.h" /* afs statistics */
#include "h/smp_lock.h"
-
+#if !defined(HAVE_IGET)
+#include "h/exportfs.h"
+#endif
int afs_osicred_initialized = 0;
struct AFS_UCRED afs_osi_cred;
struct inode *tip = NULL;
struct dentry *dp = NULL;
struct file *filp = NULL;
+#if !defined(HAVE_IGET)
+ struct fid fid;
+#endif
AFS_STATCNT(osi_UFSOpen);
if (cacheDiskType != AFS_FCACHE_TYPE_UFS) {
osi_Panic("UFSOpen called for non-UFS cache\n");
sizeof(struct osi_file));
}
memset(afile, 0, sizeof(struct osi_file));
+#if defined(HAVE_IGET)
tip = iget(afs_cacheSBp, (u_long) ainode);
- if (!tip)
- osi_Panic("Can't get inode %d\n", ainode);
- tip->i_flags |= MS_NOATIME; /* Disable updating access times. */
-
- dp = d_alloc_anon(tip);
+#else
+ fid.i32.ino = ainode;
+ fid.i32.gen = 0;
+ dp = afs_cacheSBp->s_export_op->fh_to_dentry(afs_cacheSBp, &fid, sizeof(fid), FILEID_INO32_GEN);
if (!dp)
osi_Panic("Can't get dentry for inode %d\n", ainode);
+ tip = dp->d_inode;
+#endif
+ tip->i_flags |= MS_NOATIME; /* Disable updating access times. */
filp = dentry_open(dp, mntget(afs_cacheMnt), O_RDWR);
if (IS_ERR(filp))
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#endif
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.10 2007/03/20 18:48:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.14 2008/03/10 16:48:56 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
}
#ifdef LINUX_KEYRING_SUPPORT
-static struct key_type *__key_type_keyring;
+extern struct key_type key_type_keyring __attribute__((weak));
+static struct key_type *__key_type_keyring = &key_type_keyring;
static int
install_session_keyring(struct task_struct *task, struct key *keyring)
void osi_keyring_init(void)
{
struct task_struct *p;
+
+ if (__key_type_keyring == NULL) {
#ifdef EXPORTED_TASKLIST_LOCK
- if (&tasklist_lock)
- read_lock(&tasklist_lock);
+ if (&tasklist_lock)
+ read_lock(&tasklist_lock);
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
-#ifdef EXPORTED_TASKLIST_LOCK
- else
-#endif
- rcu_read_lock();
+# ifdef EXPORTED_TASKLIST_LOCK
+ else
+# endif
+ rcu_read_lock();
#endif
- p = find_task_by_pid(1);
- if (p && p->user->session_keyring)
- __key_type_keyring = p->user->session_keyring->type;
+ p = find_task_by_pid(1);
+ if (p && p->user->session_keyring)
+ __key_type_keyring = p->user->session_keyring->type;
#ifdef EXPORTED_TASKLIST_LOCK
- if (&tasklist_lock)
- read_unlock(&tasklist_lock);
+ if (&tasklist_lock)
+ read_unlock(&tasklist_lock);
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
-#ifdef EXPORTED_TASKLIST_LOCK
- else
-#endif
- rcu_read_unlock();
+# ifdef EXPORTED_TASKLIST_LOCK
+ else
+# endif
+ rcu_read_unlock();
#endif
+ }
register_key_type(&key_type_afs_pag);
}
#define afs_hz HZ
#include "h/sched.h"
+#if defined(HAVE_CURRENT_KERNEL_TIME)
+static inline time_t osi_Time(void) {
+ struct timespec xtime;
+ xtime = current_kernel_time();
+ return xtime.tv_sec;
+}
+#else
#define osi_Time() (xtime.tv_sec)
+#endif
+
+
+
#ifdef AFS_LINUX_64BIT_KERNEL
#define osi_GetTime(V) \
do { \
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_misc.c,v 1.34.2.10 2005/07/11 19:29:56 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_misc.c,v 1.34.2.12 2008/03/10 19:05:28 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
#endif
if (!code) {
+#if defined(STRUCT_NAMEIDATA_HAS_PATH)
+ *dpp = dget(nd.path.dentry);
+ if (mnt)
+ *mnt = mntget(nd.path.mnt);
+ path_put(&nd.path);
+#else
*dpp = dget(nd.dentry);
if (mnt)
*mnt = mntget(nd.mnt);
path_release(&nd);
+#endif
}
return code;
}
}
}
-struct task_struct *rxk_ListenerTask;
-
void
osi_linux_mask(void)
{
RECALC_SIGPENDING(current);
SIG_UNLOCK(current);
}
-
-void
-osi_linux_rxkreg(void)
-{
- rxk_ListenerTask = current;
-}
/*
* osi_sysctl.c: Linux sysctl interface to OpenAFS
*
- * $Id: osi_sysctl.c,v 1.7.2.5 2007/06/12 18:28:49 shadow Exp $
+ * $Id: osi_sysctl.c,v 1.7.2.6 2007/11/23 13:45:04 shadow Exp $
*
* Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates)
*/
static ctl_table afs_sysctl_table[] = {
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 1,
+#endif
.procname = "hm_retry_RO",
.data = &hm_retry_RO,
.maxlen = sizeof(afs_int32),
.proc_handler = &proc_dointvec
},
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 2,
+#endif
.procname = "hm_retry_RW",
.data = &hm_retry_RW,
.maxlen = sizeof(afs_int32),
.proc_handler = &proc_dointvec
},
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 3,
+#endif
.procname = "hm_retry_int",
.data = &hm_retry_int,
.maxlen = sizeof(afs_int32),
.proc_handler = &proc_dointvec
},
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 4,
+#endif
.procname = "GCPAGs",
.data = &afs_gcpags,
.maxlen = sizeof(afs_int32),
.proc_handler = &proc_dointvec
},
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 5,
+#endif
.procname = "rx_deadtime",
.data = &afs_rx_deadtime,
.maxlen = sizeof(afs_int32),
.proc_handler = &proc_dointvec
},
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 6,
+#endif
.procname = "bkVolPref",
.data = &afs_bkvolpref,
.maxlen = sizeof(afs_int32),
static ctl_table fs_sysctl_table[] = {
{
+#if defined(SYSCTL_TABLE_CHECKING)
+ .ctl_name = CTL_UNNUMBERED,
+#else
.ctl_name = 1,
+#endif
.procname = "afs",
.mode = 0555,
.child = afs_sysctl_table
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.26 2007/10/15 12:42:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.28 2007/11/23 13:45:04 shadow Exp $");
#define __NO_VERSION__ /* don't define kernel_version in module.h */
#include <linux/module.h> /* early to avoid printf->printk mapping */
#if defined(HAVE_KMEM_CACHE_T)
init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
#else
+#if defined(KMEM_CACHE_INIT)
+init_once(struct kmem_cache * cachep, void * foo)
+#else
init_once(void * foo, struct kmem_cache * cachep, unsigned long flags)
#endif
+#endif
{
struct vcache *vcp = (struct vcache *) foo;
ip->i_size = vp->va_size;
#if defined(AFS_LINUX26_ENV)
ip->i_atime.tv_sec = vp->va_atime.tv_sec;
+ ip->i_atime.tv_nsec = 0;
ip->i_mtime.tv_sec = vp->va_mtime.tv_sec;
+ ip->i_mtime.tv_nsec = 0;
ip->i_ctime.tv_sec = vp->va_ctime.tv_sec;
+ ip->i_ctime.tv_nsec = 0;
#else
ip->i_atime = vp->va_atime.tv_sec;
ip->i_mtime = vp->va_mtime.tv_sec;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.57 2007/10/15 12:42:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.60 2007/11/27 19:32:43 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
.flush = afs_linux_flush,
#if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SENDFILE)
.sendfile = generic_file_sendfile,
+#endif
+#if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SPLICE)
+ .splice_write = generic_file_splice_write,
+ .splice_read = generic_file_splice_read,
#endif
.release = afs_linux_release,
.fsync = afs_linux_fsync,
AFS_GLOCK();
(void) afs_InactiveVCache(vcp, NULL);
AFS_GUNLOCK();
+#ifdef DCACHE_NFSFS_RENAMED
+#ifdef AFS_LINUX26_ENV
+ spin_lock(&dp->d_lock);
+#endif
+ dp->d_flags &= ~DCACHE_NFSFS_RENAMED;
+#ifdef AFS_LINUX26_ENV
+ spin_unlock(&dp->d_lock);
+#endif
+#endif
iput(ip);
}
afs_getattr(vcp, &vattr, credp);
afs_fill_inode(ip, &vattr);
+ insert_inode_hash(ip);
dp->d_op = &afs_dentry_operations;
dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
d_instantiate(dp, ip);
ip = AFSTOV(vcp);
afs_getattr(vcp, &vattr, credp);
afs_fill_inode(ip, &vattr);
+ if (hlist_unhashed(&ip->i_hash))
+ insert_inode_hash(ip);
}
dp->d_op = &afs_dentry_operations;
dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
}
tvc->uncred = credp;
tvc->states |= CUnlinked;
+#ifdef DCACHE_NFSFS_RENAMED
+#ifdef AFS_LINUX26_ENV
+ spin_lock(&dp->d_lock);
+#endif
+ dp->d_flags |= DCACHE_NFSFS_RENAMED;
+#ifdef AFS_LINUX26_ENV
+ spin_unlock(&dp->d_lock);
+#endif
+#endif
} else {
osi_FreeSmallSpace(__name);
}
#endif
}
- /* insert_inode_hash(ip); -- this would make iget() work (if we used it) */
}
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/NBSD/osi_file.c,v 1.5.2.1 2006/11/09 23:26:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/NBSD/osi_file.c,v 1.5.2.2 2007/12/13 19:18:55 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/OBSD/osi_file.c,v 1.10.2.2 2006/11/09 23:26:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/OBSD/osi_file.c,v 1.10.2.3 2008/01/04 17:56:41 rees Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afs/afsincludes.h" /* Afs-based standard headers */
int
afs_osi_Read(struct osi_file *afile, int offset, void *aptr, afs_int32 asize)
{
- unsigned int resid;
+ size_t resid;
afs_int32 code;
AFS_STATCNT(osi_Read);
afile->offset += code;
osi_DisableAtimes(afile->vnode);
} else {
- afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED, ICL_TYPE_INT32, resid,
- ICL_TYPE_INT32, code);
+ afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED, ICL_TYPE_INT32,
+ (unsigned int) resid, ICL_TYPE_INT32, code);
code = -1;
}
return code;
afs_osi_Write(struct osi_file *afile, afs_int32 offset, void *aptr,
afs_int32 asize)
{
- unsigned int resid;
+ size_t resid;
afs_int32 code;
AFS_STATCNT(osi_Write);
* afs_osi.h.
*/
-/* $Id: osi_machdep.h,v 1.16.2.8 2006/11/10 00:08:56 shadow Exp $ */
+/* $Id: osi_machdep.h,v 1.16.2.9 2008/01/04 17:53:37 rees Exp $ */
#ifndef _OSI_MACHDEP_H_
#define _OSI_MACHDEP_H_
/* time */
#define afs_hz hz
#define osi_GetTime(x) microtime(x)
-#define osi_Time() (time.tv_sec)
+extern time_t osi_Time();
/* str */
#define afs_strcasecmp(s1, s2) strncasecmp((s1), (s2), 65535)
/*
- * $Id: osi_sleep.c,v 1.7.2.2 2005/07/28 21:48:35 shadow Exp $
+ * $Id: osi_sleep.c,v 1.7.2.3 2008/01/04 17:53:37 rees Exp $
*/
/*
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/OBSD/osi_sleep.c,v 1.7.2.2 2005/07/28 21:48:35 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/OBSD/osi_sleep.c,v 1.7.2.3 2008/01/04 17:53:37 rees Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afs/afsincludes.h" /* Afs-based standard headers */
static char waitV;
+time_t
+osi_Time()
+{
+ struct timeval now;
+
+ getmicrotime(&now);
+ return now.tv_sec;
+}
+
+void
+afs_osi_SetTime(osi_timeval_t * atv)
+{
+ printf("afs attempted to set clock; use \"afsd -nosettime\"\n");
+}
+
/* cancel osi_Wait */
void
afs_osi_CancelWait(struct afs_osi_WaitHandle *achandle)
afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok)
{
int timo, code = 0;
- struct timeval atv, endTime;
+ struct timeval atv, now, endTime;
AFS_STATCNT(osi_Wait);
atv.tv_sec = ams / 1000;
atv.tv_usec = (ams % 1000) * 1000;
- timeradd(&atv, &time, &endTime);
+ getmicrotime(&now);
+ timeradd(&atv, &now, &endTime);
if (ahandle)
ahandle->proc = (caddr_t) curproc;
AFS_GUNLOCK();
do {
- timersub(&endTime, &time, &atv);
+ timersub(&endTime, &now, &atv);
timo = atv.tv_sec * hz + atv.tv_usec * hz / 1000000 + 1;
if (aintok) {
code = tsleep(&waitV, PCATCH | PVFS, "afs_W1", timo);
/* we've been signalled */
break;
}
- } while (timercmp(&time, &endTime, <));
+ getmicrotime(&now);
+ } while (timercmp(&now, &endTime, <));
AFS_GLOCK();
return code;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/OBSD/osi_vm.c,v 1.2 2003/07/15 23:14:25 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/OBSD/osi_vm.c,v 1.2.2.1 2008/01/03 17:15:19 rees Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afs/afsincludes.h" /* Afs-based standard headers */
#include "afs/afs_stats.h" /* statistics */
-/* #include <vm/vm_ubc.h> */
+#include <sys/namei.h>
#include <limits.h>
#include <float.h>
int
osi_VM_FlushVCache(struct vcache *avc, int *slept)
{
+ struct vnode *vp = AFSTOV(avc);
+
+ if (!vp)
+ return 0;
+ AFS_GUNLOCK();
+
+ cache_purge(vp);
+ uvm_vnp_uncache(vp);
+
+ AFS_GLOCK();
return 0;
}
*
* Locking: the vcache entry's lock is held. It will usually be dropped and
* re-obtained.
+ *
*/
void
osi_VM_StoreAllSegments(struct vcache *avc)
void
osi_VM_TryToSmush(struct vcache *avc, struct AFS_UCRED *acred, int sync)
{
+ ReleaseWriteLock(&avc->lock);
+ osi_VM_FlushVCache(avc, NULL);
+ ObtainWriteLock(&avc->lock, 59);
}
/* Purge VM for a file when its callback is revoked.
void
osi_VM_FlushPages(struct vcache *avc, struct AFS_UCRED *credp)
{
+ struct vnode *vp = AFSTOV(avc);
+
+ if (!vp)
+ return;
+ cache_purge(vp);
+ uvm_vnp_uncache(vp);
+ uvm_vnp_setsize(vp, avc->m.Length);
}
/* Purge pages beyond end-of-file, when truncating a file.
void
osi_VM_Truncate(struct vcache *avc, int alen, struct AFS_UCRED *acred)
{
+ uvm_vnp_setsize(AFSTOV(avc), alen);
}
* Original NetBSD version for Transarc afs by John Kohl <jtk@MIT.EDU>
* OpenBSD version by Jim Rees <rees@umich.edu>
*
- * $Id: osi_vnodeops.c,v 1.18.2.2 2006/06/23 14:21:12 rees Exp $
+ * $Id: osi_vnodeops.c,v 1.18.2.5 2008/01/08 17:06:59 rees Exp $
*/
/*
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/OBSD/osi_vnodeops.c,v 1.18.2.2 2006/06/23 14:21:12 rees Exp $");
+ ("$Header: /cvs/openafs/src/afs/OBSD/osi_vnodeops.c,v 1.18.2.5 2008/01/08 17:06:59 rees Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afs/afsincludes.h" /* Afs-based standard headers */
#endif
}
+#ifdef AFS_OBSD42_ENV
+#define VP_INTERLOCK NULL
+#else
+#define VP_INTERLOCK (&vp->v_interlock)
+#endif
+
int
afs_nbsd_lock(void *v)
{
if (!vc)
panic("afs_nbsd_lock: null vcache");
- return afs_osi_lockmgr(&vc->rwlock, ap->a_flags | LK_CANRECURSE, &vp->v_interlock,
- ap->a_p);
+ return afs_osi_lockmgr(&vc->rwlock, ap->a_flags | LK_CANRECURSE, VP_INTERLOCK, ap->a_p);
}
int
if (!vc)
panic("afs_nbsd_unlock: null vcache");
- return afs_osi_lockmgr(&vc->rwlock, ap->a_flags | LK_RELEASE, &vp->v_interlock,
- ap->a_p);
+ return afs_osi_lockmgr(&vc->rwlock, ap->a_flags | LK_RELEASE, VP_INTERLOCK, ap->a_p);
}
int
AFS_STATCNT(afs_bmap);
if (ap->a_bnp)
- ap->a_bnp = (daddr_t *) (ap->a_bn * (8192 / DEV_BSIZE));
+ *ap->a_bnp = ap->a_bn * btodb(8192);
if (ap->a_vpp)
*ap->a_vpp = (vcp) ? AFSTOV(vcp) : NULL;
return 0;
tuio.afsio_iovcnt = 1;
tuio.afsio_seg = AFS_UIOSYS;
tuio.afsio_resid = len;
- tiovec[0].iov_base = abp->b_un.b_addr;
+ tiovec[0].iov_base = abp->b_data;
tiovec[0].iov_len = len;
AFS_GLOCK();
if ((abp->b_flags & B_READ) == B_READ) {
code = afs_rdwr(tvc, &tuio, UIO_READ, 0, credp);
if (code == 0 && tuio.afsio_resid > 0)
- bzero(abp->b_un.b_addr + len - tuio.afsio_resid,
- tuio.afsio_resid);
+ bzero(abp->b_data + len - tuio.afsio_resid, tuio.afsio_resid);
} else
code = afs_rdwr(tvc, &tuio, UIO_WRITE, 0, credp);
AFS_GUNLOCK();
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_file.c,v 1.13.2.1 2006/11/09 23:26:27 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_file.c,v 1.13.2.3 2008/03/17 15:28:55 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
struct vattr vattr;
vattr.va_mask = AT_FSID | AT_NODEID; /* quick return using this mask. */
+#ifdef AFS_SUN511_ENV
+ code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred, NULL);
+#else
code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred);
+#endif
if (code) {
osi_Panic("VnodeToIno");
}
vattr.va_mask = AT_FSID | AT_NODEID; /* quick return using this mask. */
AFS_GUNLOCK();
+#ifdef AFS_SUN511_ENV
+ code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred, NULL);
+#else
code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred);
+#endif
AFS_GLOCK();
if (code) {
osi_Panic("VnodeToDev");
MObtainWriteLock(&afs_xosi, 578);
vattr.va_mask = AT_SIZE;
AFS_GUNLOCK();
+#ifdef AFS_SUN511_ENV
+ code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred, NULL);
+#else
code = VOP_GETATTR(vp, &vattr, 0, &afs_osi_cred);
+#endif
AFS_GLOCK();
if (code) {
osi_Panic("VnodeToSize");
/* Ufs doesn't seem to care about the flags so we pass 0 for now */
tvattr.va_mask = AT_ALL;
AFS_GUNLOCK();
+#ifdef AFS_SUN511_ENV
+ code = VOP_GETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred, NULL);
+#else
code = VOP_GETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred);
+#endif
AFS_GLOCK();
if (code == 0) {
astat->size = tvattr.va_size;
void
shutdown_osifile(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osifile);
if (afs_cold_shutdown) {
afs_osicred_initialized = 0;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_vfsops.c,v 1.18.2.3 2007/01/02 07:36:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_vfsops.c,v 1.18.2.6 2008/03/17 15:28:55 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#include "afs/afs_stats.h" /* statistics stuff */
#include "h/modctl.h"
#include "h/syscall.h"
+#if defined(AFS_SUN511_ENV)
+#include <sys/vfs_opreg.h>
+#endif
#include <sys/kobj.h>
register afs_int32 code = 0;
struct vrequest treq;
register struct vcache *tvp = 0;
+ struct vcache *gvp;
struct proc *proc = ttoproc(curthread);
struct vnode *vp = afsp->vfs_vnodecovered;
int locked = 0;
AFS_STATCNT(afs_root);
+again:
if (afs_globalVp && (afs_globalVp->states & CStatd)) {
tvp = afs_globalVp;
} else {
}
if (afs_globalVp) {
- afs_PutVCache(afs_globalVp);
+ gvp = afs_globalVp;
afs_globalVp = NULL;
+ afs_PutVCache(gvp);
}
if (!(code = afs_InitReq(&treq, proc->p_cred))
tvp = afs_GetVCache(&afs_rootFid, &treq, NULL, NULL);
/* we really want this to stay around */
if (tvp) {
+ if (afs_globalVp) {
+ /* someone else got there before us! */
+ afs_PutVCache(tvp);
+ tvp = 0;
+ goto again;
+ }
afs_globalVp = tvp;
} else
code = ENOENT;
}
-#ifdef AFS_SUN510_ENV
+#if defined(AFS_SUN511_ENV)
+/* The following list must always be NULL-terminated */
+static const fs_operation_def_t afs_vfsops_template[] = {
+ VFSNAME_MOUNT, { .vfs_mount = afs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = afs_unmount },
+ VFSNAME_ROOT, { .vfs_root = afs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = afs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = afs_sync },
+ VFSNAME_VGET, { .vfs_vget = afs_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = afs_mountroot },
+ VFSNAME_FREEVFS, { .vfs_freevfs = fs_freevfs },
+ NULL, NULL
+};
+struct vfsops *afs_vfsopsp;
+#elif defined(AFS_SUN510_ENV)
/* The following list must always be NULL-terminated */
const fs_operation_def_t afs_vfsops_template[] = {
VFSNAME_MOUNT, afs_mount,
VFSNAME_VGET, afs_vget,
VFSNAME_MOUNTROOT, afs_mountroot,
VFSNAME_FREEVFS, fs_freevfs,
- NULL, NULL
+ NULL, NULL
};
struct vfsops *afs_vfsopsp;
#else
}
#ifdef AFS_SUN510_ENV
+#ifdef AFS_SUN511_ENV
+static struct vfsdef_v4 afs_vfsdef = {
+ VFSDEF_VERSION,
+ "afs",
+ afsinit,
+ 0,
+ NULL
+};
+#else
static struct vfsdef_v3 afs_vfsdef = {
VFSDEF_VERSION,
"afs",
afsinit,
0
};
+#endif
#else
static struct vfssw afs_vfw = {
"afs",
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_vnodeops.c,v 1.20.2.10 2006/12/28 22:26:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/SOLARIS/osi_vnodeops.c,v 1.20.2.12 2008/03/17 15:28:55 shadow Exp $");
/*
* SOLARIS/osi_vnodeops.c
#include <vm/seg_map.h>
#include <vm/seg_vn.h>
#include <vm/rm.h>
+#if defined(AFS_SUN511_ENV)
+#include <sys/vfs_opreg.h>
+#endif
#include <sys/modctl.h>
#include <sys/syscall.h>
#include <sys/debug.h>
}
#ifdef AFS_SUN54_ENV
+#ifdef AFS_SUN511_ENV
+extern void
+afs_dispose(struct vnode *vp, struct page *p, int fl, int dn, struct cred *cr, struct caller_context_t *ct)
+{
+ fs_dispose(vp, p, fl, dn, cr,ct);
+}
+
+int
+afs_setsecattr(struct vnode *vp, vsecattr_t *vsecattr, int flag, struct cred *creds, struct caller_context_t *ct)
+{
+ return ENOSYS;
+}
+
+int
+afs_getsecattr(struct vnode *vp, vsecattr_t *vsecattr, int flag, struct cred *creds, struct caller_context_t *ct)
+{
+ return fs_fab_acl(vp, vsecattr, flag, creds,ct);
+}
+#else
extern void
afs_dispose(vp, p, fl, dn, cr)
struct vnode *vp;
return fs_fab_acl(vp, vsecattr, flag, creds);
}
#endif
+#endif
#ifdef AFS_GLOBAL_SUNLOCK
extern int gafs_open(), gafs_close(), afs_ioctl(), gafs_access();
extern int afs_lockctl();
extern void gafs_inactive();
-#ifdef AFS_SUN510_ENV
+#if defined(AFS_SUN511_ENV)
+/* The following list must always be NULL-terminated */
+const fs_operation_def_t afs_vnodeops_template[] = {
+ VOPNAME_OPEN, { .vop_open = gafs_open },
+ VOPNAME_CLOSE, { .vop_close = gafs_close },
+ VOPNAME_READ, { .vop_read = afs_vmread },
+ VOPNAME_WRITE, { .vop_write = afs_vmwrite },
+ VOPNAME_IOCTL, { .vop_ioctl = afs_ioctl },
+ VOPNAME_SETFL, { .vop_setfl = fs_setfl },
+ VOPNAME_GETATTR, { .vop_getattr = gafs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = gafs_setattr },
+ VOPNAME_ACCESS, { .vop_access = gafs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = gafs_lookup },
+ VOPNAME_CREATE, { .vop_create = gafs_create },
+ VOPNAME_REMOVE, { .vop_remove = gafs_remove },
+ VOPNAME_LINK, { .vop_link = gafs_link },
+ VOPNAME_RENAME, { .vop_rename = gafs_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = gafs_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = gafs_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = gafs_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = gafs_symlink },
+ VOPNAME_READLINK, { .vop_readlink = gafs_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = gafs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = gafs_inactive },
+ VOPNAME_FID, { .vop_fid = gafs_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = afs_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = afs_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = afs_seek },
+ VOPNAME_CMP, { .vop_cmp = afs_cmp },
+ VOPNAME_FRLOCK, { .vop_frlock = afs_frlock },
+ VOPNAME_SPACE, { .vop_space = afs_space },
+ VOPNAME_REALVP, { .vop_realvp = afs_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = afs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = afs_putpage },
+ VOPNAME_MAP, { .vop_map = afs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = afs_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = afs_delmap },
+ VOPNAME_POLL, { .vop_poll = fs_poll },
+ VOPNAME_PATHCONF, { .vop_pathconf = afs_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = afs_pageio },
+ VOPNAME_DUMP, { .vop_dump = afs_dump },
+ VOPNAME_DUMPCTL, { .vop_dumpctl = afs_dumpctl },
+ VOPNAME_DISPOSE, { .vop_dispose = afs_dispose },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = afs_getsecattr },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = afs_setsecattr },
+ VOPNAME_SHRLOCK, { .vop_shrlock = fs_shrlock },
+ NULL, NULL
+};
+vnodeops_t *afs_ops;
+#elif defined(AFS_SUN510_ENV)
/* The following list must always be NULL-terminated */
const fs_operation_def_t afs_vnodeops_template[] = {
VOPNAME_OPEN, gafs_open,
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/UKERNEL/afs_usrops.c,v 1.27.2.4 2006/11/10 04:03:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/UKERNEL/afs_usrops.c,v 1.27.2.7 2008/01/31 20:18:51 shadow Exp $");
#ifdef UKERNEL
ufs_brelse(struct usr_vnode *vp, struct usr_buf *bp)
{
usr_assert(0);
+ return 0;
}
/*
iodone(struct usr_buf *bp)
{
usr_assert(0);
+ return 0;
}
struct usr_file *
getf(int fd)
{
usr_assert(0);
+ return 0;
}
/*
usr_flock(void)
{
usr_assert(0);
+ return 0;
}
/*
usr_ioctl(void)
{
usr_assert(0);
+ return 0;
}
/*
afs_syscall_icreate(void)
{
usr_assert(0);
+ return 0;
}
int
afs_syscall_iincdec(void)
{
usr_assert(0);
+ return 0;
}
int
afs_syscall_iopen(void)
{
usr_assert(0);
+ return 0;
}
int
afs_syscall_ireadwrite(void)
{
usr_assert(0);
+ return 0;
}
/*
vno_close(void)
{
usr_assert(0);
+ return 0;
}
int
vno_ioctl(void)
{
usr_assert(0);
+ return 0;
}
int
vno_rw(void)
{
usr_assert(0);
+ return 0;
}
int
vno_select(void)
{
usr_assert(0);
+ return 0;
}
/*
if (credp->cr_ref == 0) {
afs_osi_Free((char *)credp, sizeof(struct usr_ucred));
}
+ return 0;
}
int
usr_crhold(struct usr_ucred *credp)
{
credp->cr_ref++;
+ return 0;
}
void
waitp = waitp->next;
}
usr_mutex_unlock(&osi_waitq_lock);
+ return 0;
}
int
waitp = waitp->timedNext;
}
usr_mutex_unlock(&osi_waitq_lock);
+ return 0;
}
/*
return;
}
+void
+afs_osi_Visible(void)
+{
+ return;
+}
+
int
osi_GetTime(struct timeval *tv)
{
return (0);
}
-static
-ConfigCell(register struct afsconf_cell *aci, char *arock,
+static int
+ConfigCell(register struct afsconf_cell *aci, void *arock,
struct afsconf_dir *adir)
{
register int isHomeCell;
}
static int
-ConfigCellAlias(aca, arock, adir)
- struct afsconf_cellalias *aca;
- char *arock;
- struct afsconf_dir *adir;
+ConfigCellAlias(struct afsconf_cellalias *aca, void *arock, struct afsconf_dir *adir)
{
call_syscall(AFSOP_ADDCELLALIAS, (long)aca->aliasName,
(long)aca->realName, 0, 0, 0);
sysArgsP->param2, sysArgsP->param3, sysArgsP->param4);
afs_osi_Free(argp, -1);
+ return 0;
}
fork_syscall(syscall, afscall, param1, param2, param3, param4)
usr_thread_create(&tid, syscallThread, sysArgsP);
usr_thread_detach(tid);
+ return 0;
}
call_syscall(syscall, afscall, param1, param2, param3, param4)
struct usr_vnode *linkVp;
char *tmpPath;
char *pathP;
- char *nextPathP;
+ char *nextPathP = NULL;
AFS_ASSERT_GLOCK();
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/UKERNEL/osi_groups.c,v 1.7 2003/07/15 23:14:28 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/UKERNEL/osi_groups.c,v 1.7.2.1 2007/11/26 21:21:47 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
afs_xsetgroups()
{
usr_assert(0);
+ return 0;
}
static int
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_access.c,v 1.10.2.1 2004/08/25 07:09:35 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_access.c,v 1.10.2.2 2008/03/07 17:34:08 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
if ((code = afs_InitReq(&treq, acred)))
return code;
- code = afs_EvalFakeStat(&avc, &fakestate, &treq);
+ if (afs_fakestat_enable && avc->mvstat == 1) {
+ code = afs_TryEvalFakeStat(&avc, &fakestate, &treq);
+ if (code == 0 && avc->mvstat == 1) {
+ afs_PutFakeStat(&fakestate);
+ return 0;
+ }
+ } else {
+ code = afs_EvalFakeStat(&avc, &fakestate, &treq);
+ }
+
if (code) {
afs_PutFakeStat(&fakestate);
return code;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16.2.9 2006/10/13 05:15:58 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16.2.10 2007/12/08 18:00:45 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
UpgradeSToWLock(&tdc->lock, 631);
if (afs_LocalHero(adp, tdc, &OutDirStatus, 1)) {
/* we can do it locally */
+ ObtainWriteLock(&afs_xdcache, 291);
code = afs_dir_Create(tdc, aname, &newFid.Fid);
+ ReleaseWriteLock(&afs_xdcache);
if (code) {
ZapDCE(tdc);
DZap(tdc);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_dirops.c,v 1.14.2.5 2005/05/30 04:05:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_dirops.c,v 1.14.2.6 2007/12/08 18:00:45 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
ObtainWriteLock(&tdc->lock, 632);
if (afs_LocalHero(adp, tdc, &OutDirStatus, 1)) {
/* we can do it locally */
+ ObtainWriteLock(&afs_xdcache, 294);
code = afs_dir_Create(tdc, aname, &newFid.Fid);
+ ReleaseWriteLock(&afs_xdcache);
if (code) {
ZapDCE(tdc); /* surprise error -- use invalid value */
DZap(tdc);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_link.c,v 1.15.2.4 2005/01/31 03:49:15 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_link.c,v 1.15.2.5 2007/12/08 18:00:45 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
ObtainWriteLock(&tdc->lock, 635);
if (afs_LocalHero(adp, tdc, &OutDirStatus, 1)) {
/* we can do it locally */
+ ObtainWriteLock(&afs_xdcache, 290);
code = afs_dir_Create(tdc, aname, &avc->fid.Fid);
+ ReleaseWriteLock(&afs_xdcache);
if (code) {
ZapDCE(tdc); /* surprise error -- invalid value */
DZap(tdc);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50.2.19 2007/10/16 22:03:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50.2.20 2008/03/07 17:34:08 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
ndp->ni_dvp = AFSTOV(adp);
#endif /* AFS_OSF_ENV */
+ if (afs_fakestat_enable && adp->mvstat == 1) {
+ if (strcmp(aname, ".directory") == 0)
+ tryEvalOnly = 1;
+ }
+
#if defined(AFS_DARWIN_ENV)
/* Workaround for MacOSX Finder, which tries to look for
* .DS_Store and Contents under every directory.
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_read.c,v 1.26.2.4 2006/02/21 04:47:08 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_read.c,v 1.26.2.5 2007/11/29 18:36:12 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
* Locks held:
* avc->lock(R)
*/
- while (totalLength > 0) {
+ if (filePos >= avc->m.Length) {
+ if (len > AFS_ZEROS)
+ len = sizeof(afs_zeros); /* and in 0 buffer */
+#ifdef AFS_DARWIN80_ENV
+ trimlen = len;
+ tuiop = afsio_darwin_partialcopy(auio, trimlen);
+#else
+ afsio_copy(auio, &tuio, tvec);
+ trimlen = len;
+ afsio_trim(&tuio, trimlen);
+#endif
+ AFS_UIOMOVE(afs_zeros, trimlen, UIO_READ, tuiop, code);
+ }
+
+ while (avc->m.Length > 0 && totalLength > 0) {
/* read all of the cached info */
if (filePos >= avc->m.Length)
break; /* all done */
}
#endif
- while (totalLength > 0) {
+ if (filePos >= avc->m.Length) {
+ if (len > AFS_ZEROS)
+ len = sizeof(afs_zeros); /* and in 0 buffer */
+ len = 0;
+#ifdef AFS_DARWIN80_ENV
+ trimlen = len;
+ tuiop = afsio_darwin_partialcopy(auio, trimlen);
+#else
+ afsio_copy(auio, &tuio, tvec);
+ trimlen = len;
+ afsio_trim(&tuio, trimlen);
+#endif
+ AFS_UIOMOVE(afs_zeros, trimlen, UIO_READ, tuiop, code);
+ }
+
+ while (avc->m.Length > 0 && totalLength > 0) {
/* read all of the cached info */
if (filePos >= avc->m.Length)
break; /* all done */
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_remove.c,v 1.31.2.16 2006/03/02 06:34:19 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_remove.c,v 1.31.2.17 2007/12/19 20:59:48 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
code = afsremove(adp, tdc, tvc, aname, acred, &treq);
}
afs_PutFakeStat(&fakestate);
+#ifndef AFS_DARWIN80_ENV
+ /* we can't track by thread, it's not exported in the KPI; only do
+ this on !macos */
osi_Assert(!WriteLocked(&adp->lock) || (adp->lock.pid_writer != MyPidxx));
+#endif
return code;
}
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_rename.c,v 1.16.2.11 2005/12/24 00:21:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_rename.c,v 1.16.2.12 2007/12/08 18:00:45 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
code = afs_dir_Delete(tdc2, aname2);
}
if (code == 0) {
+ ObtainWriteLock(&afs_xdcache, 292);
code = afs_dir_Create(tdc2, aname2, &fileFid.Fid);
+ ReleaseWriteLock(&afs_xdcache);
}
if (code != 0) {
ZapDCE(tdc1);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_symlink.c,v 1.19.2.5 2005/10/15 02:33:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_symlink.c,v 1.19.2.6 2007/12/08 18:00:45 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
/* otherwise, we should see if we can make the change to the dir locally */
if (afs_LocalHero(adp, tdc, &OutDirStatus, 1)) {
/* we can do it locally */
+ ObtainWriteLock(&afs_xdcache, 293);
code = afs_dir_Create(tdc, aname, &newFid.Fid);
+ ReleaseWriteLock(&afs_xdcache);
if (code) {
ZapDCE(tdc); /* surprise error -- use invalid value */
DZap(tdc);
#endif
#endif
+
+#ifdef KERNEL
+/* it does not compile outside kernel */
struct buffer {
afs_int32 fid; /* is adc->index, the cache file number */
afs_inode_t inode; /* is adc->f.inode, the inode number of the cac\
afs_int32 chunkBytes; /* Num bytes in this chunk */
char states; /* Has this chunk been modified? */
};
+#endif
/* magic numbers to specify the cache type */
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_buffer.c,v 1.16.2.6 2006/01/24 17:41:20 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_buffer.c,v 1.16.2.7 2007/12/13 19:18:47 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
register struct buffer *tp;
#endif
int i;
- extern int afs_cold_shutdown;
AFS_STATCNT(shutdown_bufferpackage);
/* Free all allocated Buffers and associated buffer pages */
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.25 2007/10/17 03:51:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.26 2008/01/30 21:18:29 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#endif /* RXK_LISTENER_ENV */
afs_osi_Invisible();
afs_RXCallBackServer();
+ afs_osi_Visible();
}
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
afs_osi_RxkRegister();
#endif /* !UKERNEL */
rxk_Listener();
+ afs_osi_Visible();
}
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
afs_osi_Wakeup(&afs_initState);
afs_osi_Invisible();
afs_Daemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
} else if (parm == AFSOP_START_CS) {
afs_osi_Invisible();
afs_CheckServerDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
else
#endif /* AFS_AIX32_ENV */
afs_BackgroundDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
/* start the bkg daemon */
afs_osi_Invisible();
afs_CacheTruncateDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
afs_osi_Sleep(&afs_initState);
afs_osi_Invisible();
afs_rxevent_daemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.8 2007/02/03 03:25:18 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.10 2008/03/10 22:35:33 shadow Exp $");
#include "afs/sysincludes.h" /*Standard vendor system headers */
#include "afsincludes.h" /*AFS-based standard headers */
{
"afs_xsrvAddr", (char *)&afs_xsrvAddr},
{
- "afs_xvreclaim", (char *)&afs_xvreclaim}
+ "afs_xvreclaim", (char *)&afs_xvreclaim},
+#ifdef AFS_AFSDB_ENV
+ { "afsdb_client_lock", (char *)&afsdb_client_lock},
+ { "afsdb_req_lock", (char *)&afsdb_req_lock},
+#endif
};
unsigned long lastCallBack_vnode;
unsigned int lastCallBack_dv;
AFS_STATCNT(SRXAFSCB_GetLock);
nentries = sizeof(ltable) / sizeof(struct ltable);
- if (a_index < 0 || a_index >= nentries) {
+ if (a_index < 0 || a_index >= nentries+afs_cellindex) {
/*
* Past EOF
*/
code = 1;
+ } else if (a_index >= nentries) {
+ struct cell *tc = afs_GetCellByIndex(a_index-nentries, 0);
+ strcpy(a_result->name, tc->cellName);
+ a_result->lock.waitStates =
+ ((struct afs_lock *)&(tc->lock))->wait_states;
+ a_result->lock.exclLocked =
+ ((struct afs_lock *)&(tc->lock))->excl_locked;
+ a_result->lock.readersReading =
+ ((struct afs_lock *)&(tc->lock))->readers_reading;
+ a_result->lock.numWaiting =
+ ((struct afs_lock *)&(tc->lock))->num_waiting;
+#ifdef INSTRUMENT_LOCKS
+ a_result->lock.pid_last_reader =
+ MyPidxx2Pid(((struct afs_lock *)&(tc->lock))->pid_last_reader);
+ a_result->lock.pid_writer =
+ MyPidxx2Pid(((struct afs_lock *)&(tc->lock))->pid_writer);
+ a_result->lock.src_indicator =
+ ((struct afs_lock *)&(tc->lock))->src_indicator;
+#else
+ a_result->lock.pid_last_reader = 0;
+ a_result->lock.pid_writer = 0;
+ a_result->lock.src_indicator = 0;
+#endif
+ code = 0;
} else {
/*
* Found it - copy out its contents.
/*
* Donate this process to Rx.
*/
- rx_ServerProc();
+ rx_ServerProc(NULL);
return (0);
} /*afs_RXCallBackServer */
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_cell.c,v 1.30.2.4 2007/03/20 00:52:20 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_cell.c,v 1.30.2.6 2007/12/04 20:33:17 shadow Exp $");
#include "afs/stds.h"
#include "afs/sysincludes.h" /* Standard vendor system headers */
*/
#ifdef AFS_AFSDB_ENV
-static afs_rwlock_t afsdb_client_lock; /* Serializes client requests */
+afs_rwlock_t afsdb_client_lock; /* Serializes client requests */
+afs_rwlock_t afsdb_req_lock; /* Serializes client requests */
static char afsdb_handler_running; /* Protected by GLOCK */
static char afsdb_handler_shutdown; /* Protected by GLOCK */
+/* from cellconfig.h */
+#define MAXCELLCHARS 64
static struct {
- afs_rwlock_t lock;
+ /* lock moved to afsdb_req_lock for cmdebug */
char pending;
char complete;
char *cellname;
- afs_int32 *cellhosts;
- int *timeout;
- char **realname;
} afsdb_req;
void
int
afs_AFSDBHandler(char *acellName, int acellNameLen, afs_int32 * kernelMsg)
{
+ afs_int32 timeout, code;
+ afs_int32 cellHosts[MAXCELLHOSTS];
+
if (afsdb_handler_shutdown)
return -2;
afsdb_handler_running = 1;
- ObtainSharedLock(&afsdb_req.lock, 683);
+ ObtainSharedLock(&afsdb_req_lock, 683);
if (afsdb_req.pending) {
int i, hostCount;
- UpgradeSToWLock(&afsdb_req.lock, 684);
+ UpgradeSToWLock(&afsdb_req_lock, 684);
hostCount = kernelMsg[0];
- *afsdb_req.timeout = kernelMsg[1];
- if (*afsdb_req.timeout)
- *afsdb_req.timeout += osi_Time();
- *afsdb_req.realname = afs_strdup(acellName);
+ timeout = kernelMsg[1];
+ if (timeout)
+ timeout += osi_Time();
for (i = 0; i < MAXCELLHOSTS; i++) {
if (i >= hostCount)
- afsdb_req.cellhosts[i] = 0;
+ cellHosts[i] = 0;
else
- afsdb_req.cellhosts[i] = kernelMsg[2 + i];
+ cellHosts[i] = kernelMsg[2 + i];
}
+ if (hostCount)
+ code = afs_NewCell(acellName, cellHosts, CNoSUID, NULL, 0, 0,
+ timeout);
+
+ if (!hostCount || (code && code != EEXIST))
+ /* null out the cellname if the lookup failed */
+ afsdb_req.cellname = NULL;
+ else
+ /* If we found an alias, create it */
+ if (afs_strcasecmp(afsdb_req.cellname, acellName))
+ afs_NewCellAlias(afsdb_req.cellname, acellName);
+
/* Request completed, wake up the relevant thread */
afsdb_req.pending = 0;
afsdb_req.complete = 1;
afs_osi_Wakeup(&afsdb_req);
- ConvertWToSLock(&afsdb_req.lock);
+ ConvertWToSLock(&afsdb_req_lock);
}
- ConvertSToRLock(&afsdb_req.lock);
+ ConvertSToRLock(&afsdb_req_lock);
/* Wait for a request */
while (afsdb_req.pending == 0 && afs_termState != AFSOP_STOP_AFSDB) {
- ReleaseReadLock(&afsdb_req.lock);
+ ReleaseReadLock(&afsdb_req_lock);
afs_osi_Sleep(&afsdb_req);
- ObtainReadLock(&afsdb_req.lock);
+ ObtainReadLock(&afsdb_req_lock);
}
/* Check if we're shutting down */
if (afs_termState == AFSOP_STOP_AFSDB) {
- ReleaseReadLock(&afsdb_req.lock);
+ ReleaseReadLock(&afsdb_req_lock);
/* Inform anyone waiting for us that we're going away */
afsdb_handler_shutdown = 1;
/* Return the lookup request to userspace */
strncpy(acellName, afsdb_req.cellname, acellNameLen);
- ReleaseReadLock(&afsdb_req.lock);
+ ReleaseReadLock(&afsdb_req_lock);
return 0;
}
static int
-afs_GetCellHostsAFSDB(char *acellName, afs_int32 * acellHosts, int *timeout,
- char **realName)
+afs_GetCellHostsAFSDB(char *acellName)
{
AFS_ASSERT_GLOCK();
if (!afsdb_handler_running)
return ENOENT;
ObtainWriteLock(&afsdb_client_lock, 685);
- ObtainWriteLock(&afsdb_req.lock, 686);
+ ObtainWriteLock(&afsdb_req_lock, 686);
- *acellHosts = 0;
afsdb_req.cellname = acellName;
- afsdb_req.cellhosts = acellHosts;
- afsdb_req.timeout = timeout;
- afsdb_req.realname = realName;
afsdb_req.complete = 0;
afsdb_req.pending = 1;
afs_osi_Wakeup(&afsdb_req);
- ConvertWToRLock(&afsdb_req.lock);
+ ConvertWToRLock(&afsdb_req_lock);
while (afsdb_handler_running && !afsdb_req.complete) {
- ReleaseReadLock(&afsdb_req.lock);
+ ReleaseReadLock(&afsdb_req_lock);
afs_osi_Sleep(&afsdb_req);
- ObtainReadLock(&afsdb_req.lock);
+ ObtainReadLock(&afsdb_req_lock);
};
- ReleaseReadLock(&afsdb_req.lock);
+ ReleaseReadLock(&afsdb_req_lock);
ReleaseWriteLock(&afsdb_client_lock);
- if (*acellHosts)
+ if (afsdb_req.cellname) {
return 0;
- else
+ } else
return ENOENT;
}
#endif
afs_LookupAFSDB(char *acellName)
{
#ifdef AFS_AFSDB_ENV
- afs_int32 cellHosts[MAXCELLHOSTS];
- char *realName = NULL;
- int code, timeout;
-
- code = afs_GetCellHostsAFSDB(acellName, cellHosts, &timeout, &realName);
- if (code)
- goto done;
- code = afs_NewCell(realName, cellHosts, CNoSUID, NULL, 0, 0, timeout);
- if (code && code != EEXIST)
- goto done;
-
- /* If we found an alias, create it */
- if (afs_strcasecmp(acellName, realName))
- afs_NewCellAlias(acellName, realName);
-
- done:
- if (realName)
- afs_osi_FreeStr(realName);
+ int code;
+ char *cellName = afs_strdup(acellName);
+
+ code = afs_GetCellHostsAFSDB(cellName);
+
+ afs_Trace2(afs_iclSetp, CM_TRACE_AFSDB, ICL_TYPE_STRING, cellName,
+ ICL_TYPE_INT32, code);
+ afs_osi_FreeStr(cellName);
#endif
}
RWLOCK_INIT(&afs_xcell, "afs_xcell");
#ifdef AFS_AFSDB_ENV
RWLOCK_INIT(&afsdb_client_lock, "afsdb_client_lock");
- RWLOCK_INIT(&afsdb_req.lock, "afsdb_req.lock");
+ RWLOCK_INIT(&afsdb_req_lock, "afsdb_req_lock");
#endif
QInit(&CellLRU);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.22 2007/08/20 17:53:15 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.23 2007/12/08 18:00:44 shadow Exp $");
#include "afs/sysincludes.h" /*Standard vendor system headers */
#include "afsincludes.h" /*AFS-based standard headers */
if (cacheDiskType == AFS_FCACHE_TYPE_MEM)
return 0;
AFS_STATCNT(afs_WriteDCache);
+ osi_Assert(WriteLocked(&afs_xdcache));
if (atime)
adc->f.modTime = osi_Time();
/*
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.12 2007/04/03 18:57:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.15 2008/02/06 01:43:44 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
void
afs_osi_RxkRegister(void)
{
-#ifdef AFS_LINUX22_ENV
- osi_linux_rxkreg();
-#endif
}
/* procedure for making our processes as invisible as we can */
AFS_STATCNT(osi_Invisible);
}
+void
+afs_osi_Visible(void)
+{
+#if defined(AFS_SUN5_ENV)
+ curproc->p_flag &= ~SSYS;
+#elif defined(AFS_DARWIN80_ENV)
+#elif defined(AFS_DARWIN_ENV)
+ /* maybe call init_process instead? */
+ current_proc()->p_flag &= ~P_SYSTEM;
+#elif defined(AFS_XBSD_ENV)
+ curproc->p_flag &= ~P_SYSTEM;
+#endif
+}
-#if !defined(AFS_LINUX20_ENV) && !defined(AFS_FBSD_ENV)
+#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV)
/* set the real time */
void
afs_osi_SetTime(osi_timeval_t * atv)
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_osi_alloc.c,v 1.10.2.1 2005/04/03 18:18:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_osi_alloc.c,v 1.10.2.3 2007/12/13 19:18:47 shadow Exp $");
if (!freeSmallList) {
afs_stats_cmperf.SmallBlocksAlloced++;
afs_stats_cmperf.SmallBlocksActive++;
- return afs_osi_Alloc(AFS_SMALLOCSIZ);
+ tp = afs_osi_Alloc(AFS_SMALLOCSIZ);
+#ifdef KERNEL_HAVE_PIN
+ pin((char *)tp, AFS_SMALLOCSIZ);
+#endif
+ return (char *)tp;
}
afs_stats_cmperf.SmallBlocksActive++;
MObtainWriteLock(&osi_fsplock, 327);
void
shutdown_osinet(void)
{
- extern int afs_cold_shutdown;
-
AFS_STATCNT(shutdown_osinet);
if (afs_cold_shutdown) {
struct osi_packet *tp;
while ((tp = freePacketList)) {
freePacketList = tp->next;
- afs_osi_Free(tp, AFS_LRALLOCSIZ);
#ifdef KERNEL_HAVE_PIN
unpin(tp, AFS_LRALLOCSIZ);
#endif
+ afs_osi_Free(tp, AFS_LRALLOCSIZ);
}
while ((tp = freeSmallList)) {
freeSmallList = tp->next;
- afs_osi_Free(tp, AFS_SMALLOCSIZ);
#ifdef KERNEL_HAVE_PIN
unpin(tp, AFS_SMALLOCSIZ);
#endif
+ afs_osi_Free(tp, AFS_SMALLOCSIZ);
}
LOCK_INIT(&osi_fsplock, "osi_fsplock");
LOCK_INIT(&osi_flplock, "osi_flplock");
}
+ if (afs_stats_cmperf.LargeBlocksActive ||
+ afs_stats_cmperf.SmallBlocksActive)
+ {
+ afs_warn("WARNING: not all blocks freed: large %d small %d\n",
+ afs_stats_cmperf.LargeBlocksActive,
+ afs_stats_cmperf.SmallBlocksActive);
+ }
}
#endif
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.10 2007/02/09 00:32:04 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.11 2008/01/04 18:40:30 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
*/
static int afs_pag_sleepcnt = 0;
+static int afs_pag_timewarn = 0;
static int
afs_pag_sleep(struct AFS_UCRED **acred)
if(osi_Time() - pag_epoch < pagCounter) {
rv = 1;
}
+ if (rv && (osi_Time() < pag_epoch)) {
+ if (!afs_pag_timewarn) {
+ afs_pag_timewarn = 1;
+ printf("clock went backwards, not PAG throttling");
+ }
+ rv = 0;
+ }
}
return rv;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.28 2007/08/22 02:15:33 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.31 2008/03/17 16:53:36 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#ifdef AFS_OBSD_ENV
#if defined(AFS_SUN510_ENV)
if (vp && !IsAfsVnode(vp)) {
struct vnode *realvp;
-
- if (VOP_REALVP(vp, &realvp) == 0) {
+ if
+#ifdef AFS_SUN511_ENV
+ (VOP_REALVP(vp, &realvp, NULL) == 0)
+#else
+ (VOP_REALVP(vp, &realvp) == 0)
+#endif
+{
struct vnode *oldvp = vp;
VN_HOLD(realvp);
DECL_PIOCTL(PSetSysName)
{
char *cp, *cp2 = NULL, inname[MAXSYSNAME], outname[MAXSYSNAME];
- int setsysname, foundname = 0;
+ afs_int32 setsysname;
+ int foundname = 0;
register struct afs_exporter *exporter;
register struct unixuser *au;
register afs_int32 pag, error;
#endif
}
memset(inname, 0, MAXSYSNAME);
- memcpy((char *)&setsysname, ain, sizeof(afs_int32));
+ memcpy(&setsysname, ain, sizeof(afs_int32));
ain += sizeof(afs_int32);
if (setsysname) {
extern void afs_DequeueCallback(struct vcache *avc);
/* afs_cell.c */
+extern afs_int32 afs_cellindex;
extern afs_rwlock_t afs_xcell;
+#ifdef AFS_AFSDB_ENV
+extern afs_rwlock_t afsdb_client_lock;
+extern afs_rwlock_t afsdb_req_lock;
+#endif
extern struct afs_q CellLRU;
extern void afs_CellInit(void);
/* afs_osi.c */
extern afs_lock_t afs_ftf;
extern void afs_osi_Invisible(void);
+extern void afs_osi_Visible(void);
extern void afs_osi_RxkRegister(void);
extern void afs_osi_MaskSignals(void);
extern void afs_osi_UnmaskRxkSignals(void);
#endif
extern void osi_linux_mask(void);
extern void osi_linux_unmask(void);
-extern void osi_linux_rxkreg(void);
extern int setpag(cred_t ** cr, afs_uint32 pagvalue, afs_uint32 * newpag,
int change_parent);
#endif
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16.2.5 2005/02/21 01:15:21 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16.2.6 2007/12/04 21:12:16 shadow Exp $");
#include "afs/sysincludes.h" /*Standard vendor system headers */
#include "afsincludes.h" /*AFS-based standard headers */
afs_int32 l1, l2;
l1 = avc->m.Length;
l2 = tlen;
+ if ((avc->m.Length > 0x7fffffff) ||
+ (tlen > 0x7fffffff) ||
+ ((0x7fffffff - tlen) < avc->m.Length))
+ return EFBIG;
code =
StartRXAFS_StoreData(tcall,
(struct AFSFid *)&avc->fid.Fid,
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.10 2007/10/05 02:54:08 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.12 2007/12/11 21:31:52 shadow Exp $");
#include "afs/stds.h"
#include "afs/sysincludes.h" /* Standard vendor system headers */
sa->sa_iprank = afs_min(sa->sa_iprank, MED);
}
}
+ return;
}
#else /* AFS_USERSPACE_IP_ADDR */
#if (! defined(AFS_SUN5_ENV)) && !defined(AFS_DARWIN60_ENV) && defined(USEIFADDR)
#define AFS_STATS(arg)
#define XSTATS_DECLS
#define XSTATS_START_TIME(arg)
+#define XSTATS_START_CMTIME(arg)
#define XSTATS_END_TIME
#else /* AFS_NOSTATS */
ec CM_TRACE_LOCKWAIT,"%s line %d: Waiting for lock 0x%lx level %d"
ec CM_TRACE_WRITEFAILED, "osi_Write failed len %ld resid %ld err %ld"
ec CM_TRACE_ADJUSTSIZE2, "AdjustSize dc = 0x%lx, chunkBytes = 0x%x used = %ld, diff = %ld"
+ ec CM_TRACE_AFSDB, "AFSDB lookup %s returned %d"
end
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65.2.46 2006/11/10 04:35:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65.2.48 2007/12/13 19:49:30 shadow Exp $");
#include "afs/sysincludes.h" /*Standard vendor system headers */
#include "afsincludes.h" /*AFS-based standard headers */
#define MyPidxx2Pid(x) ((afs_int32)(x))
#else /* AFS_AIX41_ENV */
#if defined(AFS_HPUX101_ENV)
+#if defined(AFS_HPUX1111_ENV)
+typedef struct kthread * afs_lock_tracker_t;
+#define MyPidxx (u.u_kthreadp)
+#define MyPidxx2Pid(x) (x ? kt_tid(x) : 0)
+#else
typedef struct proc * afs_lock_tracker_t;
#define MyPidxx (u.u_procp)
#define MyPidxx2Pid(x) (x ? (afs_int32)p_pid(x) : 0)
+#endif
#else
#if defined(AFS_SGI64_ENV)
#if defined(AFS_SGI65_ENV)
#if defined(LINUX_KEYRING_SUPPORT)
#include <linux/rwsem.h>
#include <linux/key.h>
+#if defined(KEY_TYPE_H_EXISTS)
+#include <linux/key-type.h>
+#endif
#ifndef KEY_ALLOC_IN_QUOTA
#define KEY_ALLOC_IN_QUOTA 1
#endif
if [ -x /usr/sbin/kextstat ]; then KMODSTAT=/usr/sbin/kextstat; fi
if [ -x /usr/sbin/kmodstat ]; then KMODSTAT=/usr/sbin/kmodstat; fi
+if [ -f $CONFIG/afs.conf ]; then
+ . $CONFIG/afs.conf
+fi
+
+# Check this file second so that if users have altered the file, it will
+# override the default options
+if [ -f $AFSDOPT ]; then
+ OPTIONS=`cat $AFSDOPT`
+fi
StartService()
{
echo "Starting OpenAFS"
- if [ -f $AFSDOPT ]; then
- OPTIONS=`cat $AFSDOPT`
+ if [ -z "$OPTIONS" ] || [ "$OPTIONS" = "AUTOMATIC" ] ; then
+ AFSD_OPTIONS="$VERBOSE"
else
- OPTIONS="$MEDIUM -fakestat"
+ AFSD_OPTIONS="$OPTIONS $VERBOSE"
fi
if [ "${NETWORKUP}" = "-NO-" ]; then
- echo $OPTIONS | grep -e '-dynroot' || exit
+ echo $AFSD_OPTIONS | grep -e '-dynroot' || exit
fi
# Need the commands ps, awk, kill, sleep
if [ -x /usr/afs/bin/bosserver ]; then
echo "Starting AFS Server processes"
/usr/afs/bin/bosserver
- OPTIONS="$OPTIONS -nosettime"
+ AFSD_OPTIONS="$AFSD_OPTIONS -nosettime"
sleep 30
fi
done
echo "Starting afsd"
- $AFSD $OPTIONS
+ $AFSD $AFSD_OPTIONS
+
+#
+# From /var/db/openafs/etc/config/afs.conf, call a post-init function or
+# command if it's been defined
+#
+ $AFS_POST_INIT
#
# Call afssettings (if it exists) to set customizable parameters
$CONFIG/afssettings
fi
+#
+# From /var/db/openafs/etc/config/afs.conf, set a sysname list if one was
+# configured.
+#
+ if [ -n "$AFS_SYSNAME" ] ; then
+ fs sysname $AFS_SYSNAME
+ fi
+
#
# Run package to update the disk
#
{
echo "Stopping AFS"
+#
+# If a pre-shutdown function was defined in /var/db/openafs/etc/config/afs.conf
+# was defined, then run it
+#
+ $AFS_PRE_SHUTDOWN
+
if $KMODSTAT | perl -e 'exit not grep /openafs/, <>' ; then
echo "Unmounting /afs"
umount -f /afs 2>&1 > /dev/console
echo
}
-SYSCNF=/etc/sysconfig/afs
+SYSCNF=${SYSCNF:-/etc/sysconfig/afs}
KERNEL_VERSION=`uname -r`
# Gather up options and post startup script name, if present
CACHEINFO=${CACHEINFO:-/usr/vice/etc/cacheinfo}
CACHE=${CACHEDIR:-/usr/vice/cache}
AFS=${AFSDIR:-/afs}
+AFSD=${AFSD:-/usr/vice/etc/afsd}
+BOSSERVER=${BOSSERVER:-/usr/afs/bin/bosserver}
+BOS=${BOS:-/usr/bin/bos}
+KILLAFS=${KILLAFS:-/usr/vice/etc/killafs}
# is_on returns 1 if value of arg is "on"
is_on() {
esac
}
-MODLOADDIR=/usr/vice/etc/modload
+MODLOADDIR=${MODLOADDIR:-/usr/vice/etc/modload}
# load_client loads the AFS client module if it's not already loaded.
load_client() {
# If LIBAFS is set, use it.
echo "Starting AFS services..... "
# Start bosserver, it if exists
- if is_on $AFS_SERVER && test -x /usr/afs/bin/bosserver ; then
- /usr/afs/bin/bosserver
+ if is_on $AFS_SERVER && test -x $BOSSERVER ; then
+ $BOSSERVER
test "$afs_rh" && touch /var/lock/subsys/afs
if is_on $WAIT_FOR_SALVAGE; then
# wait for fileserver to finish salvaging
sleep 10
- while /usr/bin/bos status localhost fs 2>&1 | grep 'Auxiliary.*salvaging'; do
+ while $BOS status localhost fs 2>&1 | grep 'Auxiliary.*salvaging'; do
echo "Waiting for salvager to finish..... "
sleep 10
done
fi
# Start AFS client
- if is_on $AFS_CLIENT && test -x /usr/vice/etc/afsd ; then
+ if is_on $AFS_CLIENT && test -x $AFSD ; then
generate_cacheinfo
choose_afsdoptions
- /usr/vice/etc/afsd ${AFSD_OPTIONS}
+ $AFSD ${AFSD_OPTIONS}
test "$afs_rh" && touch /var/lock/subsys/afs
$AFS_POST_INIT
fi
echo "Stopping AFS services..... "
if is_on $AFS_CLIENT ; then
- if [ -x /usr/vice/etc/killafs ] ; then
- runcmd "Sending all processes using /afs the TERM signal ..." /usr/vice/etc/killafs TERM
- runcmd "Sending all processes using /afs the KILL signal ..." /usr/vice/etc/killafs KILL
+ if [ -x $KILLAFS ] ; then
+ runcmd "Sending all processes using /afs the TERM signal ..." $KILLAFS TERM
+ runcmd "Sending all processes using /afs the KILL signal ..." $KILLAFS KILL
fi
umount /afs
fi
- if is_on $AFS_SERVER && test -x /usr/bin/bos ; then
+ if is_on $AFS_SERVER && test -x $BOS ; then
echo "Stopping AFS bosserver"
- /usr/bin/bos shutdown localhost -localauth -wait
+ $BOS shutdown localhost -localauth -wait
killall -HUP bosserver
fi
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.43.2.23 2007/10/23 14:31:29 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.43.2.25 2007/10/31 22:32:17 shadow Exp $");
#define VFS 1
return doSweepAFSCache(vFilesFound, cacheBaseDir, -2, maxDir);
}
-static
-ConfigCell(struct afsconf_cell *aci, char *arock, struct afsconf_dir *adir)
+static int
+ConfigCell(struct afsconf_cell *aci, void *arock, struct afsconf_dir *adir)
{
int isHomeCell;
int i, code;
static
ConfigCellAlias(struct afsconf_cellalias *aca,
- char *arock, struct afsconf_dir *adir)
+ void *arock, struct afsconf_dir *adir)
{
/* push the alias into the kernel */
call_syscall(AFSOP_ADDCELLALIAS, aca->aliasName, aca->realName);
#endif
#endif
-mainproc(struct cmd_syndesc *as, char *arock)
+mainproc(struct cmd_syndesc *as, void *arock)
{
static char rn[] = "afsd"; /*Name of this routine */
afs_int32 code; /*Result of fork() */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
RCSID
- ("$Header: /cvs/openafs/src/afsd/vsys.c,v 1.6 2003/07/15 23:14:31 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsd/vsys.c,v 1.6.2.1 2007/10/30 15:23:45 shadow Exp $");
#include <afs/afs_args.h>
#include <time.h>
#include <afsconfig.h>
#include <afs/param.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
RCSID
- ("$Header: /cvs/openafs/src/afsmonitor/afsmon-output.c,v 1.9 2003/07/15 23:14:32 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsmonitor/afsmon-output.c,v 1.9.2.1 2007/10/30 15:23:49 shadow Exp $");
#include <afs/xstat_fs.h>
#include <afs/xstat_cm.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afsmonitor/afsmon-win.c,v 1.10 2003/07/15 23:14:32 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsmonitor/afsmon-win.c,v 1.10.2.2 2007/11/26 21:21:48 shadow Exp $");
#include <stdio.h>
#include <signal.h>
#include <math.h>
#include <cmd.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
#undef IN
#include <time.h>
}
afsmon_Exit(0);
+ return 0; /* not reached */
}
}
}
}
-
+ return 0;
} /* display_Server_label */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afsmonitor/afsmonitor.c,v 1.18.2.3 2006/03/09 06:41:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsmonitor/afsmonitor.c,v 1.18.2.4 2007/10/31 04:13:32 shadow Exp $");
#include <stdio.h>
#include <math.h>
*----------------------------------------------------------------------*/
int
-afsmonInit(as)
- struct cmd_syndesc *as;
+afsmonInit(struct cmd_syndesc *as, void *arock)
{ /* afsmonInit() */
static char rn[] = "afsmonInit"; /* Routine name */
/*
* Set up the commands we understand.
*/
- ts = cmd_CreateSyntax("initcmd", afsmonInit, 0, "initialize the program");
+ ts = cmd_CreateSyntax("initcmd", afsmonInit, NULL, "initialize the program");
cmd_AddParm(ts, "-config", CMD_SINGLE, CMD_OPTIONAL,
"configuration file");
cmd_AddParm(ts, "-frequency", CMD_SINGLE, CMD_OPTIONAL,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/afsweb/weblog.c,v 1.8.2.1 2006/07/31 17:07:47 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afsweb/weblog.c,v 1.8.2.2 2007/10/31 04:13:33 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
zero_argc = argc;
zero_argv = argv;
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"obtain Kerberos authentication for web servers");
/* define the command line arguments */
* arrive through a pipe from the httpds, authenticates the user and
* returns a token (or a failure message) over the pipe
*/
-CommandProc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
-
+static int
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char name[MAXKTCNAMELEN];
char cell[MAXKTCREALMLEN];
--- /dev/null
+Makefile
+aklog
+asetkey
+klog
SRCS= aklog.c aklog_main.c krb_util.c linked_list.c
OBJS= aklog.o aklog_main.o krb_util.o linked_list.o
-all: aklog asetkey
+all: aklog asetkey klog
aklog: ${OBJS} ${AFSLIBS}
${CC} -o $@ ${CFLAGS} ${OBJS} ${AKLIBS} ${AFSLIBS} ${XLIBS}
asetkey: asetkey.o ${AFSLIBS}
${CC} -o $@ ${CFLAGS} asetkey.o ${AKLIBS} ${AFSLIBS} ${XLIBS}
+klog: klog.o skipwrap.o ${AFSLIBS}
+ ${CC} -o $@ ${CFLAGS} skipwrap.o klog.o ${AKLIBS} ${AFSLIBS} \
+ ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/librx.a ${XLIBS}
+
#
# Installation targets
#
# Misc. targets
#
clean:
- $(RM) -f *.o ${OBJS} aklog asetkey
+ $(RM) -f *.o ${OBJS} aklog asetkey klog
include ../config/Makefile.version
/*
- * $Id: aklog_main.c,v 1.1.2.20 2007/10/10 17:47:58 shadow Exp $
+ * $Id: aklog_main.c,v 1.1.2.23 2008/01/05 04:48:40 shadow Exp $
*
* Copyright 1990,1991 by the Massachusetts Institute of Technology
* For distribution and copying rights, see the file "mit-copyright.h"
#if !defined(lint) && !defined(SABER)
static char *rcsid =
- "$Id: aklog_main.c,v 1.1.2.20 2007/10/10 17:47:58 shadow Exp $";
+ "$Id: aklog_main.c,v 1.1.2.23 2008/01/05 04:48:40 shadow Exp $";
#endif /* lint || SABER */
#include <afsconfig.h>
#error "Must have either krb5_princ_size or krb5_principal_get_comp_string"
#endif
-#if !defined(HAVE_KRB5_ENCRYPT_TKT_PART) && defined(HAVE_ENCODE_KRB5_ENC_TKT_PART)
+#if !defined(HAVE_KRB5_ENCRYPT_TKT_PART) && defined(HAVE_ENCODE_KRB5_ENC_TKT_PART) && defined(HAVE_KRB5_C_ENCRYPT)
krb5_error_code
krb5_encrypt_tkt_part(krb5_context context,
const krb5_keyblock *key,
status = get_credv5(context, name, primary_instance, realm_of_cell,
&v5cred);
+#if !defined(USING_HEIMDAL) && defined(HAVE_KRB5_DECODE_TICKET)
+ if (status == 0 && strcmp(realm_of_cell, "") == 0) {
+ krb5_error_code code;
+ krb5_ticket *ticket;
+
+ code = krb5_decode_ticket(&v5cred->ticket, &ticket);
+
+ if (code != 0) {
+ fprintf(stderr,
+ "%s: Couldn't decode ticket to determine realm for "
+ "cell %s.\n",
+ progname, cell_to_use);
+ } else {
+ int len = realm_len(context, ticket->server);
+ /* This really shouldn't happen. */
+ if (len > REALM_SZ-1)
+ len = REALM_SZ-1;
+
+ strncpy(realm_of_cell, realm_data(context, ticket->server),
+ len);
+ realm_of_cell[len] = 0;
+
+ krb5_free_ticket(context, ticket);
+ }
+ }
+#endif
+
if ((status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || status == KRB5KRB_ERR_GENERIC) &&
!realm_of_cell[0]) {
char *afs_realm = afs_realm_of_cell(context, &ak_cellconfig, TRUE);
printf("Setting tokens. %s / %s @ %s \n",
aclient.name, aclient.instance, aclient.cell );
}
+#ifndef AFS_AIX51_ENV
/* on AIX 4.1.4 with AFS 3.4a+ if a write is not done before
* this routine, it will not add the token. It is not clear what
- * is going on here! So we will do the following operation
+ * is going on here! So we will do the following operation.
+ * On AIX 5, it causes the parent program to die, so we won't.
*/
write(2,"",0); /* dummy write */
+#endif
#ifndef WINDOWS
if ((status = ktc_SetToken(&aserver, &atoken, &aclient, afssetpag))) {
fprintf(stderr,
int *paddress,
krb5_creds** out_creds /* out */ )
{
-#if defined(USING_HEIMDAL) || (defined(HAVE_ENCODE_KRB5_ENC_TKT) && defined(HAVE_ENCODE_KRB5_TICKET))
+#if defined(USING_HEIMDAL) || (defined(HAVE_ENCODE_KRB5_ENC_TKT) && defined(HAVE_ENCODE_KRB5_TICKET) && defined(HAVE_KRB5_C_ENCRYPT))
krb5_error_code code;
krb5_keytab kt = 0;
krb5_kt_cursor cursor[1];
/*
- * $Id: asetkey.c,v 1.4.2.7 2007/04/10 18:43:40 shadow Exp $
+ * $Id: asetkey.c,v 1.4.2.9 2008/03/18 16:11:50 shadow Exp $
*
* asetkey - Manipulates an AFS KeyFile
*
*/
#include <afsconfig.h>
-#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
+#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_STDLIB_H
#include <stdlib.h>
-#endif
#ifdef HAVE_MEMORY_H
#include <memory.h>
#endif /* HAVE_MEMORY_H */
-#ifdef HAVE_STRING_H
#include <string.h>
-#else /* HAVE_STRING_H */
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif /* HAVE_STRINGS_H */
-#endif /* HAVE_STRING_H */
#include <afs/stds.h>
#include <krb5.h>
+#ifndef HAVE_KERBEROSV_HEIM_ERR_H
#include <afs/com_err.h>
+#endif
#include <afs/cellconfig.h>
#include <afs/keys.h>
#include <afs/dirpath.h>
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#include <afsconfig.h>
+#include <afs/param.h>
+
+#include <afs/stds.h>
+#include <sys/types.h>
+#include <rx/xdr.h>
+#ifdef AFS_AIX32_ENV
+#include <signal.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#include <errno.h>
+
+#include <lock.h>
+#include <ubik.h>
+
+#include <stdio.h>
+#include <pwd.h>
+#if 0
+#include <afs/com_err.h>
+#endif
+#include <afs/auth.h>
+#include <afs/afsutil.h>
+#include <afs/cellconfig.h>
+#ifdef AFS_RXK5
+#include "rxk5_utilafs.h"
+#endif
+#include <afs/ptclient.h>
+#include <afs/cmd.h>
+#include <krb5.h>
+
+#ifdef HAVE_KRB5_CREDS_KEYBLOCK
+#define USING_MIT 1
+#endif
+#ifdef HAVE_KRB5_CREDS_SESSION
+#define USING_HEIMDAL 1
+#endif
+
+#ifndef USING_HEIMDAL
+extern krb5_cc_ops krb5_mcc_ops;
+#endif
+
+#include "assert.h"
+
+
+/* This code borrowed heavily from the previous version of log. Here is the
+ intro comment for that program: */
+
+/*
+ log -- tell the Andrew Cache Manager your password
+ 5 June 1985
+ modified
+ February 1986
+
+ Further modified in August 1987 to understand cell IDs.
+
+ Further modified in October 2006 to understand kerberos 5.
+ */
+
+/* Current Usage:
+ klog [principal [password]] [-t] [-c cellname] [-k <k5realm>]
+
+ where:
+ principal is of the form 'name' or 'name@cell' which provides the
+ cellname. See the -c option below.
+ password is the user's password. This form is NOT recommended for
+ interactive users.
+ -t advises klog to write a Kerberos style ticket file in /tmp.
+ -c identifies cellname as the cell in which authentication is to take
+ place.
+ -k identifies an alternate kerberos realm to use provide
+ authentication services for the cell.
+ */
+
+#define KLOGEXIT(code) rx_Finalize(); \
+ (exit(!!code))
+extern int CommandProc(struct cmd_syndesc *as, char *arock);
+
+static int zero_argc;
+static char **zero_argv;
+
+static krb5_context k5context;
+static struct afsconf_dir *tdir;
+static int always_evil = 2; /* gcc optimizes 0 into bss. fools. */
+
+int
+main(int argc, char *argv[])
+{
+ struct cmd_syndesc *ts;
+ afs_int32 code;
+#ifdef AFS_AIX32_ENV
+ /*
+ * The following signal action for AIX is necessary so that in case of a
+ * crash (i.e. core is generated) we can include the user's data section
+ * in the core dump. Unfortunately, by default, only a partial core is
+ * generated which, in many cases, isn't too useful.
+ */
+ struct sigaction nsa;
+
+ sigemptyset(&nsa.sa_mask);
+ nsa.sa_handler = SIG_DFL;
+ nsa.sa_flags = SA_FULLDUMP;
+ sigaction(SIGABRT, &nsa, NULL);
+ sigaction(SIGSEGV, &nsa, NULL);
+#endif
+ zero_argc = argc;
+ zero_argv = argv;
+
+ ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ "obtain Kerberos authentication");
+
+#define aXFLAG 0
+#define aPRINCIPAL 1
+#define aPASSWORD 2
+#define aCELL 3
+#define aKRBREALM 4
+#define aPIPE 5
+#define aSILENT 6
+#define aLIFETIME 7
+#define aSETPAG 8
+#define aTMP 9
+#define aNOPRDB 10
+#define aUNWRAP 11
+#define aK5 12
+#define aK4 13
+
+ cmd_AddParm(ts, "-x", CMD_FLAG, CMD_OPTIONAL|CMD_HIDDEN, 0);
+ cmd_Seek(ts, aPRINCIPAL);
+ cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_OPTIONAL, "user name");
+ cmd_AddParm(ts, "-password", CMD_SINGLE, CMD_OPTIONAL, "user's password");
+ cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name");
+ cmd_AddParm(ts, "-k", CMD_SINGLE, CMD_OPTIONAL, "krb5 realm");
+ cmd_AddParm(ts, "-pipe", CMD_FLAG, CMD_OPTIONAL,
+ "read password from stdin");
+ cmd_AddParm(ts, "-silent", CMD_FLAG, CMD_OPTIONAL, "silent operation");
+ cmd_AddParm(ts, "-lifetime", CMD_SINGLE, CMD_OPTIONAL,
+ "ticket lifetime in hh[:mm[:ss]]");
+ cmd_AddParm(ts, "-setpag", CMD_FLAG, CMD_OPTIONAL,
+ "Create a new setpag before authenticating");
+ cmd_AddParm(ts, "-tmp", CMD_FLAG, CMD_OPTIONAL,
+ "write Kerberos-style ticket file in /tmp");
+ cmd_AddParm(ts, "-noprdb", CMD_FLAG, CMD_OPTIONAL, "don't consult pt");
+ cmd_AddParm(ts, "-unwrap", CMD_FLAG, CMD_OPTIONAL, "perform 524d conversion");
+#ifdef AFS_RXK5
+ cmd_AddParm(ts, "-k5", CMD_FLAG, CMD_OPTIONAL, "get rxk5 credentials");
+ cmd_AddParm(ts, "-k4", CMD_FLAG, CMD_OPTIONAL, "get rxkad credentials");
+#else
+ ++ts->nParms; /* skip -k5 */
+ cmd_AddParm(ts, "-k4", CMD_FLAG, CMD_OPTIONAL|CMD_HIDDEN, 0);
+#endif
+
+ code = cmd_Dispatch(argc, argv);
+ KLOGEXIT(code);
+}
+
+static char *
+getpipepass(void)
+{
+ static char gpbuf[BUFSIZ];
+ /* read a password from stdin, stop on \n or eof */
+ register int i, tc;
+ memset(gpbuf, 0, sizeof(gpbuf));
+ for (i = 0; i < (sizeof(gpbuf) - 1); i++) {
+ tc = fgetc(stdin);
+ if (tc == '\n' || tc == EOF)
+ break;
+ gpbuf[i] = tc;
+ }
+ return gpbuf;
+}
+
+void
+silent_errors(const char *who,
+ afs_int32 code,
+ const char *fmt,
+ va_list ap)
+{
+ /* ignore and don't print error */
+}
+
+#if defined(HAVE_KRB5_PRINC_SIZE) || defined(krb5_princ_size)
+
+#define get_princ_str(c, p, n) krb5_princ_component(c, p, n)->data
+#define get_princ_len(c, p, n) krb5_princ_component(c, p, n)->length
+#define num_comp(c, p) (krb5_princ_size(c, p))
+#define realm_data(c, p) krb5_princ_realm(c, p)->data
+#define realm_len(c, p) krb5_princ_realm(c, p)->length
+
+#elif defined(HAVE_KRB5_PRINCIPAL_GET_COMP_STRING)
+
+#define get_princ_str(c, p, n) krb5_principal_get_comp_string(c, p, n)
+#define get_princ_len(c, p, n) strlen(krb5_principal_get_comp_string(c, p, n))
+#define num_comp(c, p) ((p)->name.name_string.len)
+#define realm_data(c, p) krb5_realm_data(krb5_principal_get_realm(c, p))
+#define realm_len(c, p) krb5_realm_length(krb5_principal_get_realm(c, p))
+
+#else
+#error "Must have either krb5_princ_size or krb5_principal_get_comp_string"
+#endif
+
+#if defined(HAVE_KRB5_CREDS_KEYBLOCK)
+
+#define get_cred_keydata(c) c->keyblock.contents
+#define get_cred_keylen(c) c->keyblock.length
+#define get_creds_enctype(c) c->keyblock.enctype
+
+#elif defined(HAVE_KRB5_CREDS_SESSION)
+
+#define get_cred_keydata(c) c->session.keyvalue.data
+#define get_cred_keylen(c) c->session.keyvalue.length
+#define get_creds_enctype(c) c->session.keytype
+
+#else
+#error "Must have either keyblock or session member of krb5_creds"
+#endif
+
+static int
+whoami(struct ktc_token *atoken,
+ struct afsconf_cell *cellconfig,
+ struct ktc_principal *aclient,
+ int *vicep)
+{
+ int scIndex;
+ int code;
+ int i;
+ struct ubik_client *ptconn = 0;
+ struct rx_securityClass *sc;
+ struct rx_connection *conns[MAXSERVERS+1];
+ idlist lids[1];
+ namelist lnames[1];
+ char tempname[PR_MAXNAMELEN + 1];
+
+ memset(lnames, 0, sizeof *lnames);
+ memset(lids, 0, sizeof *lids);
+ scIndex = 2;
+ sc = rxkad_NewClientSecurityObject(rxkad_auth,
+ &atoken->sessionKey, atoken->kvno,
+ atoken->ticketLen, atoken->ticket);
+ for (i = 0; i < cellconfig->numServers; ++i)
+ conns[i] = rx_NewConnection(cellconfig->hostAddr[i].sin_addr.s_addr,
+ cellconfig->hostAddr[i].sin_port, PRSRV, sc, scIndex);
+ conns[i] = 0;
+ ptconn = 0;
+ if ((code = ubik_ClientInit(conns, &ptconn)))
+ goto Failed;
+ if (*aclient->instance)
+ snprintf (tempname, sizeof tempname, "%s.%s",
+ aclient->name, aclient->instance);
+ else
+ snprintf (tempname, sizeof tempname, "%s", aclient->name);
+ lnames->namelist_len = 1;
+ lnames->namelist_val = (prname *) tempname;
+ code = ubik_PR_NameToID(ptconn, 0, lnames, lids);
+ if (lids->idlist_val) {
+ *vicep = *lids->idlist_val;
+ }
+Failed:
+ if (lids->idlist_val) free(lids->idlist_val);
+ if (ptconn) ubik_ClientDestroy(ptconn);
+ return code;
+}
+
+static void
+k5_to_k4_name(krb5_context k5context,
+ krb5_principal k5princ,
+ struct ktc_principal *ktcprinc)
+{
+ int i;
+
+ switch(num_comp(k5context, k5princ)) {
+ default:
+ /* case 2: */
+ i = get_princ_len(k5context, k5princ, 1);
+ if (i > MAXKTCNAMELEN-1) i = MAXKTCNAMELEN-1;
+ memcpy(ktcprinc->instance, get_princ_str(k5context, k5princ, 1), i);
+ /* fall through */
+ case 1:
+ i = get_princ_len(k5context, k5princ, 0);
+ if (i > MAXKTCNAMELEN-1) i = MAXKTCNAMELEN-1;
+ memcpy(ktcprinc->name, get_princ_str(k5context, k5princ, 0), i);
+ /* fall through */
+ case 0:
+ break;
+ }
+}
+
+/* save and reuse password. This is necessary to make
+ * "direct to service" authentication work with most
+ * flavors of kerberos, when the afs principal has no instance.
+ */
+struct kp_arg {
+ char **pp, *pstore;
+};
+krb5_error_code
+klog_prompter(krb5_context context,
+ void *a,
+ const char *name,
+ const char *banner,
+ int num_prompts,
+ krb5_prompt prompts[])
+{
+ krb5_error_code code;
+ int i, type;
+#ifndef USING_HEIMDAL
+ krb5_prompt_type *types;
+#endif
+ struct kp_arg *kparg = (struct kp_arg *) a;
+ code = krb5_prompter_posix(context, a, name, banner, num_prompts, prompts);
+ if (code) return code;
+#ifndef USING_HEIMDAL
+ if ((types = krb5_get_prompt_types(context)))
+#endif
+ for (i = 0; i < num_prompts; ++i) {
+#ifdef USING_HEIMDAL
+ type = prompts[i].type;
+#else
+ type = types[i];
+#endif
+#if 0
+ printf ("i%d t%d <%.*s>\n", i,
+type,
+prompts[i].reply->length,
+prompts[i].reply->data);
+#endif
+ switch(type) {
+ case KRB5_PROMPT_TYPE_PASSWORD:
+ case KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN:
+ memcpy(kparg->pstore, prompts[i].reply->data, prompts[i].reply->length);
+ kparg->pstore[prompts[i].reply->length] = 0;
+ *kparg->pp = kparg->pstore;
+ }
+ }
+ return 0;
+}
+
+int
+CommandProc(struct cmd_syndesc *as, char *arock)
+{
+ krb5_principal princ = 0;
+ char *cell, *pname, **hrealms, *service;
+ char service_temp[MAXKTCREALMLEN + 20];
+ char realm[MAXKTCREALMLEN];
+ char lrealm[MAXKTCREALMLEN]; /* uppercase copy of local cellname */
+ krb5_creds incred[1], mcred[1], *outcred = 0, *afscred;
+ krb5_ccache cc = 0;
+ krb5_get_init_creds_opt gic_opts[1];
+ char *tofree, *outname;
+ int code;
+ char *what;
+ int i, dosetpag, evil, noprdb, id;
+#ifdef AFS_RXK5
+ int authtype;
+#endif
+ krb5_data enc_part[1];
+ time_t lifetime; /* requested ticket lifetime */
+ krb5_prompter_fct pf = NULL;
+ char *pass = 0;
+ void *pa = 0;
+ struct kp_arg klog_arg[1];
+
+ char passwd[BUFSIZ];
+ struct afsconf_cell cellconfig[1];
+
+ static char rn[] = "klog"; /*Routine name */
+ static int Pipe = 0; /* reading from a pipe */
+ static int Silent = 0; /* Don't want error messages */
+
+ int local; /* explicit cell is same a local one */
+ int writeTicketFile = 0; /* write ticket file to /tmp */
+
+ char *reason; /* string describing errors */
+
+ service = 0;
+ memset(incred, 0, sizeof *incred);
+ /* blow away command line arguments */
+ for (i = 1; i < zero_argc; i++)
+ memset(zero_argv[i], 0, strlen(zero_argv[i]));
+ zero_argc = 0;
+ memset(klog_arg, 0, sizeof *klog_arg);
+
+ /* first determine quiet flag based on -silent switch */
+ Silent = (as->parms[aSILENT].items ? 1 : 0);
+
+ if (Silent) {
+ set_com_err_hook(silent_errors);
+ }
+
+ if ((code = krb5_init_context(&k5context))) {
+ com_err(rn, code, "while initializing Kerberos 5 library");
+ KLOGEXIT(code);
+ }
+ if ((code = rx_Init(0))) {
+ com_err(rn, code, "while initializing rx");
+ KLOGEXIT(code);
+ }
+ initialize_U_error_table();
+ /*initialize_krb5_error_table();*/
+ initialize_RXK_error_table();
+ initialize_KTC_error_table();
+ initialize_ACFG_error_table();
+ /* initialize_rx_error_table(); */
+ if (!(tdir = afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH))) {
+ com_err(rn, 0, "can't get afs configuration (afsconf_Open(%s))",
+ rn, AFSDIR_CLIENT_ETC_DIRPATH);
+ KLOGEXIT(1);
+ }
+
+ /* Parse remaining arguments. */
+
+ dosetpag = !! as->parms[aSETPAG].items;
+ Pipe = !! as->parms[aPIPE].items;
+ writeTicketFile = !! as->parms[aTMP].items;
+ noprdb = !! as->parms[aNOPRDB].items;
+ evil = (always_evil&1) || !! as->parms[aUNWRAP].items;
+
+#ifdef AFS_RXK5
+ authtype = 0;
+ if (as->parms[aK5].items)
+ authtype |= FORCE_RXK5;
+ if (as->parms[aK4].items)
+ authtype |= FORCE_RXKAD;
+ if (!authtype)
+ authtype |= env_afs_rxk5_default();
+#endif
+
+ cell = as->parms[aCELL].items ? cell = as->parms[aCELL].items->data : 0;
+ if ((code = afsconf_GetCellInfo(tdir, cell, "afsprot", cellconfig))) {
+ if (cell)
+ com_err(rn, code, "Can't get cell information for '%s'", cell);
+ else
+ com_err(rn, code, "Can't get determine local cell!");
+ KLOGEXIT(code);
+ }
+
+ if (as->parms[aKRBREALM].items) {
+ code = krb5_set_default_realm(k5context,
+ (const char *) as->parms[aKRBREALM].items);
+ if (code) {
+ com_err(rn, code, "Can't make <%s> the default realm",
+ as->parms[aKRBREALM].items);
+ KLOGEXIT(code);
+ }
+ }
+ else if ((code = krb5_get_host_realm(k5context, cellconfig->hostName[0], &hrealms))) {
+ com_err(rn, code, "Can't get realm for host <%s> in cell <%s>\n",
+ cellconfig->hostName[0], cellconfig->name);
+ KLOGEXIT(code);
+ } else {
+ if (hrealms && *hrealms) {
+ code = krb5_set_default_realm(k5context,
+ *hrealms);
+ if (code) {
+ com_err(rn, code, "Can't make <%s> the default realm",
+ *hrealms);
+ KLOGEXIT(code);
+ }
+ }
+ if (hrealms) krb5_free_host_realm(k5context, hrealms);
+ }
+
+ id = getuid();
+ if (as->parms[aPRINCIPAL].items) {
+ pname = as->parms[aPRINCIPAL].items->data;
+ } else {
+ /* No explicit name provided: use Unix uid. */
+ struct passwd *pw;
+ pw = getpwuid(id);
+ if (pw == 0) {
+ com_err(rn, 0,
+ "Can't figure out your name from your user id (%d).", id);
+ if (!Silent)
+ fprintf(stderr, "%s: Try providing the user name.\n", rn);
+ KLOGEXIT(1);
+ }
+ pname = pw->pw_name;
+ }
+ code = krb5_parse_name(k5context, pname, &princ);
+ if (code) {
+ com_err(rn, code, "Can't parse principal <%s>", pname);
+ KLOGEXIT(code);
+ }
+
+ if (as->parms[aPASSWORD].items) {
+ /*
+ * Current argument is the desired password string. Remember it in
+ * our local buffer, and zero out the argument string - anyone can
+ * see it there with ps!
+ */
+ strncpy(passwd, as->parms[aPASSWORD].items->data, sizeof(passwd));
+ memset(as->parms[aPASSWORD].items->data, 0,
+ strlen(as->parms[aPASSWORD].items->data));
+ pass = passwd;
+ }
+
+ if (as->parms[aLIFETIME].items) {
+ char *life = as->parms[aLIFETIME].items->data;
+ char *sp; /* string ptr to rest of life */
+ lifetime = 3600 * strtol(life, &sp, 0); /* hours */
+ if (sp == life) {
+ bad_lifetime:
+ if (!Silent)
+ fprintf(stderr, "%s: translating '%s' to lifetime failed\n",
+ rn, life);
+ return 1;
+ }
+ if (*sp == ':') {
+ life = sp + 1; /* skip the colon */
+ lifetime += 60 * strtol(life, &sp, 0); /* minutes */
+ if (sp == life)
+ goto bad_lifetime;
+ if (*sp == ':') {
+ life = sp + 1;
+ lifetime += strtol(life, &sp, 0); /* seconds */
+ if (sp == life)
+ goto bad_lifetime;
+ if (*sp)
+ goto bad_lifetime;
+ } else if (*sp)
+ goto bad_lifetime;
+ } else if (*sp)
+ goto bad_lifetime;
+ } else
+ lifetime = 0;
+
+ /* Get the password if it wasn't provided. */
+ if (!pass) {
+ if (Pipe) {
+ strncpy(passwd, getpipepass(), sizeof(passwd));
+ pass = passwd;
+ } else {
+ pf = klog_prompter;
+ pa = (char *)klog_arg;
+ }
+ }
+
+ service = 0;
+#ifdef AFS_RXK5
+ if (authtype & FORCE_RXK5) {
+ tofree = get_afs_krb5_svc_princ(cellconfig);
+ snprintf(service_temp, sizeof service_temp, "%s", tofree);
+ } else
+#endif
+ snprintf (service_temp, sizeof service_temp, "afs/%s", cellconfig->name);
+ if (writeTicketFile)
+ service = 0;
+ else
+ service = service_temp;
+
+ klog_arg->pp = &pass;
+ klog_arg->pstore = passwd;
+ /* XXX should allow k5 to prompt in most cases -- what about expired pw?*/
+ krb5_get_init_creds_opt_init(gic_opts);
+ for (;;) {
+ code = krb5_get_init_creds_password(k5context,
+ incred,
+ princ,
+ pass,
+ pf, /* prompter */
+ pa, /* data */
+ 0, /* start_time */
+ service, /* in_tkt_service */
+ gic_opts);
+ if (code != KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || service != service_temp) break;
+#ifdef AFS_RXK5
+ if (authtype & FORCE_RXK5) break;
+#endif
+ service = "afs";
+ }
+ memset(passwd, 0, sizeof(passwd));
+ if (code) {
+ char *r = 0;
+ if (krb5_get_default_realm(k5context, &r))
+ r = 0;
+ if (service)
+ com_err(rn, code, "Unable to authenticate to use %s", service);
+ else if (r)
+ com_err(rn, code, "Unable to authenticate in realm %s", r);
+ else
+ com_err(rn, code, "Unable to authenticate to use cell %s",
+ cellconfig->name);
+ if (r) free(r);
+ KLOGEXIT(code);
+ }
+
+ if (service) {
+ afscred = incred;
+ } else {
+ for (;;writeTicketFile = 0) {
+ if (writeTicketFile) {
+ what = "getting default ccache";
+ code = krb5_cc_default(k5context, &cc);
+ } else {
+#ifdef HAVE_KRB5_CC_REGISTER
+ what = "krb5_cc_register";
+ code = krb5_cc_register(k5context, &krb5_mcc_ops, FALSE);
+ if (code && code != KRB5_CC_TYPE_EXISTS) goto Failed;
+#endif
+ what = "krb5_cc_resolve";
+ code = krb5_cc_resolve(k5context, "MEMORY:core", &cc);
+ if (code) goto Failed;
+ }
+ what = "initializing ccache";
+ code = krb5_cc_initialize(k5context, cc, princ);
+ if (code) goto Failed;
+ what = "writing Kerberos ticket file";
+ code = krb5_cc_store_cred(k5context, cc, incred);
+ if (code) goto Failed;
+ if (writeTicketFile)
+ fprintf(stderr,
+ "Wrote ticket file to %s\n",
+ krb5_cc_get_name(k5context, cc));
+ break;
+ Failed:
+ if (code)
+ com_err(rn, code, what);
+ if (writeTicketFile) {
+ if (cc) {
+ krb5_cc_close(k5context, cc);
+ cc = 0;
+ }
+ continue;
+ }
+ KLOGEXIT(code);
+ }
+
+ for (service = service_temp;;service = "afs") {
+ memset(mcred, 0, sizeof *mcred);
+ mcred->client = princ;
+ code = krb5_parse_name(k5context, service, &mcred->server);
+ if (code) {
+ com_err(rn, code, "Unable to parse service <%s>\n", service);
+ KLOGEXIT(code);
+ }
+ if (tofree) { free(tofree); tofree = 0; }
+ if (!(code = krb5_unparse_name(k5context, mcred->server, &outname)))
+ tofree = outname;
+ else outname = service;
+ code = krb5_get_credentials(k5context, 0, cc, mcred, &outcred);
+ krb5_free_principal(k5context, mcred->server);
+ if (code != KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || service != service_temp) break;
+#ifdef AFS_RXK5
+ if (authtype & FORCE_RXK5) break;
+#endif
+ }
+ afscred = outcred;
+ }
+ if (code) {
+ com_err(rn, code, "Unable to get credentials to use %s", outname);
+ KLOGEXIT(code);
+ }
+
+#ifdef AFS_RXK5
+ if (authtype & FORCE_RXK5) {
+ struct ktc_principal aserver[1];
+ int viceid = 555;
+
+ memset(aserver, 0, sizeof *aserver);
+ strncpy(aserver->cell, cellconfig->name, MAXKTCREALMLEN-1);
+ code = ktc_SetK5Token(k5context, aserver, afscred, viceid, dosetpag);
+ if (code) {
+ com_err(rn, code, "Unable to store tokens for cell %s\n",
+ cellconfig->name);
+ KLOGEXIT(1);
+ }
+ } else
+#endif
+ {
+ struct ktc_principal aserver[1], aclient[1];
+ struct ktc_token atoken[1];
+
+ memset(atoken, 0, sizeof *atoken);
+ if (evil) {
+ atoken->kvno = RXKAD_TKT_TYPE_KERBEROS_V5_ENCPART_ONLY;
+ if (afs_krb5_skip_ticket_wrapper(afscred->ticket.data,
+ afscred->ticket.length, &enc_part->data,
+ &enc_part->length)) {
+ com_err(rn, 0, "Can't unwrap %s AFS credential",
+ cellconfig->name);
+ KLOGEXIT(1);
+ }
+ } else {
+ atoken->kvno = RXKAD_TKT_TYPE_KERBEROS_V5;
+ *enc_part = afscred->ticket;
+ }
+ atoken->startTime = afscred->times.starttime;
+ atoken->endTime = afscred->times.endtime;
+ memcpy(&atoken->sessionKey, get_cred_keydata(afscred),
+ get_cred_keylen(afscred));
+ memcpy(atoken->ticket, enc_part->data,
+ atoken->ticketLen = enc_part->length);
+ memset(aserver, 0, sizeof *aserver);
+ strncpy(aserver->name, "afs", 4);
+ strncpy(aserver->cell, cellconfig->name, MAXKTCREALMLEN-1);
+ memset(aclient, 0, sizeof *aclient);
+ i = realm_len(k5context, afscred->client);
+ if (i > MAXKTCREALMLEN-1) i = MAXKTCREALMLEN-1;
+ memcpy(aclient->cell, realm_data(k5context, afscred->client), i);
+ if (!noprdb) {
+ int viceid;
+ k5_to_k4_name(k5context, afscred->client, aclient);
+ code = whoami(atoken, cellconfig, aclient, &viceid);
+ if (code) {
+ com_err(rn, code, "Can't get your viceid", cellconfig->name);
+ *aclient->name = 0;
+ } else
+ snprintf(aclient->name, MAXKTCNAMELEN-1, "AFS ID %d", viceid);
+ }
+ if (!*aclient->name)
+ k5_to_k4_name(k5context, afscred->client, aclient);
+ code = ktc_SetToken(aserver, atoken, aclient, dosetpag);
+ if (code) {
+ com_err(rn, code, "Unable to store tokens for cell %s\n",
+ cellconfig->name);
+ KLOGEXIT(1);
+ }
+ }
+
+ krb5_free_principal(k5context, princ);
+ krb5_free_cred_contents(k5context, incred);
+ if (outcred) krb5_free_creds(k5context, outcred);
+ if (cc)
+ krb5_cc_close(k5context, cc);
+ if (tofree) free(tofree);
+
+ return 0;
+}
--- /dev/null
+
+/*
+ * Copyright (c) 2006
+ * The Regents of the University of Michigan
+ * ALL RIGHTS RESERVED
+ *
+ * Permission is granted to use, copy, create derivative works
+ * and redistribute this software and such derivative works
+ * for any purpose, so long as the name of the University of
+ * Michigan is not used in any advertising or publicity
+ * pertaining to the use or distribution of this software
+ * without specific, written prior authorization. If the
+ * above copyright notice or any other identification of the
+ * University of Michigan is included in any copy of any
+ * portion of this software, then the disclaimer below must
+ * also be included.
+ *
+ * This software is provided as is, without representation
+ * from the University of Michigan as to its fitness for any
+ * purpose, and without warranty by the University of
+ * Michigan of any kind, either express or implied, including
+ * without limitation the implied warranties of
+ * merchantability and fitness for a particular purpose. The
+ * regents of the University of Michigan shall not be liable
+ * for any damages, including special, indirect, incidental, or
+ * consequential damages, with respect to any claim arising
+ * out of or in connection with the use of the software, even
+ * if it has been or is hereafter advised of the possibility of
+ * such damages.
+ */
+
+#include <afsconfig.h>
+#include <afs/param.h>
+#include <stdio.h>
+#include <aklog.h>
+#include <krb5.h>
+
+/* evil hack */
+#define SEQUENCE 16
+#define CONSTRUCTED 32
+#define APPLICATION 64
+#define CONTEXT_SPECIFIC 128
+static int skip_get_number(char **pp, size_t *lp, int *np)
+{
+ unsigned l;
+ int r, n, i;
+ char *p;
+
+ l = *lp;
+ if (l < 1) {
+#ifdef DEBUG
+ fprintf(stderr, "skip_bad_number: missing number\n");
+#endif
+ return -1;
+ }
+ p = *pp;
+ r = (unsigned char)*p;
+ ++p; --l;
+ if (r & 0x80) {
+ n = (r&0x7f);
+ if (l < n) {
+#ifdef DEBUG
+ fprintf(stderr, "skip_bad_number: truncated number\n");
+#endif
+ return -1;
+ }
+ r = 0;
+ for (i = n; --i >= 0; ) {
+ r <<= 8;
+ r += (unsigned char)*p;
+ ++p; --l;
+ }
+ }
+ *np = r;
+ *pp = p;
+ *lp = l;
+ return 0;
+}
+
+int
+afs_krb5_skip_ticket_wrapper(char *tix, size_t tixlen, char **enc, size_t *enclen)
+{
+ char *p = tix;
+ size_t l = tixlen;
+ int code;
+ int num;
+
+ if (l < 1) return -1;
+ if (*p != (char) (CONSTRUCTED+APPLICATION+1)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l != num) return -1;
+ if (l < 1) return -1;
+ if (*p != (char)(CONSTRUCTED+SEQUENCE)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l != num) return -1;
+ if (l < 1) return -1;
+ if (*p != (char)(CONSTRUCTED+CONTEXT_SPECIFIC+0)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l < num) return -1;
+ l -= num; p += num;
+ if (l < 1) return -1;
+ if (*p != (char)(CONSTRUCTED+CONTEXT_SPECIFIC+1)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l < num) return -1;
+ l -= num; p += num;
+ if (l < 1) return -1;
+ if (*p != (char)(CONSTRUCTED+CONTEXT_SPECIFIC+2)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l < num) return -1;
+ l -= num; p += num;
+ if (l < 1) return -1;
+ if (*p != (char)(CONSTRUCTED+CONTEXT_SPECIFIC+3)) return -1;
+ ++p; --l;
+ if ((code = skip_get_number(&p, &l, &num))) return code;
+ if (l != num) return -1;
+ *enc = p;
+ *enclen = l;
+ return 0;
+}
#endif
RCSID
- ("$Header: /cvs/openafs/src/auth/authcon.c,v 1.13.2.1 2004/08/25 07:09:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/authcon.c,v 1.13.2.3 2007/11/01 16:09:43 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include "afs/stds.h"
#include "afs/pthread_glock.h"
#include "des/des.h"
+#include "des/des_prototypes.h"
#include "rx/rxkad.h"
#include "rx/rx.h"
#include "afs/cellconfig.h"
#include <netinet/in.h>
#include <netdb.h>
#endif
+#include <string.h>
+#include <stdio.h>
#include <des.h>
+#include <des_prototypes.h>
#include <rx/rxkad.h>
#include <rx/rx.h>
#include "cellconfig.h"
/* return a null security object if nothing else can be done */
static afs_int32
-QuickAuth(astr, aindex)
- struct rx_securityClass **astr;
- afs_int32 *aindex;
+QuickAuth(struct rx_securityClass **astr, afs_int32 *aindex)
{
register struct rx_securityClass *tc;
tc = rxnull_NewClientSecurityObject();
#if !defined(UKERNEL)
/* Return an appropriate security class and index */
afs_int32
-afsconf_ServerAuth(adir, astr, aindex)
- register struct afsconf_dir *adir;
- struct rx_securityClass **astr;
- afs_int32 *aindex;
+afsconf_ServerAuth(register struct afsconf_dir *adir,
+ struct rx_securityClass **astr,
+ afs_int32 *aindex)
{
register struct rx_securityClass *tclass;
#endif /* !defined(UKERNEL) */
static afs_int32
-GenericAuth(adir, astr, aindex, enclevel)
- struct afsconf_dir *adir;
- struct rx_securityClass **astr;
- afs_int32 *aindex;
- rxkad_level enclevel;
+GenericAuth(struct afsconf_dir *adir,
+ struct rx_securityClass **astr,
+ afs_int32 *aindex,
+ rxkad_level enclevel)
{
char tbuffer[256];
struct ktc_encryptionKey key, session;
* tells rxkad to encrypt the data, too.
*/
afs_int32
-afsconf_ClientAuthSecure(adir, astr, aindex)
- struct afsconf_dir *adir;
- struct rx_securityClass **astr;
- afs_int32 *aindex;
+afsconf_ClientAuthSecure(struct afsconf_dir *adir,
+ struct rx_securityClass **astr,
+ afs_int32 *aindex)
{
afs_int32 rc;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.14 2006/12/30 16:56:39 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.19 2007/11/02 18:26:38 shadow Exp $");
#include <afs/stds.h>
#include <afs/pthread_glock.h>
#ifdef UKERNEL
#include "afs/sysincludes.h"
#include "afsincludes.h"
+#include "des/des.h"
+#include "rx/rxkad.h"
#else /* UKERNEL */
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <rx/rxkad.h>
+#include <rx/rx.h>
#endif /* UKERNEL */
#include <afs/afsutil.h>
#include "cellconfig.h"
static int
afsconf_Check(register struct afsconf_dir *adir)
{
- char tbuffer[256], *p;
+ char tbuffer[256];
+#ifdef AFS_NT40_ENV
+ char *p;
+#endif
struct stat tstat;
register afs_int32 code;
static int
afsconf_Touch(register struct afsconf_dir *adir)
{
- char tbuffer[256], *p;
+ char tbuffer[256];
#ifndef AFS_NT40_ENV
struct timeval tvp[2];
+#else
+ char *p;
#endif
adir->timeRead = 0; /* just in case */
/* call aproc(entry, arock, adir) for all cells. Proc must return 0, or we'll stop early and return the code it returns */
int
afsconf_CellApply(struct afsconf_dir *adir,
- int (*aproc) (struct afsconf_cell * cell, char *arock,
- struct afsconf_dir * dir), char *arock)
+ int (*aproc) (struct afsconf_cell * cell, void *arock,
+ struct afsconf_dir * dir), void *arock)
{
register struct afsconf_entry *tde;
register afs_int32 code;
int
afsconf_CellAliasApply(struct afsconf_dir *adir,
int (*aproc) (struct afsconf_cellalias * alias,
- char *arock, struct afsconf_dir * dir),
- char *arock)
+ void *arock, struct afsconf_dir * dir),
+ void *arock)
{
register struct afsconf_aliasentry *tde;
register afs_int32 code;
/* get latest key */
afs_int32
-afsconf_GetLatestKey(struct afsconf_dir * adir, afs_int32 * avno, char *akey)
+afsconf_GetLatestKey(struct afsconf_dir * adir, afs_int32 * avno,
+ struct ktc_encryptionKey *akey)
{
register int i;
int maxa;
/* get a particular key */
int
-afsconf_GetKey(struct afsconf_dir *adir, afs_int32 avno, char *akey)
+afsconf_GetKey(void *rock, afs_int32 avno, struct ktc_encryptionKey *akey)
{
+ struct afsconf_dir *adir = (struct afsconf_dir *) rock;
register int i, maxa;
register struct afsconf_key *tk;
register afs_int32 code;
extern struct afsconf_dir *afsconf_Open(register const char *adir);
extern int afsconf_CellApply(struct afsconf_dir *adir,
int (*aproc) (struct afsconf_cell * cell,
- char *arock,
+ void *arock,
struct afsconf_dir * dir),
- char *arock);
+ void *arock);
extern int afsconf_CellAliasApply(struct afsconf_dir *adir,
int (*aproc) (struct afsconf_cellalias *
- alias, char *arock,
+ alias, void *arock,
struct afsconf_dir * dir),
- char *arock);
+ void *arock);
extern int afsconf_GetExtendedCellInfo(struct afsconf_dir *adir,
char *acellName, char *aservice,
struct afsconf_cell *acellInfo,
extern int afsconf_GetKeys(struct afsconf_dir *adir,
struct afsconf_keys *astr);
extern afs_int32 afsconf_GetLatestKey(struct afsconf_dir *adir,
- afs_int32 * avno, char *akey);
-extern int afsconf_GetKey(struct afsconf_dir *adir, afs_int32 avno,
- char *akey);
+ afs_int32 * avno,
+ struct ktc_encryptionKey *akey);
+extern int afsconf_GetKey(void *rock, afs_int32 avno,
+ struct ktc_encryptionKey *akey);
extern int afsconf_AddKey(struct afsconf_dir *adir, afs_int32 akvno,
char akey[8], afs_int32 overwrite);
extern int afsconf_DeleteKey(struct afsconf_dir *adir, afs_int32 akvno);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/copyauth.c,v 1.6 2003/07/15 23:14:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/copyauth.c,v 1.6.2.2 2007/11/01 16:09:43 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <sys/types.h>
#include "auth.h"
#ifdef AFS_NT40_ENV
char whoami[256];
-main(argc, argv)
- int argc;
- char **argv;
+int
+main(int argc, char **argv)
{
char localName[64];
register afs_int32 code;
#endif
RCSID
- ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15.2.7 2007/08/09 14:59:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15.2.10 2007/12/13 18:54:09 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include <unistd.h>
#endif
#include <stdio.h>
+#include <stdlib.h>
#include <afs/stds.h>
#include <afs/pthread_glock.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/vice.h>
#ifdef AFS_AIX_ENV
#include <sys/lockf.h>
+#ifdef AFS_AIX51_ENV
+#include <sys/cred.h>
+#include <sys/pag.h>
+#endif
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
/* the following routines aren't static anymore on behalf of the kerberos IV
* compatibility library built in subtree krb.
*/
-int afs_tf_init(), afs_tf_get_pname(), afs_tf_get_pinst(), afs_tf_get_cred();
-int afs_tf_save_cred(), afs_tf_close(), afs_tf_create();
-int afs_tf_dest_tkt();
-static void ktc_LocalCell();
+int afs_tf_init(char *, int);
+int afs_tf_get_pname(char *);
+int afs_tf_get_pinst(char *);
+int afs_tf_get_cred(struct ktc_principal *, struct ktc_token *);
+int afs_tf_save_cred(struct ktc_principal *, struct ktc_token *,
+ struct ktc_principal *);
+int afs_tf_close(void);
+int afs_tf_create(char *, char *);
+int afs_tf_dest_tkt(void);
+static void ktc_LocalCell(void);
#endif /* AFS_KERBEROS_ENV */
#ifdef AFS_DUX40_ENV
* now. */
static int
-NewSetToken(aserver, atoken, aclient, flags)
- struct ktc_principal *aserver;
- struct ktc_principal *aclient;
- struct ktc_token *atoken;
- afs_int32 flags;
+NewSetToken(struct ktc_principal *aserver,
+ struct ktc_token *atoken,
+ struct ktc_principal *aclient,
+ afs_int32 flags)
{
TRY_KERNEL(KTC_SETTOKEN_OP, aserver, aclient, atoken,
sizeof(struct ktc_token));
(3*sizeof(afs_int32)+MAXKTCTICKETLEN+sizeof(struct ClearToken)+MAXKTCREALMLEN)
static int
-OldSetToken(aserver, atoken, aclient, flags)
- struct ktc_principal *aserver, *aclient;
- struct ktc_token *atoken;
- afs_int32 flags;
+OldSetToken(struct ktc_principal *aserver, struct ktc_token *atoken,
+ struct ktc_principal *aclient, afs_int32 flags)
{
struct ViceIoctl iob;
char tbuffer[MAXPIOCTLTOKENLEN];
return 0;
}
-
-ktc_SetToken(aserver, atoken, aclient, flags)
- struct ktc_principal *aserver;
- struct ktc_principal *aclient;
- struct ktc_token *atoken;
- afs_int32 flags;
+int
+ktc_SetToken(struct ktc_principal *aserver,
+ struct ktc_token *atoken,
+ struct ktc_principal *aclient,
+ afs_int32 flags)
{
int ncode, ocode;
/* get token, given server we need and token buffer. aclient will eventually
* be set to our identity to the server.
*/
-ktc_GetToken(aserver, atoken, atokenLen, aclient)
- struct ktc_principal *aserver, *aclient;
- int atokenLen;
- struct ktc_token *atoken;
+int
+ktc_GetToken(struct ktc_principal *aserver, struct ktc_token *atoken,
+ int atokenLen, struct ktc_principal *aclient)
{
struct ViceIoctl iob;
char tbuffer[MAXPIOCTLTOKENLEN];
afs_int32 temp;
int maxLen; /* biggest ticket we can copy */
int tktLen; /* server ticket length */
+#ifdef AFS_KERBEROS_ENV
char found = 0;
+#endif
LOCK_GLOBAL_MUTEX;
#ifndef NO_AFS_CLIENT
found = 1;
} else {
char tmpstring[MAXHOSTCHARS];
- afs_tf_get_pname(&tmpstring);
- afs_tf_get_pinst(&tmpstring);
+ afs_tf_get_pname(tmpstring);
+ afs_tf_get_pinst(tmpstring);
found = 1;
}
}
* NOT IMPLEMENTED YET!
*/
#ifndef NO_AFS_CLIENT
-ktc_ForgetToken(aserver)
- struct ktc_principal *aserver;
+int
+ktc_ForgetToken(struct ktc_principal *aserver)
{
int rc;
* next rock in (*aindex). (*aserver) is set to the relevant ticket on
* success. */
-ktc_ListTokens(aprevIndex, aindex, aserver)
- int aprevIndex, *aindex;
- struct ktc_principal *aserver;
+int
+ktc_ListTokens(int aprevIndex,
+ int *aindex,
+ struct ktc_principal *aserver)
{
struct ViceIoctl iob;
char tbuffer[MAXPIOCTLTOKENLEN];
/* discard all tokens from this user's cache */
static int
-NewForgetAll()
+NewForgetAll(void)
{
#ifndef NO_AFS_CLIENT
TRY_KERNEL(KTC_FORGETALLTOKENS_OP, 0, 0, 0, 0);
}
static int
-OldForgetAll()
+OldForgetAll(void)
{
struct ViceIoctl iob;
register afs_int32 code;
}
int
-ktc_ForgetAllTokens()
+ktc_ForgetAllTokens(void)
{
int ncode, ocode;
/* ktc_OldPioctl - returns a boolean true if the kernel supports only the old
* pioctl interface for delivering AFS tickets to the cache manager. */
-ktc_OldPioctl()
+int
+ktc_OldPioctl(void)
{
int rc;
LOCK_GLOBAL_MUTEX;
* c. In tf_close, be sure it gets reinitialized to a negative
* number.
*/
-static fd = -1;
-static curpos; /* Position in tfbfr */
-static lastpos; /* End of tfbfr */
+static int fd = -1;
+static int curpos; /* Position in tfbfr */
+static int lastpos; /* End of tfbfr */
static char tfbfr[BUFSIZ]; /* Buffer for ticket data */
-static tf_gets(), tf_read();
+static int tf_gets(char *, int);
+static int tf_read(char *, int);
/*
* This file contains routines for manipulating the ticket cache file.
* TKT_FIL_LCK - couldn't lock the file, even after a retry
*/
-afs_tf_init(tf_name, rw)
- char *tf_name;
+int
+afs_tf_init(char *tf_name, int rw)
{
int wflag;
int me;
* was longer than MAXKTCNAMELEN, TKT_FIL_FMT is returned.
*/
-afs_tf_get_pname(p)
- char *p;
+int
+afs_tf_get_pname(char *p)
{
if (fd < 0) {
return TKT_FIL_INI;
* instance may be null.
*/
-afs_tf_get_pinst(inst)
- char *inst;
+int
+afs_tf_get_pinst(char *inst)
{
if (fd < 0) {
return TKT_FIL_INI;
* EOF - end of file encountered
*/
-afs_tf_get_cred(principal, token)
- struct ktc_principal *principal;
- struct ktc_token *token;
+int
+afs_tf_get_cred(struct ktc_principal *principal, struct ktc_token *token)
{
int k_errno;
int kvno, lifetime;
* The return value is not defined.
*/
-afs_tf_close()
+int
+afs_tf_close(void)
{
if (!(fd < 0)) {
#if defined(AFS_AIX_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SUN5_ENV)
fd = -1; /* see declaration of fd above */
}
memset(tfbfr, 0, sizeof(tfbfr));
+ return 0;
}
/*
* file is seriously ill.
*/
-static
-tf_gets(s, n)
- register char *s;
+static int
+tf_gets(register char *s, int n)
{
- register count;
+ register int count;
if (fd < 0) {
return TKT_FIL_INI;
* 0 on end of file or read error
*/
-static
-tf_read(s, n)
- register char *s;
- register n;
+static int
+tf_read(register char *s, register int n)
{
- register count;
+ register int count;
for (count = n; count > 0; --count) {
if (curpos >= sizeof(tfbfr)) {
return n;
}
-char *tkt_string();
-
/*
* afs_tf_save_cred() appends an incoming ticket to the end of the ticket
* file. You must call afs_tf_init() before calling afs_tf_save_cred().
* called previously, and KFAILURE for anything else that went wrong.
*/
-afs_tf_save_cred(aserver, atoken, aclient)
- struct ktc_principal *aserver;
- struct ktc_principal *aclient;
- struct ktc_token *atoken; /* Token */
+int
+afs_tf_save_cred(struct ktc_principal *aserver,
+ struct ktc_token *atoken,
+ struct ktc_principal *aclient)
{
char realm[MAXKTCREALMLEN + 1];
char junk[MAXKTCNAMELEN];
* <mit-copyright.h>.
*/
-char *getenv();
-
/*
* This routine is used to generate the name of the file that holds
* the user's cache of server tickets and associated session keys.
LOCK_GLOBAL_MUTEX;
if (!*krb_ticket_string) {
- if (env = getenv("KRBTKFILE")) {
+ if ((env = getenv("KRBTKFILE"))) {
(void)strncpy(krb_ticket_string, env,
sizeof(krb_ticket_string) - 1);
krb_ticket_string[sizeof(krb_ticket_string) - 1] = '\0';
* success, or KFAILURE if something goes wrong.
*/
-afs_tf_create(pname, pinst)
- char *pname;
- char *pinst;
+int
+afs_tf_create(char *pname, char *pinst)
{
int tktfile;
int me, metoo;
* failure.
*/
-afs_tf_dest_tkt()
+int
+afs_tf_dest_tkt(void)
{
char *file = ktc_tkt_string();
int i, fd;
}
static afs_uint32
-curpag()
+curpag(void)
{
+#if defined(AFS_AIX51_ENV)
+ int code = getpagvalue("afs");
+ if (code < 0 && errno == EINVAL)
+ code = 0;
+ return code;
+#else
gid_t groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
+#endif
}
-
-ktc_newpag()
+int
+ktc_newpag(void)
{
extern char **environ;
if (pag == -1) {
sprintf(fname, "%s%d", prefix, getuid());
} else {
- sprintf(fname, "%sp%ld", prefix, pag);
+ sprintf(fname, "%sp%ld", prefix, (long int) pag);
}
ktc_set_tkt_string(fname);
numenv++;
newenv = (char **)malloc((numenv + 2) * sizeof(char *));
- for (senv = environ, denv = newenv; *senv; *senv++) {
+ for (senv = environ, denv = newenv; *senv; senv++) {
if (strncmp(*senv, "KRBTKFILE=", 10) != 0)
*denv++ = *senv;
}
*++denv = 0;
environ = newenv;
UNLOCK_GLOBAL_MUTEX;
+ return 0;
}
/*
* find out what the local cell is.
*/
static void
-ktc_LocalCell()
+ktc_LocalCell(void)
{
int code;
struct afsconf_dir *conf;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/setkey.c,v 1.8 2003/07/15 23:14:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/setkey.c,v 1.8.2.2 2007/11/01 16:09:43 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
#include <WINNT/afsreg.h>
#include <WINNT/afsevent.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
+#include <rx/rxkad.h>
#include "cellconfig.h"
#include "keys.h"
#include <afs/afsutil.h>
static int hex2char(char c);
int
-main(argc, argv)
- int argc;
- char **argv;
+main(int argc, char **argv)
{
struct afsconf_dir *tdir;
register afs_int32 code;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/test/testcellconf.c,v 1.7 2003/07/15 23:14:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/test/testcellconf.c,v 1.7.2.1 2007/10/31 22:32:18 shadow Exp $");
#include <sys/types.h>
#include <stddef.h>
#endif
#include <afs/cellconfig.h>
-PrintOneCell(ainfo, arock, adir)
- struct afsconf_cell *ainfo;
- char *arock;
- struct afsconf_dir *adir;
+int
+PrintOneCell(struct afsconf_cell *ainfo, void *arock, struct afsconf_dir *adir)
{
register int i;
long temp;
printf("failed to find afsprot service (%d)\n", code);
else {
printf("AFSPROT service:\n");
- PrintOneCell(&theCell, (char *)NULL, theDir);
+ PrintOneCell(&theCell, NULL, theDir);
}
code = afsconf_GetCellInfo(theDir, 0, "bozotheclown", &theCell);
if (code == 0)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/userok.c,v 1.12.2.1 2004/08/25 07:09:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/userok.c,v 1.12.2.3 2008/02/29 04:46:20 shadow Exp $");
#include <afs/stds.h>
#include <afs/pthread_glock.h>
#include "keys.h"
#include "afs/audit.h"
-afs_int32 afsconf_SuperUser();
-
#if !defined(UKERNEL)
int
-afsconf_CheckAuth(adir, acall)
- register struct rx_call *acall;
- register struct afsconf_dir *adir;
+afsconf_CheckAuth(register struct afsconf_dir *adir,
+ register struct rx_call *acall)
{
+ int rc;
LOCK_GLOBAL_MUTEX;
- return ((afsconf_SuperUser(adir, acall, NULL) == 0) ? 10029 : 0);
+ rc = ((afsconf_SuperUser(adir, acall, NULL) == 0) ? 10029 : 0);
UNLOCK_GLOBAL_MUTEX;
+ return rc;
}
#endif /* !defined(UKERNEL) */
static int
-GetNoAuthFlag(adir)
- struct afsconf_dir *adir;
+GetNoAuthFlag(struct afsconf_dir *adir)
{
if (access(AFSDIR_SERVER_NOAUTH_FILEPATH, 0) == 0) {
osi_audit(NoAuthEvent, 0, AUD_END); /* some random server is running noauth */
int
-afsconf_GetNoAuthFlag(adir)
- struct afsconf_dir *adir;
+afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
{
int rc;
}
void
-afsconf_SetNoAuthFlag(adir, aflag)
- struct afsconf_dir *adir;
- int aflag;
+afsconf_SetNoAuthFlag(struct afsconf_dir *adir, int aflag)
{
register afs_int32 code;
/* deletes a user from the UserList file */
int
-afsconf_DeleteUser(adir, auser)
- struct afsconf_dir *adir;
- register char *auser;
+afsconf_DeleteUser(struct afsconf_dir *adir, register char *auser)
{
char tbuffer[1024];
char nbuffer[1024];
/* returns nth super user from the UserList file */
int
-afsconf_GetNthUser(adir, an, abuffer, abufferLen)
- struct afsconf_dir *adir;
- afs_int32 an;
- char *abuffer;
- afs_int32 abufferLen;
+afsconf_GetNthUser(struct afsconf_dir *adir, afs_int32 an, char *abuffer,
+ afs_int32 abufferLen)
{
char tbuffer[256];
register FILE *tf;
/* returns true iff user is in the UserList file */
static int
-FindUser(adir, auser)
- struct afsconf_dir *adir;
- register char *auser;
+FindUser(struct afsconf_dir *adir, register char *auser)
{
char tbuffer[256];
register bufio_p bp;
/* add a user to the user list, checking for duplicates */
int
-afsconf_AddUser(adir, aname)
- struct afsconf_dir *adir;
- char *aname;
+afsconf_AddUser(struct afsconf_dir *adir, char *aname)
{
FILE *tf;
register afs_int32 code;
otherwise returns NULL. The resulting string should be immediately
copied to other storage prior to release of mutex. */
static char *
-CompFindUser(adir, name, sep, inst, realm)
- struct afsconf_dir *adir;
- char *name;
- char *sep;
- char *inst;
- char *realm;
+CompFindUser(struct afsconf_dir *adir, char *name, char *sep, char *inst,
+ char *realm)
{
static char fullname[MAXKTCNAMELEN + MAXKTCNAMELEN + MAXKTCREALMLEN + 3];
if a pointer is passed.
*/
afs_int32
-afsconf_SuperUser(adir, acall, namep)
- struct afsconf_dir *adir;
- struct rx_call *acall;
- char *namep;
+afsconf_SuperUser(struct afsconf_dir *adir, struct rx_call *acall, char *namep)
{
register struct rx_connection *tconn;
register afs_int32 code;
tmp = tcell_l;
while (*tmp) {
*tmp = tolower(*tmp);
- *tmp++;
+ tmp++;
}
/* determine local cell name. It's static, so will only get
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/auth/writeconfig.c,v 1.10.2.1 2004/08/25 07:09:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/auth/writeconfig.c,v 1.10.2.3 2007/11/01 16:09:43 shadow Exp $");
#include <afs/pthread_glock.h>
#include <afs/afsutil.h>
#endif
#include <stdio.h>
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <rx/rxkad.h>
#include "cellconfig.h"
#include "keys.h"
*/
static int
-VerifyEntries(aci)
- register struct afsconf_cell *aci;
+VerifyEntries(register struct afsconf_cell *aci)
{
register int i;
register struct hostent *th;
*/
int
-afsconf_SetCellInfo(adir, apath, acellInfo)
- struct afsconf_dir *adir;
- char *apath;
- struct afsconf_cell *acellInfo;
+afsconf_SetCellInfo(struct afsconf_dir *adir, const char *apath,
+ struct afsconf_cell *acellInfo)
{
afs_int32 code;
}
int
-afsconf_SetExtendedCellInfo(adir, apath, acellInfo, clones)
- struct afsconf_dir *adir;
- char *apath;
- struct afsconf_cell *acellInfo;
- char clones[];
+afsconf_SetExtendedCellInfo(struct afsconf_dir *adir,
+ const char *apath,
+ struct afsconf_cell *acellInfo, char clones[])
{
register afs_int32 code;
register int fd;
bosint.cs.o: bosint.cs.c ${RPCINCLS}
bosint.cs.c: bosint.xg
- ${RXGEN} -x -C -o $@ ${srcdir}/bosint.xg
+ ${RXGEN} -x -A -C -o $@ ${srcdir}/bosint.xg
bosint.ss.c: bosint.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/bosint.xg
+ ${RXGEN} -x -A -S -o $@ ${srcdir}/bosint.xg
bosint.xdr.c: bosint.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/bosint.xg
+ ${RXGEN} -x -A -c -o $@ ${srcdir}/bosint.xg
bosint.h: bosint.xg
- ${RXGEN} -x -h -o $@ ${srcdir}/bosint.xg
+ ${RXGEN} -x -A -h -o $@ ${srcdir}/bosint.xg
bosint.cs.c: bosint.h
bosint.ss.c: bosint.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/bnode.c,v 1.17.2.5 2006/12/21 23:15:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/bnode.c,v 1.17.2.8 2008/03/10 22:35:33 shadow Exp $");
#include <stddef.h>
#include <stdlib.h>
#include <time.h>
#endif
#include <sys/stat.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include <lwp.h>
#include <afs/afsutil.h>
#include <afs/fileutil.h>
#include "bnode.h"
+#include "bosprototypes.h"
#if defined(AFS_AIX_ENV) || defined(AFS_SUN4_ENV)
/* All known versions of AIX lack WCOREDUMP but this works */
}
/* bnode lwp executes this code repeatedly */
-static int
-bproc()
+static void *
+bproc(void *unused)
{
register afs_int32 code;
register struct bnode *tb;
}
}
}
+ return NULL;
}
static afs_int32
/* Called by IOMGR at low priority on IOMGR's stack shortly after a SIGCHLD
* occurs. Wakes up bproc do redo things */
-int
-bnode_SoftInt(int asignal)
+void *
+bnode_SoftInt(void *param)
{
+ /* int asignal = (int) param; */
+
IOMGR_Cancel(bproc_pid);
return 0;
}
void
bnode_Int(int asignal)
{
- extern void bozo_ShutdownAndExit();
-
if (asignal == SIGQUIT) {
- IOMGR_SoftSig(bozo_ShutdownAndExit, (char *)asignal);
+ IOMGR_SoftSig(bozo_ShutdownAndExit, (void *) asignal);
} else {
- IOMGR_SoftSig(bnode_SoftInt, (char *)asignal);
+ IOMGR_SoftSig(bnode_SoftInt, (void *) asignal);
}
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/bos.c,v 1.20.2.3 2007/04/10 18:43:40 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/bos.c,v 1.20.2.4 2007/10/31 04:13:34 shadow Exp $");
#include <afs/stds.h>
#include <stdlib.h>
return tconn;
}
-static
-SetAuth(as)
- struct cmd_syndesc *as;
+static int
+SetAuth(struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
register struct rx_connection *tconn;
}
}
-static
-Prune(as)
- register struct cmd_syndesc *as;
+static int
+Prune(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
register struct rx_connection *tconn;
return code;
}
-static
-Exec(as)
- register struct cmd_syndesc *as;
+static int
+Exec(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return code;
}
-static
-GetDate(as)
- register struct cmd_syndesc *as;
+static int
+GetDate(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
char tbuffer[256];
return 0;
}
-static
-UnInstall(as)
- register struct cmd_syndesc *as;
+static int
+UnInstall(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
char tbuffer[256];
return BSTAT_NORMAL;
}
-static
-Install(as)
- struct cmd_syndesc *as;
+static int
+Install(struct cmd_syndesc *as, void *arock)
{
struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-Shutdown(as)
- struct cmd_syndesc *as;
+static int
+Shutdown(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-BlockScannerCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+BlockScannerCmd(struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct rx_connection *tconn;
return 0;
}
-static
-UnBlockScannerCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+UnBlockScannerCmd(struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct rx_connection *tconn;
return 0;
}
-static
-GetRestartCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+GetRestartCmd(struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct ktime generalTime, newBinaryTime;
return 0;
}
-static
-SetRestartCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+SetRestartCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 count;
register afs_int32 code;
return 0;
}
-static
-Startup(as)
- struct cmd_syndesc *as;
+static int
+Startup(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-Restart(as)
- struct cmd_syndesc *as;
+static int
+Restart(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-SetCellName(as)
- struct cmd_syndesc *as;
+static int
+SetCellName(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-AddHost(as)
- register struct cmd_syndesc *as;
+static int
+AddHost(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-RemoveHost(as)
- register struct cmd_syndesc *as;
+static int
+RemoveHost(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-ListHosts(as)
- register struct cmd_syndesc *as;
+static int
+ListHosts(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-AddKey(as)
- register struct cmd_syndesc *as;
+static int
+AddKey(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-RemoveKey(as)
- register struct cmd_syndesc *as;
+static int
+RemoveKey(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-ListKeys(as)
- IN register struct cmd_syndesc *as;
+static int
+ListKeys(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-AddSUser(as)
- register struct cmd_syndesc *as;
+static int
+AddSUser(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return failed;
}
-static
-RemoveSUser(as)
- register struct cmd_syndesc *as;
+static int
+RemoveSUser(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register struct cmd_item *ti;
}
#define NPERLINE 10 /* dudes to print per line */
-static
-ListSUsers(as)
- register struct cmd_syndesc *as;
+static int
+ListSUsers(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register int i;
return 0;
}
-static
-StatServer(as)
- register struct cmd_syndesc *as;
+static int
+StatServer(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return 0;
}
-static
-CreateServer(as)
- register struct cmd_syndesc *as;
+static int
+CreateServer(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return code;
}
-static
-DeleteServer(as)
- register struct cmd_syndesc *as;
+static int
+DeleteServer(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return code;
}
-static
-StartServer(as)
- register struct cmd_syndesc *as;
+static int
+StartServer(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return code;
}
-static
-StopServer(as)
- register struct cmd_syndesc *as;
+static int
+StopServer(register struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code;
return code;
}
-static
-GetLogCmd(as)
- register struct cmd_syndesc *as;
+static int
+GetLogCmd(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *tconn;
register struct rx_call *tcall;
return code;
}
-static
-SalvageCmd(as)
- struct cmd_syndesc *as;
+static int
+SalvageCmd(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
register afs_int32 code, rc, i;
}
#ifdef BOS_RESTRICTED_MODE
-static
-GetRestrict(as)
- struct cmd_syndesc *as;
+static int
+GetRestrict(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
afs_int32 code, val;
return 0;
}
-static
-SetRestrict(as)
- struct cmd_syndesc *as;
+static int
+SetRestrict(struct cmd_syndesc *as, void *arock)
{
register struct rx_connection *tconn;
afs_int32 code, val;
initialize_CMD_error_table();
initialize_BZ_error_table();
- ts = cmd_CreateSyntax("start", StartServer, 0, "start running a server");
+ ts = cmd_CreateSyntax("start", StartServer, NULL, "start running a server");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, 0, "server process name");
add_std_args(ts);
- ts = cmd_CreateSyntax("stop", StopServer, 0, "halt a server instance");
+ ts = cmd_CreateSyntax("stop", StopServer, NULL, "halt a server instance");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, 0, "server process name");
cmd_Seek(ts, 8);
"wait for process to stop");
add_std_args(ts);
- ts = cmd_CreateSyntax("status", StatServer, 0,
+ ts = cmd_CreateSyntax("status", StatServer, NULL,
"show server instance status");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, CMD_OPTIONAL,
cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL, "long status");
add_std_args(ts);
- ts = cmd_CreateSyntax("shutdown", Shutdown, 0, "shutdown all processes");
+ ts = cmd_CreateSyntax("shutdown", Shutdown, NULL, "shutdown all processes");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, CMD_OPTIONAL, "instances");
cmd_Seek(ts, 8);
"wait for process to stop");
add_std_args(ts);
- ts = cmd_CreateSyntax("startup", Startup, 0, "start all processes");
+ ts = cmd_CreateSyntax("startup", Startup, NULL, "start all processes");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, CMD_OPTIONAL, "instances");
add_std_args(ts);
- ts = cmd_CreateSyntax("restart", Restart, 0, "restart processes");
+ ts = cmd_CreateSyntax("restart", Restart, NULL, "restart processes");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, CMD_OPTIONAL, "instances");
cmd_AddParm(ts, "-bosserver", CMD_FLAG, CMD_OPTIONAL,
#ifndef OPBOS
- ts = cmd_CreateSyntax("create", CreateServer, 0,
+ ts = cmd_CreateSyntax("create", CreateServer, NULL,
"create a new server instance");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_SINGLE, 0, "server process name");
"Notifier program");
add_std_args(ts);
- ts = cmd_CreateSyntax("delete", DeleteServer, 0,
+ ts = cmd_CreateSyntax("delete", DeleteServer, NULL,
"delete a server instance");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-instance", CMD_LIST, 0, "server process name");
add_std_args(ts);
- ts = cmd_CreateSyntax("adduser", AddSUser, 0,
+ ts = cmd_CreateSyntax("adduser", AddSUser, NULL,
"add users to super-user list");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-user", CMD_LIST, 0, "user names");
add_std_args(ts);
- ts = cmd_CreateSyntax("removeuser", RemoveSUser, 0,
+ ts = cmd_CreateSyntax("removeuser", RemoveSUser, NULL,
"remove users from super-user list");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-user", CMD_LIST, 0, "user names");
add_std_args(ts);
- ts = cmd_CreateSyntax("listusers", ListSUsers, 0, "list super-users");
+ ts = cmd_CreateSyntax("listusers", ListSUsers, NULL, "list super-users");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
add_std_args(ts);
- ts = cmd_CreateSyntax("addkey", AddKey, 0,
+ ts = cmd_CreateSyntax("addkey", AddKey, NULL,
"add keys to key dbase (kvno 999 is bcrypt)");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-key", CMD_SINGLE, CMD_OPTIONAL, "key");
cmd_AddParm(ts, "-kvno", CMD_SINGLE, 0, "key version number");
add_std_args(ts);
- ts = cmd_CreateSyntax("removekey", RemoveKey, 0,
+ ts = cmd_CreateSyntax("removekey", RemoveKey, NULL,
"remove keys from key dbase");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-kvno", CMD_LIST, 0, "key version number");
add_std_args(ts);
- ts = cmd_CreateSyntax("listkeys", ListKeys, 0, "list keys");
+ ts = cmd_CreateSyntax("listkeys", ListKeys, NULL, "list keys");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-showkey", CMD_FLAG, CMD_OPTIONAL,
"show the actual key rather than the checksum");
add_std_args(ts);
- ts = cmd_CreateSyntax("listhosts", ListHosts, 0, "get cell host list");
+ ts = cmd_CreateSyntax("listhosts", ListHosts, NULL, "get cell host list");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
add_std_args(ts);
cmd_CreateAlias(ts, "getcell");
- ts = cmd_CreateSyntax("setcellname", SetCellName, 0, "set cell name");
+ ts = cmd_CreateSyntax("setcellname", SetCellName, NULL, "set cell name");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "cell name");
add_std_args(ts);
- ts = cmd_CreateSyntax("addhost", AddHost, 0, "add host to cell dbase");
+ ts = cmd_CreateSyntax("addhost", AddHost, NULL, "add host to cell dbase");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-host", CMD_LIST, 0, "host name");
cmd_AddParm(ts, "-clone", CMD_FLAG, CMD_OPTIONAL, "vote doesn't count");
add_std_args(ts);
- ts = cmd_CreateSyntax("removehost", RemoveHost, 0,
+ ts = cmd_CreateSyntax("removehost", RemoveHost, NULL,
"remove host from cell dbase");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-host", CMD_LIST, 0, "host name");
add_std_args(ts);
- ts = cmd_CreateSyntax("setauth", SetAuth, 0,
+ ts = cmd_CreateSyntax("setauth", SetAuth, NULL,
"set authentication required flag");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-authrequired", CMD_SINGLE, 0,
"on or off: authentication required for admin requests");
add_std_args(ts);
- ts = cmd_CreateSyntax("install", Install, 0, "install program");
+ ts = cmd_CreateSyntax("install", Install, NULL, "install program");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-file", CMD_LIST, 0, "files to install");
cmd_AddParm(ts, "-dir", CMD_SINGLE, CMD_OPTIONAL, "destination dir");
add_std_args(ts);
- ts = cmd_CreateSyntax("uninstall", UnInstall, 0, "uninstall program");
+ ts = cmd_CreateSyntax("uninstall", UnInstall, NULL, "uninstall program");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-file", CMD_LIST, 0, "files to uninstall");
cmd_AddParm(ts, "-dir", CMD_SINGLE, CMD_OPTIONAL, "destination dir");
add_std_args(ts);
- ts = cmd_CreateSyntax("getlog", GetLogCmd, 0, "examine log file");
+ ts = cmd_CreateSyntax("getlog", GetLogCmd, NULL, "examine log file");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-file", CMD_SINGLE, 0, "log file to examine");
add_std_args(ts);
- ts = cmd_CreateSyntax("getdate", GetDate, 0, "get dates for programs");
+ ts = cmd_CreateSyntax("getdate", GetDate, NULL, "get dates for programs");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-file", CMD_LIST, 0, "files to check");
cmd_AddParm(ts, "-dir", CMD_SINGLE, CMD_OPTIONAL, "destination dir");
add_std_args(ts);
- ts = cmd_CreateSyntax("exec", Exec, 0, "execute shell command on server");
+ ts = cmd_CreateSyntax("exec", Exec, NULL, "execute shell command on server");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-cmd", CMD_SINGLE, 0, "command to execute");
add_std_args(ts);
- ts = cmd_CreateSyntax("prune", Prune, 0, "prune server files");
+ ts = cmd_CreateSyntax("prune", Prune, NULL, "prune server files");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-bak", CMD_FLAG, CMD_OPTIONAL, "delete .BAK files");
cmd_AddParm(ts, "-old", CMD_FLAG, CMD_OPTIONAL, "delete .OLD files");
cmd_AddParm(ts, "-all", CMD_FLAG, CMD_OPTIONAL, "delete all junk files");
add_std_args(ts);
- ts = cmd_CreateSyntax("setrestart", SetRestartCmd, 0,
+ ts = cmd_CreateSyntax("setrestart", SetRestartCmd, NULL,
"set restart times");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "machine name");
cmd_AddParm(ts, "-time", CMD_SINGLE, CMD_REQUIRED,
"set new binary restart time");
add_std_args(ts);
- ts = cmd_CreateSyntax("getrestart", GetRestartCmd, 0,
+ ts = cmd_CreateSyntax("getrestart", GetRestartCmd, NULL,
"get restart times");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "machine name");
add_std_args(ts);
- ts = cmd_CreateSyntax("salvage", SalvageCmd, 0,
+ ts = cmd_CreateSyntax("salvage", SalvageCmd, NULL,
"salvage partition or volumes");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL,
"(MR-AFS) Numeric mask of residencies to be included in the salvage. Do not use with -SalvageRemote or -SalvageArchival");
add_std_args(ts);
- ts = cmd_CreateSyntax("blockscanner", BlockScannerCmd, 0,
+ ts = cmd_CreateSyntax("blockscanner", BlockScannerCmd, NULL,
"block scanner daemon from making migration requests");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "machine name");
add_std_args(ts);
- ts = cmd_CreateSyntax("unblockscanner", UnBlockScannerCmd, 0,
+ ts = cmd_CreateSyntax("unblockscanner", UnBlockScannerCmd, NULL,
"allow scanner daemon to make migration requests again");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "machine name");
add_std_args(ts);
#ifdef BOS_RESTRICTED_MODE
- ts = cmd_CreateSyntax("getrestricted", GetRestrict, 0,
+ ts = cmd_CreateSyntax("getrestricted", GetRestrict, NULL,
"get restrict mode");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
add_std_args(ts);
- ts = cmd_CreateSyntax("setrestricted", SetRestrict, 0,
+ ts = cmd_CreateSyntax("setrestricted", SetRestrict, NULL,
"set restrict mode");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-mode", CMD_SINGLE, 0, "mode to set");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/bos_util.c,v 1.4 2003/07/15 23:14:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/bos_util.c,v 1.4.2.1 2007/10/30 15:23:50 shadow Exp $");
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/stds.h>
#include <afs/afsutil.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/bosoprocs.c,v 1.19.2.1 2006/12/21 23:15:35 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/bosoprocs.c,v 1.19.2.4 2008/03/10 22:35:34 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <afs/fileutil.h>
#include <afs/ktime.h>
#include <afs/audit.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "bnode.h"
#include "bosint.h"
-
+#include "bosprototypes.h"
extern struct ktime bozo_nextRestartKT, bozo_nextDayKT;
}
#endif
-void
-bozo_ShutdownAndExit(int asignal)
+void *
+bozo_ShutdownAndExit(void *param)
{
+ int asignal = (int) param;
int code;
bozo_Log
--- /dev/null
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef _BOSPROTOTYPES_H_
+#define _BOSPROTOTYPES_H_
+
+/* bosserver.c */
+void bozo_Log(char *format, ... );
+
+/* bosoprocs.c */
+void *bozo_ShutdownAndExit(void *arock /* really int asignal */);
+
+#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/bosserver.c,v 1.23.2.11 2007/05/14 19:27:49 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/bosserver.c,v 1.23.2.16 2008/03/10 22:35:34 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdarg.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <direct.h>
#include <rx/rx_globals.h>
#include "bosint.h"
#include "bnode.h"
+#include "bosprototypes.h"
#include <afs/auth.h>
#include <afs/keys.h>
#include <afs/ktime.h>
#include <afs/afs_args.h>
#endif
-
#define BOZO_LWP_STACKSIZE 16000
extern int BOZO_ExecuteRequest();
extern int RXSTATS_ExecuteRequest();
extern struct bnode_ops fsbnode_ops, ezbnode_ops, cronbnode_ops;
-void bozo_Log();
-
struct afsconf_dir *bozo_confdir = 0; /* bozo configuration dir */
static char *bozo_pid;
struct rx_securityClass *bozo_rxsc[3];
struct ktime bozo_nextRestartKT, bozo_nextDayKT;
int bozo_newKTs;
int rxBind = 0;
+int rxkadDisableDotCheck = 0;
#define ADDRSPERSITE 16 /* Same global is in rx/rx_user.c */
afs_uint32 SHostAddrs[ADDRSPERSITE];
#define BOZO_MINSKIP 3600 /* minimum to advance clock */
/* lwp to handle system restarts */
-static int
-BozoDaemon()
+static void *
+BozoDaemon(void *unused)
{
register afs_int32 now;
bnode_ApplyInstance(bdrestart, 0);
}
}
+ return NULL;
}
#ifdef AFS_AIX32_ENV
else if (strcmp(argv[code], "-rxbind") == 0) {
rxBind = 1;
}
+ else if (strcmp(argv[code], "-allow-dotted-principals") == 0) {
+ rxkadDisableDotCheck = 1;
+ }
else if (!strcmp(argv[i], "-rxmaxmtu")) {
if ((i + 1) >= argc) {
fprintf(stderr, "missing argument for -rxmaxmtu\n");
rxMaxMTU = atoi(argv[++i]);
if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
(rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d% invalid; must be between %d-%d\n",
+ printf("rxMaxMTU %d invalid; must be between %d-%d\n",
rxMaxMTU, RX_MIN_PACKET_SIZE,
RX_MAX_PACKET_DATA_SIZE);
exit(1);
#ifndef AFS_NT40_ENV
printf("Usage: bosserver [-noauth] [-log] "
"[-auditlog <log path>] "
- "[-rxmaxmtu <bytes>] [-rxbind] "
+ "[-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals]"
"[-syslog[=FACILITY]] "
"[-enable_peer_stats] [-enable_process_stats] "
"[-nofork] " "[-help]\n");
#else
printf("Usage: bosserver [-noauth] [-log] "
"[-auditlog <log path>] "
- "[-rxmaxmtu <bytes>] [-rxbind] "
+ "[-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals]"
"[-enable_peer_stats] [-enable_process_stats] "
"[-help]\n");
#endif
rx_SetMinProcs(tservice, 2);
rx_SetMaxProcs(tservice, 4);
rx_SetStackSize(tservice, BOZO_LWP_STACKSIZE); /* so gethostbyname works (in cell stuff) */
+ if (rxkadDisableDotCheck) {
+ rx_SetSecurityConfiguration(tservice, RXS_CONFIG_FLAGS,
+ (void *)RXS_CONFIG_FLAGS_DISABLE_DOTCHECK,
+ NULL);
+ }
tservice =
rx_NewServiceHost(host, 0, RX_STATS_SERVICE_ID, "rpcstats", bozo_rxsc,
rx_SetMinProcs(tservice, 2);
rx_SetMaxProcs(tservice, 4);
rx_StartServer(1); /* donate this process */
+ return 0;
}
void
-bozo_Log(char *a, char *b, char *c, char *d, char *e, char *f)
+bozo_Log(char *format, ...)
{
char tdate[26];
time_t myTime;
+ va_list ap;
+
+ va_start(ap, format);
if (DoSyslog) {
#ifndef AFS_NT40_ENV
- syslog(LOG_INFO, a, b, c, d, e, f);
+ vsyslog(LOG_INFO, format, ap);
#endif
} else {
myTime = time(0);
if (bozo_logFile) {
fprintf(bozo_logFile, "%s ", tdate);
- fprintf(bozo_logFile, a, b, c, d, e, f);
+ vfprintf(bozo_logFile, format, ap);
fflush(bozo_logFile);
/* close so rm BosLog works */
fclose(bozo_logFile);
} else {
printf("%s ", tdate);
- printf(a, b, c, d, e, f);
+ vprintf(format, ap);
}
}
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/cronbnodeops.c,v 1.10 2003/12/07 22:49:18 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/bozo/cronbnodeops.c,v 1.10.2.2 2007/10/31 04:21:31 shadow Exp $");
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include <afs/ktime.h>
#include <afs/afsutil.h>
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include "bnode.h"
+#include "bosprototypes.h"
static int cron_timeout(), cron_getstat(), cron_setstat(), cron_delete();
static int cron_procexit(), cron_getstring(), cron_getparm(), cron_restartp();
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/ezbnodeops.c,v 1.8 2003/07/15 23:14:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bozo/ezbnodeops.c,v 1.8.2.2 2007/10/31 04:21:31 shadow Exp $");
#include <sys/types.h>
#include <errno.h>
#include <io.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include <afs/afsutil.h>
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include "bnode.h"
+#include "bosprototypes.h"
static int ez_timeout(), ez_getstat(), ez_setstat(), ez_delete();
static int ez_procexit(), ez_getstring(), ez_getparm(), ez_restartp();
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bozo/fsbnodeops.c,v 1.13 2003/12/07 22:49:18 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/bozo/fsbnodeops.c,v 1.13.2.3 2007/11/26 21:21:49 shadow Exp $");
#include <sys/types.h>
#include <lwp.h>
#else
#include <sys/file.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#endif /* AFS_NT40_ENV */
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include <afs/afsutil.h>
#include "bnode.h"
+#include "bosprototypes.h"
static int fs_timeout(), fs_getstat(), fs_setstat(), fs_delete();
static int fs_procexit(), fs_getstring(), fs_getparm(), fs_restartp();
static int fs_hascore();
struct bnode *fs_create();
-static SetNeedsClock();
+static void SetNeedsClock();
static NudgeProcs();
static int emergency = 0;
}
/* make sure we're periodically checking the state if we need to */
-static int
+static void
SetNeedsClock(register struct fsbnode *ab)
{
if (ab->b.goal == 1 && ab->fileRunning && ab->volRunning
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bu_utils/fms.c,v 1.7 2003/07/15 23:14:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bu_utils/fms.c,v 1.7.2.2 2007/11/26 21:21:49 shadow Exp $");
#undef IN
#include <stdio.h>
/* prototypes */
int fileMark(usd_handle_t hTape);
int fileMarkSize(char *tapeDevice);
-void tt_fileMarkSize(struct cmd_syndesc *as, char *arock);
+static int tt_fileMarkSize(struct cmd_syndesc *as, void *arock);
#define ERROR(evalue) \
{ \
sigaction(SIGINT, &intaction, &oldaction);
cptr =
- cmd_CreateSyntax(NULL, tt_fileMarkSize, 0,
+ cmd_CreateSyntax(NULL, tt_fileMarkSize, NULL,
"write a tape full of file marks");
cmd_AddParm(cptr, "-tape", CMD_SINGLE, CMD_REQUIRED, "tape special file");
cmd_Dispatch(argc, argv);
+ return 0;
}
-void
-tt_fileMarkSize(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+tt_fileMarkSize(struct cmd_syndesc *as, void *arock)
{
char *tapeDevice;
tapeDevice = as->parms[0].items->data;
fileMarkSize(tapeDevice);
+
+ return 0;
}
${RANLIB} libbubasics.a
butc.xdr.c: butc.xg
- ${RXGEN} -c -o $@ ${srcdir}/butc.xg
+ ${RXGEN} -A -c -o $@ ${srcdir}/butc.xg
butc.ss.c: butc.xg
- ${RXGEN} -S -o $@ ${srcdir}/butc.xg
+ ${RXGEN} -A -S -o $@ ${srcdir}/butc.xg
butc.cs.c: butc.xg
- ${RXGEN} -C -o $@ ${srcdir}/butc.xg
+ ${RXGEN} -A -C -o $@ ${srcdir}/butc.xg
butc.h: butc.xg
- ${RXGEN} -h -o $@ ${srcdir}/butc.xg
+ ${RXGEN} -A -h -o $@ ${srcdir}/butc.xg
butc.xdr.c: butc.h
butc.cs.c: butc.h
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif /* HAVE_STDIO_H */
-#if defined(HAVE_STRING_H)
-# include <string.h>
-#elif defined(HAVE_STRINGS_H)
-# include <strings.h>
-#endif /* HAVE_STRING_H */
+
+#include <string.h>
/*
* Represents a host in the config database.
#include <afs/stds.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/bc_status.c,v 1.11.2.2 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/bc_status.c,v 1.11.2.3 2008/03/10 22:35:34 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
char *cmdLine;
-int
-cmdDispatch()
+void *
+cmdDispatch(void *unused)
{
#define MAXV 100
char **targv[MAXV]; /*Ptr to parsed argv stuff */
code = cmd_ParseLine(internalCmdLine, targv, &targc, MAXV);
if (code) {
printf("Couldn't parse line: '%s'", afs_error_message(code));
- return (1);
+ return (void *)(1);
}
free(internalCmdLine);
*/
doDispatch(targc, targv, 1);
cmd_FreeArgv(targv);
- return(0);
+ return(void *)(0);
}
-statusWatcher()
+void *
+statusWatcher(void *unused)
{
struct rx_connection *tconn = (struct rc_connection *)0;
statusP curPollPtr = 0;
curPollPtr = 0;
} /*done */
} /*w */
+ return NULL;
}
/* bc_jobNumber
--- /dev/null
+/* Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef _BUCOORD_PROTOTYPES_H
+#define _BUCOORD_PROTOTYPES_H
+
+/* bc_status.c */
+
+extern void *statusWatcher(void *);
+
+#endif
+
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/commands.c,v 1.14.2.9 2007/06/23 15:27:22 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/commands.c,v 1.14.2.11 2007/11/26 21:21:50 shadow Exp $");
#include <afs/stds.h>
#if defined(AFS_LINUX24_ENV)
/* printIfStatus
* print out an interface status node as received from butc
*/
-
+
+void
printIfStatus(statusPtr)
struct tciStatusS *statusPtr;
{
/* bc_GetTapeStatusCmd
* display status of all tasks on a particular tape coordinator
*/
-
-bc_GetTapeStatusCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_GetTapeStatusCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct rx_connection *tconn;
* parameters
* ignored - a null "as" prints only jobs.
*/
-
-bc_JobsCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_JobsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 prevTime;
dlqlinkP ptr;
return 0;
}
-bc_KillCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_KillCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 i;
afs_int32 slot;
}
/* restore a volume or volumes */
-bc_VolRestoreCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_VolRestoreCmd(struct cmd_syndesc *as, void *arock)
{
/*
* parm 0 is the new server to restore to
* various optional
*/
-bc_DiskRestoreCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_DiskRestoreCmd(struct cmd_syndesc *as, void *arock)
{
struct bc_volumeSet tvolumeSet; /* temporary volume set for EvalVolumeSet call */
struct bc_volumeEntry tvolumeEntry; /* entry within the volume set */
* restore a volumeset or list of volumes.
*/
-bc_VolsetRestoreCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_VolsetRestoreCmd(struct cmd_syndesc *as, void *arock)
{
int oldFlag;
long fromDate;
int dontExecute;
int
-bc_DumpCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+bc_DumpCmd(struct cmd_syndesc *as, void *arock)
{ /*bc_DumpCmd */
static char rn[] = "bc_DumpCmd"; /*Routine name */
char *dumpPath, *vsName; /*Ptrs to various names */
* parameters:
* ignored
*/
-
-bc_QuitCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_QuitCmd(struct cmd_syndesc *as, void *arock)
{
int i;
struct bc_dumpTask *td;
* Labels a tape i.e. request the tape coordinator to perform this
* operation
*/
-
-bc_LabelTapeCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_LabelTapeCmd(struct cmd_syndesc *as, void *arock)
{
char *tapename = 0, *pname = 0;
afs_int32 size;
* params:
* optional port number
*/
-
-bc_ReadLabelCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_ReadLabelCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
afs_int32 port = 0;
* read content information from dump tapes, and if user desires,
* add it to the database
*/
-
-bc_ScanDumpsCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_ScanDumpsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 port = 0;
afs_int32 dbAddFlag = 0;
* Currently a single option, volumename to search for. Reports
* all dumps containing the specified volume
*/
-
-bc_dblookupCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_dblookupCmd(struct cmd_syndesc *as, void *arock)
{
struct cmd_item *ciptr;
afs_int32 code;
/* for ubik version */
-
-bc_dbVerifyCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_dbVerifyCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 status;
afs_int32 orphans;
* entry:
* dump id - single required arg as param 0.
*/
-
-bc_deleteDumpCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_deleteDumpCmd(struct cmd_syndesc *as, void *arock)
{
afs_uint32 dumpid;
afs_int32 code = 0;
return (rcode);
}
-bc_saveDbCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_saveDbCmd(struct cmd_syndesc *as, void *arock)
{
struct rx_connection *tconn;
afs_int32 portOffset = 0;
return (code);
}
-bc_restoreDbCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_restoreDbCmd(struct cmd_syndesc *as, void *arock)
{
struct rx_connection *tconn;
afs_int32 portOffset = 0;
* as - name of tape
* arock -
*/
-bc_dumpInfoCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_dumpInfoCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 dumpid;
afs_int32 detailFlag;
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#include <stdio.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dlq.c,v 1.9.2.1 2007/01/05 03:34:09 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dlq.c,v 1.9.2.2 2007/11/26 21:21:50 shadow Exp $");
#include "bc.h"
#include <afs/bubasics.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dsstub.c,v 1.6.2.2 2007/01/05 03:34:09 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dsstub.c,v 1.6.2.3 2007/11/26 21:21:50 shadow Exp $");
#include <sys/types.h>
#include <afs/cmd.h>
#include <netinet/in.h>
#include <netdb.h>
#endif
+#include <stdio.h>
+#include <string.h>
#include <dirent.h>
#include <afs/afsutil.h>
#include <afs/budb.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dsvs.c,v 1.9.2.2 2007/01/05 03:34:09 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dsvs.c,v 1.9.2.3 2007/11/26 21:21:50 shadow Exp $");
#include <sys/types.h>
#include <afs/cmd.h>
extern struct bc_volumeSet *bc_FindVolumeSet(struct bc_config *cf,
char *name);
+static FreeVolumeEntryList();
+static FreeVolumeEntry();
/* Code to maintain dump schedule and volume set abstractions.
* A volume set looks like this:
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dump.c,v 1.12.2.3 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dump.c,v 1.12.2.5 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#include <afs/cmd.h>
* free the list of volumes used for dumps
*/
+void
freeDumpTaskVolumeList(vdptr)
struct bc_volumeDump *vdptr;
{
* The other half of the dump/restore create process call. In bc_StartDmpRst,
* we allocated a dumpTask entry. Here we do the task and then free the entry.
*/
-bc_DmpRstStart(aindex)
- afs_int32 aindex;
+void *
+bc_DmpRstStart(void *param)
{
+ afs_int32 aindex = (afs_int32) param;
register struct bc_dumpTask *tdump;
register afs_int32 code;
*/
#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
#include <afsconfig.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dump_sched.c,v 1.7.2.5 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dump_sched.c,v 1.7.2.7 2007/11/26 21:21:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
extern struct udbHandleS udbHandle;
extern char *whoami;
+static ListDumpSchedule();
/* ------------------------------------
* command level routines
* parm 1: expiration date (list)
*/
-afs_int32
-bc_AddDumpCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_AddDumpCmd(struct cmd_syndesc *as, void *arock)
{
register char *dname; /* dump schedule name */
- register afs_int32 code;
+ register int code;
afs_int32 expType, expDate;
register struct cmd_item *ti;
udbClientTextP ctPtr;
* delete a dump schedule
*/
-afs_int32
-bc_DeleteDumpCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_DeleteDumpCmd(struct cmd_syndesc *as, void *arock)
{
/* parm 0 is vol set name
* parm 1 is dump schedule name
*/
register char *dname;
- register afs_int32 code;
+ register int code;
udbClientTextP ctPtr;
/* lock schedules and check validity */
* ignored
*/
-afs_int32
-bc_ListDumpScheduleCmd(struct cmd_syndesc *as, char *arock)
+int
+bc_ListDumpScheduleCmd(struct cmd_syndesc *as, void *arock)
{
/* no parms */
- afs_int32 code;
+ int code;
register struct bc_dumpSchedule *tdump;
/* first check to see if schedules must be updated */
* parm 1: expiration date (list)
*/
-afs_int32
-bc_SetExpCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_SetExpCmd(struct cmd_syndesc *as, void *arock)
{
register char *dname; /* dump schedule name */
register struct cmd_item *ti;
struct bc_dumpSchedule *node, *parent;
afs_int32 expType, expDate;
udbClientTextP ctPtr;
- register afs_int32 code;
+ register int code;
afs_int32 bc_ParseExpiration();
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/main.c,v 1.16.2.3 2007/06/23 15:27:22 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/main.c,v 1.16.2.5 2008/03/10 22:35:34 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <afs/budb.h>
#include "bc.h" /*Backup Coordinator structs and defs */
-
+#include "bucoord_prototypes.h"
int localauth, interact;
char tcell[64];
PROCESS watcherPid;
PROCESS pid; /* LWP process ID */
- extern statusWatcher();
-
/* Initialization */
initialize_CMD_error_table();
*/
static int
-MyBeforeProc(as)
- register struct cmd_syndesc *as;
+MyBeforeProc(register struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
}
int
-bc_interactCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+bc_interactCmd(struct cmd_syndesc *as, void *arock)
{
interact = 1;
return 0;
cmd_SetBeforeProc(MyBeforeProc, NULL);
- ts = cmd_CreateSyntax("dump", bc_DumpCmd, 0, "start dump");
+ ts = cmd_CreateSyntax("dump", bc_DumpCmd, NULL, "start dump");
cmd_AddParm(ts, "-volumeset", CMD_SINGLE, CMD_OPTIONAL,
"volume set name");
cmd_AddParm(ts, "-dump", CMD_SINGLE, CMD_OPTIONAL, "dump level name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("volrestore", bc_VolRestoreCmd, 0,
+ ts = cmd_CreateSyntax("volrestore", bc_VolRestoreCmd, NULL,
"restore volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"destination machine");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("diskrestore", bc_DiskRestoreCmd, 0,
+ ts = cmd_CreateSyntax("diskrestore", bc_DiskRestoreCmd, NULL,
"restore partition");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"machine to restore");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("quit", bc_QuitCmd, 0, "leave the program");
+ ts = cmd_CreateSyntax("quit", bc_QuitCmd, NULL, "leave the program");
- ts = cmd_CreateSyntax("volsetrestore", bc_VolsetRestoreCmd, 0,
+ ts = cmd_CreateSyntax("volsetrestore", bc_VolsetRestoreCmd, NULL,
"restore a set of volumes");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_OPTIONAL, "volume set name");
cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "file name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("addhost", bc_AddHostCmd, 0, "add host to config");
+ ts = cmd_CreateSyntax("addhost", bc_AddHostCmd, NULL, "add host to config");
cmd_AddParm(ts, "-tapehost", CMD_SINGLE, CMD_REQUIRED,
"tape machine name");
cmd_AddParm(ts, "-portoffset", CMD_SINGLE, CMD_OPTIONAL,
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("delhost", bc_DeleteHostCmd, 0,
+ ts = cmd_CreateSyntax("delhost", bc_DeleteHostCmd, NULL,
"delete host to config");
cmd_AddParm(ts, "-tapehost", CMD_SINGLE, CMD_REQUIRED,
"tape machine name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("listhosts", bc_ListHostsCmd, 0,
+ ts = cmd_CreateSyntax("listhosts", bc_ListHostsCmd, NULL,
"list config hosts");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("jobs", bc_JobsCmd, 0, "list running jobs");
+ ts = cmd_CreateSyntax("jobs", bc_JobsCmd, NULL, "list running jobs");
- ts = cmd_CreateSyntax("kill", bc_KillCmd, 0, "kill running job");
+ ts = cmd_CreateSyntax("kill", bc_KillCmd, NULL, "kill running job");
cmd_AddParm(ts, "-id", CMD_SINGLE, CMD_REQUIRED,
"job ID or dump set name");
- ts = cmd_CreateSyntax("listvolsets", bc_ListVolSetCmd, 0,
+ ts = cmd_CreateSyntax("listvolsets", bc_ListVolSetCmd, NULL,
"list volume sets");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_OPTIONAL, "volume set name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("listdumps", bc_ListDumpScheduleCmd, 0,
+ ts = cmd_CreateSyntax("listdumps", bc_ListDumpScheduleCmd, NULL,
"list dump schedules");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("addvolset", bc_AddVolSetCmd, 0,
+ ts = cmd_CreateSyntax("addvolset", bc_AddVolSetCmd, NULL,
"create a new volume set");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_REQUIRED, "volume set name");
cmd_AddParm(ts, "-temporary", CMD_FLAG, CMD_OPTIONAL,
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("status", bc_GetTapeStatusCmd, 0,
+ ts = cmd_CreateSyntax("status", bc_GetTapeStatusCmd, NULL,
"get tape coordinator status");
cmd_AddParm(ts, "-portoffset", CMD_SINGLE, CMD_OPTIONAL,
"TC port offset");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("delvolset", bc_DeleteVolSetCmd, 0,
+ ts = cmd_CreateSyntax("delvolset", bc_DeleteVolSetCmd, NULL,
"delete a volume set");
cmd_AddParm(ts, "-name", CMD_LIST, CMD_REQUIRED, "volume set name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("addvolentry", bc_AddVolEntryCmd, 0,
+ ts = cmd_CreateSyntax("addvolentry", bc_AddVolEntryCmd, NULL,
"add a new volume entry");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_REQUIRED, "volume set name");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "machine name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("delvolentry", bc_DeleteVolEntryCmd, 0,
+ ts = cmd_CreateSyntax("delvolentry", bc_DeleteVolEntryCmd, NULL,
"delete a volume set sub-entry");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_REQUIRED, "volume set name");
cmd_AddParm(ts, "-entry", CMD_SINGLE, CMD_REQUIRED, "volume set index");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("adddump", bc_AddDumpCmd, 0, "add dump schedule");
+ ts = cmd_CreateSyntax("adddump", bc_AddDumpCmd, NULL, "add dump schedule");
cmd_AddParm(ts, "-dump", CMD_LIST, CMD_REQUIRED, "dump level name");
cmd_AddParm(ts, "-expires", CMD_LIST, CMD_OPTIONAL, "expiration date");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("deldump", bc_DeleteDumpCmd, 0,
+ ts = cmd_CreateSyntax("deldump", bc_DeleteDumpCmd, NULL,
"delete dump schedule");
cmd_AddParm(ts, "-dump", CMD_SINGLE, CMD_REQUIRED, "dump level name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("labeltape", bc_LabelTapeCmd, 0, "label a tape");
+ ts = cmd_CreateSyntax("labeltape", bc_LabelTapeCmd, NULL, "label a tape");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_OPTIONAL,
"AFS tape name, defaults to NULL");
cmd_AddParm(ts, "-size", CMD_SINGLE, CMD_OPTIONAL,
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("readlabel", bc_ReadLabelCmd, 0,
+ ts = cmd_CreateSyntax("readlabel", bc_ReadLabelCmd, NULL,
"read the label on tape");
cmd_AddParm(ts, "-portoffset", CMD_SINGLE, CMD_OPTIONAL,
"TC port offset");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("scantape", bc_ScanDumpsCmd, 0,
+ ts = cmd_CreateSyntax("scantape", bc_ScanDumpsCmd, NULL,
"dump information recovery from tape");
cmd_AddParm(ts, "-dbadd", CMD_FLAG, CMD_OPTIONAL,
"add information to the database");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("volinfo", bc_dblookupCmd, 0,
+ ts = cmd_CreateSyntax("volinfo", bc_dblookupCmd, NULL,
"query the backup database");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume name");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("setexp", bc_SetExpCmd, 0,
+ ts = cmd_CreateSyntax("setexp", bc_SetExpCmd, NULL,
"set/clear dump expiration dates");
cmd_AddParm(ts, "-dump", CMD_LIST, CMD_REQUIRED, "dump level name");
cmd_AddParm(ts, "-expires", CMD_LIST, CMD_OPTIONAL, "expiration date");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("savedb", bc_saveDbCmd, 0, "save backup database");
+ ts = cmd_CreateSyntax("savedb", bc_saveDbCmd, NULL, "save backup database");
cmd_AddParm(ts, "-portoffset", CMD_SINGLE, CMD_OPTIONAL,
"TC port offset");
cmd_AddParm(ts, "-archive", CMD_LIST, CMD_OPTIONAL, "date time");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("restoredb", bc_restoreDbCmd, 0,
+ ts = cmd_CreateSyntax("restoredb", bc_restoreDbCmd, NULL,
"restore backup database");
cmd_AddParm(ts, "-portoffset", CMD_SINGLE, CMD_OPTIONAL,
"TC port offset");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("dumpinfo", bc_dumpInfoCmd, 0,
+ ts = cmd_CreateSyntax("dumpinfo", bc_dumpInfoCmd, NULL,
"provide information about a dump in the database");
cmd_AddParm(ts, "-ndumps", CMD_SINGLE, CMD_OPTIONAL, "no. of dumps");
cmd_AddParm(ts, "-id", CMD_SINGLE, CMD_OPTIONAL, "dump id");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("dbverify", bc_dbVerifyCmd, 0,
+ ts = cmd_CreateSyntax("dbverify", bc_dbVerifyCmd, NULL,
"check ubik database integrity");
cmd_AddParm(ts, "-detail", CMD_FLAG, CMD_OPTIONAL, "additional details");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("deletedump", bc_deleteDumpCmd, 0,
+ ts = cmd_CreateSyntax("deletedump", bc_deleteDumpCmd, NULL,
"delete dumps from the database");
cmd_AddParm(ts, "-dumpid", CMD_LIST, CMD_OPTIONAL, "dump id");
cmd_AddParm(ts, "-from", CMD_LIST, CMD_OPTIONAL, "date time");
if (!interact)
add_std_args(ts);
- ts = cmd_CreateSyntax("interactive", bc_interactCmd, 0,
+ ts = cmd_CreateSyntax("interactive", bc_interactCmd, NULL,
"enter interactive mode");
add_std_args(ts);
static char expbuf[ESIZE], *braslist[NBRA], *braelist[NBRA];
static char circf;
+static int advance();
+static int backref();
+static int cclass();
+
/*
* compile the regular expression argument into a dfa
*/
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/restore.c,v 1.8.2.8 2007/10/16 16:56:48 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/restore.c,v 1.8.2.9 2007/11/26 21:21:50 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
return (atol(sptr));
}
+void
viceName(value)
long value;
{
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/status.c,v 1.7.2.1 2007/01/05 03:34:09 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/status.c,v 1.7.2.2 2007/11/26 21:21:50 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
* These routines are common the backup coordinator and tape coordinator
*/
+void
initStatus()
{
dlqInit(&statusHead);
/* lock managment */
+void
lock_Status()
{
ObtainWriteLock(&statusQueueLock);
}
+void
unlock_Status()
{
ReleaseWriteLock(&statusQueueLock);
}
+void
lock_cmdLine()
{
ObtainWriteLock(&cmdLineLock);
}
+void
unlock_cmdLine()
{
ReleaseWriteLock(&cmdLineLock);
return (ptr);
}
+void
deleteStatusNode(ptr)
statusP ptr;
{
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/tape_hosts.c,v 1.7.2.3 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/tape_hosts.c,v 1.7.2.4 2007/10/31 04:13:35 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
* Add a host to the tape hosts
*/
-afs_int32
-bc_AddHostCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_AddHostCmd(struct cmd_syndesc *as, void *arock)
{
struct cmd_item *ti;
udbClientTextP ctPtr;
return (code);
}
-afs_int32
-bc_DeleteHostCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_DeleteHostCmd(struct cmd_syndesc *as, void *arock)
{
struct cmd_item *ti;
afs_int32 port = 0;
* ignored
*/
-afs_int32
-bc_ListHostsCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_ListHostsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
register struct bc_hostEntry *tentry;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/vol_sets.c,v 1.10.2.4 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/vol_sets.c,v 1.10.2.6 2007/11/26 21:21:50 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
extern struct bc_volumeSet *bc_FindVolumeSet(struct bc_config *cf, char *name);
extern void FreeVolumeSet(struct bc_volumeSet *avset);
+static ListVolSet();
/* ------------------------------------
* command level routines
* parm 3 is volume regexp
*/
-bc_AddVolEntryCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_AddVolEntryCmd(struct cmd_syndesc *as, void *arock)
{
- register afs_int32 code;
+ register int code;
char *volSetName, *serverName, *partitionName, *volRegExp;
udbClientTextP ctPtr;
struct bc_volumeSet *tset;
* name of new volume set
*/
-afs_int32
-bc_AddVolSetCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_AddVolSetCmd(struct cmd_syndesc *as, void *arock)
{
/* parm 0 is vol set name */
- register afs_int32 code;
+ register int code;
register struct cmd_item *ti;
udbClientTextP ctPtr;
afs_int32 flags;
* parm 1 is entry # (integer, 1 based)
*/
-afs_int32
-bc_DeleteVolEntryCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_DeleteVolEntryCmd(struct cmd_syndesc *as, void *arock)
{
- register afs_int32 code;
+ register int code;
afs_int32 entry;
char *vsname;
udbClientTextP ctPtr;
* name of volumeset to delete
*/
-afs_int32
-bc_DeleteVolSetCmd(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+int
+bc_DeleteVolSetCmd(struct cmd_syndesc *as, void *arock)
{
/* parm 0 is vol set name */
- register afs_int32 code;
+ register int code;
register struct cmd_item *ti;
udbClientTextP ctPtr;
afs_int32 c;
* optional parameter specifies a volumeset name
*/
-afs_int32
-bc_ListVolSetCmd(struct cmd_syndesc *as, char *arock)
+int
+bc_ListVolSetCmd(struct cmd_syndesc *as, void *arock)
{
/* parm 0 is optional volume set to display */
register struct bc_volumeSet *tset;
register struct cmd_item *ti;
- afs_int32 code = 0;
+ int code = 0;
code = bc_UpdateVolumeSet();
if (code) {
${CC} ${LDFLAGS} -o budb_server $(SERVER_OBJS) ${LIBS} ${XLIBS}
budb.cs.c: budb.rg
- ${RXGEN} -u -C -o $@ ${srcdir}/budb.rg
+ ${RXGEN} -A -u -C -o $@ ${srcdir}/budb.rg
budb.ss.c: budb.rg
- ${RXGEN} -S -o $@ ${srcdir}/budb.rg
+ ${RXGEN} -A -S -o $@ ${srcdir}/budb.rg
budb.xdr.c: budb.rg
- ${RXGEN} -c -o $@ ${srcdir}/budb.rg
+ ${RXGEN} -A -c -o $@ ${srcdir}/budb.rg
budb.h: budb.rg
- ${RXGEN} -u -h -o $@ ${srcdir}/budb.rg
+ ${RXGEN} -A -u -h -o $@ ${srcdir}/budb.rg
budb.cs.c: budb.h
budb.xdr.c: budb.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/database.c,v 1.7.2.1 2007/07/06 11:34:00 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/budb/database.c,v 1.7.2.2 2007/10/30 15:23:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include "database.h"
#include "error_macros.h"
#include "afs/audit.h"
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
int pollCount;
struct memoryDB db; /* really allocate it here */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/db_alloc.c,v 1.7 2003/07/15 23:14:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/budb/db_alloc.c,v 1.7.2.1 2007/10/30 15:23:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/types.h>
#include <afs/stds.h>
#include <ubik.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/db_dump.c,v 1.7 2003/07/15 23:14:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/budb/db_dump.c,v 1.7.2.2 2007/11/26 21:21:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <sys/types.h>
#include <ubik.h>
#include <lock.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "database.h"
#include "budb.h"
* no return value
*/
+void
haveWritten(nbytes)
afs_int32 nbytes;
{
* done flag.
*/
+void
doneWriting(error)
afs_int32 error;
{
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/db_hash.c,v 1.8 2003/11/23 04:53:31 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/budb/db_hash.c,v 1.8.2.1 2007/10/30 15:23:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/types.h>
#include <afs/stds.h>
#include <ubik.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/db_text.c,v 1.10.2.2 2005/07/11 19:29:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/budb/db_text.c,v 1.10.2.4 2007/11/26 21:21:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <sys/file.h>
#include <sys/param.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/types.h>
#include <ubik.h>
#include <afs/auth.h>
}
/* debug support */
-
+void
saveTextToFile(ut, tbPtr)
struct ubik_trans *ut;
struct textBlock *tbPtr;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/dbs_dump.c,v 1.11 2003/07/15 23:14:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/budb/dbs_dump.c,v 1.11.2.1 2008/03/10 22:35:34 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include "globals.h"
#include "afs/audit.h"
+void *dumpWatcher(void *);
/* dump ubik database - interface routines */
* decode the arguments passed via LWP and dump the database.
*/
-setupDbDump(writeFid)
- int writeFid;
+void *
+setupDbDump(void *param)
{
+ int writeFid = (int)param;
afs_int32 code = 0;
code = InitRPC(&dumpSyncPtr->ut, LOCKREAD, 1);
error_exit:
if (dumpSyncPtr->ut)
ubik_EndTrans(dumpSyncPtr->ut);
- return (code);
+ return (void *)(code);
}
PROCESS dumperPid, watcherPid;
int readSize;
afs_int32 code = 0;
- extern dumpWatcher();
if (callPermitted(call) == 0)
ERROR(BUDB_NOTPERMITTED);
* transactions can proceed.
*/
-dumpWatcher()
+void *
+dumpWatcher(void *unused)
{
afs_int32 code;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/ol_verify.c,v 1.13.2.1 2007/07/06 11:38:31 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/budb/ol_verify.c,v 1.13.2.2 2007/10/30 15:23:50 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <netinet/in.h>
#include <netdb.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/stds.h>
#include <sys/types.h>
#include <lock.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/procs.c,v 1.14 2003/12/07 22:49:19 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/budb/procs.c,v 1.14.2.1 2007/10/30 15:23:50 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <sys/resource.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <sys/types.h>
#include <afs/stds.h>
#include <afs/bubasics.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/server.c,v 1.14.2.5 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/budb/server.c,v 1.14.2.9 2008/03/10 22:35:34 shadow Exp $");
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <netdb.h>
#endif
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <afs/stds.h>
#include <sys/types.h>
#include <time.h>
struct ubik_dbase *BU_dbase;
struct afsconf_dir *BU_conf; /* for getting cell info */
+int argHandler(struct cmd_syndesc *, void *);
+
char lcell[MAXKTCREALMLEN];
afs_int32 myHost = 0;
int helpOption;
* If it were, this routine would never have been called.
*/
static int
-MyBeforeProc(as)
- register struct cmd_syndesc *as;
+MyBeforeProc(register struct cmd_syndesc *as, void *arock)
{
helpOption = 0;
return 0;
* initialize all the supported commands and their arguments
*/
+void
initializeArgHandler()
{
struct cmd_syndesc *cptr;
- int argHandler();
-
cmd_SetBeforeProc(MyBeforeProc, NULL);
cptr = cmd_CreateSyntax(NULL, argHandler, NULL, "Backup database server");
}
int
-argHandler(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+argHandler(struct cmd_syndesc *as, void *arock)
{
/* globalConfPtr provides the handle for the configuration information */
currentTime = time(0);
LogError(0, "Ready to process requests at %s\n", ctime(¤tTime));
- rx_ServerProc(); /* donate this LWP */
+ rx_ServerProc(NULL); /* donate this LWP */
error_exit:
osi_audit(BUDB_FinishEvent, code, AUD_END);
return (code);
}
-
+void
consistencyCheckDb()
{
/* do consistency checks on structure sizes */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/budb/struct_ops.c,v 1.7 2003/12/08 01:45:28 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/budb/struct_ops.c,v 1.7.2.1 2007/11/26 21:21:50 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
* ----------------------------------
*/
+void
printDbHeader(ptr)
struct DbHeader *ptr;
{
printf("lastTapeId = %d\n", ptr->lastTapeId);
}
+void
printDump(fid, dptr)
FILE *fid;
struct dump *dptr;
}
+void
printDumpEntry(deptr)
struct budb_dumpEntry *deptr;
{
* print the hash table structure, i.e. the header structure.
*/
+void
printHashTable(fid, htptr)
FILE *fid;
struct hashTable *htptr;
* currently used for debug only
*/
+void
volFragment_ntoh(netVfPtr, hostVfPtr)
struct volFragment *netVfPtr, *hostVfPtr;
{
hostVfPtr->sequence = ntohs(netVfPtr->sequence);
}
+void
volInfo_ntoh(netViPtr, hostViPtr)
struct volInfo *netViPtr, *hostViPtr;
{
hostViPtr->nFrags = ntohl(netViPtr->nFrags);
}
+void
tape_ntoh(netTapePtr, hostTapePtr)
struct tape *netTapePtr, *hostTapePtr;
{
hostTapePtr->useCount = ntohl(netTapePtr->useCount);
}
+void
dump_ntoh(netDumpPtr, hostDumpPtr)
struct dump *netDumpPtr, *hostDumpPtr;
{
principal_ntoh(&netDumpPtr->dumper, &hostDumpPtr->dumper);
}
+void
DbHeader_ntoh(netptr, hostptr)
struct DbHeader *netptr, *hostptr;
{
hostptr->lastTapeId = ntohl(netptr->lastTapeId);
}
+void
dumpEntry_ntoh(netptr, hostptr)
struct budb_dumpEntry *netptr, *hostptr;
{
return 0;
}
+void
structDumpHeader_hton(hostPtr, netPtr)
struct structDumpHeader *hostPtr, *netPtr;
{
netPtr->size = htonl(hostPtr->size);
}
+void
structDumpHeader_ntoh(netPtr, hostPtr)
struct structDumpHeader *hostPtr, *netPtr;
{
hostPtr->size = ntohl(netPtr->size);
}
+void
tapeEntry_ntoh(netptr, hostptr)
struct budb_tapeEntry *netptr, *hostptr;
{
return 0;
}
+void
textBlock_hton(hostptr, netptr)
struct textBlock *hostptr, *netptr;
{
netptr->newTextAddr = htonl(hostptr->newTextAddr);
}
+void
textBlock_ntoh(netptr, hostptr)
struct textBlock *netptr, *hostptr;
{
hostptr->newTextAddr = ntohl(netptr->newTextAddr);
}
+void
textLock_hton(hostptr, netptr)
db_lockP hostptr, netptr;
{
netptr->lockHost = htonl(hostptr->lockHost);
}
+void
textLock_ntoh(netptr, hostptr)
db_lockP netptr, hostptr;
{
hostptr->lockHost = ntohl(netptr->lockHost);
}
+void
volumeEntry_ntoh(netptr, hostptr)
struct budb_volumeEntry *netptr, *hostptr;
{
* -------------------------------------
*/
-
+void
copy_ktcPrincipal_to_budbPrincipal(ktcPtr, budbPtr)
struct ktc_principal *ktcPtr;
struct budb_principal *budbPtr;
tapesetPtr->a = 1;
tapesetPtr->b = 1;
tapesetPtr->maxTapes = 0;
+ return 0;
}
--- /dev/null
+/* Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef _BUTC_PROTOTYPES_H
+#define _BUTC_PROTOTYPES_H
+
+/* dbentries.c */
+
+extern void *dbWatcher(void *);
+
+/* dump.c */
+
+extern void *Dumper(void *);
+extern void *DeleteDump(void *);
+
+/* lwps.c */
+extern void *Restorer(void *);
+extern void *Labeller(void *);
+
+/* recoverdDb.c */
+
+extern void *ScanDumps(void *);
+
+/* tcudbprocs.c */
+
+extern void *saveDbToTape(void *);
+extern void *restoreDbFromTape(void *);
+extern void *KeepAlive(void *);
+
+#endif
+
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/dbentries.c,v 1.8.2.1 2006/07/01 05:04:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/dbentries.c,v 1.8.2.5 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <netdb.h>
#endif
#include <stdlib.h>
+#include <string.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <lwp.h>
if (message) {
printf("Updating database - done\n");
}
+ return;
}
#define MAXVOLUMESTOADD 100
int addvolumes = 1;
-void
-dbWatcher()
+void *
+dbWatcher(void *unused)
{
dlqlinkP entryPtr;
struct budb_dumpEntry *dumpPtr;
IOMGR_Sleep(2);
#endif
}
+ return NULL;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/dump.c,v 1.17.2.1 2005/04/03 18:15:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/dump.c,v 1.17.2.3 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <netdb.h>
#endif
#include <stdlib.h>
+#include <string.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <lwp.h>
return (code);
}
-int
-Dumper(struct dumpNode *nodePtr)
+void *
+Dumper(void *param)
{
+ struct dumpNode *nodePtr = (struct dumpNode *)param;
struct dumpRock dparams;
struct butm_tapeInfo tapeInfo;
int pass;
FreeNode(taskId); /* free the dump node */
LeaveDeviceQueue(deviceLatch);
- return (code);
+ return (void *)(code);
}
#define BELLTIME 60 /* 60 seconds before a bell rings */
/* DeleteDump
*
*/
-int
-DeleteDump(struct deleteDumpIf *ptr)
+void *
+DeleteDump(void *param)
{
+ struct deleteDumpIf *ptr = (struct deleteDumpIf *)param;
+
afs_int32 taskId;
afs_int32 rc, code = 0;
afs_uint32 dumpid;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/lwps.c,v 1.12.2.3 2007/04/10 18:43:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/lwps.c,v 1.12.2.6 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <conio.h>
* Regardless of error, the closecallout routine will be called
* (unless a tape is not mounted in the first place).
*/
+void
unmountTape(taskId, tapeInfoPtr)
afs_int32 taskId;
struct butm_tapeInfo *tapeInfoPtr;
* created as a LWP by the server stub, <newNode> is a pointer to all
* the parameters Restorer needs
*/
-Restorer(newNode)
- struct dumpNode *newNode;
-{
+void *
+Restorer(void *param) {
+ struct dumpNode *newNode = (struct dumpNode *) param;
+
afs_int32 code = 0, tcode;
afs_uint32 taskId;
char *newVolName;
/* this is just scaffolding, creates new tape label with name <tapeName> */
+void
GetNewLabel(tapeInfoPtr, pName, AFSName, tapeLabel)
struct butm_tapeInfo *tapeInfoPtr;
char *pName, *AFSName;
* specified by <label>
*/
-Labeller(labelIfPtr)
- struct labelTapeIf *labelIfPtr;
+void *
+Labeller(void *param)
{
+ struct labelTapeIf *labelIfPtr = (struct labelTapeIf *)param;
+
struct tc_tapeLabel *label = &labelIfPtr->label;
struct butm_tapeLabel newTapeLabel;
* print out the tape label.
*/
+void
PrintTapeLabel(labelptr)
struct butm_tapeLabel *labelptr;
{
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/read_tape.c,v 1.7 2003/07/15 23:14:49 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/read_tape.c,v 1.7.2.3 2007/11/26 21:21:51 shadow Exp $");
#include <afs/cmd.h>
#include <lock.h>
#include <netinet/in.h>
#include <fcntl.h>
#include <stdio.h>
+#include <string.h>
#include <errno.h>
#include <afs/usd.h>
return 0;
}
+void
printLabel(tapeLabelPtr)
struct tapeLabel *tapeLabelPtr;
{
}
}
+void
printHeader(headerPtr, isvolheader)
struct volumeHeader *headerPtr;
afs_int32 *isvolheader;
return 0;
}
-WorkerBee(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
char *tapedev;
struct tapeLabel *label;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/recoverDb.c,v 1.10.2.4 2006/07/01 05:04:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/recoverDb.c,v 1.10.2.7 2008/03/10 22:35:34 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <strings.h>
#endif
#include <sys/types.h>
+#include <string.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <lwp.h>
extern struct tapeConfig globalTapeConfig;
extern struct deviceSyncNode *deviceLatch;
+static readDump();
+
/* PrintDumpLabel
* print out the tape (dump) label.
*/
*
*/
-int
-ScanDumps(struct scanTapeIf *ptr)
+void *
+ScanDumps(void *param)
{
+ struct scanTapeIf *ptr = (struct scanTapeIf *)param;
+
struct butm_tapeInfo curTapeInfo;
struct tapeScanInfo tapeScanInfo;
afs_uint32 taskId;
free(ptr);
setStatus(taskId, TASK_DONE);
LeaveDeviceQueue(deviceLatch);
- return (code);
+ return (void *)(code);
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/tcmain.c,v 1.14.2.6 2006/07/01 05:04:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/tcmain.c,v 1.14.2.8 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#include <sys/stat.h>
#include "afs/butx.h"
#define XBSA_TCMAIN
#include "butc_xbsa.h"
+#include "butc_prototypes.h"
#define N_SECURITY_OBJECTS 3
#define ERRCODE_RANGE 8 /* from error_table.h */
struct ubik_client *cstruct;
extern void TC_ExecuteRequest();
-extern int dbWatcher();
FILE *logIO, *ErrorlogIO, *centralLogIO, *lastLogIO;
char lFile[AFSDIR_PATH_MAX];
char logFile[256];
}
static int
-WorkerBee(struct cmd_syndesc *as, char *arock)
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct rx_securityClass *(securityObjects[3]);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/tcprocs.c,v 1.12.2.3 2006/07/01 05:04:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/tcprocs.c,v 1.12.2.6 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#include <errno.h>
#include <rx/rx.h>
#include <afs/afsint.h>
#include <stdio.h>
+#include <string.h>
#include <afs/procmgmt.h>
#include <afs/assert.h>
#include <afs/prs_fs.h>
#include <afs/tcdata.h>
#include "error_macros.h"
#include "butc_xbsa.h"
+#include "butc_prototypes.h"
+
+static CopyDumpDesc();
+static CopyRestoreDesc();
+static CopyTapeSetDesc();
+
int
callPermitted(struct rx_call *call)
PROCESS pid;
#endif
struct labelTapeIf *ptr;
- statusP statusPtr;
+ statusP statusPtr = NULL;
afs_int32 code;
- extern int Labeller();
extern statusP createStatusNode();
extern afs_int32 allocTaskId();
afs_int32 code = 0;
extern statusP createStatusNode();
- extern Dumper();
if (callPermitted(rxCallId) == 0)
return (TC_NOTPERMITTED);
STC_PerformRestore(struct rx_call *acid, char *dumpSetName, tc_restoreArray *arestores, afs_int32 *taskID)
{
struct dumpNode *newNode;
- statusP statusPtr;
+ statusP statusPtr = 0;
afs_int32 code = 0;
#ifdef AFS_PTHREAD_ENV
pthread_t pid;
PROCESS pid;
#endif
- extern int Restorer();
extern statusP createStatusNode();
if (callPermitted(acid) == 0)
#else
PROCESS pid;
#endif
- statusP statusPtr;
+ statusP statusPtr = 0;
afs_int32 code = 0;
- extern afs_int32 restoreDbFromTape();
extern statusP createStatusNode();
extern afs_int32 allocTaskId();
#else
PROCESS pid;
#endif
- statusP statusPtr;
+ statusP statusPtr = NULL;
afs_int32 code = 0;
struct saveDbIf *ptr;
- extern afs_int32 saveDbToTape();
extern statusP createStatusNode();
extern afs_int32 allocTaskId();
PROCESS pid;
#endif
struct scanTapeIf *ptr;
- statusP statusPtr;
+ statusP statusPtr = 0;
afs_int32 code = 0;
- extern afs_int32 ScanDumps();
extern afs_int32 allocTaskId();
extern statusP createStatusNode();
PROCESS pid;
#endif
#endif
- extern afs_int32 DeleteDump();
extern statusP createStatusNode();
extern afs_int32 allocTaskId();
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/tcstatus.c,v 1.6 2003/07/15 23:14:49 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/tcstatus.c,v 1.6.2.1 2007/10/30 15:23:50 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <strings.h>
#endif
#include <stdio.h>
+#include <string.h>
#include <afs/com_err.h>
#include <lock.h>
#include <afs/bubasics.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/tcudbprocs.c,v 1.14.2.2 2006/07/31 17:07:50 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/tcudbprocs.c,v 1.14.2.5 2008/03/10 22:35:34 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <rx/rx.h>
#include <afs/afsint.h>
#include <stdio.h>
+#include <string.h>
#include <afs/procmgmt.h>
#include <afs/assert.h>
#include <afs/prs_fs.h>
extern int dump_namecheck;
extern int autoQuery;
+static void initTapeBuffering();
+static writeDbDump();
+static restoreDbEntries();
+
+void * KeepAlive(void *);
/* CreateDBDump
* create a dump entry for a saved database
*/
extern struct tapeConfig globalTapeConfig;
extern struct udbHandleS udbHandle;
- extern int KeepAlive();
-
blockSize = BUTM_BLKSIZE;
writeBlock = (char *)malloc(BUTM_BLOCKSIZE);
if (!writeBlock)
* dump backup database to tape
*/
-afs_int32
-saveDbToTape(saveDbIfPtr)
- struct saveDbIf *saveDbIfPtr;
+void *
+saveDbToTape(void *param)
{
+ struct saveDbIf *saveDbIfPtr = (struct saveDbIf *)param;
afs_int32 code = 0;
afs_int32 i;
int wroteLabel;
}
static afs_int32 nbytes = 0; /* # bytes left in buffer */
-static
+static void
initTapeBuffering()
{
nbytes = 0;
* restore the backup database from tape.
*/
-afs_int32
-restoreDbFromTape(taskId)
- afs_uint32 taskId;
+void *
+restoreDbFromTape(void *param)
{
+ afs_uint32 taskId = (void *)param;
afs_int32 code = 0;
afs_int32 i;
struct butm_tapeInfo tapeInfo;
LeaveDeviceQueue(deviceLatch);
setStatus(taskId, TASK_DONE);
- return (code);
+ return (void *)(code);
}
/* KeepAlive
*
* Use the same udbHandle as writeDbDump so we go to the same server.
*/
-int
-KeepAlive()
+void *
+KeepAlive(void *unused)
{
charListT charList;
afs_int32 code;
}
-static
-PerformDump(as)
- register struct cmd_syndesc *as;
+static int
+PerformDump(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
exit(1);
}
printf("dumpid returned %u\n", tdumpID);
+
+ return 0;
}
-static
-PerformRestore(as)
- register struct cmd_syndesc *as;
+static int
+PerformRestore(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
exit(1);
}
printf("dumpid returned %u\n", tdumpID);
+ return 0;
}
-static
-CheckDump(as)
- register struct cmd_syndesc *as;
+static int
+CheckDump(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
printf("call to TC_CheckDump failed %u\n", code);
exit(1);
}
+ return 0;
}
-static
-AbortDump(as)
- register struct cmd_syndesc *as;
+static int
+AbortDump(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
printf("call to TC_AbortDump failed %u\n", code);
exit(1);
}
+ return 0;
}
-static
-WaitForDump(as)
- register struct cmd_syndesc *as;
+static int
+WaitForDump(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
printf("call to TC_WaitForDump failed %u\n", code);
exit(1);
}
+ return 0;
}
-static
-EndDump(as)
- register struct cmd_syndesc *as;
+static int
+EndDump(register struct cmd_syndesc *as, void *arock)
{
struct rx_connection *aconn;
afs_int32 server;
printf("call to TC_EndDump failed %u\n", code);
exit(1);
}
+ return 0;
}
-static
-MyBeforeProc(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
#endif
cmd_SetBeforeProc(MyBeforeProc, NULL);
- ts = cmd_CreateSyntax("dump", PerformDump, 0, "perform a dump");
+ ts = cmd_CreateSyntax("dump", PerformDump, NULL, "perform a dump");
- ts = cmd_CreateSyntax("restore", PerformRestore, 0, "perform a restore");
+ ts = cmd_CreateSyntax("restore", PerformRestore, NULL, "perform a restore");
- ts = cmd_CreateSyntax("check", CheckDump, 0, "check a dump");
+ ts = cmd_CreateSyntax("check", CheckDump, NULL, "check a dump");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "dump id");
- ts = cmd_CreateSyntax("abort", AbortDump, 0, "abort a dump");
+ ts = cmd_CreateSyntax("abort", AbortDump, NULL, "abort a dump");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "dump id");
- ts = cmd_CreateSyntax("wait", WaitForDump, 0, "wait for a dump");
+ ts = cmd_CreateSyntax("wait", WaitForDump, NULL, "wait for a dump");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "dump id");
- ts = cmd_CreateSyntax("end", EndDump, 0, "end a dump");
+ ts = cmd_CreateSyntax("end", EndDump, NULL, "end a dump");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "dump id");
code = cmd_Dispatch(argc, argv);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butm/file_tm.c,v 1.11.2.2 2007/04/10 18:43:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butm/file_tm.c,v 1.11.2.4 2007/11/26 21:21:51 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <limits.h>
#include <sys/stat.h>
#include <stdio.h>
+#include <string.h>
#include <ctype.h>
#include <lwp.h>
#include <afs/com_err.h>
* dataSize - bytes used on the tape
*/
+void
incSize(info, dataSize)
struct butm_tapeInfo *info;
afs_uint32 dataSize;
* dataSize - bytes used on the tape
*/
+void
incPosition(info, fid, dataSize)
struct butm_tapeInfo *info;
usd_handle_t fid;
dnl
-dnl $Id: kerberos.m4,v 1.1.2.11 2007/10/10 17:47:59 shadow Exp $
+dnl $Id: kerberos.m4,v 1.1.2.14 2008/01/05 04:48:41 shadow Exp $
dnl
dnl Kerberos autoconf glue
dnl
CPPFLAGS="$CPPFLAGS $KRB5CFLAGS"
save_LIBS="$LIBS"
LIBS="$LIBS $KRB5LIBS"
- AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket])
+ AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket krb5_c_encrypt krb5_c_encrypt_length krb5_cc_register krb5_decode_ticket])
AC_CHECK_FUNCS([krb5_524_convert_creds], ,
[AC_CHECK_FUNCS([krb524_convert_creds_kdc], ,
[AC_CHECK_LIB([krb524], [krb524_convert_creds_kdc],
LIBS="$save_LIBS"
fi
+if test "x$ac_cv_krb5_cc_register_exists" = "xyes"; then
+ AC_DEFINE(HAVE_KRB5_CC_REGISTER, 1, [define if krb5_cc_register exists])
+fi
+
AC_SUBST(BUILD_KRB5)
AC_SUBST(KRB5CFLAGS)
AC_SUBST(KRB5LIBS)
# [ACTION-IF-SUCCESS], [ACTION-IF-FAILURE])
#
AC_DEFUN([AC_TRY_KBUILD26],[ rm -fr conftest.dir
+ if test "x$ac_linux_kbuild_requires_extra_cflags" = "xyes" ; then
+ CFLAGS_PREFIX='EXTRA_'
+ fi
if mkdir conftest.dir &&
cat >conftest.dir/Makefile <<_ACEOF &&
-CFLAGS += $CPPFLAGS
+${CFLAGS_PREFIX}CFLAGS += $CPPFLAGS
obj-m += conftest.o
_ACEOF
MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
_ACEOF
- echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&AS_MESSAGE_LOG_FD
- make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&AS_MESSAGE_LOG_FD 2>conftest.err
+ echo make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&AS_MESSAGE_LOG_FD &&
+ make -C $LINUX_KERNEL_PATH M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&AS_MESSAGE_LOG_FD 2>conftest.err &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
then [$3]
else
sed '/^ *+/d' conftest.err >&AS_MESSAGE_LOG_FD
#
AC_DEFUN([AC_TRY_KBUILD24], [
ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ $CPPFLAGS"
- AC_TRY_COMPILE([$1], [$2], [$3], [$4])
+ CPPFLAGS="-I$LINUX_KERNEL_PATH/include -D__KERNEL__ -Werror-implicit-function-declaration $CPPFLAGS"
+ AC_TRY_COMPILE([
+#include <linux/kernel.h>
+$1], [$2], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
[],:,AC_MSG_RESULT(no)
AC_MSG_FAILURE([Fix problem or use --disable-kernel-module...]))
AC_MSG_RESULT(yes)])
+
+AC_DEFUN([LINUX_KBUILD_USES_EXTRA_CFLAGS], [
+ AC_MSG_CHECKING([if linux kbuild requires EXTRA_CFLAGS])
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS=-Wall
+ AC_TRY_KBUILD(
+[#include <linux/sched.h>
+#include <linux/fs.h>],
+ [],
+ ac_linux_kbuild_requires_extra_cflags=no,
+ ac_linux_kbuild_requires_extra_cflags=yes)
+ CPPFLAGS="$save_CPPFLAGS"
+ AC_MSG_RESULT($ac_linux_kbuild_requires_extra_cflags)])
ac_cv_linux_statfs_takes_dentry=no)])
AC_MSG_RESULT($ac_cv_linux_statfs_takes_dentry)])
+
+AC_DEFUN([LINUX_KEY_TYPE_H_EXISTS], [
+ AC_MSG_CHECKING([for linux/key-type.h existance])
+ AC_CACHE_VAL([ac_cv_linux_key_type_h_exists], [
+ AC_TRY_KBUILD(
+[#include <linux/key-type.h>],
+[return;],
+ ac_cv_linux_key_type_h_exists=yes,
+ ac_cv_linux_key_type_h_exists=no)])
+ AC_MSG_RESULT($ac_cv_linux_key_type_h_exists)
+ if test "x$ac_cv_linux_key_type_h_exists" = "xyes"; then
+ AC_DEFINE([KEY_TYPE_H_EXISTS], 1, [define if linux/key-type.h exists])
+ fi])
+
AC_DEFUN([LINUX_LINUX_KEYRING_SUPPORT], [
AC_MSG_CHECKING([for linux kernel keyring support])
AC_CACHE_VAL([ac_cv_linux_keyring_support], [
AC_TRY_KBUILD(
[#include <linux/rwsem.h>
+#ifdef KEY_TYPE_H_EXISTS
+#include <linux/key-type.h>
+#endif
#include <linux/key.h>
#include <linux/keyctl.h>],
[#ifdef CONFIG_KEYS
ac_cv_linux_fs_struct_fop_has_sendfile=no)])
AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_sendfile)])
+AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SPLICE], [
+ AC_MSG_CHECKING([for splice_write and splice_read in struct file_operations])
+ AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_splice], [
+ AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[struct file_operations _fop;
+_fop.splice_write(NULL, NULL, NULL, 0, 0);
+_fop.splice_read(NULL, NULL, NULL, 0, 0);],
+ ac_cv_linux_fs_struct_fop_has_splice=yes,
+ ac_cv_linux_fs_struct_fop_has_splice=no)])
+ AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_splice)])
+
+AC_DEFUN([LINUX_HAVE_CURRENT_KERNEL_TIME], [
+ AC_MSG_CHECKING([for current_kernel_time()])
+ AC_CACHE_VAL([ac_cv_linux_have_current_kernel_time], [
+ AC_TRY_KBUILD(
+[#include <linux/time.h>],
+[struct timespec s = current_kernel_time();],
+ ac_cv_linux_have_current_kernel_time=yes,
+ ac_cv_linux_have_current_kernel_time=no)])
+ AC_MSG_RESULT($ac_cv_linux_have_current_kernel_time)])
+
+AC_DEFUN([LINUX_KMEM_CACHE_INIT], [
+ AC_MSG_CHECKING([for new kmem_cache init function parameters])
+ AC_CACHE_VAL([ac_cv_linux_kmem_cache_init], [
+ AC_TRY_KBUILD(
+[#include <linux/slab.h>],
+[extern struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
+ unsigned long,
+ void (*)(struct kmem_cache *, void *));
+return;],
+ ac_cv_linux_kmem_cache_init=yes,
+ ac_cv_linux_kmem_cache_init=no)])
+ AC_MSG_RESULT($ac_cv_linux_kmem_cache_init)])
+
+AC_DEFUN([LINUX_SYSCTL_TABLE_CHECKING], [
+ AC_MSG_CHECKING([for sysctl table checking])
+ AC_CACHE_VAL([ac_cv_linux_sysctl_table_checking], [
+ AC_TRY_KBUILD(
+[#include <linux/sysctl.h>],
+[ extern int sysctl_check_table(int) __attribute__((weak));
+sysctl_check_table(NULL);],
+ ac_cv_linux_sysctl_table_checking=no,
+ ac_cv_linux_sysctl_table_checking=yes)])
+AC_MSG_RESULT($ac_cv_linux_sysctl_table_checking)])
+
+AC_DEFUN([LINUX_HAVE_IGET], [
+ AC_MSG_CHECKING([for linux iget()])
+ AC_CACHE_VAL([ac_cv_linux_have_iget], [
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Werror-implicit-function-declaration"
+ AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[iget(NULL, NULL);],
+ ac_cv_linux_have_iget=yes,
+ ac_cv_linux_have_iget=no)
+ CPPFLAGS="$save_CPPFLAGS"])
+ AC_MSG_RESULT($ac_cv_linux_have_iget)])
+
+AC_DEFUN([LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH], [
+ AC_MSG_CHECKING([for path in struct nameidata])
+ AC_CACHE_VAL([ac_cv_linux_struct_nameidata_has_path], [
+ AC_TRY_KBUILD(
+[#include <linux/namei.h>],
+[struct nameidata _nd;
+printk("%x\n", _nd.path);],
+ ac_cv_linux_struct_nameidata_has_path=yes,
+ ac_cv_linux_struct_nameidata_has_path=no)])
+ AC_MSG_RESULT($ac_cv_linux_struct_nameidata_has_path)])
+
OPTMZ=-O
LWP_DBG=-g
LWP_OPTMZ=-O
+NO_STRIP_BIN=-ns
+NO_STRIP_KRB=-ns
dnl standard programs
AC_PROG_RANLIB
SHLIB_LINKER="${MT_CC} -shared"
;;
+ arm_linux24)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
+ arm_linux26)
+ CCOBJ="${CC} -fPIC"
+ KERN_OPTMZ=-O2
+ LEX="flex -l"
+ MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+ MT_LIBS="-lpthread"
+ PAM_OPTMZ=-O2
+ PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LDFLAGS="-shared -Xlinker -x"
+ TXLIBS="-lncurses"
+ XCFLAGS="-D_LARGEFILE64_SOURCE"
+ YACC="bison -y"
+ SHLIB_LINKER="${MT_CC} -shared"
+ ;;
+
hp_ux102)
AS="/usr/ccs/bin/as"
CC="/opt/ansic/bin/cc -Ae"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE -G0"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="/usr/lib64/libncurses.so"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
LWP_OPTMZ=-O2
OPTMZ=-O2
PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE"
;;
*_obsd*)
+ KRB5CFLAGS="-I/usr/include/kerberosV"
+ KRB5LIBS="-lkrb5 -lcrypto"
LEX="flex -l"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-pthread"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
TXLIBS="-lncurses"
XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
MT_LIBS="-lpthread"
PAM_CFLAGS="-O2 -Dlinux -DLINUX_PAM -fPIC"
+ SHLIB_CFLAGS="-fPIC"
SHLIB_LDFLAGS="-shared -Xlinker -x"
TXLIBS="-lncurses"
XCFLAGS="-O2 -D_LARGEFILE64_SOURCE"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=v9'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
SHLIB_CFLAGS="-KPIC"
SHLIB_LDFLAGS="-G -Bsymbolic"
TXLIBS="-lcurses"
- XCFLAGS64='${XCFLAGS} -xarch=amd64'
+ XCFLAGS64='${XCFLAGS} -m64'
XCFLAGS="-dy -Bdynamic"
XLIBELFA="-lelf"
XLIBKVM="-lkvm"
if test "x$enable_debug" = "xno"; then
DBG=
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
fi
if test "x$enable_optimize" = "xno"; then
LWP_OPTMZ=
fi
+if test "x$enable_strip_binaries" != "xno"; then
+ if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+ else
+ NO_STRIP_BIN=
+ NO_STRIP_KRB=-s
+ fi
+else
+ NO_STRIP_BIN=-ns
+ NO_STRIP_KRB=-ns
+fi
+
+if test "x$enable_warnings" = "xyes"; then
+ if test "x$GCC" = "xyes"; then
+ XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition"
+ fi
+fi
+
AC_SUBST(CCXPG2)
AC_SUBST(CCOBJ)
AC_SUBST(AFSD_LIBS)
AC_SUBST(MT_CFLAGS)
AC_SUBST(MT_LIBS)
AC_SUBST(MV)
+AC_SUBST(NO_STRIP_BIN)
+AC_SUBST(NO_STRIP_KRB)
AC_SUBST(OPTMZ)
AC_SUBST(PAM_CFLAGS)
AC_SUBST(PAM_LIBS)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/cmd/cmd.c,v 1.11.2.1 2006/06/30 19:45:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/cmd/cmd.c,v 1.11.2.3 2008/01/13 15:33:53 jaltman Exp $");
#include <sys/types.h>
#include <ctype.h>
static int dummy; /* non-null ptr used for flag existence */
static struct cmd_syndesc *allSyntax = 0;
static int noOpcodes = 0;
-static int (*beforeProc) (struct cmd_syndesc * ts, char *beforeRock) =
- 0, (*afterProc) (struct cmd_syndesc * ts, char *afterRock) = 0;
-static char *beforeRock, *afterRock;
+static int (*beforeProc) (struct cmd_syndesc * ts, void *beforeRock) = NULL;
+static int (*afterProc) (struct cmd_syndesc * ts, void *afterRock) = NULL;
+static void *beforeRock, *afterRock;
static char initcmd_opcode[] = "initcmd"; /*Name of initcmd opcode */
/* take name and string, and return null string if name is empty, otherwise return
static char *
NName(char *a1, char *a2)
{
- static char tbuffer[80];
+ static char tbuffer[300];
if (strlen(a1) == 0) {
- return "";
+ return "";
} else {
- strcpy(tbuffer, a1);
- strcat(tbuffer, a2);
- return tbuffer;
+ strncpy(tbuffer, a1, sizeof(tbuffer));
+ strncat(tbuffer, a2, sizeof(tbuffer));
+ tbuffer[sizeof(tbuffer)-1]='\0';
+ return tbuffer;
}
}
extern char *AFSVersion;
static int
-VersionProc(register struct cmd_syndesc *as, char *arock)
+VersionProc(register struct cmd_syndesc *as, void *arock)
{
printf("%s\n", AFSVersion);
return 0;
}
static int
-AproposProc(register struct cmd_syndesc *as, char *arock)
+AproposProc(register struct cmd_syndesc *as, void *arock)
{
register struct cmd_syndesc *ts;
char *tsub;
}
static int
-HelpProc(register struct cmd_syndesc *as, char *arock)
+HelpProc(register struct cmd_syndesc *as, void *arock)
{
register struct cmd_syndesc *ts;
register struct cmd_item *ti;
}
int
-cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, char *beforeRock),
- char *arock)
+cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, void *beforeRock),
+ void *arock)
{
beforeProc = aproc;
beforeRock = arock;
}
int
-cmd_SetAfterProc(int (*aproc) (struct cmd_syndesc * ts, char *afterRock),
- char *arock)
+cmd_SetAfterProc(int (*aproc) (struct cmd_syndesc * ts, void *afterRock),
+ void *arock)
{
afterProc = aproc;
afterRock = arock;
struct cmd_syndesc *
cmd_CreateSyntax(char *aname,
- int (*aproc) (struct cmd_syndesc * ts, char *arock),
- char *arock, char *ahelp)
+ int (*aproc) (struct cmd_syndesc * ts, void *arock),
+ void *arock, char *ahelp)
{
register struct cmd_syndesc *td;
strcpy(tp->name, aname);
tp->type = atype;
tp->flags = aflags;
- tp->items = (struct cmd_item *)0;
+ tp->items = NULL;
if (ahelp) {
tp->help = (char *)malloc(strlen(ahelp) + 1);
assert(tp->help);
default:
break;
}
- tp->items = (struct cmd_item *)0;
+ tp->items = NULL;
}
}
char *name; /* subcommand name */
char *a0name; /* command name from argv[0] */
char *help; /* help description */
- int (*proc) (struct cmd_syndesc * ts, char *arock);
- char *rock;
+ int (*proc) (struct cmd_syndesc * ts, void *arock);
+ void *rock;
int nParms; /* number of parms */
afs_int32 flags; /* random flags */
struct cmd_parmdesc parms[CMD_MAXPARMS]; /* parms themselves */
extern struct cmd_syndesc *cmd_CreateSyntax(char *namep,
int (*aprocp) (struct cmd_syndesc
- * ts, char *arock),
- char *rockp, char *helpp);
+ * ts, void *arock),
+ void *rockp, char *helpp);
extern int
- cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, char *beforeRock),
- char *arock);
+ cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, void *beforeRock),
+ void *arock);
extern int
- cmd_SetAfterProc(int (*aproc) (struct cmd_syndesc * ts, char *afterRock),
- char *arock);
+ cmd_SetAfterProc(int (*aproc) (struct cmd_syndesc * ts, void *afterRock),
+ void *arock);
extern int cmd_CreateAlias(struct cmd_syndesc *as, char *aname);
extern int cmd_Seek(struct cmd_syndesc *as, int apos);
extern int cmd_AddParm(struct cmd_syndesc *as, char *aname, int atype,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/cmd/test/ctest.c,v 1.6 2003/07/15 23:14:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/cmd/test/ctest.c,v 1.6.2.1 2007/10/31 04:13:38 shadow Exp $");
#include "cmd.h"
#include <stdio.h>
-static
-cproc1(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc1(struct cmd_syndesc *as, void *arock)
{
printf("in the apple command\n");
return 0;
}
-static
-cproc2(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc2(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
printf("in the pear command\n");
return 0;
}
-main(argc, argv)
- int argc;
- char **argv;
+int
+main(int argc, char **argv)
{
register struct cmd_syndesc *ts;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/cmd/test/dtest.c,v 1.6 2003/07/15 23:14:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/cmd/test/dtest.c,v 1.6.2.1 2007/10/31 04:13:38 shadow Exp $");
#include "cmd.h"
#include <stdio.h>
-static
-cproc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
printf("in the pear command\n");
return 0;
}
-main(argc, argv)
- int argc;
- char **argv;
+int
+main(int argc, char **argv)
{
register struct cmd_syndesc *ts;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/cmd/test/itest.c,v 1.7.2.1 2007/04/10 18:43:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/cmd/test/itest.c,v 1.7.2.2 2007/10/31 04:13:38 shadow Exp $");
#include "cmd.h"
#include <stdio.h>
#include <com_err.h>
-static
-cproc1(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc1(struct cmd_syndesc *as, void *arock)
{
printf("in the apple command\n");
return 0;
}
-static
-cproc2(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc2(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
printf("in the pear command\n");
return 0;
}
-static void
-cproc3(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+cproc3(struct cmd_syndesc *as, void *arock)
{
exit(0);
}
-main(argc, argv)
- int argc;
- char **argv;
+int
+main(int argc, char **argv)
{
register struct cmd_syndesc *ts;
char tline[1000];
AFS_component_version_number.c
Makefile
Makefile.*_*[0123456789]
+Makefile.*_*[0123456789].in
Makefile.version
Makefile.version-NOCML
afsconfig.h
afsconfig.h.in
config
mkvers
-Makefile.hp_ux102
-Makefile.hp_ux110
-Makefile.i386_linux22
-Makefile.i386_linux24
-Makefile.sun4x_56
-Makefile.sun4x_57
param.h.new
Makefile.config
stamp-h1
AFSD_LIBS = @AFSD_LIBS@
AFSD_LDFLAGS = @AFSD_LDFLAGS@
CC = @CC@
+CPP = @CPP@
CCOBJ = @CCOBJ@
CCXPG2 = @CCXPG2@
CFLAGS = @CFLAGS@
MT_CFLAGS = @MT_CFLAGS@
MT_LIBS = @MT_LIBS@
MV = @MV@
+NO_STRIP_BIN = @NO_STRIP_BIN@
+NO_STRIP_KRB = @NO_STRIP_KRB@
OPTMZ = @OPTMZ@
PAM_CFLAGS = @PAM_CFLAGS@
PAM_LIBS = @PAM_LIBS@
# Build helper apps
#
COMPILE_ET = ${TOP_OBJDIR}/src/comerr/compile_et
-INSTALL = ${TOP_OBJDIR}/src/pinstall/pinstall
+INSTALL = ${TOP_OBJDIR}/src/pinstall/pinstall ${NO_STRIP_BIN}
INSTALLex = ${INSTALL} -m 755
RXGEN = ${TOP_OBJDIR}/src/rxgen/rxgen
SHELL = /bin/sh
/* #define AFSOP_STOP_COMPLETE 215 defined in osi.h */
/* #define AFSOP_STOP_RXK_LISTENER 217 defined in osi.h */
#define AFSOP_STOP_AFSDB 218 /* Stop AFSDB handler */
+#define AFSOP_STOP_NETIF 219 /* Stop Netif poller */
/* Main afs syscall entry; this number may vary per system (i.e. defined in afs/param.h) */
#ifndef AFS_SYSCALL
#define SYS_NAME_ID_i64_w2k 3500
+#define SYS_NAME_ID_arm_linux2 3800
+#define SYS_NAME_ID_arm_linux22 3801
+#define SYS_NAME_ID_arm_linux24 3802
+#define SYS_NAME_ID_arm_linux26 3803
+
/*
* Placeholder to keep system-wide standard flags since this file is included by all
* files (i.e in afs/param.h)
/* define if you have connect */
#undef HAVE_CONNECT
+/* define if current_kernel_time() exists */
+#undef HAVE_CURRENT_KERNEL_TIME
+
/* Define to 1 if you have the `daemon' function. */
#undef HAVE_DAEMON
/* Define to 1 if you have the `getprogname' function. */
#undef HAVE_GETPROGNAME
+/* define if your kernel has iget */
+#undef HAVE_IGET
+
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `krb5_524_convert_creds' function. */
#undef HAVE_KRB5_524_CONVERT_CREDS
+/* define if krb5_cc_register exists */
+#undef HAVE_KRB5_CC_REGISTER
+
/* define if krb5_creds has keyblock */
#undef HAVE_KRB5_CREDS_KEYBLOCK
/* define if krb5_creds has session */
#undef HAVE_KRB5_CREDS_SESSION
+/* Define to 1 if you have the `krb5_c_encrypt' function. */
+#undef HAVE_KRB5_C_ENCRYPT
+
+/* Define to 1 if you have the `krb5_c_encrypt_length' function. */
+#undef HAVE_KRB5_C_ENCRYPT_LENGTH
+
+/* Define to 1 if you have the `krb5_decode_ticket' function. */
+#undef HAVE_KRB5_DECODE_TICKET
+
/* Define to 1 if you have the `krb5_principal_get_comp_string' function. */
#undef HAVE_KRB5_PRINCIPAL_GET_COMP_STRING
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
/* define if you have POSIX regex library */
#undef HAVE_POSIX_REGEX
/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
+/* Define to 1 if you have the `vsyslog' function. */
+#undef HAVE_VSYSLOG
+
/* Define to 1 if you have the <windows.h> header file. */
#undef HAVE_WINDOWS_H
/* define if key_alloc takes a struct task * */
#undef KEY_ALLOC_NEEDS_STRUCT_TASK
+/* define if key-type.h exists */
+#undef KEY_TYPE_H_EXISTS
+
+/* define for new kmem_cache init function parameters */
+#undef KMEM_CACHE_INIT
+
/* define if kmem_cache_create takes a destructor argument */
#undef KMEM_CACHE_TAKES_DTOR
/* define if your struct file_operations has sendfile */
#undef STRUCT_FILE_OPERATIONS_HAS_SENDFILE
+/* define if your struct file_operations has splice_write and splice_read */
+#undef STRUCT_FILE_OPERATIONS_HAS_SPLICE
+
/* define if struct fs has fs_rolled */
#undef STRUCT_FS_HAS_FS_ROLLED
/* define if your struct inode has truncate_sem */
#undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
+/* define if your struct nameidata has path */
+#undef STRUCT_NAMEIDATA_HAS_PATH
+
/* define if you struct sockaddr sa_len */
#undef STRUCT_SOCKADDR_HAS_SA_LEN
/* define if you want to have support for nested pts groups */
#undef SUPERGROUPS
+/* define if your kernel has sysctl table checking */
+#undef SYSCTL_TABLE_CHECKING
+
/* define if your kernel has a usable symlink cache API */
#undef USABLE_KERNEL_PAGE_SYMLINK_CACHE
#include <stdlib.h>
#include <afsconfig.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
#define TOK_DONTUSE 1 /* Don't copy if match and this flag is set. */
struct token {
--- /dev/null
+#ifndef AFS_AMD64_PARAM_H
+#define AFS_AMD64_PARAM_H
+
+#define AFS_X86_XBSD_ENV 1
+#define AFS_X86_ENV 1
+#define AFSLITTLE_ENDIAN 1
+
+#define SYS_NAME "amd64_nbsd30"
+#define SYS_NAME_ID SYS_NAME_ID_amd64_nbsd30
+
+#define AFS_64BITPOINTER_ENV 1
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#endif /* !defined(UKERNEL) */
+
+#endif /* AFS_AMD64_PARAM_H */
--- /dev/null
+#ifndef AFS_AMD64_PARAM_H
+#define AFS_AMD64_PARAM_H
+
+#define AFS_X86_XBSD_ENV 1
+#define AFS_X86_ENV 1
+#define AFSLITTLE_ENDIAN 1
+
+#define SYS_NAME "amd64_nbsd40"
+#define SYS_NAME_ID SYS_NAME_ID_amd64_nbsd40
+
+#define AFS_64BITPOINTER_ENV 1
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#endif /* !defined(UKERNEL) */
+
+#endif /* AFS_AMD64_PARAM_H */
--- /dev/null
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
+ * it's a judgment call. If something is obviously arm specific, use that
+ * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
+ * in the sysname is the current version of the client. This takes into
+ * account the perferred OS user space configuration as well as the kernel.
+ */
+
+#define AFS_LINUX20_ENV 1
+#define AFS_LINUX22_ENV 1
+#define AFS_LINUX24_ENV 1
+#define AFS_ARM_LINUX20_ENV 1
+#define AFS_ARM_LINUX22_ENV 1
+#define AFS_ARM_LINUX24_ENV 1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#define AFS_64BIT_IOPS_ENV 1
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#define AFS_64BIT_ENV 1
+#define AFS_64BIT_CLIENT 1
+
+#if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
+
+#ifdef CONFIG_SMP
+#undef CONFIG_SMP
+#endif
+/* Using "AFS_SMP" to map to however many #define's are required to get
+ * MP to compile for Linux
+ */
+#ifdef AFS_SMP
+#define CONFIG_SMP 1
+#ifndef __SMP__
+#define __SMP__
+#endif
+#endif
+#define AFS_GLOBAL_SUNLOCK
+
+#if defined(MODULE) && defined(CONFIG_MODVERSIONS)
+#define MODVERSIONS
+#include <linux/modversions.h>
+#endif
+
+#endif /* __KERNEL__ && !DUMP_KERNEL */
+
+#include <afs/afs_sysnames.h>
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 1
+
+#define AFSLITTLE_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */
+
+#ifdef KERNEL
+#ifndef MIN
+#define MIN(A,B) ((A) < (B) ? (A) : (B))
+#endif
+#ifndef MAX
+#define MAX(A,B) ((A) > (B) ? (A) : (B))
+#endif
+#endif /* KERNEL */
+
+#ifndef KERNEL
+#define __USE_LARGEFILE64 1
+#if !defined off64_t
+#define off64_t __off64_t
+#endif
+#endif
+
+/* Machine / Operating system information */
+#define SYS_NAME "arm_linux24"
+#define SYS_NAME_ID SYS_NAME_ID_arm_linux24
+
+#endif /* AFS_PARAM_H */
+
+
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
+ * it's a judgment call. If something is obviously arm specific, use that
+ * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
+ * in the sysname is the current version of the client. This takes into
+ * account the perferred OS user space configuration as well as the kernel.
+ */
+
+#define UKERNEL 1 /* user space kernel */
+#define AFS_ENV 1
+#define AFS_USR_LINUX20_ENV 1
+#define AFS_USR_LINUX22_ENV 1
+#define AFS_USR_LINUX24_ENV 1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#define AFS_64BIT_IOPS_ENV 1
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#include <afs/afs_sysnames.h>
+
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+
+
+/* Machine / Operating system information */
+#define SYS_NAME "arm_linux24"
+#define SYS_NAME_ID SYS_NAME_ID_arm_linux24
+#define AFSLITTLE_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_fmode uio_fmode
+#define afsio_resid uio_resid
+#define AFS_UIOSYS 1
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES MCLBYTES
+#define AFS_MINCHANGE 2
+#define VATTR_NULL usr_vattr_null
+
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#endif /* AFS_PARAM_H */
+
+#endif /* !defined(UKERNEL) */
--- /dev/null
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
+ * it's a judgment call. If something is obviously arm specific, use that
+ * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
+ * in the sysname is the current version of the client. This takes into
+ * account the perferred OS user space configuration as well as the kernel.
+ */
+
+#define AFS_LINUX20_ENV 1
+#define AFS_LINUX22_ENV 1
+#define AFS_LINUX24_ENV 1
+#define AFS_LINUX26_ENV 1
+#define AFS_ARM_LINUX20_ENV 1
+#define AFS_ARM_LINUX22_ENV 1
+#define AFS_ARM_LINUX24_ENV 1
+#define AFS_ARM_LINUX26_ENV 1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#ifndef __NR_afs_syscall
+#define __NR_afs_syscall 137
+#endif
+#define AFS_64BIT_IOPS_ENV 1
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#define AFS_64BIT_ENV 1
+#define AFS_64BIT_CLIENT 1
+
+#if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
+
+#ifdef CONFIG_SMP
+#ifndef AFS_SMP
+#define AFS_SMP 1
+#endif
+#endif
+/* Using "AFS_SMP" to map to however many #define's are required to get
+ * MP to compile for Linux
+ */
+#ifdef AFS_SMP
+#ifndef CONFIG_SMP
+#define CONFIG_SMP 1
+#endif
+#ifndef __SMP__
+#define __SMP__
+#endif
+#endif
+#define AFS_GLOBAL_SUNLOCK
+
+#endif /* __KERNEL__ && !DUMP_KERNEL */
+
+#include <afs/afs_sysnames.h>
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 1
+
+#define AFSLITTLE_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */
+
+#ifdef KERNEL
+#ifndef MIN
+#define MIN(A,B) ((A) < (B) ? (A) : (B))
+#endif
+#ifndef MAX
+#define MAX(A,B) ((A) > (B) ? (A) : (B))
+#endif
+#endif /* KERNEL */
+
+#ifndef KERNEL
+#define __USE_LARGEFILE64 1
+#if !defined off64_t
+#define off64_t __off64_t
+#endif
+#endif
+
+/* Machine / Operating system information */
+#define SYS_NAME "arm_linux26"
+#define SYS_NAME_ID SYS_NAME_ID_arm_linux26
+
+#endif /* AFS_PARAM_H */
+
+
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
+ * it's a judgment call. If something is obviously arm specific, use that
+ * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
+ * in the sysname is the current version of the client. This takes into
+ * account the perferred OS user space configuration as well as the kernel.
+ */
+
+#define UKERNEL 1 /* user space kernel */
+#define AFS_ENV 1
+#define AFS_USR_LINUX20_ENV 1
+#define AFS_USR_LINUX22_ENV 1
+#define AFS_USR_LINUX24_ENV 1
+#define AFS_USR_LINUX26_ENV 1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#define AFS_64BIT_IOPS_ENV 1
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#include <afs/afs_sysnames.h>
+
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+
+
+/* Machine / Operating system information */
+#define SYS_NAME "arm_linux26"
+#define SYS_NAME_ID SYS_NAME_ID_arm_linux26
+#define AFSLITTLE_ENDIAN 1
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
+#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
+
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_fmode uio_fmode
+#define afsio_resid uio_resid
+#define AFS_UIOSYS 1
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES MCLBYTES
+#define AFS_MINCHANGE 2
+#define VATTR_NULL usr_vattr_null
+
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#endif /* AFS_PARAM_H */
+
+#endif /* !defined(UKERNEL) */
* directory or online at http://www.openafs.org/dl/license10.html
*/
-/* THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT */
-
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
* directory or online at http://www.openafs.org/dl/license10.html
*/
-/* THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT */
-
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
} \
}
+#define KERNEL_HAVE_UERROR 1
+
/* Extra kernel definitions (from kdefs file) */
#ifdef KERNEL
#define _KERNEL 1
* directory or online at http://www.openafs.org/dl/license10.html
*/
-/* THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT */
-
#ifndef AFS_PARAM_H
#define AFS_PARAM_H
#define AFS_64BIT_ENV 1
#define AFS_64BIT_CLIENT 1
+
#if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
#ifdef CONFIG_SMP
#define AFS_NBSD15_ENV 1
#define AFS_NBSD16_ENV 1
#define AFS_NBSD20_ENV 1
+#define AFS_NBSD30_ENV 1
#define AFS_NONFSTRANS 1
#define AFS_KERBEROS_ENV 1
--- /dev/null
+/* NetBSD shared section */
+
+#ifndef AFS_PARAM_COMMON_H
+#define AFS_PARAM_COMMON_H 1
+
+#define AFS_64BIT_ENV 1
+#define AFS_NAMEI_ENV 1 /* User space interface to file system */
+#define AFS_64BIT_IOPS_ENV 1 /* Needed for NAMEI */
+#define AFS_64BIT_CLIENT 1
+
+#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
+#define AFS_SYSCALL 210
+
+#ifndef MOUNT_AFS
+#define MOUNT_AFS AFS_MOUNT_AFS
+#endif
+
+#define AFS_XBSD_ENV 1 /* {Free,Open,Net}BSD */
+
+#define AFS_NBSD_ENV 1
+#define AFS_NBSD15_ENV 1
+#define AFS_NBSD16_ENV 1
+#define AFS_NBSD20_ENV 1
+#define AFS_NBSD30_ENV 1
+#define AFS_NBSD40_ENV 1
+#define AFS_NONFSTRANS 1
+#define AFS_KERBEROS_ENV 1
+
+#define AFS_VFSINCL_ENV 1
+
+#define AFS_HAVE_FFS 1 /* Use system's ffs. */
+
+#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#define AFS_HAVE_STATVFS 1 /* System supports statvfs */
+#endif
+
+#ifndef UKERNEL
+
+#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#include <sys/param.h>
+#endif
+
+#define FTRUNC O_TRUNC
+
+#define IUPD 0x0010
+#define IACC 0x0020
+#define ICHG 0x0040
+#define IMOD 0x0080
+
+#define IN_LOCK(ip) lockmgr(&ip->i_lock, LK_EXCLUSIVE, \
+ NULL, curproc)
+#define IN_UNLOCK(ip) lockmgr(&ip->i_lock, LK_RELEASE, \
+ NULL, curproc)
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_VM_RDWR_ENV 1
+#define AFS_VFS_ENV 1
+#define AFS_GREEDY43_ENV 1
+
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+#define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to implement rx clock */
+
+/* Extra kernel definitions (from kdefs file) */
+#ifdef _KERNEL
+#define AFS_GLOBAL_SUNLOCK 1
+#define AFS_VFS34 1 /* What is VFS34??? */
+#define AFS_SHORTGID 1 /* are group id's short? */
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_resid uio_resid
+#define AFS_UIOSYS UIO_SYSSPACE
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES CLBYTES
+#define osi_GetTime(x) microtime(x)
+#define AFS_KALLOC(x) kalloc(x)
+#define AFS_KFREE(x,y) kfree(x,y)
+#define v_count v_usecount
+#define v_vfsp v_mount
+#define vfs_bsize mnt_stat.f_bsize
+#define vfs_fsid mnt_stat.f_fsid
+#define va_nodeid va_fileid
+#define vfs_vnodecovered mnt_vnodecovered
+#define direct dirent
+#define vnode_t struct vnode
+
+#ifndef MUTEX_DEFAULT
+#define MUTEX_DEFAULT 0
+#endif /* MUTEX_DEFAULT */
+
+#ifndef SSYS
+#define SSYS 0x00002
+#endif /* SSYS */
+
+#define p_rcred p_ucred
+
+#define VN_RELE(vp) vrele(((struct vnode *)(vp)))
+#define VN_HOLD(vp) VREF(((struct vnode *)(vp)))
+
+#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+enum vcexcl { NONEXCL, EXCL };
+
+#ifdef KERNEL
+#ifndef MIN
+#define MIN(A,B) ((A) < (B) ? (A) : (B))
+#endif
+#ifndef MAX
+#define MAX(A,B) ((A) > (B) ? (A) : (B))
+#endif
+#endif /* KERNEL */
+
+#endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ && !defined(IGNORE_STDS_H) */
+#endif /* _KERNEL */
+
+#else /* !defined(UKERNEL) */
+
+
+/* This section for user space compiles only */
+
+#define UKERNEL 1 /* user space kernel */
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
+
+#define afsio_iov uio_iov
+#define afsio_iovcnt uio_iovcnt
+#define afsio_offset uio_offset
+#define afsio_seg uio_segflg
+#define afsio_fmode uio_fmode
+#define afsio_resid uio_resid
+#define AFS_UIOSYS UIO_SYSSPACE
+#define AFS_UIOUSER UIO_USERSPACE
+#define AFS_CLBYTES MCLBYTES
+#define AFS_MINCHANGE 2
+#define VATTR_NULL usr_vattr_null
+
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#if !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#include <limits.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+#include <sys/fcntl.h>
+#include <netinet/in.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#endif
+
+#endif /* !defined(UKERNEL) */
+
+#endif /* AFS_PARAM_COMMON_H */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/dauth/Attic/dpass.c,v 1.7.2.1 2006/10/22 02:08:33 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/dauth/Attic/dpass.c,v 1.7.2.2 2007/11/26 21:21:52 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#define s(n) ((k(n) << 8) | k(n+1))
printf("\nThe new DCE password is: %0.4x-%0.4x-%0.4x-%0.4x\n", s(0), s(2),
s(4), s(6));
+ return 0;
}
main(argc, argv)
#ifdef AFS_PPC64_LINUX20_ENV
#include "conf-ppc64-linux.h"
#else
+#ifdef AFS_ARM_LINUX20_ENV
+#include "conf-arm-linux.h"
+#else
#include "conf-i386-linux.h"
+#endif /* AFS_ARM_LINUX20_ENV */
#endif /* AFS_PPC64_LINUX20_ENV */
#endif /* AFS_AMD64_LINUX20_ENV */
#endif /* AFS_IA64_LINUX20_ENV */
--- /dev/null
+/*
+ * Copyright 1988 by the Massachusetts Institute of Technology.
+ *
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
+ *
+ * Machine-type definitions: Linux on Intel
+ */
+
+#include <mit-cpyright.h>
+
+#define BITS32
+#define BIG
+#define LSBFIRST
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/dir/dir.c,v 1.21.2.6 2007/10/11 17:48:35 shadow Exp $");
+ ("$Header: /cvs/openafs/src/dir/dir.c,v 1.21.2.7 2007/10/30 15:23:52 shadow Exp $");
#ifdef KERNEL
#if !defined(UKERNEL)
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#endif /* KERNEL */
afs_int32 DErrno;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/dir/salvage.c,v 1.10 2003/12/07 22:49:26 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/dir/salvage.c,v 1.10.2.1 2007/10/30 15:23:52 shadow Exp $");
#include <sys/types.h>
#include <errno.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "dir.h"
#define printf Log /* To make it work with volume salvager */
afsaux.o: afsaux.c afsint.h
Kcallback.cs.c: common.xg afscbint.xg Kvice.h Kcallback.h
- ${RXGEN} -x -k -C -o Kcallback.cs.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -k -A -C -o Kcallback.cs.c ${srcdir}/afscbint.xg
Kcallback.ss.c: common.xg afscbint.xg Kvice.h Kcallback.h
- ${RXGEN} -x -k -S -o Kcallback.ss.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -k -A -S -o Kcallback.ss.c ${srcdir}/afscbint.xg
Kcallback.xdr.c: common.xg afscbint.xg Kvice.h Kcallback.h
- ${RXGEN} -x -k -y -c -o Kcallback.xdr.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -k -A -y -c -o Kcallback.xdr.c ${srcdir}/afscbint.xg
Kvice.cs.c: common.xg afsint.xg Kvice.h
- ${RXGEN} -x -k -C -o Kvice.cs.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -k -A -C -o Kvice.cs.c ${srcdir}/afsint.xg
Kvice.ss.c: common.xg afsint.xg Kvice.h
- ${RXGEN} -x -k -S -o Kvice.ss.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -k -A -S -o Kvice.ss.c ${srcdir}/afsint.xg
Kvice.xdr.c: common.xg afsint.xg
- ${RXGEN} -x -k -c -o Kvice.xdr.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -k -A -c -o Kvice.xdr.c ${srcdir}/afsint.xg
Kvice.h: common.xg afsint.xg
- ${RXGEN} -x -k -h -o Kvice.h ${srcdir}/afsint.xg
+ ${RXGEN} -x -k -A -h -o Kvice.h ${srcdir}/afsint.xg
Kcallback.h: common.xg afscbint.xg
- ${RXGEN} -x -k -h -o Kcallback.h ${srcdir}/afscbint.xg
+ ${RXGEN} -x -k -A -h -o Kcallback.h ${srcdir}/afscbint.xg
afscbint.cs.c: common.xg afscbint.xg afsint.h afscbint.h
- ${RXGEN} -x -C -o afscbint.cs.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -A -C -o afscbint.cs.c ${srcdir}/afscbint.xg
afscbint.ss.c: common.xg afscbint.xg afsint.h afscbint.h
- ${RXGEN} -x -S -o afscbint.ss.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -A -S -o afscbint.ss.c ${srcdir}/afscbint.xg
afscbint.xdr.c: common.xg afscbint.xg afsint.h afscbint.h
- ${RXGEN} -x -y -c -o afscbint.xdr.c ${srcdir}/afscbint.xg
+ ${RXGEN} -x -y -A -c -o afscbint.xdr.c ${srcdir}/afscbint.xg
afsint.cs.c: common.xg afsint.xg afsint.h
- ${RXGEN} -x -C -o afsint.cs.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -A -C -o afsint.cs.c ${srcdir}/afsint.xg
afsint.ss.c: common.xg afsint.xg afsint.h
- ${RXGEN} -x -S -o afsint.ss.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -A -S -o afsint.ss.c ${srcdir}/afsint.xg
afsint.xdr.c: common.xg afsint.xg
- ${RXGEN} -x -c -o afsint.xdr.c ${srcdir}/afsint.xg
+ ${RXGEN} -x -A -c -o afsint.xdr.c ${srcdir}/afsint.xg
afsint.h: common.xg afsint.xg
- ${RXGEN} -x -h -o afsint.h ${srcdir}/afsint.xg
+ ${RXGEN} -x -A -h -o afsint.h ${srcdir}/afsint.xg
afscbint.h: common.xg afscbint.xg
- ${RXGEN} -x -h -o afscbint.h ${srcdir}/afscbint.xg
+ ${RXGEN} -x -A -h -o afscbint.h ${srcdir}/afscbint.xg
#
# Installation targets
) split = 65538;
GiveUpAllCallBacks(
-) = 65539;
+) multi = 65539;
GetCapabilities(
Capabilities *capabilities
-) = 65540;
+) multi = 65540;
CallBackRxConnAddr(
IN afs_int32 *addr
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/fsprobe/fsprobe.c,v 1.9 2003/07/15 23:15:08 shadow Exp $");
+ ("$Header: /cvs/openafs/src/fsprobe/fsprobe.c,v 1.9.2.2 2008/03/10 22:35:34 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <fsprobe.h> /*Interface for this module */
#include <lwp.h> /*Lightweight process package */
* Side Effects:
* As advertised.
*------------------------------------------------------------------------*/
-static void
-fsprobe_LWP()
+static void *
+fsprobe_LWP(void *unused)
{ /*fsprobe_LWP */
static char rn[] = "fsprobe_LWP"; /*Routine name */
fprintf(stderr, "[%s] IOMGR_Select returned code %d\n", rn, code);
} /*Service loop */
+ return NULL;
} /*fsprobe_LWP */
/*list all the partitions on <aserver> */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/fsprobe/fsprobe_test.c,v 1.8.2.1 2006/03/09 06:41:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/fsprobe/fsprobe_test.c,v 1.8.2.2 2007/10/30 15:23:53 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <fsprobe.h> /*Interface for fsprobe module */
/*
* Implementation of the gator curses window facility.
*
*------------------------------------------------------------------------*/
-#define IGNORE_STDS_H
+
#include <afsconfig.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/curseswindows.c,v 1.10 2003/07/15 23:15:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/curseswindows.c,v 1.10.2.2 2008/03/10 22:35:35 shadow Exp $");
#if defined(AFS_HPUX110_ENV) && !defined(__HP_CURSES)
#include <stdio.h>
#include <sys/time.h>
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
+#include <lwp.h>
+
#include "gtxcurseswin.h" /*Interface definition */
#include "gtxobjects.h"
#include "gtxframe.h"
* directory or online at http://www.openafs.org/dl/license10.html
*/
-#define IGNORE_STDS_H
#include <afsconfig.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/frame.c,v 1.7 2003/07/15 23:15:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/frame.c,v 1.7.2.3 2008/03/10 22:35:35 shadow Exp $");
#ifdef AFS_HPUX_ENV
#include <sys/types.h>
#endif
#include <lwp.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include "gtxobjects.h"
if (aframe->messageLine)
free(aframe->messageLine);
aframe->messageLine = gtx_CopyString(amsgLine);
+ return 0;
}
/* Called by input processor to try to clear the dude */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/gtxtest.c,v 1.6.2.1 2005/07/11 19:29:37 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/gtxtest.c,v 1.6.2.3 2007/11/26 21:21:52 shadow Exp $");
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "gtxwindows.h"
#include "gtxobjects.h"
keymap_Delete(tmap);
gtx_InputServer(win);
+ return 0;
}
* directory or online at http://www.openafs.org/dl/license10.html
*/
-#define IGNORE_STDS_H
#include <afsconfig.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/input.c,v 1.7 2003/07/15 23:15:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/input.c,v 1.7.2.2 2008/03/10 22:35:35 shadow Exp $");
#ifdef AFS_HPUX_ENV
#include <sys/types.h>
/* process input */
-gtx_InputServer(awin)
- register struct gwin *awin;
+void *
+gtx_InputServer(void *param)
{
+ struct gwin *awin = (struct gwin *) param;
+
register int tc;
register int code;
register struct gtx_frame *tframe;
tframe->flags &= ~GTXFRAME_RECURSIVEEND;
WOP_DISPLAY(awin); /* eventually calls gtxframe_Display */
}
+ return 0;
}
struct gwin *
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/keymap.c,v 1.7 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/keymap.c,v 1.7.2.1 2007/10/30 15:23:53 shadow Exp $");
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include "gtxkeymap.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/lightobject.c,v 1.6 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/lightobject.c,v 1.6.2.1 2007/10/30 15:23:53 shadow Exp $");
#include "gtxlightobj.h" /*Interface for this module */
#include <stdio.h> /*Standard I/O stuff */
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
-
/*Externally-advertised array of light onode operations*/
struct onodeops gator_light_ops = {
gator_light_destroy,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/object_test.c,v 1.7 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/object_test.c,v 1.7.2.1 2007/10/31 04:13:38 shadow Exp $");
#include "gtxscreenobj.h" /*Gator screen object interface */
#include "gtxtextobj.h" /*Gator text object interface */
*------------------------------------------------------------------------*/
static int
-object_testInit(as, arock)
- struct cmd_syndesc *as;
- char *arock;
-
+object_testInit(struct cmd_syndesc *as, void *arock)
{ /*object_testInit */
static char rn[] = "object_testInit"; /*Routine name */
/*
* Set up the commands we understand.
*/
- ts = cmd_CreateSyntax("initcmd", object_testInit, 0,
+ ts = cmd_CreateSyntax("initcmd", object_testInit, NULL,
"Initialize the program");
cmd_AddParm(ts, "-package", CMD_SINGLE, CMD_REQUIRED,
"Graphics package to use");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/objects.c,v 1.6 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/objects.c,v 1.6.2.1 2007/10/30 15:23:53 shadow Exp $");
#include "gtxobjects.h" /*Interface for this module */
#include "gtxtextobj.h" /*Text object interface */
#include <stdio.h> /*Standard I/O stuff */
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/screen_test.c,v 1.7 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/screen_test.c,v 1.7.2.1 2007/10/31 04:13:38 shadow Exp $");
#include "gtxwindows.h" /*Generalized window interface */
#include "gtxcurseswin.h" /*Curses window interface */
*--------------------------------------------------------------------------------*/
static int
-screen_testInit(as, arock)
- struct cmd_syndesc *as;
- char *arock;
-
+screen_testInit(struct cmd_syndesc *as, void *arock)
{ /*screen_testInit */
static char rn[] = "screen_testInit"; /*Routine name */
* There really aren't any opcodes here, but we do want to interpret switches
* from the command line. So, all we need do is set up the initcmd ``opcode''.
*/
- ts = cmd_CreateSyntax("initcmd", screen_testInit, 0,
+ ts = cmd_CreateSyntax("initcmd", screen_testInit, NULL,
"Initialize, interpret command line");
cmd_AddParm(ts, "-package", CMD_SINGLE, CMD_REQUIRED,
"Graphics package to use");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/textcb.c,v 1.7 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/textcb.c,v 1.7.2.1 2007/10/30 15:23:53 shadow Exp $");
#include "gtxtextcb.h" /*Module interface */
#include <stdio.h> /*Standard I/O stuff */
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
static int gator_textcb_debug; /*Is debugging output turned on? */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/gtx/textobject.c,v 1.6 2003/07/15 23:15:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/gtx/textobject.c,v 1.6.2.2 2007/11/26 21:21:52 shadow Exp $");
#include "gtxtextobj.h" /*Interface for this module */
#include "gtxwindows.h" /*Gator window interface */
#include "gtxX11win.h" /*Gator X11 window interface */
#include <stdio.h> /*Standard I/O stuff */
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
/*Externally-advertised array of text onode operations*/
* the window empty.
*/
if (objects_debug)
- fprintf(stderr, "[%s:%s] Scrolling text object at 0x%x %d lines %s\n",
+ fprintf(stderr, "[%s:%s] Scrolling text object %d lines %s\n",
mn, rn, nlines,
(direction == GATOR_TEXT_SCROLL_UP) ? "UP" : "DOWN");
if (objects_debug) {
fprintf(stderr,
"[%s:%s] Writing %d chars to text object at 0x%x (highlight=%d, skip=%d: '",
- rn, numChars, onp, highlight, skip);
+ mn, rn, numChars, onp, highlight, skip);
for (i = 0; i < numChars; i++)
fprintf(stderr, "%c", strToWrite + i);
fprintf(stderr, "\n");
$(UKSRCS): kauth.h
kauth.cs.c: kauth.rg
- ${RXGEN} -u -x -C -o $@ ${srcdir}/kauth.rg
+ ${RXGEN} -A -u -x -C -o $@ ${srcdir}/kauth.rg
kauth.ss.c: kauth.rg
- ${RXGEN} -x -S -o $@ ${srcdir}/kauth.rg
+ ${RXGEN} -A -x -S -o $@ ${srcdir}/kauth.rg
kauth.xdr.c: kauth.rg
- ${RXGEN} -x -c -o $@ ${srcdir}/kauth.rg
+ ${RXGEN} -A -x -c -o $@ ${srcdir}/kauth.rg
kauth.h: kauth.rg
- ${RXGEN} -u -x -h -o $@ ${srcdir}/kauth.rg
+ ${RXGEN} -A -u -x -h -o $@ ${srcdir}/kauth.rg
kauth.xdr.c: kauth.h
kauth.cs.c: kauth.h
kauth.ss.c: kauth.h
Kkauth.cs.c: kauth.rg Kkauth.h
- ${RXGEN} -x -k -C -o Kkauth.cs.c ${srcdir}/kauth.rg
+ ${RXGEN} -A -x -k -C -o Kkauth.cs.c ${srcdir}/kauth.rg
Kkauth.xdr.c: kauth.rg
- ${RXGEN} -x -k -c -o Kkauth.xdr.c ${srcdir}/kauth.rg
+ ${RXGEN} -A -x -k -c -o Kkauth.xdr.c ${srcdir}/kauth.rg
Kkauth.h: kauth.rg
- ${RXGEN} -x -k -h -o Kkauth.h ${srcdir}/kauth.rg
+ ${RXGEN} -A -x -k -h -o Kkauth.h ${srcdir}/kauth.rg
libkauth.a: $(OBJS) AFS_component_version_number.o
-$(RM) -f $@
${DESTDIR}${includedir}/afs/kaport.h
${DESTDIR}${afssrvlibexecdir}/kaserver: kaserver
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${sbindir}/kas: kas
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${sbindir}/kpwvalid: kpwvalid
${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/kas: kas
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/kpwvalid: kpwvalid
${INSTALL} $? $@
${DESTDIR}${bindir}/klog: klog
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/klog.krb: klog.krb
- ${INSTALL} -s $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DESTDIR}${afssrvbindir}/klog: klog
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvbindir}/klog.krb: klog.krb
- ${INSTALL} -s $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DESTDIR}${bindir}/knfs: knfs
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/kpasswd: kpasswd
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/kpwvalid: kpwvalid
${INSTALL} $? $@
${INSTALL} -f $? $@
${DESTDIR}${afssrvsbindir}/kdb: kdb
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/ka-forwarder: ka-forwarder
${INSTALL} $? $@
${DEST}/include/afs/kaport.h
${DEST}/root.server/usr/afs/bin/kaserver: kaserver
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/etc/kas ${DEST}/root.server/usr/afs/bin/kas: kas
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/kpwvalid ${DEST}/etc/kpwvalid ${DEST}/root.server/usr/afs/bin/kpwvalid: kpwvalid
${INSTALL} $? $@
${DEST}/bin/klog ${DEST}/root.server/usr/afs/bin/klog: klog
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/klog.krb ${DEST}/root.server/usr/afs/bin/klog.krb: klog.krb
- ${INSTALL} -s $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DEST}/bin/knfs: knfs
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/kpasswd: kpasswd
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/lib/afs/libkauth.a: libkauth.a
${INSTALL} $? $@
${INSTALL} -f $? $@
${DEST}/etc/kdb: kdb
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/root.server/usr/afs/bin/ka-forwarder: ka-forwarder
${INSTALL} $? $@
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/admin_tools.c,v 1.16.2.4 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/admin_tools.c,v 1.16.2.5 2007/10/31 04:13:39 shadow Exp $");
#include <afs/stds.h>
#include <afs/debug.h>
}
int
-ListUsers(struct cmd_syndesc *as, char *arock)
+ListUsers(struct cmd_syndesc *as, void *arock)
{
struct kaident name;
afs_int32 index;
int
-ExamineUser(struct cmd_syndesc *as, char *arock)
+ExamineUser(struct cmd_syndesc *as, void *arock)
{
int showkey = (as->parms[1].items != NULL);
return DumpUser(as->parms[0].items->data, arock, 0, showkey, NULL);
}
int
-CreateUser(struct cmd_syndesc *as, char *arock)
+CreateUser(struct cmd_syndesc *as, void *arock)
{
int code;
char name[MAXKTCNAMELEN];
}
int
-DeleteUser(struct cmd_syndesc *as, char *arock)
+DeleteUser(struct cmd_syndesc *as, void *arock)
{
int code;
char name[MAXKTCNAMELEN];
}
int
-Unlock(struct cmd_syndesc *as, char *arock)
+Unlock(struct cmd_syndesc *as, void *arock)
{
afs_int32 code, rcode = 0;
afs_int32 count;
}
int
-SetFields(struct cmd_syndesc *as, char *arock)
+SetFields(struct cmd_syndesc *as, void *arock)
{
int code;
char name[MAXKTCNAMELEN];
}
int
-StringToKey(struct cmd_syndesc *as, char *arock)
+StringToKey(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
char realm[MAXKTCREALMLEN];
}
int
-SetPassword(struct cmd_syndesc *as, char *arock)
+SetPassword(struct cmd_syndesc *as, void *arock)
{
int code;
char name[MAXKTCNAMELEN];
}
static
-GetTicket(struct cmd_syndesc *as, char *arock)
+GetTicket(struct cmd_syndesc *as, void *arock)
{
int code;
struct ktc_principal server;
}
static
-GetPassword(struct cmd_syndesc *as, char *arock)
+GetPassword(struct cmd_syndesc *as, void *arock)
{
int code;
char name[MAXKTCNAMELEN];
}
int
-GetRandomKey(struct cmd_syndesc *as, char *arock)
+GetRandomKey(struct cmd_syndesc *as, void *arock)
{
int code;
struct ktc_encryptionKey key;
}
int
-Statistics(struct cmd_syndesc *as, char *arock)
+Statistics(struct cmd_syndesc *as, void *arock)
{
int code;
kasstats statics;
}
int
-DebugInfo(struct cmd_syndesc *as, char *arock)
+DebugInfo(struct cmd_syndesc *as, void *arock)
{
int code;
struct ka_debugInfo info;
}
int
-Interactive(struct cmd_syndesc *as, char *arock)
+Interactive(struct cmd_syndesc *as, void *arock)
{
finished = 0;
return 0;
}
int
-Quit(struct cmd_syndesc *as, char *arock)
+Quit(struct cmd_syndesc *as, void *arock)
{
finished = 1;
return 0;
}
int
-MyAfterProc(struct cmd_syndesc *as)
+MyAfterProc(struct cmd_syndesc *as, void *arock)
{
if (!strcmp(as->name, "help"))
return 0;
afs_int32 serverList[MAXSERVERS];
int
-NoAuth(struct cmd_syndesc *as, char *arock)
+NoAuth(struct cmd_syndesc *as, void *arock)
{
noauth = 1;
return 0;
}
static int
-MyBeforeProc(struct cmd_syndesc *as, char *arock)
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
extern struct passwd *getpwuid();
struct ktc_encryptionKey key;
/* These are some helpful command that deal with the cache managers tokens. */
static
-ForgetTicket(struct cmd_syndesc *as, char *arock)
+ForgetTicket(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
}
static
-ListTickets(struct cmd_syndesc *as, char *arock)
+ListTickets(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
int index, newIndex;
cmd_SetBeforeProc(MyBeforeProc, NULL);
cmd_SetAfterProc(MyAfterProc, NULL);
- ts = cmd_CreateSyntax("interactive", Interactive, 0,
+ ts = cmd_CreateSyntax("interactive", Interactive, NULL,
"enter interactive mode");
add_std_args(ts);
- ts = cmd_CreateSyntax("noauthentication", NoAuth, 0,
+ ts = cmd_CreateSyntax("noauthentication", NoAuth, NULL,
"connect to AuthServer w/o using token");
- ts = cmd_CreateSyntax("list", ListUsers, 0, "list all users in database");
+ ts = cmd_CreateSyntax("list", ListUsers, NULL,
+ "list all users in database");
cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL,
"show detailed info about each user");
cmd_AddParm(ts, "-showadmin", CMD_FLAG, CMD_OPTIONAL,
add_std_args(ts);
cmd_CreateAlias(ts, "ls");
- ts = cmd_CreateSyntax("examine", ExamineUser, 0,
+ ts = cmd_CreateSyntax("examine", ExamineUser, NULL,
"examine the entry for a user");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
cmd_AddParm(ts, "-showkey", CMD_FLAG, CMD_OPTIONAL,
"show the user's actual key rather than the checksum");
add_std_args(ts);
- ts = cmd_CreateSyntax("create", CreateUser, 0,
+ ts = cmd_CreateSyntax("create", CreateUser, NULL,
"create an entry for a user");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
cmd_AddParm(ts, "-initial_password", CMD_SINGLE, CMD_OPTIONAL,
"initial password");
add_std_args(ts);
- ts = cmd_CreateSyntax("delete", DeleteUser, 0, "delete a user");
+ ts = cmd_CreateSyntax("delete", DeleteUser, NULL, "delete a user");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
add_std_args(ts);
cmd_CreateAlias(ts, "rm");
- ts = cmd_CreateSyntax("setfields", SetFields, 0,
+ ts = cmd_CreateSyntax("setfields", SetFields, NULL,
"set various fields in a user's entry");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
cmd_AddParm(ts, "-flags", CMD_SINGLE, CMD_OPTIONAL,
cmd_CreateAlias(ts, "sf");
- ts = cmd_CreateSyntax("unlock", Unlock, 0,
+ ts = cmd_CreateSyntax("unlock", Unlock, NULL,
"Enable authentication ID after max failed attempts exceeded");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "authentication ID");
add_std_args(ts);
- ts = cmd_CreateSyntax("stringtokey", StringToKey, 0,
+ ts = cmd_CreateSyntax("stringtokey", StringToKey, NULL,
"convert a string to a key");
cmd_AddParm(ts, "-string", CMD_SINGLE, 0, "password string");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name");
- ts = cmd_CreateSyntax("setpassword", SetPassword, 0,
+ ts = cmd_CreateSyntax("setpassword", SetPassword, NULL,
"set a user's password");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
cmd_AddParm(ts, "-new_password", CMD_SINGLE, CMD_OPTIONAL,
#endif
/* set a user's key */
- ts = cmd_CreateSyntax("setkey", SetPassword, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("setkey", SetPassword, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
cmd_Seek(ts, 2);
cmd_AddParm(ts, "-new_key", CMD_SINGLE, 0, "eight byte new key");
add_std_args(ts);
/* get a user's password */
- ts = cmd_CreateSyntax("getpassword", GetPassword, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("getpassword", GetPassword, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of user");
/* don't take standard args */
/* add_std_args (ts); */
#endif
/* get a random key */
- ts = cmd_CreateSyntax("getrandomkey", GetRandomKey, 0,
+ ts = cmd_CreateSyntax("getrandomkey", GetRandomKey, NULL,
(char *)CMD_HIDDEN);
add_std_args(ts);
/* get a ticket for a specific server */
- ts = cmd_CreateSyntax("getticket", GetTicket, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("getticket", GetTicket, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of server");
cmd_AddParm(ts, "-lifetime", CMD_SINGLE, CMD_OPTIONAL, "ticket lifetime");
add_std_args(ts);
- ts = cmd_CreateSyntax("statistics", Statistics, 0,
+ ts = cmd_CreateSyntax("statistics", Statistics, NULL,
"show statistics for AuthServer");
add_std_args(ts);
/* show debugging info from AuthServer */
- ts = cmd_CreateSyntax("debuginfo", DebugInfo, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("debuginfo", DebugInfo, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-hostname", CMD_SINGLE, CMD_OPTIONAL,
"authentication server host name");
add_std_args(ts);
- ts = cmd_CreateSyntax("forgetticket", ForgetTicket, 0,
+ ts = cmd_CreateSyntax("forgetticket", ForgetTicket, NULL,
"delete user's tickets");
#ifdef notdef
cmd_AddParm(ts, "-name", CMD_SINGLE, (CMD_OPTIONAL | CMD_HIDE),
#endif
cmd_AddParm(ts, "-all", CMD_FLAG, CMD_OPTIONAL, "delete all tickets");
- ts = cmd_CreateSyntax("listtickets", ListTickets, 0,
+ ts = cmd_CreateSyntax("listtickets", ListTickets, NULL,
"show all cache manager tickets");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_OPTIONAL, "name of server");
cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL,
"show session key and ticket");
- ts = cmd_CreateSyntax("quit", Quit, 0, "exit program");
+ ts = cmd_CreateSyntax("quit", Quit, NULL, "exit program");
finished = 1;
conn = 0; /* no connection yet */
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14.2.6 2006/09/21 11:39:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14.2.8 2007/11/26 20:41:54 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include <sys/socket.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rxkad.h>
#include <afs/cellconfig.h>
#include <ubik.h>
version = 2;
code =
- kawrap_ubik_Call(KAA_AuthenticateV2, conn, 0, name, instance, start,
- end, &arequest, &oanswer);
+ kawrap_ubik_Call(KAA_AuthenticateV2, conn, 0, name, instance,
+ start, end, &arequest, &oanswer, 0, 0);
if (code == RXGEN_OPCODE) {
oanswer.MaxSeqLen = sizeof(answer);
oanswer.SeqBody = (char *)&answer;
version = 1;
code =
ubik_Call(KAA_Authenticate, conn, 0, name, instance, start, end,
- &arequest, &oanswer);
+ &arequest, &oanswer, 0, 0);
if (code == RXGEN_OPCODE) {
extern int KAA_Authenticate_old();
oanswer.MaxSeqLen = sizeof(answer_old);
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/client.c,v 1.12.2.2 2005/07/11 19:29:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/client.c,v 1.12.2.3 2007/10/30 15:23:53 shadow Exp $");
#if defined(UKERNEL)
#ifdef HAVE_UNISTD_H
#include <winsock2.h>
#include <crypt.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#define __USE_XOPEN
#include <unistd.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kaauxdb.c,v 1.9 2003/11/23 04:53:35 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kaauxdb.c,v 1.9.2.1 2007/10/30 15:23:53 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <io.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rxkad.h>
#include "ubik_int.h"
#include "kauth.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kadatabase.c,v 1.10.2.1 2004/08/25 07:09:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kadatabase.c,v 1.10.2.3 2007/11/26 21:21:52 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include <lock.h>
#include <ubik.h>
#include <rx/xdr.h>
#include <rx/rx.h>
static afs_int32 maxKeyLifetime;
static int dbfixup = 0;
+void
init_kadatabase(initFlags)
int initFlags; /* same as init_kaprocs (see which) */
{
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/kalocalcell.c,v 1.8.2.1 2004/08/25 07:09:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kalocalcell.c,v 1.8.2.2 2007/10/30 15:23:53 shadow Exp $");
#if defined(UKERNEL)
#include "afs/pthread_glock.h"
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/cellconfig.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kalog.c,v 1.6 2003/07/15 23:15:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kalog.c,v 1.6.2.1 2007/10/30 15:23:53 shadow Exp $");
#include <stdio.h>
#include <afs/afsutil.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kas.c,v 1.7.2.1 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kas.c,v 1.7.2.2 2007/10/30 15:23:53 shadow Exp $");
#include <afs/stds.h>
#ifdef AFS_AIX32_ENV
#else
#include <WINNT/afsevent.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/cellconfig.h>
#include <afs/com_err.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kaserver.c,v 1.17.2.6 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kaserver.c,v 1.17.2.8 2008/03/10 22:35:35 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include "kalog.h" /* for OpenLog() */
#include <time.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
}
ViceLog(0, ("Starting to process AuthServer requests\n"));
- rx_ServerProc(); /* donate this LWP */
+ rx_ServerProc(NULL); /* donate this LWP */
return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kautils.c,v 1.9 2003/07/15 23:15:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kautils.c,v 1.9.2.1 2007/10/30 15:23:54 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/file.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <time.h>
#include <stdio.h>
#include <ctype.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kdb.c,v 1.7.2.1 2004/08/25 07:18:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kdb.c,v 1.7.2.3 2007/11/26 21:21:52 shadow Exp $");
#include <fcntl.h>
#include <sys/types.h>
char *dbmfile;
-static
-cmdproc(register struct cmd_syndesc *as, afs_int32 arock)
+static int
+cmdproc(register struct cmd_syndesc *as, void * arock)
{
DBM *kdb;
datum key, data;
}
}
dbm_close(kdb);
+ return 0;
}
sprintf(dbmfile_help, "dbmfile to use (default %s)",
AFSDIR_SERVER_KALOGDB_FILEPATH);
dbmfile = AFSDIR_SERVER_KALOGDB_FILEPATH;
- ts = cmd_CreateSyntax(NULL, cmdproc, 0, "Dump contents of dbm database");
+ ts = cmd_CreateSyntax(NULL, cmdproc, NULL, "Dump contents of dbm database");
cmd_AddParm(ts, "-dbmfile", CMD_SINGLE, CMD_OPTIONAL, dbmfile_help);
cmd_AddParm(ts, "-key", CMD_SINGLE, CMD_OPTIONAL,
"extract entries that match specified key");
main(void)
{
printf("kdb not supported\n");
+ return 1;
}
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kkids.c,v 1.6 2003/07/15 23:15:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kkids.c,v 1.6.2.1 2007/11/26 21:21:52 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
argv[1] = NULL;
argv[0] = dirpath;
execv(dirpath, argv);
+ return 0;
} else {
using_child = pid; /* save it for later */
childin = fdopen(pipe1[1], "w");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/klog.c,v 1.8.2.1 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/klog.c,v 1.8.2.3 2007/10/31 04:13:39 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <lock.h>
#include <ubik.h>
#define KLOGEXIT(code) assert(!code || code >= KAMINERROR); \
rx_Finalize(); \
(!code ? exit(0) : exit((code)-KAMINERROR+1))
-extern int CommandProc(struct cmd_syndesc *as, char *arock);
+int CommandProc(struct cmd_syndesc *as, void *arock);
static int zero_argc;
static char **zero_argv;
zero_argc = argc;
zero_argv = argv;
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"obtain Kerberos authentication");
#define aXFLAG 0
}
int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/knfs.c,v 1.8 2003/07/15 23:15:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/knfs.c,v 1.8.2.2 2007/10/31 04:13:39 shadow Exp $");
#include <stdio.h>
#include <afs/stds.h>
#include <netdb.h>
#include <errno.h>
#include <sys/ioctl.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/vice.h>
#include <afs/cmd.h>
#include <afs/auth.h>
#include <afs/afsutil.h>
-
-extern struct cmd_syndesc *cmd_CreateSyntax();
-
/*
Modifications:
return code;
}
-static
-cmdproc(as, arock)
- register struct cmd_syndesc *as;
- afs_int32 arock;
+static int
+cmdproc(register struct cmd_syndesc *as, void *arock)
{
register struct hostent *the;
char *tp, *sysname = 0;
sigaction(SIGSEGV, &nsa, NULL);
#endif
- ts = cmd_CreateSyntax(NULL, cmdproc, 0, "copy tickets for NFS");
+ ts = cmd_CreateSyntax(NULL, cmdproc, NULL, "copy tickets for NFS");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
cmd_AddParm(ts, "-id", CMD_SINGLE, CMD_OPTIONAL, "user ID (decimal)");
cmd_AddParm(ts, "-sysname", CMD_SINGLE, CMD_OPTIONAL,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kpasswd.c,v 1.14.2.2 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kpasswd.c,v 1.14.2.4 2007/10/31 04:13:39 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#ifndef AFS_NT40_ENV
#include <pwd.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <signal.h>
#include <afs/com_err.h>
#include <afs/auth.h>
/* The following code to make use of libcmd.a also stolen from klog.c. */
-int CommandProc();
+int CommandProc(struct cmd_syndesc *, void *);
static int zero_argc;
static char **zero_argv;
#endif
char passwd[BUFSIZ], npasswd[BUFSIZ], verify[BUFSIZ];
-CommandProc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char name[MAXKTCNAMELEN] = "";
char instance[MAXKTCNAMELEN] = "";
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/kpwvalid.c,v 1.6 2003/07/15 23:15:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/kpwvalid.c,v 1.6.2.2 2007/11/26 21:21:52 shadow Exp $");
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_NT40_ENV
#include <WINNT/afsevent.h>
#endif
fflush(stdout);
}
}
+ return rc;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/krb_tf.c,v 1.6.2.2 2007/08/20 17:29:25 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/krb_tf.c,v 1.6.2.3 2007/10/30 15:23:54 shadow Exp $");
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#else
#include <sys/file.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/types.h>
#include <rx/xdr.h>
#include <errno.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/krb_udp.c,v 1.23.2.1 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/krb_udp.c,v 1.23.2.5 2008/03/10 22:35:35 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <netdb.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afsutil.h>
#include <time.h>
#include <afs/com_err.h>
#define KDC_GEN_ERR 20
#endif
+#ifndef AFS_NT40_ENV
+#define closesocket close
+#endif
int krb_udp_debug = 0;
int fiveminutes = 300;
-static
-FiveMinuteCheckLWP()
+static void *
+FiveMinuteCheckLWP(void *unused)
{
printf("start 5 min check lwp\n");
/* close the log so it can be removed */
ReOpenLog(AFSDIR_SERVER_KALOG_FILEPATH); /* no trunc, just append */
}
+ return NULL;
}
return;
}
-static
-SocketListener()
+static void *
+SocketListener(void *unused)
{
fd_set rfds;
struct timeval tv;
}
}
if (sock_kerb >= 0) {
- close(sock_kerb);
+ closesocket(sock_kerb);
sock_kerb = -1;
}
if (sock_kerb5 >= 0) {
- close(sock_kerb5);
+ closesocket(sock_kerb5);
sock_kerb5 = -1;
}
printf("UDP SocketListener exiting due to error\n");
+
+ return NULL;
}
#if MAIN
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/manyklog.c,v 1.7.2.1 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/manyklog.c,v 1.7.2.2 2007/10/31 04:13:39 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#define KLOGEXIT(code) assert(!code || code >= KAMINERROR); \
rx_Finalize(); \
(!code ? exit(0) : exit((code)-KAMINERROR+1))
-int CommandProc();
+static int CommandProc(struct cmd_syndesc *, void *);
static int zero_argc;
static char **zero_argv;
zero_argc = argc;
zero_argv = argv;
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"obtain Kerberos authentication");
#define aXFLAG 0
return gpbuf;
}
-CommandProc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/read_passwd.c,v 1.6 2003/07/15 23:15:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/read_passwd.c,v 1.6.2.1 2007/10/30 15:23:54 shadow Exp $");
#include <mit-cpyright.h>
#include <des.h>
#if defined(AFS_SGI_ENV)
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#if defined (AFS_AIX_ENV) || defined(AFS_SGI_ENV)
/* Just temp till we figure out the aix stuff */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/rebuild.c,v 1.11.2.2 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/rebuild.c,v 1.11.2.5 2007/11/26 21:21:52 shadow Exp $");
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/file.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdio.h>
#include <errno.h>
#include <time.h>
}
/* ntohEntry - convert back to host-order */
+void
ntohEntry(struct kaentry *entryp)
{
entryp->flags = ntohl(entryp->flags);
afs_com_err(whoami, errno, "reading db got %d bytes", code);
exit(3);
}
+ return 0;
}
#include "AFS_component_version_number.c"
-WorkerBee(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
char *dbFile;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/test/multiklog.c,v 1.7.2.1 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/test/multiklog.c,v 1.7.2.2 2007/10/31 04:13:40 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
-repeat is the number of times to iterate over the authentication
*/
-int CommandProc();
+static int CommandProc(struct cmd_syndesc *, void *);
static int zero_argc;
static char **zero_argv;
zero_argc = argc;
zero_argv = argv;
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"obtain Kerberos authentication");
#define aXFLAG 0
return gpbuf;
}
-CommandProc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+static int
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/test/test_getticket.c,v 1.7.2.2 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/test/test_getticket.c,v 1.7.2.3 2007/10/31 04:13:40 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
CheckLife(t.endTime, t.startTime, expectedLife, match);
}
-static long
-Main(as, arock)
- IN struct cmd_syndesc *as;
- IN char *arock;
+static int
+Main(struct cmd_syndesc *as, void *arock)
{
- long code;
+ int code;
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
char newCell[MAXKTCREALMLEN];
initialize_ACFG_error_table();
initialize_KA_error_table();
- ts = cmd_CreateSyntax(0, Main, 0, "Main program");
+ ts = cmd_CreateSyntax(NULL, Main, NULL, "Main program");
/* 0 */ cmd_AddParm(ts, "-patient", CMD_FLAG, CMD_OPTIONAL,
"wait for TGS ticket to age");
cmd_Seek(ts, 12);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/kauth/test/test_rxkad_free.c,v 1.7.2.2 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/test/test_rxkad_free.c,v 1.7.2.3 2007/10/31 04:13:40 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
rxkad_stats.destroyUnauth);
}
-static long
-Main(as, arock)
- IN struct cmd_syndesc *as;
- IN char *arock;
+static int
+Main(struct cmd_syndesc *as, void *arock)
{
- long code;
+ int code;
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
char newCell[MAXKTCREALMLEN];
initialize_ACFG_error_table();
initialize_KA_error_table();
- ts = cmd_CreateSyntax(0, Main, 0, "Main program");
+ ts = cmd_CreateSyntax(NULL, Main, NULL, "Main program");
/* 0 */ cmd_AddParm(ts, "-number", CMD_SINGLE, CMD_OPTIONAL,
"number of iterations");
/* 1 */ cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL,
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/token.c,v 1.9.2.1 2004/08/25 07:09:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/token.c,v 1.9.2.2 2007/10/30 15:23:54 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include <sys/socket.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/* netinet/in.h and cellconfig.h are needed together */
#include <afs/cellconfig.h>
/* these are needed together */
#endif
RCSID
- ("$Header: /cvs/openafs/src/kauth/user.c,v 1.11.2.2 2007/04/10 18:43:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/kauth/user.c,v 1.11.2.3 2007/10/30 15:23:54 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/cellconfig.h>
#include <afs/auth.h>
#include <afs/ptint.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libacl/aclprocs.c,v 1.13 2004/04/18 06:13:49 kolya Exp $");
+ ("$Header: /cvs/openafs/src/libacl/aclprocs.c,v 1.13.2.1 2007/10/30 15:23:54 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/ptclient.h>
CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS}
CCRULE = ${CC} ${CFLAGS} -c $?
-BOZO = ../../bozo/
+BOZO = ../../bozo
ADMINOBJS = afs_bosAdmin.o
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/bos/afs_bosAdmin.c,v 1.11 2003/12/07 22:49:29 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/bos/afs_bosAdmin.c,v 1.11.2.1 2007/10/30 15:23:54 shadow Exp $");
#include <stdio.h>
#include <afs/stds.h>
#else
#include <unistd.h>
#endif
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
typedef struct bos_server {
int begin_magic;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/cfg/cfgclient.c,v 1.6 2003/07/15 23:15:25 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/cfg/cfgclient.c,v 1.6.2.2 2007/11/26 21:21:53 shadow Exp $");
#include <afs/stds.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <pthread.h>
#include <afs/afs_Admin.h>
afs_status_t clientSt = 0;
char *clientCellName = NULL;
short cmInstalled = 0;
- unsigned cmVersion;
+ unsigned cmVersion = 0;
/* validate parameters */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/cfg/cfginternal.c,v 1.6 2004/04/02 06:54:05 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/cfg/cfginternal.c,v 1.6.2.1 2007/11/26 21:21:53 shadow Exp $");
#include <afs/stds.h>
{
int rc = 1;
afs_status_t tst = 0;
- int aCount;
- afs_int32 *aList;
+ int aCount = 0;
+ afs_int32 *aList = NULL;
#ifdef AFS_NT40_ENV
/* Note: gethostbyname() allocs hostent on a per-thread basis */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/cfg/test/cfgtest.c,v 1.5 2003/07/15 23:15:28 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/cfg/test/cfgtest.c,v 1.5.2.1 2007/10/31 04:13:41 shadow Exp $");
#include <afs/stds.h>
static int
-DoCellServDbAddHost(struct cmd_syndesc *as, char *arock)
+DoCellServDbAddHost(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
int maxUpdates;
static int
-DoCellServDbRemoveHost(struct cmd_syndesc *as, char *arock)
+DoCellServDbRemoveHost(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
int maxUpdates;
static int
-DoCellServDbEnumerate(struct cmd_syndesc *as, char *arock)
+DoCellServDbEnumerate(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
char *fsDbHost = as->parms[0].items->data;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("CellServDbAddHost", DoCellServDbAddHost, 0,
+ ts = cmd_CreateSyntax("CellServDbAddHost", DoCellServDbAddHost, NULL,
"add configuration target to server CellServDB");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-syshost", CMD_SINGLE, CMD_OPTIONAL,
"system control host");
- ts = cmd_CreateSyntax("CellServDbRemoveHost", DoCellServDbRemoveHost, 0,
+ ts = cmd_CreateSyntax("CellServDbRemoveHost", DoCellServDbRemoveHost, NULL,
"remove configuration target from server CellServDB");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-syshost", CMD_SINGLE, CMD_OPTIONAL,
"system control host");
- ts = cmd_CreateSyntax("CellServDbEnumerate", DoCellServDbEnumerate, 0,
+ ts = cmd_CreateSyntax("CellServDbEnumerate", DoCellServDbEnumerate, NULL,
"enumerate server CellServDB from specified host");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
static int
-DoDbServersWaitForQuorum(struct cmd_syndesc *as, char *arock)
+DoDbServersWaitForQuorum(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoFileServerStop(struct cmd_syndesc *as, char *arock)
+DoFileServerStop(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
}
static int
-DoFileServerStart(struct cmd_syndesc *as, char *arock)
+DoFileServerStart(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
struct cmd_syndesc *ts;
ts = cmd_CreateSyntax("DbServersWaitForQuorum", DoDbServersWaitForQuorum,
- 0, "wait for database servers to achieve quorum");
+ NULL, "wait for database servers to achieve quorum");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-timeout", CMD_SINGLE, CMD_OPTIONAL,
"timeout in seconds");
- ts = cmd_CreateSyntax("FileServerStop", DoFileServerStop, 0,
+ ts = cmd_CreateSyntax("FileServerStop", DoFileServerStop, NULL,
"stop and unconfigure fileserver on specified host");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
- ts = cmd_CreateSyntax("FileServerStart", DoFileServerStart, 0,
+ ts = cmd_CreateSyntax("FileServerStart", DoFileServerStart, NULL,
"start the fileserver on specified host");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
static int
-DoHostPartitionTableEnumerate(struct cmd_syndesc *as, char *arock)
+DoHostPartitionTableEnumerate(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
cfg_partitionEntry_t *vptable;
struct cmd_syndesc *ts;
ts = cmd_CreateSyntax("HostPartitionTableEnumerate",
- DoHostPartitionTableEnumerate, 0,
+ DoHostPartitionTableEnumerate, NULL,
"enumerate vice partition table");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
static int
-DoClientCellServDbAdd(struct cmd_syndesc *as, char *arock)
+DoClientCellServDbAdd(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoClientCellServDbRemove(struct cmd_syndesc *as, char *arock)
+DoClientCellServDbRemove(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoClientStart(struct cmd_syndesc *as, char *arock)
+DoClientStart(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoClientStop(struct cmd_syndesc *as, char *arock)
+DoClientStop(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoClientSetCell(struct cmd_syndesc *as, char *arock)
+DoClientSetCell(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *hostHandle;
static int
-DoClientQueryStatus(struct cmd_syndesc *as, char *arock)
+DoClientQueryStatus(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
char *cfgHost = as->parms[0].items->data;
static int
-DoHostQueryStatus(struct cmd_syndesc *as, char *arock)
+DoHostQueryStatus(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
char *cfgHost = as->parms[0].items->data;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("ClientCellServDbAdd", DoClientCellServDbAdd, 0,
+ ts = cmd_CreateSyntax("ClientCellServDbAdd", DoClientCellServDbAdd, NULL,
"add host entry to client CellServDB");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-dbhost", CMD_SINGLE, CMD_REQUIRED, "host to add");
ts = cmd_CreateSyntax("ClientCellServDbRemove", DoClientCellServDbRemove,
- 0, "remove host entry from client CellServDB");
+ NULL, "remove host entry from client CellServDB");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "cell name");
cmd_AddParm(ts, "-dbhost", CMD_SINGLE, CMD_REQUIRED, "host to remove");
- ts = cmd_CreateSyntax("ClientSetCell", DoClientSetCell, 0,
+ ts = cmd_CreateSyntax("ClientSetCell", DoClientSetCell, NULL,
"set default client cell");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "cell name");
cmd_AddParm(ts, "-dbhosts", CMD_LIST, CMD_REQUIRED, "database hosts");
- ts = cmd_CreateSyntax("ClientQueryStatus", DoClientQueryStatus, 0,
+ ts = cmd_CreateSyntax("ClientQueryStatus", DoClientQueryStatus, NULL,
"query status of client on host");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
- ts = cmd_CreateSyntax("HostQueryStatus", DoHostQueryStatus, 0,
+ ts = cmd_CreateSyntax("HostQueryStatus", DoHostQueryStatus, NULL,
"query status of server on host");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
- ts = cmd_CreateSyntax("ClientStart", DoClientStart, 0,
+ ts = cmd_CreateSyntax("ClientStart", DoClientStart, NULL,
"start the client");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-timeout", CMD_SINGLE, CMD_REQUIRED, "wait timeout");
- ts = cmd_CreateSyntax("ClientStop", DoClientStop, 0, "stop the client");
+ ts = cmd_CreateSyntax("ClientStop", DoClientStop, NULL, "stop the client");
cmd_AddParm(ts, "-cfghost", CMD_SINGLE, CMD_REQUIRED,
"configuration host");
cmd_AddParm(ts, "-timeout", CMD_SINGLE, CMD_REQUIRED, "wait timeout");
CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS} -I../../kauth -I${srcdir}/../../kauth
CCRULE = ${CC} ${CFLAGS} -c $?
-KAUTH= ${srcdir}/../../kauth/
+KAUTH= ${srcdir}/../../kauth
ADMINOBJS = afs_kasAdmin.o
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/kas/afs_kasAdmin.c,v 1.9.2.4 2007/07/16 00:00:37 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/kas/afs_kasAdmin.c,v 1.9.2.5 2007/10/30 15:23:56 shadow Exp $");
#include <stdio.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/stds.h>
#include "afs_kasAdmin.h"
CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS}
CCRULE = ${CC} ${CFLAGS} -c $?
-PTSERVER = ../../ptserver/
+PTSERVER = ../../ptserver
ADMINOBJS = \
afs_ptsAdmin.o
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/pts/afs_ptsAdmin.c,v 1.11.2.1 2007/07/16 00:00:37 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/pts/afs_ptsAdmin.c,v 1.11.2.2 2007/10/30 15:23:57 shadow Exp $");
#include <stdio.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <afs/stds.h>
#include "afs_ptsAdmin.h"
#include "../adminutil/afs_AdminInternal.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/samples/rxdebug_conns.c,v 1.6 2003/10/24 06:26:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/samples/rxdebug_conns.c,v 1.6.2.1 2007/11/26 21:21:54 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
struct rx_debugConn conn;
afs_uint32 supportedStats;
afs_uint32 supportedValues;
- int allconns;
+ int allconns = 1;
int i;
ParseArgs(argc, argv, &srvrName, &srvrPort);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/samples/rxdebug_rx_stats.c,v 1.7 2003/10/24 06:26:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/samples/rxdebug_rx_stats.c,v 1.7.2.1 2007/10/30 15:23:57 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <pthread.h>
#endif
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <afs/afs_Admin.h>
#include <afs/afs_clientAdmin.h>
#include <afs/afs_utilAdmin.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/samples/rxstat_get_peer.c,v 1.7 2003/10/24 06:26:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/samples/rxstat_get_peer.c,v 1.7.2.1 2007/10/30 15:23:57 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <pthread.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afs_Admin.h>
#include <afs/afs_AdminErrors.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/samples/rxstat_get_process.c,v 1.7 2003/10/24 06:26:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/samples/rxstat_get_process.c,v 1.7.2.1 2007/10/30 15:23:57 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <pthread.h>
#endif
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afs_Admin.h>
#include <afs/afs_AdminErrors.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/afscp.c,v 1.7 2003/10/24 06:26:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/afscp.c,v 1.7.2.1 2007/10/31 04:13:42 shadow Exp $");
#include <afs/stds.h>
*/
static int
-MyBeforeProc(struct cmd_syndesc *as, char *arock)
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
int no_auth = 0;
}
static int
-MyAfterProc(struct cmd_syndesc *as)
+MyAfterProc(struct cmd_syndesc *as,void *arock)
{
afsclient_CellClose(cellHandle, (afs_status_p) 0);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/bos.c,v 1.10 2003/11/29 22:08:13 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/bos.c,v 1.10.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "bos.h"
}
int
-DoBosProcessCreate(struct cmd_syndesc *as, char *arock)
+DoBosProcessCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, BINARY, CRON, CRONTIME,
NOTIFIER
}
int
-DoBosFSProcessCreate(struct cmd_syndesc *as, char *arock)
+DoBosFSProcessCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, FILESERVER, VOLSERVER, SALVAGER,
NOTIFIER
}
int
-DoBosProcessDelete(struct cmd_syndesc *as, char *arock)
+DoBosProcessDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessDelete_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessExecutionStateGet(struct cmd_syndesc *as, char *arock)
+DoBosProcessExecutionStateGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessExecutionStateGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessExecutionStateSet(struct cmd_syndesc *as, char *arock)
+DoBosProcessExecutionStateSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, STOPPED,
RUNNING
}
int
-DoBosProcessExecutionStateSetTemporary(struct cmd_syndesc *as, char *arock)
+DoBosProcessExecutionStateSetTemporary(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, STOPPED,
RUNNING
}
int
-DoBosProcessNameList(struct cmd_syndesc *as, char *arock)
+DoBosProcessNameList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosProcessNameList_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessInfoGet(struct cmd_syndesc *as, char *arock)
+DoBosProcessInfoGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessInfoGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessParameterList(struct cmd_syndesc *as, char *arock)
+DoBosProcessParameterList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessParameterList_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessNotifierGet(struct cmd_syndesc *as, char *arock)
+DoBosProcessNotifierGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessNotifierGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessRestart(struct cmd_syndesc *as, char *arock)
+DoBosProcessRestart(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoBosProcessRestart_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessAllStop(struct cmd_syndesc *as, char *arock)
+DoBosProcessAllStop(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosProcessAllStop_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessAllStart(struct cmd_syndesc *as, char *arock)
+DoBosProcessAllStart(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosProcessAllStart_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessAllWaitStop(struct cmd_syndesc *as, char *arock)
+DoBosProcessAllWaitStop(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosProcessAllWaitStop_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessAllWaitTransition(struct cmd_syndesc *as, char *arock)
+DoBosProcessAllWaitTransition(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosProcessAllWaitTransition_parm_t;
afs_status_t st = 0;
}
int
-DoBosProcessAllStopAndRestart(struct cmd_syndesc *as, char *arock)
+DoBosProcessAllStopAndRestart(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, INCLUDEBOS } DoBosProcessAllStopAndRestart_parm_t;
afs_status_t st = 0;
}
int
-DoBosAdminCreate(struct cmd_syndesc *as, char *arock)
+DoBosAdminCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, ADMIN } DoBosAdminCreate_parm_t;
afs_status_t st = 0;
}
int
-DoBosAdminDelete(struct cmd_syndesc *as, char *arock)
+DoBosAdminDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, ADMIN } DoBosAdminDelete_parm_t;
afs_status_t st = 0;
}
int
-DoBosAdminList(struct cmd_syndesc *as, char *arock)
+DoBosAdminList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosAdminList_parm_t;
afs_status_t st = 0;
}
int
-DoBosKeyCreate(struct cmd_syndesc *as, char *arock)
+DoBosKeyCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, VERSIONNUMBER, KEY } DoBosKeyCreate_parm_t;
afs_status_t st = 0;
}
int
-DoBosKeyDelete(struct cmd_syndesc *as, char *arock)
+DoBosKeyDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, VERSIONNUMBER } DoBosKeyDelete_parm_t;
afs_status_t st = 0;
}
int
-DoBosKeyList(struct cmd_syndesc *as, char *arock)
+DoBosKeyList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosKeyList_parm_t;
afs_status_t st = 0;
}
int
-DoBosCellSet(struct cmd_syndesc *as, char *arock)
+DoBosCellSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, CELL } DoBosCellSet_parm_t;
afs_status_t st = 0;
}
int
-DoBosCellGet(struct cmd_syndesc *as, char *arock)
+DoBosCellGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosCellGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosHostCreate(struct cmd_syndesc *as, char *arock)
+DoBosHostCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, HOST } DoBosHostCreate_parm_t;
afs_status_t st = 0;
}
int
-DoBosHostDelete(struct cmd_syndesc *as, char *arock)
+DoBosHostDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, HOST } DoBosHostDelete_parm_t;
afs_status_t st = 0;
}
int
-DoBosHostList(struct cmd_syndesc *as, char *arock)
+DoBosHostList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoBosHostList_parm_t;
afs_status_t st = 0;
}
int
-DoBosExecutableCreate(struct cmd_syndesc *as, char *arock)
+DoBosExecutableCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, BINARY, DEST } DoBosExecutableCreate_parm_t;
afs_status_t st = 0;
}
int
-DoBosExecutableRevert(struct cmd_syndesc *as, char *arock)
+DoBosExecutableRevert(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, EXECUTABLE } DoBosExecutableRevert_parm_t;
afs_status_t st = 0;
}
int
-DoBosExecutableTimestampGet(struct cmd_syndesc *as, char *arock)
+DoBosExecutableTimestampGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, EXECUTABLE } DoBosExecutableTimestampGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosExecutablePrune(struct cmd_syndesc *as, char *arock)
+DoBosExecutablePrune(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, OLDFILES, BAKFILES,
COREFILES
}
int
-DoBosExecutableRestartTimeSet(struct cmd_syndesc *as, char *arock)
+DoBosExecutableRestartTimeSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, DAILY, WEEKLY,
TIME
}
int
-DoBosExecutableRestartTimeGet(struct cmd_syndesc *as, char *arock)
+DoBosExecutableRestartTimeGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, DAILY,
WEEKLY
#define INITIAL_BUF_SIZE 4096
int
-DoBosLogGet(struct cmd_syndesc *as, char *arock)
+DoBosLogGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, LOGFILE } DoBosLogGet_parm_t;
afs_status_t st = 0;
}
int
-DoBosAuthSet(struct cmd_syndesc *as, char *arock)
+DoBosAuthSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, REQUIREAUTH, DISABLEAUTH } DoBosAuthSet_parm_t;
afs_status_t st = 0;
}
int
-DoBosCommandExecute(struct cmd_syndesc *as, char *arock)
+DoBosCommandExecute(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, COMMAND } DoBosCommandExecute_parm_t;
afs_status_t st = 0;
}
int
-DoBosSalvage(struct cmd_syndesc *as, char *arock)
+DoBosSalvage(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME, NUMSALVAGERS, TMPDIR, LOGFILE,
FORCE, NOWRITE, INODES, ROOTINODES, SALVAGEDIRS, BLOCKREADS
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("BosProcessCreate", DoBosProcessCreate, 0,
+ ts = cmd_CreateSyntax("BosProcessCreate", DoBosProcessCreate, NULL,
"create a new bos process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process will be created");
"path to notifier binary that is run when process terminates");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosFSProcessCreate", DoBosFSProcessCreate, 0,
+ ts = cmd_CreateSyntax("BosFSProcessCreate", DoBosFSProcessCreate, NULL,
"create a fs bos process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process will be created");
"path to notifier binary that is run when process terminates");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessDelete", DoBosProcessDelete, 0,
+ ts = cmd_CreateSyntax("BosProcessDelete", DoBosProcessDelete, NULL,
"delete a bos process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process will be deleted");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessExecutionStateGet",
- DoBosProcessExecutionStateGet, 0,
+ DoBosProcessExecutionStateGet, NULL,
"get the process execution state of a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessExecutionStateSet",
- DoBosProcessExecutionStateSet, 0,
+ DoBosProcessExecutionStateSet, NULL,
"set the process execution state of a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessExecutionStateSetTemporary",
- DoBosProcessExecutionStateSetTemporary, 0,
+ DoBosProcessExecutionStateSetTemporary, NULL,
"set the process execution state "
"of a process temporarily");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"set the process state to running");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessNameList", DoBosProcessNameList, 0,
+ ts = cmd_CreateSyntax("BosProcessNameList", DoBosProcessNameList, NULL,
"list the names of all processes at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessInfoGet", DoBosProcessInfoGet, 0,
+ ts = cmd_CreateSyntax("BosProcessInfoGet", DoBosProcessInfoGet, NULL,
"get information about a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessParameterList",
- DoBosProcessParameterList, 0,
+ DoBosProcessParameterList, NULL,
"list the parameters of a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
"the name of the process");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessNotifierGet", DoBosProcessNotifierGet, 0,
+ ts = cmd_CreateSyntax("BosProcessNotifierGet", DoBosProcessNotifierGet, NULL,
"get the notifier for a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
"the name of the process");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessRestart", DoBosProcessRestart, 0,
+ ts = cmd_CreateSyntax("BosProcessRestart", DoBosProcessRestart, NULL,
"restart a process");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where process exists");
"the name of the process");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessAllStop", DoBosProcessAllStop, 0,
+ ts = cmd_CreateSyntax("BosProcessAllStop", DoBosProcessAllStop, NULL,
"stop all processes at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where processes exists");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosProcessAllWaitStop", DoBosProcessAllWaitStop, 0,
+ ts = cmd_CreateSyntax("BosProcessAllWaitStop", DoBosProcessAllWaitStop, NULL,
"stop all processes at a bos server and block "
"until they all exit");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessAllWaitTransition",
- DoBosProcessAllWaitTransition, 0,
+ DoBosProcessAllWaitTransition, NULL,
"wait until all processes have transitioned to "
"their desired state");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosProcessAllStopAndRestart",
- DoBosProcessAllStopAndRestart, 0,
+ DoBosProcessAllStopAndRestart, NULL,
"stop all processes at a bos server and "
"then restart them");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"include the bos server in the processes to be restarted");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosAdminCreate", DoBosAdminCreate, 0,
+ ts = cmd_CreateSyntax("BosAdminCreate", DoBosAdminCreate, NULL,
"create an admin user at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where admin will be created");
"the name of the administrator to add");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosAdminDelete", DoBosAdminDelete, 0,
+ ts = cmd_CreateSyntax("BosAdminDelete", DoBosAdminDelete, NULL,
"delete an admin user at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where admin will be deleted");
"the name of the administrator to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosAdminList", DoBosAdminList, 0,
+ ts = cmd_CreateSyntax("BosAdminList", DoBosAdminList, NULL,
"list all admin users at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where admins will be listed");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosKeyCreate", DoBosKeyCreate, 0,
+ ts = cmd_CreateSyntax("BosKeyCreate", DoBosKeyCreate, NULL,
"create a key at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where key will be created");
cmd_AddParm(ts, "-key", CMD_SINGLE, CMD_REQUIRED, "new encryption key");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosKeyDelete", DoBosKeyDelete, 0,
+ ts = cmd_CreateSyntax("BosKeyDelete", DoBosKeyDelete, NULL,
"delete a key at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where key will be deleted");
"version number of the key");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosKeyList", DoBosKeyList, 0,
+ ts = cmd_CreateSyntax("BosKeyList", DoBosKeyList, NULL,
"list keys at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where keys exist");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosCellSet", DoBosCellSet, 0,
+ ts = cmd_CreateSyntax("BosCellSet", DoBosCellSet, NULL,
"set the cell at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "new cell");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosCellGet", DoBosCellGet, 0,
+ ts = cmd_CreateSyntax("BosCellGet", DoBosCellGet, NULL,
"get the cell at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosHostCreate", DoBosHostCreate, 0,
+ ts = cmd_CreateSyntax("BosHostCreate", DoBosHostCreate, NULL,
"add a host entry to the server CellServDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host to add");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosHostDelete", DoBosHostDelete, 0,
+ ts = cmd_CreateSyntax("BosHostDelete", DoBosHostDelete, NULL,
"delete a host entry from the server CellServDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosHostList", DoBosHostList, 0,
+ ts = cmd_CreateSyntax("BosHostList", DoBosHostList, NULL,
"list all host entries from the server CellServDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosExecutableCreate", DoBosExecutableCreate, 0,
+ ts = cmd_CreateSyntax("BosExecutableCreate", DoBosExecutableCreate, NULL,
"create a new binary at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-binary", CMD_SINGLE, CMD_REQUIRED,
"path where the binary will be stored");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosExecutableRevert", DoBosExecutableRevert, 0,
+ ts = cmd_CreateSyntax("BosExecutableRevert", DoBosExecutableRevert, NULL,
"revert a binary at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-executable", CMD_SINGLE, CMD_REQUIRED,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosExecutableTimestampGet",
- DoBosExecutableTimestampGet, 0,
+ DoBosExecutableTimestampGet, NULL,
"get the timestamps for a binary at bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
cmd_AddParm(ts, "-executable", CMD_SINGLE, CMD_REQUIRED,
"path to the binary to revert");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosExecutablePrune", DoBosExecutablePrune, 0,
+ ts = cmd_CreateSyntax("BosExecutablePrune", DoBosExecutablePrune, NULL,
"prune various files at bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-oldfiles", CMD_FLAG, CMD_OPTIONAL, "prune .old files");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosExecutableRestartTimeSet",
- DoBosExecutableRestartTimeSet, 0,
+ DoBosExecutableRestartTimeSet, NULL,
"set the restart times at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-daily", CMD_FLAG, CMD_OPTIONAL,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("BosExecutableRestartTimeGet",
- DoBosExecutableRestartTimeGet, 0,
+ DoBosExecutableRestartTimeGet, NULL,
"get the restart times at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
cmd_AddParm(ts, "-daily", CMD_FLAG, CMD_OPTIONAL,
"get weekly restart time");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosLogGet", DoBosLogGet, 0,
+ ts = cmd_CreateSyntax("BosLogGet", DoBosLogGet, NULL,
"get a log file from the bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
cmd_AddParm(ts, "-logfile", CMD_SINGLE, CMD_REQUIRED,
"path to the log file to retrieve");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosAuthSet", DoBosAuthSet, 0,
+ ts = cmd_CreateSyntax("BosAuthSet", DoBosAuthSet, NULL,
"set the authorization level at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to modify");
cmd_AddParm(ts, "-requireauth", CMD_FLAG, CMD_OPTIONAL,
"command to execute");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("BosSalvage", DoBosSalvage, 0,
+ ts = cmd_CreateSyntax("BosSalvage", DoBosSalvage, NULL,
"execute a salvage command at a bos server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where salvager will execute");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/client.c,v 1.8 2003/12/12 23:37:37 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/client.c,v 1.8.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "client.h"
#include <afs/cellconfig.h>
*/
int
-DoClientLocalCellGet(struct cmd_syndesc *as, char *arock)
+DoClientLocalCellGet(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
char cellName[MAXCELLCHARS];
}
int
-DoClientMountPointCreate(struct cmd_syndesc *as, char *arock)
+DoClientMountPointCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { DIRECTORY, VOLUME, READWRITE,
CHECK
}
int
-DoClientAFSServerGet(struct cmd_syndesc *as, char *arock)
+DoClientAFSServerGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoClientAFSServerGet_parm_t;
afs_status_t st = 0;
}
int
-DoClientAFSServerList(struct cmd_syndesc *as, char *arock)
+DoClientAFSServerList(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
afs_serverEntry_t entry;
}
int
-DoClientRPCStatsStateGet(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsStateGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS,
STAT_TYPE
}
int
-DoClientRPCStatsStateEnable(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsStateEnable(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, STAT_TYPE } DoClientRPCStatsEnable_parm_t;
afs_status_t st = 0;
}
int
-DoClientRPCStatsStateDisable(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsStateDisable(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS,
STAT_TYPE
}
int
-DoClientRPCStatsList(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, STAT_TYPE } DoClientRPCStatsList_parm_t;
afs_status_t st = 0;
}
int
-DoClientRPCStatsClear(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsClear(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS, STAT_TYPE, CLEAR_ALL, CLEAR_INVOCATIONS,
CLEAR_BYTES_SENT, CLEAR_BYTES_RCVD,
}
int
-DoClientRPCStatsVersionGet(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsVersionGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PROCESS } DoClientRPCStatsVersionGet_parm_t;
afs_status_t st = 0;
}
int
-DoClientCMGetServerPrefs(struct cmd_syndesc *as, char *arock)
+DoClientCMGetServerPrefs(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
typedef enum { SERVER, PORT } DoClientCMGetServerPrefs_parm_t;
}
int
-DoClientCMListCells(struct cmd_syndesc *as, char *arock)
+DoClientCMListCells(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
typedef enum { SERVER, PORT } DoClientCMListCells_parm_t;
}
int
-DoClientCMLocalCell(struct cmd_syndesc *as, char *arock)
+DoClientCMLocalCell(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
typedef enum { SERVER, PORT } DoClientCMLocalCell_parm_t;
}
int
-DoClientCMClientConfig(struct cmd_syndesc *as, char *arock)
+DoClientCMClientConfig(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
typedef enum { SERVER, PORT } DoClientCMLocalCell_parm_t;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("ClientLocalCellGet", DoClientLocalCellGet, 0,
+ ts = cmd_CreateSyntax("ClientLocalCellGet", DoClientLocalCellGet, NULL,
"get the name of this machine's cell");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientMountPointCreate", DoClientMountPointCreate,
- 0, "create a mount point");
+ NULL, "create a mount point");
cmd_AddParm(ts, "-directory", CMD_SINGLE, CMD_REQUIRED,
"directory where mount point will be created");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED,
"check that the volume exists before mounting");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientAFSServerGet", DoClientAFSServerGet, 0,
+ ts = cmd_CreateSyntax("ClientAFSServerGet", DoClientAFSServerGet, NULL,
"retrieve information about an afs server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientAFSServerList", DoClientAFSServerList, 0,
+ ts = cmd_CreateSyntax("ClientAFSServerList", DoClientAFSServerList, NULL,
"retrieve information about all afs "
"servers in a cell");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientRPCStatsStateGet", DoClientRPCStatsStateGet,
- 0, "retrieve the rpc stat collection state");
+ NULL, "retrieve the rpc stat collection state");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
cmd_AddParm(ts, "-process", CMD_SINGLE, CMD_REQUIRED,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientRPCStatsStateEnable",
- DoClientRPCStatsStateEnable, 0,
+ DoClientRPCStatsStateEnable, NULL,
"set the rpc stat collection state to on");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientRPCStatsStateDisable",
- DoClientRPCStatsStateDisable, 0,
+ DoClientRPCStatsStateDisable, NULL,
"set the rpc stat collection state to off");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
"stats to retrieve <peer or process>");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientRPCStatsList", DoClientRPCStatsList, 0,
+ ts = cmd_CreateSyntax("ClientRPCStatsList", DoClientRPCStatsList, NULL,
"list the rpc stats");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
"stats to retrieve <peer or process>");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientRPCStatsClear", DoClientRPCStatsClear, 0,
+ ts = cmd_CreateSyntax("ClientRPCStatsClear", DoClientRPCStatsClear, NULL,
"reset rpc stat counters");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientRPCStatsVersionGet",
- DoClientRPCStatsVersionGet, 0,
+ DoClientRPCStatsVersionGet, NULL,
"list the server's rpc stats version");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("ClientCMGetServerPrefs", DoClientCMGetServerPrefs,
- 0, "list a client's server preferences ");
+ NULL, "list a client's server preferences ");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "UDP port to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientCMListCells", DoClientCMListCells, 0,
+ ts = cmd_CreateSyntax("ClientCMListCells", DoClientCMListCells, NULL,
"list a client's CellServDB ");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "UDP port to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientCMLocalCell", DoClientCMLocalCell, 0,
+ ts = cmd_CreateSyntax("ClientCMLocalCell", DoClientCMLocalCell, NULL,
"get the name of the client's local cell");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "UDP port to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("ClientCMClientConfig", DoClientCMClientConfig, 0,
+ ts = cmd_CreateSyntax("ClientCMClientConfig", DoClientCMClientConfig, NULL,
"get the client's cache configuration");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where command will execute");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/kas.c,v 1.8 2003/11/29 22:08:13 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/kas.c,v 1.8.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "kas.h"
#include <time.h>
}
int
-DoKasPrincipalCreate(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE,
PASSWORD
}
int
-DoKasPrincipalDelete(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE } DoKasPrincipalGet_parm_t;
afs_status_t st = 0;
}
int
-DoKasPrincipalGet(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE } DoKasPrincipalGet_parm_t;
afs_status_t st = 0;
}
int
-DoKasPrincipalList(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalList(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *iter;
}
int
-DoKasPrincipalKeySet(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalKeySet(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE, PASSWORD,
KEYVERSION
}
int
-DoKasPrincipalLockStatusGet(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalLockStatusGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE } DoKasPrincipalLockStatusGet_parm_t;
afs_status_t st = 0;
}
int
-DoKasPrincipalUnlock(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalUnlock(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE } DoKasPrincipalUnlock_parm_t;
afs_status_t st = 0;
}
int
-DoKasPrincipalFieldsSet(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalFieldsSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { PRINCIPAL, INSTANCE, ADMIN, NOADMIN, GRANTTICKET,
NOGRANTTICKET, ENCRYPT2, NOENCRYPT, CHANGEPASSWORD,
}
int
-DoKasServerStatsGet(struct cmd_syndesc *as, char *arock)
+DoKasServerStatsGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoKasServerStatsGet_parm_t;
afs_status_t st = 0;
}
int
-DoKasServerDebugGet(struct cmd_syndesc *as, char *arock)
+DoKasServerDebugGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoKasServerDebugGet_parm_t;
afs_status_t st = 0;
}
int
-DoKasServerRandomKeyGet(struct cmd_syndesc *as, char *arock)
+DoKasServerRandomKeyGet(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
kas_encryptionKey_t key;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("KasPrincipalCreate", DoKasPrincipalCreate, 0,
+ ts = cmd_CreateSyntax("KasPrincipalCreate", DoKasPrincipalCreate, NULL,
"create a new principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to create");
"initial principal password");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalDelete", DoKasPrincipalDelete, 0,
+ ts = cmd_CreateSyntax("KasPrincipalDelete", DoKasPrincipalDelete, NULL,
"delete a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to delete");
"principal instance");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalGet", DoKasPrincipalGet, 0,
+ ts = cmd_CreateSyntax("KasPrincipalGet", DoKasPrincipalGet, NULL,
"get information about a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to get");
"principal instance");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalList", DoKasPrincipalList, 0,
+ ts = cmd_CreateSyntax("KasPrincipalList", DoKasPrincipalList, NULL,
"list all principals");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalKeySet", DoKasPrincipalKeySet, 0,
+ ts = cmd_CreateSyntax("KasPrincipalKeySet", DoKasPrincipalKeySet, NULL,
"set the password for a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to modify");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("KasPrincipalLockStatusGet",
- DoKasPrincipalLockStatusGet, 0,
+ DoKasPrincipalLockStatusGet, NULL,
"get the lock status of a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to query");
"principal instance");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalUnlock", DoKasPrincipalUnlock, 0,
+ ts = cmd_CreateSyntax("KasPrincipalUnlock", DoKasPrincipalUnlock, NULL,
"unlock a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to unlock");
"principal instance");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasPrincipalFieldsSet", DoKasPrincipalFieldsSet, 0,
+ ts = cmd_CreateSyntax("KasPrincipalFieldsSet", DoKasPrincipalFieldsSet, NULL,
"modify a principal");
cmd_AddParm(ts, "-principal", CMD_SINGLE, CMD_REQUIRED,
"principal to modify");
"maximum failed password attempts is exceeded");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasServerStatsGet", DoKasServerStatsGet, 0,
+ ts = cmd_CreateSyntax("KasServerStatsGet", DoKasServerStatsGet, NULL,
"get stats on a kaserver");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasServerDebugGet", DoKasServerDebugGet, 0,
+ ts = cmd_CreateSyntax("KasServerDebugGet", DoKasServerDebugGet, NULL,
"get debug info from a kaserver");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("KasServerRandomKeyGet", DoKasServerRandomKeyGet, 0,
+ ts = cmd_CreateSyntax("KasServerRandomKeyGet", DoKasServerRandomKeyGet, NULL,
"create a random key");
SetupCommonCmdArgs(ts);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/pts.c,v 1.5 2003/07/15 23:15:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/pts.c,v 1.5.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "pts.h"
}
int
-DoPtsGroupMemberAdd(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMemberAdd(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER, GROUP } DoPtsGroupMemberAdd_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupOwnerChange(struct cmd_syndesc *as, char *arock)
+DoPtsGroupOwnerChange(struct cmd_syndesc *as, void *arock)
{
typedef enum { OWNER, GROUP } DoPtsGroupOwnerChange_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupCreate(struct cmd_syndesc *as, char *arock)
+DoPtsGroupCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { OWNER, GROUP } DoPtsGroupCreate_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupGet(struct cmd_syndesc *as, char *arock)
+DoPtsGroupGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { GROUP } DoPtsGroupGet_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupDelete(struct cmd_syndesc *as, char *arock)
+DoPtsGroupDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { GROUP } DoPtsGroupDelete_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupMaxGet(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMaxGet(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
int max_group_id;
}
int
-DoPtsGroupMaxSet(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMaxSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { MAX } DoPtsGroupMaxSet_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupMemberList(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMemberList(struct cmd_syndesc *as, void *arock)
{
typedef enum { GROUP } DoPtsGroupMemberList_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupMemberRemove(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMemberRemove(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER, GROUP } DoPtsGroupMemberRemove_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupRename(struct cmd_syndesc *as, char *arock)
+DoPtsGroupRename(struct cmd_syndesc *as, void *arock)
{
typedef enum { GROUP, NEWNAME } DoPtsGroupRename_parm_t;
afs_status_t st = 0;
}
int
-DoPtsGroupModify(struct cmd_syndesc *as, char *arock)
+DoPtsGroupModify(struct cmd_syndesc *as, void *arock)
{
typedef enum { GROUP, LISTSTATUS, LISTGROUPSOWNED, LISTMEMBERSHIP,
LISTADD, LISTDELTE
}
int
-DoPtsUserCreate(struct cmd_syndesc *as, char *arock)
+DoPtsUserCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER } DoPtsUserCreate_parm_t;
afs_status_t st = 0;
}
int
-DoPtsUserDelete(struct cmd_syndesc *as, char *arock)
+DoPtsUserDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER } DoPtsUserDelete_parm_t;
afs_status_t st = 0;
}
int
-DoPtsUserGet(struct cmd_syndesc *as, char *arock)
+DoPtsUserGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER } DoPtsUserGet_parm_t;
afs_status_t st = 0;
}
int
-DoPtsUserRename(struct cmd_syndesc *as, char *arock)
+DoPtsUserRename(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER, NEWNAME } DoPtsUserRename_parm_t;
afs_status_t st = 0;
}
int
-DoPtsUserModify(struct cmd_syndesc *as, char *arock)
+DoPtsUserModify(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER, GROUPQUOTA, LISTSTATUS, LISTGROUPSOWNED,
LISTMEMBERSHIP
}
int
-DoPtsUserMaxGet(struct cmd_syndesc *as, char *arock)
+DoPtsUserMaxGet(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
int max_user_id;
}
int
-DoPtsUserMaxSet(struct cmd_syndesc *as, char *arock)
+DoPtsUserMaxSet(struct cmd_syndesc *as, void *arock)
{
typedef enum { MAX } DoPtsUserMaxSet_parm_t;
afs_status_t st = 0;
}
int
-DoPtsUserMemberList(struct cmd_syndesc *as, char *arock)
+DoPtsUserMemberList(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER } DoPtsUserMemberList_parm_t;
afs_status_t st = 0;
}
int
-DoPtsOwnedGroupList(struct cmd_syndesc *as, char *arock)
+DoPtsOwnedGroupList(struct cmd_syndesc *as, void *arock)
{
typedef enum { USER } DoPtsOwnedGroupList_parm_t;
afs_status_t st = 0;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("PtsGroupMemberAdd", DoPtsGroupMemberAdd, 0,
+ ts = cmd_CreateSyntax("PtsGroupMemberAdd", DoPtsGroupMemberAdd, NULL,
"add a user to a group");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to add");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to modify");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupOwnerChange", DoPtsGroupOwnerChange, 0,
+ ts = cmd_CreateSyntax("PtsGroupOwnerChange", DoPtsGroupOwnerChange, NULL,
"change the owner of a group");
cmd_AddParm(ts, "-owner", CMD_SINGLE, CMD_REQUIRED, "new owner");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to modify");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupCreate", DoPtsGroupCreate, 0,
+ ts = cmd_CreateSyntax("PtsGroupCreate", DoPtsGroupCreate, NULL,
"create a new group");
cmd_AddParm(ts, "-owner", CMD_SINGLE, CMD_REQUIRED, "owner of group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to create");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupGet", DoPtsGroupGet, 0,
+ ts = cmd_CreateSyntax("PtsGroupGet", DoPtsGroupGet, NULL,
"get information about a group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupDelete", DoPtsGroupDelete, 0,
+ ts = cmd_CreateSyntax("PtsGroupDelete", DoPtsGroupDelete, NULL,
"delete a group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupMaxGet", DoPtsGroupMaxGet, 0,
+ ts = cmd_CreateSyntax("PtsGroupMaxGet", DoPtsGroupMaxGet, NULL,
"get the maximum group id");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupMaxSet", DoPtsGroupMaxSet, 0,
+ ts = cmd_CreateSyntax("PtsGroupMaxSet", DoPtsGroupMaxSet, NULL,
"set the maximum group id");
cmd_AddParm(ts, "-max", CMD_SINGLE, CMD_REQUIRED, "new max group id");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupMemberList", DoPtsGroupMemberList, 0,
+ ts = cmd_CreateSyntax("PtsGroupMemberList", DoPtsGroupMemberList, NULL,
"list members of a group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupMemberRemove", DoPtsGroupMemberRemove, 0,
+ ts = cmd_CreateSyntax("PtsGroupMemberRemove", DoPtsGroupMemberRemove, NULL,
"remove a member from a group");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to remove");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to modify");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupRename", DoPtsGroupRename, 0,
+ ts = cmd_CreateSyntax("PtsGroupRename", DoPtsGroupRename, NULL,
"rename a group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to modify");
cmd_AddParm(ts, "-newname", CMD_SINGLE, CMD_REQUIRED, "new group name");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsGroupModify", DoPtsGroupModify, 0,
+ ts = cmd_CreateSyntax("PtsGroupModify", DoPtsGroupModify, NULL,
"modify a group");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_REQUIRED, "group to modify");
cmd_AddParm(ts, "-liststatus", CMD_SINGLE, CMD_REQUIRED,
"list delete permission <owner | group>");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserCreate", DoPtsUserCreate, 0,
+ ts = cmd_CreateSyntax("PtsUserCreate", DoPtsUserCreate, NULL,
"create a new user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to create");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserDelete", DoPtsUserDelete, 0,
+ ts = cmd_CreateSyntax("PtsUserDelete", DoPtsUserDelete, NULL,
"delete a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserGet", DoPtsUserGet, 0,
+ ts = cmd_CreateSyntax("PtsUserGet", DoPtsUserGet, NULL,
"get information about a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserRename", DoPtsUserRename, 0,
+ ts = cmd_CreateSyntax("PtsUserRename", DoPtsUserRename, NULL,
"rename a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to modify");
cmd_AddParm(ts, "-newname", CMD_SINGLE, CMD_REQUIRED, "new user name");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserModify", DoPtsUserModify, 0,
+ ts = cmd_CreateSyntax("PtsUserModify", DoPtsUserModify, NULL,
"change a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to modify");
cmd_AddParm(ts, "-groupquota", CMD_SINGLE, CMD_OPTIONAL,
"list membership permission <owner | any>");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserMaxGet", DoPtsUserMaxGet, 0,
+ ts = cmd_CreateSyntax("PtsUserMaxGet", DoPtsUserMaxGet, NULL,
"get the max user id");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserMaxSet", DoPtsUserMaxSet, 0,
+ ts = cmd_CreateSyntax("PtsUserMaxSet", DoPtsUserMaxSet, NULL,
"set the max user id");
cmd_AddParm(ts, "-max", CMD_SINGLE, CMD_REQUIRED, "max user id");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsUserMemberList", DoPtsUserMemberList, 0,
+ ts = cmd_CreateSyntax("PtsUserMemberList", DoPtsUserMemberList, NULL,
"list group membership for a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("PtsOwnedGroupList", DoPtsOwnedGroupList, 0,
+ ts = cmd_CreateSyntax("PtsOwnedGroupList", DoPtsOwnedGroupList, NULL,
"list groups owned by a user");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_REQUIRED, "user to query");
SetupCommonCmdArgs(ts);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/util.c,v 1.5 2003/07/15 23:15:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/util.c,v 1.5.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "util.h"
int
-DoUtilErrorTranslate(struct cmd_syndesc *as, char *arock)
+DoUtilErrorTranslate(struct cmd_syndesc *as, void *arock)
{
typedef enum { ERROR_CODE } DoUtilErrorTranslate_parm_t;
afs_status_t st = 0;
}
int
-DoUtilDatabaseServerList(struct cmd_syndesc *as, char *arock)
+DoUtilDatabaseServerList(struct cmd_syndesc *as, void *arock)
{
typedef enum { CELL_NAME } DoUtilDatabaseServerList_parm_t;
afs_status_t st = 0;
}
int
-DoUtilNameToAddress(struct cmd_syndesc *as, char *arock)
+DoUtilNameToAddress(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER_NAME } DoUtilNameToAddress_parm_t;
afs_status_t st = 0;
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("UtilErrorTranslate", DoUtilErrorTranslate, 0,
+ ts = cmd_CreateSyntax("UtilErrorTranslate", DoUtilErrorTranslate, NULL,
"translate an error code");
cmd_AddParm(ts, "-error", CMD_SINGLE, CMD_REQUIRED, "error code");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("UtilDatabaseServerList", DoUtilDatabaseServerList,
- 0, "list the database servers in a cell");
+ NULL, "list the database servers in a cell");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "cell to list");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("UtilNameToAddress", DoUtilNameToAddress, 0,
+ ts = cmd_CreateSyntax("UtilNameToAddress", DoUtilNameToAddress, NULL,
"translate a host name to an address");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
SetupCommonCmdArgs(ts);
#include "common.h"
int
- DoUtilErrorTranslate(struct cmd_syndesc *as, char *arock);
+ DoUtilErrorTranslate(struct cmd_syndesc *as, void *arock);
int
- DoUtilDatabaseServerList(struct cmd_syndesc *as, char *arock);
+ DoUtilDatabaseServerList(struct cmd_syndesc *as, void *arock);
int
- DoUtilNameToAddress(struct cmd_syndesc *as, char *arock);
+ DoUtilNameToAddress(struct cmd_syndesc *as, void *arock);
void
SetupUtilAdminCmd(void);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/test/vos.c,v 1.6 2003/08/08 21:54:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/test/vos.c,v 1.6.2.1 2007/10/31 04:13:42 shadow Exp $");
#include "vos.h"
}
int
-DoVosBackupVolumeCreate(struct cmd_syndesc *as, char *arock)
+DoVosBackupVolumeCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME } DoVosBackupVolumeCreate_parm_t;
afs_status_t st = 0;
}
int
-DoVosBackupVolumeCreateMultiple(struct cmd_syndesc *as, char *arock)
+DoVosBackupVolumeCreateMultiple(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, PREFIX,
EXCLUDE
}
int
-DoVosPartitionGet(struct cmd_syndesc *as, char *arock)
+DoVosPartitionGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION } DoVosPartitionGet_parm_t;
afs_status_t st = 0;
}
int
-DoVosPartitionList(struct cmd_syndesc *as, char *arock)
+DoVosPartitionList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoVosPartitionGet_parm_t;
afs_status_t st = 0;
}
int
-DoVosServerSync(struct cmd_syndesc *as, char *arock)
+DoVosServerSync(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION } DoVosServerSync_parm_t;
afs_status_t st = 0;
}
int
-DoVosFileServerAddressChange(struct cmd_syndesc *as, char *arock)
+DoVosFileServerAddressChange(struct cmd_syndesc *as, void *arock)
{
typedef enum { OLDADDRESS,
NEWADDRESS
}
int
-DoVosFileServerAddressRemove(struct cmd_syndesc *as, char *arock)
+DoVosFileServerAddressRemove(struct cmd_syndesc *as, void *arock)
{
typedef enum { ADDRESS } DoVosFileServerAddressRemove_parm_t;
afs_status_t st = 0;
}
int
-DoVosFileServerList(struct cmd_syndesc *as, char *arock)
+DoVosFileServerList(struct cmd_syndesc *as, void *arock)
{
afs_status_t st = 0;
void *iter;
}
int
-DoVosServerTransactionStatusList(struct cmd_syndesc *as, char *arock)
+DoVosServerTransactionStatusList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER } DoVosServerTransactionStatusList_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBGet(struct cmd_syndesc *as, char *arock)
+DoVosVLDBGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME } DoVosVLDBGet_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBList(struct cmd_syndesc *as, char *arock)
+DoVosVLDBList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION } DoVosVLDBList_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBEntryRemove(struct cmd_syndesc *as, char *arock)
+DoVosVLDBEntryRemove(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME } DoVosVLDBEntryRemove_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBUnlock(struct cmd_syndesc *as, char *arock)
+DoVosVLDBUnlock(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION } DoVosVLDBUnlock_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBEntryLock(struct cmd_syndesc *as, char *arock)
+DoVosVLDBEntryLock(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME } DoVosVLDBEntryLoc_parm_tk;
afs_status_t st = 0;
}
int
-DoVosVLDBEntryUnlock(struct cmd_syndesc *as, char *arock)
+DoVosVLDBEntryUnlock(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME } DoVosVLDBEntryUnlock_parm_t;
afs_status_t st = 0;
}
int
-DoVosVLDBReadOnlySiteCreate(struct cmd_syndesc *as, char *arock)
+DoVosVLDBReadOnlySiteCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION,
VOLUME
}
int
-DoVosVLDBReadOnlySiteDelete(struct cmd_syndesc *as, char *arock)
+DoVosVLDBReadOnlySiteDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION,
VOLUME
}
int
-DoVosVLDBSync(struct cmd_syndesc *as, char *arock)
+DoVosVLDBSync(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, FORCE } DoVosVLDBSync_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeCreate(struct cmd_syndesc *as, char *arock)
+DoVosVolumeCreate(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME,
QUOTA
}
int
-DoVosVolumeDelete(struct cmd_syndesc *as, char *arock)
+DoVosVolumeDelete(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME } DoVosVolumeDelete_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeRename(struct cmd_syndesc *as, char *arock)
+DoVosVolumeRename(struct cmd_syndesc *as, void *arock)
{
typedef enum { OLDVOLUME, NEWVOLUME } DoVosVolumeRename_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeDump(struct cmd_syndesc *as, char *arock)
+DoVosVolumeDump(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME, STARTTIME,
DUMPFILE
}
int
-DoVosVolumeRestore(struct cmd_syndesc *as, char *arock)
+DoVosVolumeRestore(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, ID, VOLUME, DUMPFILE,
FULL
}
int
-DoVosVolumeOnline(struct cmd_syndesc *as, char *arock)
+DoVosVolumeOnline(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME, SLEEP,
BUSY
}
int
-DoVosVolumeOffline(struct cmd_syndesc *as, char *arock)
+DoVosVolumeOffline(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME } DoVosVolumeOffline_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeGet(struct cmd_syndesc *as, char *arock)
+DoVosVolumeGet(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME } DoVosVolumeGet_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeList(struct cmd_syndesc *as, char *arock)
+DoVosVolumeList(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION } DoVosVolumeList_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeMove(struct cmd_syndesc *as, char *arock)
+DoVosVolumeMove(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME, FROMSERVER, FROMPARTITION, TOSERVER,
TOPARTITION
}
int
-DoVosVolumeRelease(struct cmd_syndesc *as, char *arock)
+DoVosVolumeRelease(struct cmd_syndesc *as, void *arock)
{
typedef enum { VOLUME, FORCE } DoVosVolumeRelease_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeZap(struct cmd_syndesc *as, char *arock)
+DoVosVolumeZap(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME, FORCE } DoVosVolumeZap_parm_t;
afs_status_t st = 0;
}
int
-DoVosPartitionNameToId(struct cmd_syndesc *as, char *arock)
+DoVosPartitionNameToId(struct cmd_syndesc *as, void *arock)
{
typedef enum { PARTITION } DoVosPartitionNameToId_parm_t;
afs_status_t st = 0;
}
int
-DoVosPartitionIdToName(struct cmd_syndesc *as, char *arock)
+DoVosPartitionIdToName(struct cmd_syndesc *as, void *arock)
{
typedef enum { PARTITIONID } DoVosPartitionIdToName_parm_t;
afs_status_t st = 0;
}
int
-DoVosVolumeQuotaChange(struct cmd_syndesc *as, char *arock)
+DoVosVolumeQuotaChange(struct cmd_syndesc *as, void *arock)
{
typedef enum { SERVER, PARTITION, VOLUME,
QUOTA
{
struct cmd_syndesc *ts;
- ts = cmd_CreateSyntax("VosBackupVolumeCreate", DoVosBackupVolumeCreate, 0,
+ ts = cmd_CreateSyntax("VosBackupVolumeCreate", DoVosBackupVolumeCreate, NULL,
"create a backup volume");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to back up");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosBackupVolumeCreateMultiple",
- DoVosBackupVolumeCreateMultiple, 0,
+ DoVosBackupVolumeCreateMultiple, NULL,
"create a backup volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"server housing volumes to back up");
"exclude volumes from backup that match prefix");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosPartitionGet", DoVosPartitionGet, 0,
+ ts = cmd_CreateSyntax("VosPartitionGet", DoVosPartitionGet, NULL,
"get information about a partition");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server housing partition of interest");
"partition to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosPartitionList", DoVosPartitionList, 0,
+ ts = cmd_CreateSyntax("VosPartitionList", DoVosPartitionList, NULL,
"list information about all partitions at a server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server housing partitions of interest");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosServerSync", DoVosServerSync, 0,
+ ts = cmd_CreateSyntax("VosServerSync", DoVosServerSync, NULL,
"sync server with vldb");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to sync");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL,
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosFileServerAddressChange",
- DoVosFileServerAddressChange, 0,
+ DoVosFileServerAddressChange, NULL,
"change a server's address in the vldb");
cmd_AddParm(ts, "-oldaddress", CMD_SINGLE, CMD_REQUIRED,
"old address to change");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosFileServerAddressRemove",
- DoVosFileServerAddressRemove, 0,
+ DoVosFileServerAddressRemove, NULL,
"remove a server's address from the vldb");
cmd_AddParm(ts, "-address", CMD_SINGLE, CMD_REQUIRED,
"address to remove");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosFileServerList", DoVosFileServerList, 0,
+ ts = cmd_CreateSyntax("VosFileServerList", DoVosFileServerList, NULL,
"list the file servers in a cell");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosServerTransactionStatusList",
- DoVosServerTransactionStatusList, 0,
+ DoVosServerTransactionStatusList, NULL,
"list the active transactions at a server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to query");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBGet", DoVosVLDBGet, 0,
+ ts = cmd_CreateSyntax("VosVLDBGet", DoVosVLDBGet, NULL,
"get a vldb entry for a volume");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED,
"volume to retrieve");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBList", DoVosVLDBList, 0,
+ ts = cmd_CreateSyntax("VosVLDBList", DoVosVLDBList, NULL,
"list a group of vldb entries");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"limit entries to a particular server");
"limit entries to a particular partition");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBEntryRemove", DoVosVLDBEntryRemove, 0,
+ ts = cmd_CreateSyntax("VosVLDBEntryRemove", DoVosVLDBEntryRemove, NULL,
"remove vldb entries");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"limit entries to a particular server");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_OPTIONAL, "volume to remove");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBUnlock", DoVosVLDBUnlock, 0,
+ ts = cmd_CreateSyntax("VosVLDBUnlock", DoVosVLDBUnlock, NULL,
"unlock a group of vldb entries");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"limit entries to a particular server");
"limit entries to a particular partition");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBEntryLock", DoVosVLDBList, 0,
+ ts = cmd_CreateSyntax("VosVLDBEntryLock", DoVosVLDBList, NULL,
"lock a single vldb entry");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to lock");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBEntryUnlock", DoVosVLDBEntryUnlock, 0,
+ ts = cmd_CreateSyntax("VosVLDBEntryUnlock", DoVosVLDBEntryUnlock, NULL,
"unlock a single vldb entry");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to unlock");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosVLDBReadOnlySiteCreate",
- DoVosVLDBReadOnlySiteCreate, 0,
+ DoVosVLDBReadOnlySiteCreate, NULL,
"create a read only site");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where read only will be created");
SetupCommonCmdArgs(ts);
ts = cmd_CreateSyntax("VosVLDBReadOnlySiteDelete",
- DoVosVLDBReadOnlySiteDelete, 0,
+ DoVosVLDBReadOnlySiteDelete, NULL,
"delete a read only site before initial replication");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"server where read only will be deleted");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVLDBSync", DoVosVLDBSync, 0,
+ ts = cmd_CreateSyntax("VosVLDBSync", DoVosVLDBSync, NULL,
"sync vldb with server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server to sync");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL,
cmd_AddParm(ts, "-force", CMD_FLAG, CMD_OPTIONAL, "force sync to occur");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeCreate", DoVosVolumeCreate, 0,
+ ts = cmd_CreateSyntax("VosVolumeCreate", DoVosVolumeCreate, NULL,
"create a read write volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where volume will be created");
"size quota of new volume in 1kb units");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeDelete", DoVosVolumeDelete, 0,
+ ts = cmd_CreateSyntax("VosVolumeDelete", DoVosVolumeDelete, NULL,
"delete a volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server where volume exists");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to delete");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeRename", DoVosVolumeRename, 0,
+ ts = cmd_CreateSyntax("VosVolumeRename", DoVosVolumeRename, NULL,
"rename a volume");
cmd_AddParm(ts, "-oldname", CMD_SINGLE, CMD_REQUIRED, "old volume name");
cmd_AddParm(ts, "-newname", CMD_SINGLE, CMD_REQUIRED, "new volume name");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeDump", DoVosVolumeDump, 0,
+ ts = cmd_CreateSyntax("VosVolumeDump", DoVosVolumeDump, NULL,
"dump a volume to a file");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"dump volume at a particular server");
"file to contain dump results");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeRestore", DoVosVolumeRestore, 0,
+ ts = cmd_CreateSyntax("VosVolumeRestore", DoVosVolumeRestore, NULL,
"restore a volume from a dumpfile");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses volume to restore");
"does a full restore of volume");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeOnline", DoVosVolumeOnline, 0,
+ ts = cmd_CreateSyntax("VosVolumeOnline", DoVosVolumeOnline, NULL,
"bring a volume online");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses volume");
cmd_AddParm(ts, "-busy", CMD_FLAG, CMD_OPTIONAL, "mark volume busy");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeOffline", DoVosVolumeOffline, 0,
+ ts = cmd_CreateSyntax("VosVolumeOffline", DoVosVolumeOffline, NULL,
"take a volume offline");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses volume");
"volume to bring offline");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeGet", DoVosVolumeGet, 0,
+ ts = cmd_CreateSyntax("VosVolumeGet", DoVosVolumeGet, NULL,
"get a volume entry");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses volume");
"volume to retrieve");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeList", DoVosVolumeList, 0,
+ ts = cmd_CreateSyntax("VosVolumeList", DoVosVolumeList, NULL,
"list a group of volumes");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"limit volumes to a particular server");
"limit volumes to a particular partition");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeMove", DoVosVolumeMove, 0,
+ ts = cmd_CreateSyntax("VosVolumeMove", DoVosVolumeMove, NULL,
"move a volume");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED, "volume to move");
cmd_AddParm(ts, "-fromserver", CMD_SINGLE, CMD_REQUIRED, "source server");
"destination partition");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeRelease", DoVosVolumeRelease, 0,
+ ts = cmd_CreateSyntax("VosVolumeRelease", DoVosVolumeRelease, NULL,
"release updates to read only");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_REQUIRED,
"volume to replicate");
"force release to occur");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeZap", DoVosVolumeZap, 0, "zap a volume");
+ ts = cmd_CreateSyntax("VosVolumeZap", DoVosVolumeZap, NULL, "zap a volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses the volume to zap");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED,
cmd_AddParm(ts, "-force", CMD_FLAG, CMD_OPTIONAL, "force zap");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosPartitionNameToId", DoVosPartitionNameToId, 0,
+ ts = cmd_CreateSyntax("VosPartitionNameToId", DoVosPartitionNameToId, NULL,
"convert a partition name to a number");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_REQUIRED,
"partition to convert");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosPartitionIdToName", DoVosPartitionIdToName, 0,
+ ts = cmd_CreateSyntax("VosPartitionIdToName", DoVosPartitionIdToName, NULL,
"convert a number to a partition");
cmd_AddParm(ts, "-id", CMD_SINGLE, CMD_REQUIRED, "number to convert");
SetupCommonCmdArgs(ts);
- ts = cmd_CreateSyntax("VosVolumeQuotaChange", DoVosVolumeQuotaChange, 0,
+ ts = cmd_CreateSyntax("VosVolumeQuotaChange", DoVosVolumeQuotaChange, NULL,
"change the quota for a partition");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED,
"server that houses the volume");
CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS}
CCRULE = ${CC} ${CFLAGS} -c $?
-VLSERVER = ../../vlserver/
-VOLSER = ../../volser/
-FSINT = ../../fsint/
+VLSERVER = ../../vlserver
+VOLSER = ../../volser
+FSINT = ../../fsint
ADMINOBJS =\
afs_vosAdmin.o \
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/vos/afs_vosAdmin.c,v 1.9.2.2 2007/07/16 00:00:38 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/vos/afs_vosAdmin.c,v 1.9.2.3 2007/10/30 15:23:57 shadow Exp $");
#include <afs/stds.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <ctype.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/vos/lockprocs.c,v 1.9 2003/07/15 23:15:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/vos/lockprocs.c,v 1.9.2.1 2007/10/30 15:23:58 shadow Exp $");
#include "lockprocs.h"
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/* Finds an index in VLDB entry that matches the volume type, server, and partition.
* If type is zero, will match first index of ANY type (RW, BK, or RO).
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/vos/vosutils.c,v 1.10.2.3 2007/07/16 00:00:38 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/vos/vosutils.c,v 1.10.2.4 2007/10/30 15:23:58 shadow Exp $");
#include "vosutils.h"
#include "vsprocs.h"
#include "lockprocs.h"
#include <afs/afs_AdminErrors.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/*
* VLDB entry conversion routines.
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/libadmin/vos/vsprocs.c,v 1.11.2.3 2007/07/18 14:24:30 shadow Exp $");
+ ("$Header: /cvs/openafs/src/libadmin/vos/vsprocs.c,v 1.11.2.4 2007/10/30 15:23:58 shadow Exp $");
#include "vsprocs.h"
#include "vosutils.h"
#include "../adminutil/afs_AdminInternal.h"
#include <afs/afs_AdminErrors.h>
#include "afs_vosAdmin.h"
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
ln -fs ${LINUX_KERNEL_PATH}/arch/um/include/sysdep
<amd64_linux24 amd64_linux26>
ln -fs ${LINUX_KERNEL_PATH}/include/asm-x86_64 asm
-<s390_linux22 s390_linux24 s390_linux26 s390x_linux26>
+<s390_linux22 s390_linux24 s390_linux26>
ln -fs ${LINUX_KERNEL_PATH}/include/asm-s390 asm
<s390x_linux22 s390x_linux24 s390x_linux26>
ln -fs ${LINUX_KERNEL_PATH}/include/asm-s390x asm
#
# $ what /opt/langtools/bin/pxdb32
# /opt/langtools/bin/pxdb32:
-# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.29.2.7 $
+# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.29.2.9 $
#
# The problem occurs when -g and -O are both used when compiling des.c.
# The simplest way to work around the problem is to leave out either -g or -O.
syscall.o: ${SYS}/syscall.s
case "$(SYS_NAME)" in \
sun4x_5* | sunx86_5*) \
- /usr/ccs/lib/cpp ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
+ $(CPP) ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
sgi_* | *_darwin_* ) \
*bsd* ) \
touch syscall.o ;; \
*) \
- /lib/cpp ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
+ $(CPP) ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
esac
rxstat.ss.o: ${TOP_OBJDIR}/src/rxstat/rxstat.ss.c
${CCRULE} ${TOP_OBJDIR}/src/rxstat/rxstat.ss.c
-rxstat.xdr.o: ${TOP_OBJDIR}/src/rxstat//rxstat.xdr.c
- ${CCRULE} ${TOP_OBJDIR}/src/rxstat//rxstat.xdr.c
+rxstat.xdr.o: ${TOP_OBJDIR}/src/rxstat/rxstat.xdr.c
+ ${CCRULE} ${TOP_OBJDIR}/src/rxstat/rxstat.xdr.c
afsint.cs.o: ${TOP_OBJDIR}/src/fsint/afsint.cs.c
${CCRULE} ${TOP_OBJDIR}/src/fsint/afsint.cs.c
# These files are for the netscape plugin
-$(WEBOBJ)/afs_atomlist.o: $(TOP_SRCDIR)/util//afs_atomlist.c
+$(WEBOBJ)/afs_atomlist.o: $(TOP_SRCDIR)/util/afs_atomlist.c
$(CRULE2)
-$(WEBOBJ)/afs_lhash.o: $(TOP_SRCDIR)/util//afs_lhash.c
+$(WEBOBJ)/afs_lhash.o: $(TOP_SRCDIR)/util/afs_lhash.c
$(CRULE2)
$(WEBOBJ)/afs_analyze.o: $(TOP_SRC_AFS)/afs_analyze.c
$(CRULE2)
$(JUAFS)/afs_atomlist.o: $(TOP_SRCDIR)/util/afs_atomlist.c
$(CRULE1)
-$(JUAFS)/afs_lhash.o: $(TOP_SRCDIR)/util//afs_lhash.c
+$(JUAFS)/afs_lhash.o: $(TOP_SRCDIR)/util/afs_lhash.c
$(CRULE1)
$(JUAFS)/afs_analyze.o: $(TOP_SRC_AFS)/afs_analyze.c
$(CRULE1)
${INSTALL} $? $@
${DEST}/bin/tokens.krb: tokens.krb
- ${INSTALL} $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DEST}/root.server/usr/afs/bin/tokens: tokens
${INSTALL} $? $@
${DEST}/root.server/usr/afs/bin/tokens.krb: tokens.krb
- ${INSTALL} $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DEST}/etc/kseal: kseal
${INSTALL} $? $@
${INSTALL} $? $@
${DESTDIR}${bindir}/tokens.krb: tokens.krb
- ${INSTALL} $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DESTDIR}${afssrvbindir}/tokens: tokens
${INSTALL} $? $@
${DESTDIR}${afssrvbindir}/tokens.krb: tokens.krb
- ${INSTALL} $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DESTDIR}${sbindir}/kseal: kseal
${INSTALL} $? $@
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/log/kseal.c,v 1.7.2.1 2005/07/11 19:46:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/log/kseal.c,v 1.7.2.2 2007/10/30 15:23:58 shadow Exp $");
#include <sys/types.h>
#include <netinet/in.h>
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/cellconfig.h>
#include <afs/afsutil.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/log/tokens.c,v 1.6.2.2 2006/03/15 18:29:03 shadow Exp $");
+ ("$Header: /cvs/openafs/src/log/tokens.c,v 1.6.2.3 2007/10/30 15:23:58 shadow Exp $");
#include <stdio.h>
#ifdef AFS_AIX32_ENV
#include <time.h> /*time(), ctime() */
#include <pwd.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#define VIRTUE
#define VICE
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/log/unlog.c,v 1.6.2.1 2005/07/11 19:46:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/log/unlog.c,v 1.6.2.4 2007/11/26 21:21:54 shadow Exp $");
#include <stdio.h>
#include <potpourri.h>
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
{
#define MAXCELLS 20 /* XXX */
struct cmd_item *itp;
sigaction(SIGSEGV, &nsa, NULL);
#endif
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"Release Kerberos authentication");
cmd_AddParm(ts, "-cell", CMD_LIST, CMD_OPTIONAL, "cell name");
*list = newCellName;
}
afsconf_Close(conf);
+ return 0;
}
/*
fprintf(stderr, "unlog: Warning - no tokens held for cell %s\n",
cellList[index]);
}
+ return 0;
}
@set -x; case "$(SYS_NAME)" in \
pmax_he1) \
$(CCOBJ) ${LWP_DBG} ${LWP_OPTMZ} -c -I${TOP_INCDIR} process.s;; \
- sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5* ) \
- /usr/ccs/lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s process.ss; \
+ sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5* | arm_linux* ) \
+ $(CPP) -P -I${TOP_INCDIR} ${srcdir}/process.s process.ss; \
${AS} process.ss -o process.o; \
$(RM) process.ss ;; \
sgi_5* ) \
sgi_61 | sgi_62 | sgi_63 ) \
$(CCOBJ) ${LWP_DBG} ${LWP_OPTMZ} -c ${XCFLAGS} ${ARCHFLAGS} -I${TOP_INCDIR} -KPIC -G0 ${srcdir}/process.s;; \
s390_*) \
- /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s390.s >process.ss; \
+ $(CPP) -P -I${TOP_INCDIR} ${srcdir}/process.s390.s >process.ss; \
${AS} -ahlns process.ss -o process.o >process.lst; \
$(RM) process.ss ;; \
s390x_*) \
- /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s390x.s >process.ss; \
+ $(CPP) -P -I${TOP_INCDIR} ${srcdir}/process.s390x.s >process.ss; \
${AS} -ahlns process.ss -o process.o >process.lst; \
$(RM) process.ss ;; \
*_darwin* ) \
${AS} process.ss -o process.o ; \
$(RM) -f process.S ;;\
ncrx86_* | sunx86_*) \
- /usr/ccs/lib/cpp -P -D__sun -D__i386 -DIGNORE_STDS_H -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \
+ $(CPP) -P -D__sun -D__i386 -DIGNORE_STDS_H -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \
${AS} -o process.o process.ss; \
$(RM) process.ss ;; \
alpha_nbsd* ) \
- /usr/bin/cpp -DASSEMBLER -P -I${TOP_INCDIR} ${srcdir}/process.s > process.ss; \
+ $(CPP) -DASSEMBLER -P -I${TOP_INCDIR} ${srcdir}/process.s > process.ss; \
${AS} -o process.o process.ss; \
$(RM) process.ss ;; \
hp* | *_linux* | *_umlinux* | sgi_64 | sgi_65 ) \
ia64_hpux11* | hp_ux11* ) \
${CC} ${CFLAGS} -c ${srcdir}/process.c;; \
i386_*) \
- /lib/cpp -P -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \
+ $(CPP) -P -I${TOP_INCDIR} -I${srcdir} ${srcdir}/process.i386.s process.ss; \
${AS} process.ss -o process.o; \
$(RM) process.ss ;; \
*) \
- /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s process.ss; \
+ $(CPP) -P -I${TOP_INCDIR} ${srcdir}/process.s process.ss; \
${AS} process.ss -o process.o; \
$(RM) process.ss ;; \
esac
#include <afsconfig.h>
#include <afs/param.h>
-RCSID("$Header: /cvs/openafs/src/lwp/iomgr.c,v 1.13.2.1 2005/02/21 01:13:50 shadow Exp $");
+RCSID("$Header: /cvs/openafs/src/lwp/iomgr.c,v 1.13.2.2 2008/03/10 22:35:35 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
#define NSIG 8*sizeof(sigset_t)
#endif
-static int SignalSignals();
+static int SignalSignals(void);
\f
/********************************\
* *
to write it */
/* software 'signals' */
#define NSOFTSIG 4
-static int (*sigProc[NSOFTSIG])();
-static char *sigRock[NSOFTSIG];
+static void *(*sigProc[NSOFTSIG])(void *);
+static void *sigRock[NSOFTSIG];
\f
static struct IoRequest *iorFreeList = 0;
#define FreeRequest(x) ((x)->result = (long) iorFreeList, iorFreeList = (x))
-static struct IoRequest *NewRequest()
+static struct IoRequest *NewRequest(void)
{
struct IoRequest *request;
static fd_set IOMGR_readfds, IOMGR_writefds, IOMGR_exceptfds;
static int IOMGR_nfds = 0;
-static int IOMGR(void *dummy)
+static void *IOMGR(void *dummy)
{
for (;;) {
int code;
}
LWP_DispatchProcess();
}
- return -1; /* keeps compilers happy. */
+ return (void *)-1; /* keeps compilers happy. */
}
\f
/************************\
* signalling routines, above). *
* *
\*****************************************************/
-static void SigHandler (signo)
- int signo;
+static void SigHandler (int signo)
{
if (badsig(signo) || (sigsHandled & mysigmask(signo)) == 0)
return; /* can't happen. */
{
bool gotone = FALSE;
register int i;
- register int (*p)();
+ register void *(*p)(void *);
afs_int32 stackSize;
anySigsDelivered = FALSE;
stackSize = (AFS_LWP_MINSTACKSIZE < lwp_MaxStackSeen? lwp_MaxStackSeen : AFS_LWP_MINSTACKSIZE);
for (i=0; i < NSOFTSIG; i++) {
PROCESS pid;
- if (p=sigProc[i]) /* This yields!!! */
+ if ((p=sigProc[i])) /* This yields!!! */
LWP_CreateProcess2(p, stackSize, LWP_NORMAL_PRIORITY,
- (void *) sigRock[i], "SignalHandler", &pid);
+ sigRock[i], "SignalHandler", &pid);
sigProc[i] = 0;
}
/* Keep IOMGR process id */
static PROCESS IOMGR_Id = NULL;
-int IOMGR_SoftSig(aproc, arock)
-int (*aproc)();
-char *arock; {
+int IOMGR_SoftSig(void *(*aproc)(void *), void *arock)
+{
register int i;
for (i=0;i<NSOFTSIG;i++) {
if (sigProc[i] == 0) {
int IOMGR_Initialize(void)
{
- extern int TM_Init();
PROCESS pid;
/* If lready initialized, just return */
"IO MANAGER", &IOMGR_Id);
}
-int IOMGR_Finalize()
+int IOMGR_Finalize(void)
{
int status;
return 0;
}
-int IOMGR_Select(fds, readfds, writefds, exceptfds, timeout)
- int fds;
- fd_set *readfds, *writefds, *exceptfds;
- struct timeval *timeout;
+int IOMGR_Select(int fds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, struct timeval *timeout)
{
register struct IoRequest *request;
int result;
#ifdef DEBUG
if (lwp_debug != 0) puts("[Polling SELECT]");
#endif /* DEBUG */
+#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_AIX32_ENV) || defined(AFS_NT40_ENV)
again:
+#endif
code = select(fds, readfds, writefds, exceptfds, timeout);
#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_AIX32_ENV)
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/lock.c,v 1.5 2003/07/15 23:15:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/lwp/lock.c,v 1.5.2.1 2008/03/10 22:35:35 shadow Exp $");
#ifdef AFS_PTHREAD_ENV
#include <afs/assert.h>
/* release a write lock and sleep on an address, atomically */
void
-LWP_WaitProcessR(addr, alock)
- register char *addr;
- register struct Lock *alock;
+LWP_WaitProcessR(register void *addr, register struct Lock *alock)
{
ReleaseReadLock(alock);
LWP_WaitProcess(addr);
/* release a write lock and sleep on an address, atomically */
void
-LWP_WaitProcessW(addr, alock)
- register char *addr;
- register struct Lock *alock;
+LWP_WaitProcessW(register void *addr, register struct Lock *alock)
{
ReleaseWriteLock(alock);
LWP_WaitProcess(addr);
/* release a write lock and sleep on an address, atomically */
void
-LWP_WaitProcessS(addr, alock)
- register char *addr;
- register struct Lock *alock;
+LWP_WaitProcessS(register void *addr, register struct Lock *alock)
{
ReleaseSharedLock(alock);
LWP_WaitProcess(addr);
extern void Afs_Lock_Obtain(struct Lock *lock, int how);
extern void Afs_Lock_ReleaseR(struct Lock *lock);
extern void Afs_Lock_ReleaseW(struct Lock *lock);
+extern void Afs_Lock_WakeupR(struct Lock *lock);
void Lock_Init(struct Lock *lock);
void Lock_Destroy(struct Lock *lock);
#include <afsconfig.h>
#include <afs/param.h>
-RCSID("$Header: /cvs/openafs/src/lwp/lwp.c,v 1.27.2.8 2007/06/06 17:23:24 shadow Exp $");
+RCSID("$Header: /cvs/openafs/src/lwp/lwp.c,v 1.27.2.13 2008/03/13 13:42:31 shadow Exp $");
#include <stdlib.h>
#include <stdio.h>
extern char *getenv();
#include <time.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#if !defined(USE_PTHREADS) && !defined(USE_SOLARIS_THREADS)
extern void *malloc(int size);
extern void *realloc(void *ptr, int size);
#endif
+#ifndef AFS_ARM_LINUX20_ENV
#if defined(AFS_OSF_ENV) || defined(AFS_S390_LINUX20_ENV)
extern int PRE_Block; /* from preempt.c */
#else
extern char PRE_Block; /* from preempt.c */
#endif
+#endif
#define ON 1
#define OFF 0
} while (0)
#endif
\f
-static int Dispatcher();
-static int Create_Process_Part2();
-static int Exit_LWP();
-static afs_int32 Initialize_Stack();
-static int Stack_Used();
-char (*RC_to_ASCII());
-
-static void Abort_LWP();
-static void Overflow_Complain();
-static void Initialize_PCB();
-static void Dispose_of_Dead_PCB();
-static void Free_PCB();
-static int Internal_Signal();
-static purge_dead_pcbs();
+static void Dispatcher(void);
+static void Create_Process_Part2(void);
+static void Exit_LWP(void);
+static afs_int32 Initialize_Stack(char *stackptr, int stacksize);
+static int Stack_Used(register char *stackptr, int stacksize);
+
+static void Abort_LWP(char *msg);
+static void Overflow_Complain(void);
+static void Initialize_PCB(PROCESS temp, int priority, char *stack,
+ int stacksize, void *(*ep)(void *), void *parm,
+ char *name);
+static void Dispose_of_Dead_PCB(PROCESS cur);
+static void Free_PCB(PROCESS pid);
+static int Internal_Signal(void *event);
+static int purge_dead_pcbs(void);
+static int LWP_MwaitProcess(int wcount, void *evlist[]);
+
#define MAX_PRIORITIES (LWP_MAX_PRIORITY+1)
PROCESS head;
int count;
} runnable[MAX_PRIORITIES], blocked, qwaiting;
-/* Invariant for runnable queues: The head of each queue points to the currently running process if it is in that queue, or it points to the next process in that queue that should run. */
+/* Invariant for runnable queues: The head of each queue points to the
+ * currently running process if it is in that queue, or it points to the
+ * next process in that queue that should run. */
/* Offset of stack field within pcb -- used by stack checking stuff */
int stack_offset;
#endif
int
-LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
+LWP_CreateProcess(void *(*ep) (void *), int stacksize, int priority, void *parm,
char *name, PROCESS * pid)
{
PROCESS temp, temp2;
Initialize_PCB(temp, priority, stackmemory, stacksize, ep, parm, name);
insert(temp, &runnable[priority]);
temp2 = lwp_cpptr;
+#ifndef AFS_ARM_LINUX20_ENV
if (PRE_Block != 0)
Abort_LWP("PRE_Block not 0");
/* Gross hack: beware! */
PRE_Block = 1;
+#endif
lwp_cpptr = temp;
#if defined(AFS_PARISC_LINUX24_ENV)
savecontext(Create_Process_Part2, &temp2->context,
#ifdef AFS_AIX32_ENV
int
-LWP_CreateProcess2(int (*ep) (), int stacksize, int priority, void *parm,
+LWP_CreateProcess2(void *(*ep) (void *), int stacksize, int priority, void *parm,
char *name, PROCESS * pid)
{
PROCESS temp, temp2;
Initialize_PCB(temp, priority, stackptr, stacksize, ep, parm, name);
insert(temp, &runnable[priority]);
temp2 = lwp_cpptr;
+#ifndef AFS_ARM_LINUX20_ENV
if (PRE_Block != 0)
Abort_LWP("PRE_Block not 0");
/* Gross hack: beware! */
PRE_Block = 1;
+#endif
lwp_cpptr = temp;
savecontext(Create_Process_Part2, &temp2->context,
stackptr + stacksize - sizeof(void *));
}
int
-LWP_INTERNALSIGNAL(char *event, int yield)
+LWP_INTERNALSIGNAL(void *event, int yield)
{ /* signal the occurence of an event */
Debug(2, ("Entered LWP_SignalProcess"));
if (lwp_init) {
}
int
-LWP_WaitProcess(char *event)
+LWP_WaitProcess(void *event)
{ /* wait on a single event */
- char *tempev[2];
+ void *tempev[2];
Debug(2, ("Entered Wait_Process"));
if (event == NULL)
}
int
-LWP_MwaitProcess(int wcount, char *evlist[])
+LWP_MwaitProcess(int wcount, void *evlist[])
{ /* wait on m of n events */
register int ecount, i;
if (ecount > lwp_cpptr->eventlistsize) {
lwp_cpptr->eventlist =
- (char **)realloc(lwp_cpptr->eventlist,
- ecount * sizeof(char *));
+ (void **)realloc(lwp_cpptr->eventlist,
+ ecount * sizeof(void *));
lwp_cpptr->eventlistsize = ecount;
}
for (i = 0; i < ecount; i++)
return;
}
-static int
+static void
Create_Process_Part2(void)
{ /* creates a context for the new process */
PROCESS temp;
savecontext(Dispatcher, &temp->context, NULL);
(*temp->ep) (temp->parm);
LWP_DestroyProcess(temp);
- return 0;
+ return;
}
static int
int LWP_TraceProcesses = 0;
-static int
+static void
Dispatcher(void)
{ /* Lightweight process dispatcher */
register int i;
printf("stackcheck = %u: stack = %u \n", lwp_cpptr->stackcheck,
*(int *)lwp_cpptr->stack);
printf("topstack = 0x%x: stackptr = 0x%x: stacksize = 0x%x\n",
- lwp_cpptr->context.topstack, lwp_cpptr->stack,
+ (unsigned int)lwp_cpptr->context.topstack,
+ (unsigned int)lwp_cpptr->stack,
lwp_cpptr->stacksize);
switch (lwp_overflowAction) {
printf("Dispatch %d [PCB at 0x%x] \"%s\"\n", ++dispatch_count,
runnable[i].head, runnable[i].head->name);
#endif
+#ifndef AFS_ARM_LINUX20_ENV
if (PRE_Block != 1)
Abort_LWP("PRE_Block not 1");
+#endif
lwp_cpptr = runnable[i].head;
returnto(&lwp_cpptr->context);
+
+ return; /* not reachable */
}
/* Complain of a stack overflow to stderr without using stdio. */
*/
}
-static int
+static void
Exit_LWP(void)
{
abort();
static void
Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
- int (*ep) (), void *parm, char *name)
+ void *(*ep) (void *), void *parm, char *name)
{
register int i = 0;
i++;
temp->name[31] = '\0';
temp->status = READY;
- temp->eventlist = (char **)malloc(EVINITSIZE * sizeof(char *));
+ temp->eventlist = (void **)malloc(EVINITSIZE * sizeof(void *));
temp->eventlistsize = EVINITSIZE;
temp->eventcnt = 0;
temp->wakevent = 0;
}
static int
-Internal_Signal(register char *event)
+Internal_Signal(register void *event)
{
int rc = LWP_ENOWAIT;
register int i;
#ifdef AFS_SUN5_ENV
int
-LWP_NoYieldSignal(char *event)
+LWP_NoYieldSignal(void *event)
{
return (LWP_INTERNALSIGNAL(event, 0));
}
int
-LWP_SignalProcess(char *event)
+LWP_SignalProcess(void *event)
{
return (LWP_INTERNALSIGNAL(event, 1));
}
typedef struct event {
struct event *next; /* next in hash chain */
- char *event; /* lwp event: an address */
+ void *event; /* lwp event: an address */
int refcount; /* Is it in use? */
pthread_cond_t cond; /* Currently associated condition variable */
int seq; /* Sequence number: this is incremented
/* Get and initialize event structure corresponding to lwp event (i.e. address) */
static event_t *
-getevent(char *event)
+getevent(void *event)
{
event_t *evp, *newp;
int hashcode;
#define relevent(evp) ((evp)->refcount--)
int
-LWP_WaitProcess(char *event)
+LWP_WaitProcess(void *event)
{ /* wait on a single event */
struct event *ev;
int seq;
}
int
-LWP_NoYieldSignal(char *event)
+LWP_NoYieldSignal(void *event)
{
struct event *ev;
debugf(("%s: no yield signal (%x)\n", lwp_process_string(), event));
}
int
-LWP_SignalProcess(char *event)
+LWP_SignalProcess(void *event)
{
struct event *ev;
debugf(("%s: signal process (%x)\n", lwp_process_string(), event));
char blockflag; /* if (blockflag), process blocked */
char eventlistsize; /* size of eventlist array */
char padding; /* force 32-bit alignment */
- char **eventlist; /* ptr to array of eventids */
+ void **eventlist; /* ptr to array of eventids */
int eventcnt; /* no. of events currently in eventlist array */
int wakevent; /* index of eventid causing wakeup */
int waitcnt; /* min number of events awaited */
char *stack; /* ptr to process stack */
int stacksize; /* size of stack */
int stackcheck; /* first word of stack for overflow checking */
- int (*ep) (); /* initial entry point */
+ void *(*ep)(void *); /* initial entry point */
char *parm; /* initial parm for process */
struct lwp_context
context; /* saved context for next dispatch */
extern int IOMGR_Cancel(PROCESS pid);
extern int IOMGR_Initialize(void);
extern void IOMGR_FreeFDSet(fd_set * fds);
-extern int IOMGR_SoftSig(int (*aproc) (), char *arock);
+extern int IOMGR_SoftSig(void *(*aproc) (void *), void *arock);
/* fasttime.c */
extern int LWP_QSignal(PROCESS pid);
#else
extern int LWP_CurrentProcess(PROCESS * pid);
-extern int LWP_INTERNALSIGNAL(char *event, int yield);
+extern int LWP_INTERNALSIGNAL(void *event, int yield);
extern int LWP_InitializeProcessSupport(int priority, PROCESS * pid);
-extern int LWP_CreateProcess(int (*ep) (), int stacksize, int priority,
+extern int LWP_CreateProcess(void *(*ep)(void *), int stacksize, int priority,
void *parm, char *name, PROCESS * pid);
extern int LWP_DestroyProcess(PROCESS pid);
-extern int LWP_WaitProcess(char *event);
+extern int LWP_DispatchProcess(void);
+extern int LWP_WaitProcess(void *event);
extern PROCESS LWP_ThreadId(void);
+extern int LWP_QWait(void);
+extern int LWP_QSignal(register PROCESS pid);
#endif
+extern afs_int32 savecontext(void (*ep)(void),
+ struct lwp_context *savearea, char *sp);
+extern void returnto(struct lwp_context *savearea);
+
#ifdef AFS_LINUX24_ENV
/* max time we are allowed to spend in a select call on Linux to avoid
lost signal issues */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/preempt.c,v 1.16.2.1 2005/07/11 18:59:55 shadow Exp $");
+ ("$Header: /cvs/openafs/src/lwp/preempt.c,v 1.16.2.2 2008/03/10 22:35:35 shadow Exp $");
#include "lwp.h"
}
int
-PRE_EndPreempt()
+PRE_EndPreempt(void)
{
return LWP_SUCCESS;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/process.c,v 1.21.2.4 2007/07/17 03:13:59 shadow Exp $");
+ ("$Header: /cvs/openafs/src/lwp/process.c,v 1.21.2.8 2008/03/13 13:42:31 shadow Exp $");
#include <stdio.h>
#include <assert.h>
#if defined(USE_UCONTEXT) && defined(HAVE_UCONTEXT_H)
afs_int32
-savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
+savecontext(void (*ep) (void), struct lwp_context *savearea, char *newsp)
{
#if defined(AFS_LINUX20_ENV)
/* getcontext does not export stack info */
}
void
-returnto(savearea)
- struct lwp_context *savearea;
+returnto(struct lwp_context *savearea)
{
PRE_Block = 0;
#endif /*SGI*/
static jmp_buf jmp_tmp;
-static char (*EP) ();
+static void *(*EP) (void);
static int rc;
static jmp_buf_type *jmpBuffer;
afs_int32
-savecontext(ep, savearea, sp)
- char (*ep) ();
- struct lwp_context *savearea;
- char *sp;
+savecontext(void (*ep)(void), struct lwp_context *savearea, char *sp)
{
int code;
return 0;
}
-afs_int32
+void
returnto(struct lwp_context * savearea)
{
#if defined(DEBUG)
#endif
PRE_Block = 0;
longjmp(savearea->setjmp_buffer, 2);
- return 0;
+ return;
}
#endif
#include <afs/param.h>
/*#endif /* AFS_DJGPP_ENV */
-#if defined(RIOS)
+#if defined(__arm32__) || defined(__arm__)
+ /* register definitions */
+ fp .req r11
+ ip .req r12
+ sp .req r13
+ lp .req r14
+ pc .req r15
+
+ /*
+ savecontext(f, area1, newsp)
+ int (*f)()#if defined(RIOS);
+ struct savearea *area1;
+ char *newsp;
+ */
+
+ /* Arguments appear as: f in r0, area1 in r1, newsp in r2 */
+
+ .text
+ .align 0
+ .globl savecontext
+ .type savecontext, #function
+savecontext:
+ @ build the frame
+ mov ip, sp
+ stmfd sp!, {fp, ip, lr, pc}
+ sub fp, ip, #4
+ @ stack r0 - r10, current fp
+ stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, fp}
+ str sp, [r1, #0]
+ @ check if newsp is zero
+ movs r2, r2
+ movne sp, r2
+ @ call function ...
+ mov pc, r0
+
+ /* should never get here ... */
+ /* bl EXT(abort) */
+
+ /*
+ returnto(area2)
+ struct savearea *area2;
+ */
+
+ /* area2 is in r0. */
+
+ .globl returnto
+ .type returnto, #function
+returnto:
+ @ restore r0-r10, fp
+ ldr r0, [r0, #0]
+ ldmfd r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, fp}
+ @ return from function call
+ ldmea fp, {fp, sp, pc}
+#endif /* __arm32__ or __arm__ */
+
+#if defined(RIOS)
/* I don't know if we have to save the TOC (R2) or not...
* Note that stack-frame is supposed to be aligned on
* a double-word boundary.
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/threadname.c,v 1.10 2003/11/29 22:08:14 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/lwp/threadname.c,v 1.10.2.1 2007/10/30 15:23:59 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
+
#if defined(AFS_PTHREAD_ENV)
#include <pthread.h>
#else /* defined(AFS_PTHREAD_ENV) */
#ifndef _TIMER_IMPL_
#define Tm_Insert(list, elem) openafs_insque(list, elem)
#define TM_Remove(list, elem) openafs_remque(elem)
-extern int TM_Rescan();
-void TM_Insert();
-extern struct TM_Elem *TM_GetExpired();
-extern struct TM_Elem *TM_GetEarliest();
+extern int TM_Rescan(struct TM_Elem *tlist);
+void TM_Insert(struct TM_Elem *tlistPtr, struct TM_Elem *elem);
+extern struct TM_Elem *TM_GetExpired(struct TM_Elem *tlist);
+extern struct TM_Elem *TM_GetEarliest(struct TM_Elem *tlist);
#endif
-extern int TM_Final();
+extern int TM_Init(register struct TM_Elem **list);
+extern int TM_Final(register struct TM_Elem **list);
#define FOR_ALL_ELTS(var, list, body)\
{\
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/lwp/waitkey.c,v 1.13 2003/11/29 22:08:14 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/lwp/waitkey.c,v 1.13.2.1 2007/10/30 15:23:59 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "lwp.h"
#define LWP_KEYSTROKE_DELAY 250 /* 250ms. Must be < 1000 */
* Shortest routine in history.
*/
+ return 0;
} /*main */
-# $Id: buildpkg.sh,v 1.3.2.1 2006/06/23 14:21:12 rees Exp $
+# $Id: buildpkg.sh,v 1.3.2.3 2008/01/03 02:30:37 rees Exp $
# This doesn't actually build a package any more
$SRC/comerr/compile_et \
$SRC/venus/fs \
$SRC/kauth/kas \
- $SRC/kauth/klog \
+ $SRC/aklog/klog \
$SRC/sys/pagsh \
$SRC/ptserver/pts \
$SRC/log/tokens \
$SRC/volser/vos \
$SRC/bozo/bos \
usr/vice/bin
-ln -s $SRC/pinstall/pinstall usr/vice/bin/install
ln -s \
$SRC/afsd/afsd \
--- /dev/null
+openafs.spec
--- /dev/null
+Beginning with the 1.4.5 release, OpenAFS's prebuilt binaries use a new
+mechanism for packaging kernel modules on Fedora Core (all versions)
+and RHEL 5 (and derivatives). This new mechanism allows the
+installation of modules for multiple kernel variants simultaneously,
+and is identical to the technique used by Fedora and Red Hat's own
+out of tree kernel modules.
+
+The difference is that instead of a single 'openafs-kernel' module,
+multiple kmod-openafs-<variant> RPMs are produced. When manually
+upgrading to OpenAFS 1.4.5, it may be necessary to remove any openafs-
+kernel modules left behind by your old installation, and to ensure
+that the appropriate kmod-openafs module is installed.
+
+If you wish to build 'kmod' modules for new kernel release, this may
+be done by rebuilding the SRPM with 'fedorakmod' defined, and the
+'kvariants' parameter set to the list of kernel variants you wish to
+build modules for (a kernel-devel package must be installed for each
+of these variants). Note that supplying '' as a variant will build
+for a normal kernel. The 'kernvers' variable can be set to specify
+what kernel release version you wish to build for.
+
+For example:
+ rpmbuild -bb --define "fedorakmod 1" \
+ --target i686 \
+ --define "build_modules 1" \
+ --define "kvariants '' PAE" \
+ openafs.spec
+
+would build a kernel module for the normal and PAE variants of the
+currently running kernel.
+
+Old-style packages may still be built in the same way as previous
+releases. However, note that you must use userland RPMs which match
+the packaging of your kernel module. Old style kernel modules will
+not work with a set of userland RPMs which expect kmod-style packages.
+++ /dev/null
-diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
---- afs-krb5.orig/src/configure.in 2005-04-14 16:06:15.597138000 -0400
-+++ afs-krb5/src/configure.in 2005-04-14 16:06:44.201789856 -0400
-@@ -143,7 +143,19 @@
- LIBS="$ac_save_LIBS"])
- if test "x$afs_cv_func_getDirPath" = "xyes"; then
- AC_MSG_RESULT([Setting compilation parameters for AFS 3.5 and later])
-- AKLOG_EXTRA_OBJ=adderrtable.o
-+ AC_MSG_CHECKING([for add_to_error_table])
-+dnl
-+dnl We may be using libcom_err from Kerberos (shared libraries), and
-+dnl already have add_to_error_table
-+dnl
-+ AC_TRY_LINK_FUNC(add_to_error_table, have_adderr=yes, have_adderr=no)
-+ if test $have_adderr != yes; then
-+ AC_MSG_RESULT([no, adding adderrtable.o])
-+ AKLOG_EXTRA_OBJ=adderrtable.o
-+ else
-+ AC_MSG_RESULT([yes])
-+ AKLOG_EXTRA_OBJ=
-+ fi
- else
- AC_MSG_RESULT([Setting compilation parameters for pre-AFS 3.5])
- AC_DEFINE(PRE_AFS35)
+++ /dev/null
---- afs-krb5/src/configure.in-orig 2003-03-16 20:13:34.000000000 -0500
-+++ afs-krb5/src/configure.in 2005-09-14 17:20:46.000000000 -0400
-@@ -179,14 +197,20 @@
- [ EXTRA_INC="$EXTRA_INC -I$with_krb5_obj/include -I$with_krb5_obj/include/krb5"
- KADM_LIBS=`echo $KADM_LIBS | sed -e "s#-ldb#$with_krb5_obj/lib/libdb.a#"`])
- dnl
--dnl Sigh, why is this so complicated? Right now, just assume that
--dnl the 524 library is always called krb524 and will be picked up by the
--dnl Kerberos link line
--dnl
--dnl AC_CHECK_LIB(krb524, krb524_convert_princs, [KRB524LIB="-lkrb524"], [
--dnl AC_MSG_ERROR([Cannot find 524 library, exiting])
--dnl ])
--KRB524LIB=-lkrb524
-+dnl The krb524 functions may be included in libkrb5 itself, or else in a
-+dnl separate library named libkrb524
-+dnl
-+ac_save_LIBS="$LIBS"
-+KRB524LIB=
-+AC_MSG_CHECKING([for krb524 library])
-+AC_CHECK_FUNC(krb524_init_ets, have_krb524=yes, have_krb524=no)
-+
-+if test "$have_krb524" = no; then
-+ LIBS="$LIBS -lkrb524"
-+ AC_CHECK_LIB(krb524, krb524_init_ets, [KRB524LIB="-lkrb524"],
-+ [AC_MSG_ERROR([Unable to find krb524 library])])
-+fi
-+LIBS="$ac_save_LIBS"
-
- dnl AC_CHECK_LIB(kdb5, krb5_db_fetch_mkey, [KD_LIBS="-lkdb5"],[
- dnl AC_MSG_WARN([Cannot find Kerberos 5 DB library, will not be able to build DB utilities])
+++ /dev/null
-diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
---- afs-krb5.orig/src/configure.in 2003-03-16 20:13:34.000000000 -0500
-+++ afs-krb5/src/configure.in 2003-07-30 11:52:55.000000000 -0400
-@@ -44,14 +44,6 @@
- if test $retval -ne 0; then
- AC_MSG_ERROR($krb5_config failed with error code of $retval)
- fi
--AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
--AC_MSG_RESULT([Adding $krb5_libs to LIBS])
--AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
--AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
--CFLAGS="$CFLAGS $krb5_cflags"
--LIBS="$LIBS $krb5_libs"
--KADM_CFLAGS="$krb5_cflags_kadm"
--KADM_LIBS="$krb5_libs_kadm"
- dnl
- dnl Check for various network libraries
- dnl
-@@ -105,6 +97,20 @@
- AC_MSG_ERROR([Unable to find res_search function])
- fi
- LIBS="$save_LIBS"
-+
-+dnl
-+dnl Don't add these to LIBS until after we've already looked for
-+dnl libsocket, etc. Otherwise ka-forwarder won't build properly
-+dnl
-+AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
-+AC_MSG_RESULT([Adding $krb5_libs to LIBS])
-+AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
-+AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
-+CFLAGS="$CFLAGS $krb5_cflags"
-+LIBS="$LIBS $krb5_libs"
-+KADM_CFLAGS="$krb5_cflags_kadm"
-+KADM_LIBS="$krb5_libs_kadm"
-+
- dnl
- dnl Optional support for AFS
- dnl
+++ /dev/null
-diff -uNr afs-krb5.orig/src/asetkey.c afs-krb5/src/asetkey.c
---- afs-krb5.orig/src/asetkey.c 2005-04-08 15:55:35.637620000 -0400
-+++ afs-krb5/src/asetkey.c 2005-04-08 15:55:57.614279120 -0400
-@@ -81,7 +81,7 @@
- exit(1);
- }
-
-- code = afsconf_AddKey(tdir, kvno, key->contents);
-+ code = afsconf_AddKey(tdir, kvno, key->contents, 1);
- if (code) {
- printf("setkey: failed to set key, code %ld.\n", code);
- exit(1);
+++ /dev/null
---- afs-krb5/src/configure.in.res_search 2005-09-30 12:53:38.000000000 -0400
-+++ afs-krb5/src/configure.in 2005-09-30 14:40:38.000000000 -0400
-@@ -89,7 +89,10 @@
- if test "$have_res_search" != yes; then
- AC_CHECK_LIB(${lib}, res_search,
- [have_res_search=yes
-- NETLIBS="$NETLIBS -l${lib}"])
-+ NETLIBS="$NETLIBS -l${lib}"],
-+ [AC_CHECK_LIB(${lib}, __res_search,
-+ [have_res_search=yes
-+ NETLIBS="$NETLIBS -l${lib}"])])
- fi
- done
- fi
+++ /dev/null
-#!/bin/bash
-
-# kmodtool - Helper script for building kernel module RPMs
-# Copyright (c) 2003-2007 Ville Skyttä <ville.skytta@iki.fi>,
-# Thorsten Leemhuis <fedora@leemhuis.info>
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-shopt -s extglob
-
-myprog="kmodtool"
-myver="0.10.13"
-knownvariants=@(BOOT|PAE?(-debug)|@(big|huge)mem|debug|enterprise|kdump|?(large)smp?(-debug)|uml|xen?([0U])?(-PAE))
-kmod_name=
-kver=
-verrel=
-variant=
-
-get_verrel ()
-{
- verrel=${1:-$(uname -r)}
- verrel=${verrel%%$knownvariants}
-}
-
-print_verrel ()
-{
- get_verrel $@
- echo "${verrel}"
-}
-
-get_variant ()
-{
- get_verrel $@
- variant=${1:-$(uname -r)}
- variant=${variant##$verrel}
- variant=${variant:-'""'}
-}
-
-print_variant ()
-{
- get_variant $@
- echo "${variant}"
-}
-
-
-get_rpmtemplate ()
-{
- local variant="${1}"
- local dashvariant="${variant:+-${variant}}"
- case "$verrel" in
- *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
- *) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
- esac
- cat <<EOF
-%package -n kmod-${kmod_name}${dashvariant}
-Summary: ${kmod_name} kernel module(s)
-Group: System Environment/Kernel
-Provides: kernel-modules = ${verrel}${variant}
-Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
-Requires: ${kdep}
-Requires: ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version}
-Requires(post): /sbin/depmod
-Requires(postun): /sbin/depmod
-BuildRequires: kernel${dashvariant}-devel-%{_target_cpu} = ${verrel}
-%description -n kmod-${kmod_name}${dashvariant}
-This package provides the ${kmod_name} kernel modules built for the Linux
-kernel ${verrel}${variant} for the %{_target_cpu} family of processors.
-%post -n kmod-${kmod_name}${dashvariant}
-/sbin/depmod -aeF /boot/System.map-${verrel}${variant} ${verrel}${variant} > /dev/null || :
-%postun -n kmod-${kmod_name}${dashvariant}
-/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || :
-%files -n kmod-${kmod_name}${dashvariant}
-%defattr(644,root,root,755)
-/lib/modules/${verrel}${variant}/extra/${kmod_name}/
-
-EOF
-}
-
-print_rpmtemplate ()
-{
- kmod_name="${1}"
- shift
- kver="${1}"
- get_verrel "${1}"
- shift
- if [ -z "${kmod_name}" ] ; then
- echo "Please provide the kmodule-name as first parameter." >&2
- exit 2
- elif [ -z "${kver}" ] ; then
- echo "Please provide the kver as second parameter." >&2
- exit 2
- elif [ -z "${verrel}" ] ; then
- echo "Couldn't find out the verrel." >&2
- exit 2
- fi
-
- for variant in "$@" ; do
- get_rpmtemplate "${variant}"
- done
-}
-
-usage ()
-{
- cat <<EOF
-You called: ${invocation}
-
-Usage: ${myprog} <command> <option>+
- Commands:
- verrel <uname>
- - Get "base" version-release.
- variant <uname>
- - Get variant from uname.
- rpmtemplate <mainpgkname> <uname> <variants>
- - Return a template for
- version
- - Output version number and exit.
-EOF
-}
-
-invocation="$(basename ${0}) $@"
-while [ "${1}" ] ; do
- case "${1}" in
- verrel)
- shift
- print_verrel $@
- exit $?
- ;;
- variant)
- shift
- print_variant $@
- exit $?
- ;;
- rpmtemplate)
- shift
- print_rpmtemplate "$@"
- exit $?
- ;;
- version)
- echo "${myprog} ${myver}"
- exit 0
- ;;
- *)
- echo "Error: Unknown option '${1}'." >&2
- usage >&2
- exit 2
- ;;
- esac
-done
-
-# Local variables:
-# mode: sh
-# sh-indentation: 2
-# indent-tabs-mode: nil
-# End:
-# ex: ts=2 sw=2 et
--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use IO::Dir;
+use IO::File;
+use File::Path;
+use File::Copy;
+use File::Temp;
+
+# Build an SRPM for OpenAFS, given a src and doc tarball, release notes,
+# and ChangeLog.
+
+my $srcball = shift;
+my $docball = shift;
+my $relnotes = shift;
+my $changelog = shift;
+my $cellservdb = shift;
+
+if (!$srcball && !$docball) {
+ printf "Usage: <version> <src.tar.gz> <doc.tar.gz> [<relnotes> [<changelog> [<cellservdb>]]]\n";
+ exit(1);
+}
+
+if (! -f $srcball) {
+ die "Unable to open $srcball\n";
+}
+
+my $tmpdir = File::Temp::tempdir(CLEANUP => 1);
+
+system("tar -C $tmpdir -xvjf $srcball \*/configure.in ".
+ "\*/src/packaging/RedHat > /dev/null")==0
+ or die "Unable to unpack src tar ball\n";
+
+my $dirh = IO::Dir->new($tmpdir);
+my $vdir;
+while (defined($vdir = $dirh->read) && $vdir=~/^\./) {};
+
+die "Unable to find unpacked source code\n" if !$vdir;
+
+my $srcdir = $tmpdir."/".$vdir;
+
+# Work out which version we're dealing with from the configure.in file
+my $version;
+my $fh = new IO::File $srcdir."/configure.in"
+ or die "Unable to find unpacked configure.in file";
+while(<$fh>) {
+ if (/AM_INIT_AUTOMAKE\(openafs,(.*)\)/) {
+ $version = $1;
+ last;
+ }
+}
+undef $fh;
+
+# Build the RPM root
+
+print "Building version $version\n";
+File::Path::mkpath([ $tmpdir."/rpmdir/SPECS",
+ $tmpdir."/rpmdir/SRPMS",
+ $tmpdir."/rpmdir/SOURCES"], 0, 0755);
+
+File::Copy::copy($srcball,
+ $tmpdir."/rpmdir/SOURCES/openafs-$version-src.tar.bz2")
+ or die "Unable to copy $srcball into position\n";
+
+File::Copy::copy($docball,
+ $tmpdir."/rpmdir/SOURCES/openafs-$version-doc.tar.bz2")
+ or die "Unable to copy $docball into position\n";
+
+# Populate it with all the stuff in the packaging directory, except the
+# specfile
+my $pkgdirh = IO::Dir->new($srcdir."/src/packaging/RedHat")
+ or die "Unable to find RedHat packaging directory\n";
+my $file;
+while (defined($file = $pkgdirh->read)) {
+ if (-f $srcdir."/src/packaging/RedHat/".$file) {
+ next if $file eq "openafs.spec.in";
+
+ print "Copying $file into place\n";
+ File::Copy::copy($srcdir."/src/packaging/RedHat/".$file,
+ $tmpdir."/rpmdir/SOURCES/".$file);
+ }
+}
+undef $dirh;
+
+# Some files need particular modes.
+chmod 0755, $tmpdir."/rpmdir/SOURCES/openafs-kernel-version.sh";
+chmod 0755, $tmpdir."/rpmdir/SOURCES/openafs-kvers-is.sh";
+
+# Create the specfile. Use sed for this, cos its easier
+system("cat ".$srcdir."/src/packaging/RedHat/openafs.spec.in | ".
+ "sed -e 's/\@VERSION\@/$version/g' ".
+ " -e 's/\%define afsvers.*/%define afsvers $version/g' ".
+ " -e 's/\%define pkgvers.*/%define pkgvers $version/g' > ".
+ $tmpdir."/rpmdir/SPECS/openafs.spec") == 0
+ or die "sed failed : $!\n";
+
+if ($cellservdb) {
+ File::Copy::copy($cellservdb,
+ $tmpdir."/rpmdir/SOURCES/$cellservdb")
+ or die "Unable to copy $cellservdb into position\n";
+} else {
+ system("cd ".$tmpdir."/rpmdir/SOURCES && wget `cat ".$srcdir."/src/packaging/RedHat/openafs.spec.in |grep dl/cellservdb |awk '{print \$2}'`")
+}
+
+if ($relnotes) {
+ File::Copy::copy($relnotes,
+ $tmpdir."/rpmdir/SOURCES/RELNOTES-$version")
+ or die "Unable to copy $relnotes into position\n";
+} else {
+ print "WARNING: No release notes provided. Using empty file\n";
+ system("touch $tmpdir/rpmdir/SOURCES/RELNOTES-$version");
+}
+
+if ($changelog) {
+ File::Copy::copy($changelog,
+ $tmpdir."/rpmdir/SOURCES/ChangeLog")
+ or die "Unable to copy $changelog into position\n";
+} else {
+ print "WARNING: No changelog provided. Using empty file\n";
+ system("touch $tmpdir/rpmdir/SOURCES/ChangeLog");
+}
+
+# Build an RPM
+system("rpmbuild -bs --define \"_topdir $tmpdir/rpmdir\" ".
+ "$tmpdir/rpmdir/SPECS/openafs.spec > /dev/null") == 0
+ or die "rpmbuild failed : $!\n";
+
+# Copy it out to somewhere useful
+File::Copy::copy("$tmpdir/rpmdir/SRPMS/openafs-$version-1.1.src.rpm",
+ "openafs-$version-1.1.src.rpm")
+ or die "Unable to copy output RPM : $!\n";
+
+print "SRPM is openafs-$version-1.1.src.rpm\n";
+
--- /dev/null
+#!/usr/bin/perl
+# mockbuild - mass RPM build driver for use with mock and many kernel-devel
+# RPMs
+# from Simon Wilkinson for OpenAFS
+# for "modern" yum, use "showdupesfromrepos=1" in all cfg files in /etc/mock
+
+use strict;
+use warnings;
+
+use Getopt::Long;
+use File::Path;
+use IO::Dir;
+
+my $suser="nsu";
+my $rootbase="/var/lib/mock/";
+my $resultbase="/tmp/result/";
+my $stashbase="/disk/scratch/repository/";
+my $mockcommand = "/usr/bin/mock";
+my $buildall = 0;
+
+my @newrpms;
+
+my %platconf = ( "fedora-5-i386" => { osver => "fc5",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'updates-released',
+ results => 'fc5/i386' },
+ "fedora-5-x86_64" => { osver => "fc5",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'updates-released',
+ results => 'fc5/x86_64' },
+ "fedora-6-i386" => { osver => "fc6",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'updates-released',
+ results => "fc6/i386" },
+ "fedora-6-x86_64" => { osver => "fc6",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'updates-released',
+ results => "fc6/x86_64" },
+ "fedora-7-i386" => { osver => "fc7",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'updates-released',
+ results => "fc7/i386" },
+ "fedora-7-x86_64" => { osver => "fc7",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'updates-released',
+ results => "fc7/x86_64" },
+ "fedora-8-i386" => { osver => "fc8",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'updates-released',
+ results => "fc8/i386" },
+ "fedora-8-x86_64" => { osver => "fc8",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'updates-released',
+ results => "fc8/x86_64" },
+ "centos-4-i386" => { osver => "el4",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'update',
+ results => 'el4/i386' },
+ "centos-4-x86_64" => { osver => "el4",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'update',
+ results => "el4/x86_64" },
+ "centos-5-i386" => { osver => "el5",
+ kmod => '1',
+ basearch => 'i386',
+ updaterepo => 'update',
+ results => "el5/i386" },
+ "centos-5-x86_64" => { osver => "el5",
+ kmod => '1',
+ basearch => 'x86_64',
+ updaterepo => 'update',
+ results => "el5/x86_64" },
+# "fedora-development-i386" => { osver => "fcd",
+# kmod => '1',
+# basearch => 'i386',
+# results => 'fedora-devel/i386'},
+# "fedora-development-x86_64" => { osver => "fcd",
+# kmod => '1',
+# basearch => 'x86_64',
+# results => 'fedora-devel/x86_64'}
+);
+
+# The following are kernels that we can't successfully build modules against
+# due to issues in the packaged kernel-devel RPM.
+
+my %badkernels = (
+ "2.6.21-2950.fc8" => { "xen" => 1} # Missing build ID
+);
+
+my @platforms = @ARGV;
+my $srpm = pop @platforms;
+
+if (!$srpm || $#platforms==-1) {
+ print "Usage: $0 <platform> [<platform> [<platform> ...] ] <srpm>\n";
+ print " Platform may be:\n";
+ foreach ("all", sort(keys(%platconf))) { print " ".$_."\n"; };
+ exit(1);
+}
+
+my $oafsversion = `rpm -q --queryformat=%{VERSION} -p $srpm` or die $!;
+chomp $oafsversion;
+my $oafsrelease = `rpm -q --queryformat=%{RELEASE} -p $srpm` or die $!;
+chomp $oafsrelease;
+$oafsrelease=~s/^[^\.]*\.(.*)$/$1/;
+
+print "Release is $oafsrelease\n";
+
+if ($platforms[0] eq "all" and $#platforms == 0) {
+ @platforms = keys(%platconf);
+}
+
+foreach my $platform (@platforms) {
+ print "*******************************************************************\n";
+ print "Building for $platform\n";
+ die "Unknown platform $platform" if !$platconf{$platform};
+ my $osver = $platconf{$platform}{'osver'};
+ my $root = $rootbase.$platform."/root";
+ my $mockresults = $rootbase.$platform."/result";
+ my $resultdir = $resultbase.$platconf{$platform}{'results'};
+ my $basearch = $platconf{$platform}{'basearch'};
+ my $rpmstashdir = $stashbase.$platconf{$platform}{'results'}."/";
+
+ my $yumcachedir;
+ if (exists($platconf{$platform}{'updaterepo'})) {
+ $yumcachedir = $rootbase."cache/".$platform."/yum_cache/".
+ $platconf{$platform}{'updaterepo'}."/packages/";
+ }
+
+ File::Path::mkpath($resultdir, 0, 0755);
+
+ if (system($mockcommand, "-r", $platform, "init") != 0) {
+ die "Initialising the root failed: $?\n";
+ }
+
+ my %modulelist;
+
+ print "-------------------------------------------------------------------\n";
+ print "Finding available kernel modules\n";
+
+ my $arbitraryversion = "";
+ my $modules=`$suser -c 'yum --installroot $root provides kernel-devel'`;
+ if ($modules eq "") {
+ $modules=`$suser -c 'yum -d 2 --installroot $root provides kernel-devel'`;
+ my $modulen;
+ my %modulel;
+ foreach $modulen (split(/\n/, $modules)) {
+ my ($pk, $colon, $comment)=split(/\s+/, $modulen);
+ if ($pk =~ /^kernel/) {
+ $modulel{$pk} = "$pk";
+ }
+ }
+ $modulen=join(" ", keys(%modulel));
+ $modules=`$suser -c 'yum --installroot $root list $modulen'`;
+ }
+ foreach my $module (split(/\n/, $modules)) {
+ my ($package, $version, $repo)=split(/\s+/, $module);
+ my ($arch) = ($package=~/\.(.*)$/);
+ my ($variant) = ($package=~/kernel-(.*)-devel/);
+ $variant = "" if !defined($variant);
+ next if ($package !~ /^kernel/);
+ next if ($arch eq "noarch");
+ next
+ if (exists($badkernels{$version}) && ($badkernels{$version}{$variant}));
+ if ($platform=~/fedora-5/) {
+ next if ($variant eq "xen0"); # Fedora 5 has some bad xen0 kernel-devels
+ next if ($variant eq "smp");
+ }
+ print "$arch : $variant : $version\n";
+ $modulelist{$arch} ={} if !$modulelist{$arch};
+ $modulelist{$arch}{$version} = {} if !$modulelist{$arch}{$version};
+ $modulelist{$arch}{$version}{$variant} = 1;
+ $arbitraryversion = $version;
+ }
+
+ if (!$arbitraryversion) {
+ die "Unable to find a valid kernel-devel package for $platform\n";
+ }
+
+ print "-------------------------------------------------------------------\n";
+ print "Building the userland RPMs\n";
+ my @rpms = ('', '-authlibs', '-authlibs-devel', '-client', '-compat',
+ '-debuginfo', '-devel', '-docs', '-kernel-source', '-kpasswd',
+ '-krb5', '-server');
+
+ my $missing = 0;
+ foreach my $rpm (@rpms) {
+ if (! -f $resultdir."/openafs".$rpm."-".$oafsversion."-".$osver.".".
+ $oafsrelease.".".$basearch.".rpm") {
+ $missing++;
+ print $resultdir."/openafs".$rpm."-".$oafsversion."-".$osver.".".
+ $oafsrelease.".".$basearch.".rpm is missing!\n"
+ }
+ }
+ if ($missing) {
+ system($mockcommand." -r ".$platform." rebuild ".
+ ' --define "fedorakmod 1" '.
+ ' --define "kernvers '.$arbitraryversion.'" '.
+ ' --define "osvers '.$osver.'" '.
+ ' --define "build_modules 0" '.
+ ' --define "build_userspace 1" '.
+ ' --define "build_authlibs 1" '.
+ $srpm) == 0
+ or die "build failed with : $!\n";
+ foreach my $rpm (@rpms) {
+ system("cp ".$mockresults."/openafs".$rpm."-".$oafsversion."-".
+ $osver.".".$oafsrelease.".".$basearch.".rpm ".
+ $resultdir) == 0
+ or die "Copy failed with : $!\n";
+ push @newrpms, $mockresults."/openafs".$rpm."-".$oafsversion."-".
+ $osver.".".$oafsrelease.".".$basearch.".rpm";
+ }
+ } else {
+ print "All userland RPMs present for $platform. Skipping build\n";
+ }
+
+ print "-------------------------------------------------------------------\n";
+ print "Building kernel modules\n";
+
+ foreach my $arch (keys(%modulelist)) {
+ foreach my $version (keys(%{$modulelist{$arch}})) {
+ my $kversion = $version;
+ $kversion=~s/-/_/g;
+ my @tobuild;
+
+ if ($buildall) {
+ @tobuild = keys(%{$modulelist{$arch}{$version}});
+ } else {
+ foreach my $variant (keys(%{$modulelist{$arch}{$version}})) {
+ my $dvariant=$variant;
+ $dvariant.="-" if ($dvariant);
+ if (!-f $resultdir."/kmod-openafs-".$dvariant.
+ $oafsversion."-".$oafsrelease.".".$kversion.".".
+ $arch.".rpm") {
+ push @tobuild, $variant;
+ print $resultdir."/kmod-openafs-".$dvariant.
+ $oafsversion."-".$oafsrelease.".".$kversion.".".
+ $arch.".rpm is missing\n";
+ }
+ }
+ }
+
+ if ($#tobuild>=0) {
+ my $variants = join(" ", map {$_ or '\\\\\"\\\\\"'} @tobuild);
+ print "Building $arch module for kernel $version with variants $variants\n";
+ system ("setarch $arch $mockcommand -r $platform rebuild ".
+ " --arch ".$arch.
+ ' --define "fedorakmod 1" '.
+ ' --define "osvers '.$osver.'" '.
+ ' --define "kernvers '.$version.'" '.
+ ' --define "kvariants '.$variants.'" '.
+ ' --define "build_modules 1" '.
+ ' --define "build_userspace 0" '.
+ $srpm) == 0
+ or die "Build failed with : $!\n";
+ foreach my $variant (@tobuild) {
+ if ($variant) {
+ $variant.="-";
+ }
+ system("cp ".$mockresults."/kmod-openafs-".$variant.$oafsversion."-".$oafsrelease.".".$kversion.".".$arch.".rpm $resultdir") == 0
+ or die "Copy failed with : $!\n";
+ push @newrpms, $mockresults."/kmod-openafs-".$variant.$oafsversion."-".$oafsrelease.".".$kversion.".".$arch.".rpm";
+ }
+ } else {
+ print "All kernel modules already built for $version on $arch\n";
+ }
+ }
+ }
+ print "-------------------------------------------------------------------\n";
+ print "Creating repository data\n";
+ system ("cd $resultdir; createrepo .") == 0
+ or die "Unable to build repository data\n";
+
+ if ($yumcachedir) {
+ print "-------------------------------------------------------------------\n";
+ print "Stashing kernel-devel RPMs\n";
+
+ my $changed;
+ my $dirh = IO::Dir->new($yumcachedir);
+ if (defined($dirh)) {
+ my $file;
+ while (defined($file = $dirh->read)) {
+ if ( $file=~/^kernel-devel/ &&
+ -f $yumcachedir.$file && ! -f $rpmstashdir.$file) {
+ print "Stashing $file for later use\n";
+ system("cp ".$yumcachedir.$file." ".$rpmstashdir.$file) == 0
+ or die "Copy failed with : $!\n";
+ $changed++;
+ }
+ }
+ }
+
+ if ($changed) {
+ print "Updating stash repodata\n";
+ system ("cd $rpmstashdir; createrepo .") == 0
+ or die "Unable to update RPM stash repository data\n";
+ }
+ }
+}
+
+print "=====================================================================\n";
+print "All builds complete\nBuilt:\n";
+print join("\n",@newrpms);
+
#
# Written by: Derek Atkins <warlord@MIT.EDU>
#
-# $Revision: 1.1.2.3 $
+# $Revision: 1.1.2.4 $
#
# Define where the Specfile is located.
elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
ostype='rh'
osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
-elif [ `echo $rhrel | grep -c 'SUSE LINUX'` = 1 ] ; then
+elif [ `echo $rhrel | grep -c 'SUSE'` = 1 ] ; then
ostype='suse'
specdir=/usr/src/packages/SPECS
osrel=`grep VERSION /etc/SuSE-release|awk '{print $3}'`
--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $specdir="/usr/src/redhat/SPECS";
+
+my $fedoraversion=`rpm -q fedora-release --queryformat %{VERSION}`;
+die "Unable to determine fedora version" if !$fedoraversion;
+
+my %list;
+foreach my $variant ('', 'PAE', 'kdump', 'xen') {
+ print "Working out variants - currently processing $variant\n";
+ my $append = "";
+ $append="-$variant" if $variant;
+ my @results=split(' ', `rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH} " kernel$append-devel`);
+ if ($?) {
+ print "RPM lookup for variant $variant failed. Skipping\n";
+ next;
+ }
+ print join(' ', @results)."\n";
+ foreach my $package (@results) {
+ print "Got $package\n";
+ $package=~/([^\-]*\-[^\-]*)\.([^\.]*)$/;
+ my ($version, $arch) = ($1,$2);
+ die "Couldn't extract version and architecture" if !$version or !$arch;
+ my @archs=map {/^.*\-([^\-]*)/;$1;} split(' ',`ls -d /usr/src/kernels/$version$append-*`);
+ foreach my $arch (@archs) {
+ print "Adding $variant, version $version for $arch\n";
+ $list{$arch} = {} if !$list{$arch};
+ $list{$arch}{$version} =[] if !$list{$arch}{$version};
+ push @{$list{$arch}{$version}}, $variant;
+ }
+ }
+}
+# Build the base package
+print "Building the base system\n";
+system("rpmbuild -ba --define \"fedorakmod 1\" --define \"osvers fc$fedoraversion\" $specdir/openafs.spec") == 0 or exit 1;
+
+print "Building kernel modules\n";
+
+foreach my $arch (keys(%list)) {
+ foreach my $version (keys(%{$list{$arch}})) {
+ my $variants = join(" ", map {$_ or "''"} @{$list{$arch}{$version}});
+ print "Building with $version for $arch with variants $variants\n";
+ system("rpmbuild -bb --define \"fedorakmod 1\" --define \"osvers fc$fedoraversion\" --target $arch --define \"build_modules 1\" --define \"kernvers $version\" --define \"kvariants $variants\" $specdir/openafs.spec") == 0 or exit 1;
+ }
+}
+
#
# chkconfig: 2345 50 50
# description: OpenAFS is a distributed filesystem.
+# Should-Start: dkms
#
-# $Revision: 1.1.2.3 $
+# $Revision: 1.1.2.5 $
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
[ -f /etc/sysconfig/openafs ] && . /etc/sysconfig/openafs
/usr/vice/etc/CellServDB
chmod 644 /usr/vice/etc/CellServDB
echo
- echo -n $"Updating SuidCells: "
- cat /usr/vice/etc/SuidCells.local /usr/vice/etc/SuidCells.dist > \
- /usr/vice/etc/SuidCells
- chmod 644 /usr/vice/etc/SuidCells
- echo
echo -n $"Starting openafs-client: "
if [ -e /var/lock/subsys/openafs-client ] ; then
echo -n $"cannot start openafs-client: already running"
--- /dev/null
+#!/bin/bash
+
+# kmodtool - Helper script for building kernel module RPMs
+# Copyright (c) 2003-2007 Ville Skyttä <ville.skytta@iki.fi>,
+# Thorsten Leemhuis <fedora@leemhuis.info>
+#
+# Modified by Simon Wilkinson for OpenAFS
+
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+shopt -s extglob
+
+myprog="kmodtool"
+myver="0.10.13"
+knownvariants=@(BOOT|PAE?(-debug)|@(big|huge)mem|debug|enterprise|kdump|?(large)smp?(-debug)|uml|xen?([0U])?(-PAE))
+kmod_name=
+kver=
+verrel=
+variant=
+
+get_verrel ()
+{
+ verrel=${1:-$(uname -r)}
+ verrel=${verrel%%$knownvariants}
+}
+
+print_verrel ()
+{
+ get_verrel $@
+ echo "${verrel}"
+}
+
+get_variant ()
+{
+ get_verrel $@
+ variant=${1:-$(uname -r)}
+ variant=${variant##$verrel}
+ variant=${variant:-'""'}
+}
+
+print_variant ()
+{
+ get_variant $@
+ echo "${variant}"
+}
+
+
+get_rpmtemplate ()
+{
+ local variant="${1}"
+ local dashvariant="${variant:+-${variant}}"
+ case "$verrel" in
+ *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
+ *) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
+ esac
+ cat <<EOF
+%package -n kmod-${kmod_name}${dashvariant}
+Summary: ${kmod_name} kernel module(s)
+Group: System Environment/Kernel
+Provides: kernel-modules = ${verrel}${variant}
+Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+Requires: ${kdep}
+Requires: ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version}
+Requires(post): /sbin/depmod
+Requires(postun): /sbin/depmod
+Release: %{pkgrel}.%(echo ${verrel} | tr - _)
+BuildRequires: kernel${dashvariant}-devel-%{_target_cpu} = ${verrel}
+%description -n kmod-${kmod_name}${dashvariant}
+This package provides the ${kmod_name} kernel modules built for the Linux
+kernel ${verrel}${variant} for the %{_target_cpu} family of processors.
+%post -n kmod-${kmod_name}${dashvariant}
+/sbin/depmod -aeF /boot/System.map-${verrel}${variant} ${verrel}${variant} > /dev/null || :
+%postun -n kmod-${kmod_name}${dashvariant}
+/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || :
+%files -n kmod-${kmod_name}${dashvariant}
+%defattr(644,root,root,755)
+/lib/modules/${verrel}${variant}/extra/${kmod_name}/
+
+EOF
+}
+
+print_rpmtemplate ()
+{
+ kmod_name="${1}"
+ shift
+ kver="${1}"
+ get_verrel "${1}"
+ shift
+ if [ -z "${kmod_name}" ] ; then
+ echo "Please provide the kmodule-name as first parameter." >&2
+ exit 2
+ elif [ -z "${kver}" ] ; then
+ echo "Please provide the kver as second parameter." >&2
+ exit 2
+ elif [ -z "${verrel}" ] ; then
+ echo "Couldn't find out the verrel." >&2
+ exit 2
+ fi
+
+ for variant in "$@" ; do
+ get_rpmtemplate "${variant}"
+ done
+}
+
+usage ()
+{
+ cat <<EOF
+You called: ${invocation}
+
+Usage: ${myprog} <command> <option>+
+ Commands:
+ verrel <uname>
+ - Get "base" version-release.
+ variant <uname>
+ - Get variant from uname.
+ rpmtemplate <mainpgkname> <uname> <variants>
+ - Return a template for
+ version
+ - Output version number and exit.
+EOF
+}
+
+invocation="$(basename ${0}) $@"
+while [ "${1}" ] ; do
+ case "${1}" in
+ verrel)
+ shift
+ print_verrel $@
+ exit $?
+ ;;
+ variant)
+ shift
+ print_variant $@
+ exit $?
+ ;;
+ rpmtemplate)
+ shift
+ print_rpmtemplate "$@"
+ exit $?
+ ;;
+ version)
+ echo "${myprog} ${myver}"
+ exit 0
+ ;;
+ *)
+ echo "Error: Unknown option '${1}'." >&2
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+
+# Local variables:
+# mode: sh
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# End:
+# ex: ts=2 sw=2 et
-# Openafs Spec $Revision: 1.1.2.6 $
+# Openafs Spec $Revision: 1.1.2.18 $
-%define afsvers 1.4.5pre1
-%define pkgvers 1.4.5pre1
+%define afsvers @VERSION@
+%define pkgvers @VERSION@
# for beta/rc releases make pkgrel 0.X.<tag>
# for real releases make pkgrel 1 (or more for extra releases)
#%define pkgrel 0.1.rc1
%define osvers 1
%endif
-%{!?fedorakmod: %define fedorakmod 0}
+%{!?fedorakmod: %define fedorakmod 1}
+%{!?build_dkmspkg: %define build_dkmspkg 1}
# Determine presence of rpmbuild command line --define arguments used for
# option specification
%define build_modules_on_cmdline %{?build_modules:1}%{!?build_modules:0}
# Determine the version of the kernel to build against
-# - automatically select the latest kernel with sources from /lib/modules
+# - automatically select running kernel if there are sources in /lib/modules
# - note that this can be overridden on the command line
#
%if !%{kernvers_on_cmdline}
%endif
%if %{fedorakmod}
-%define kmodtool bash %{_sourcedir}/kmodtool
+%define kmodtool bash %{_sourcedir}/openafs-kmodtool
%define kmod_name openafs
%define kverrel %(%{kmodtool} verrel %{?kernvers} 2>/dev/null)
%define upvar ""
-%ifarch i686
-%define paevar PAE
-%endif
-%ifarch ppc
-%define smpvar smp
-%endif
-%ifarch i686 x86_64
-%define xenvar xen
-%define kdumpvar kdump
-%endif
-%{!?kvariants: %define kvariants %{?upvar} %{?smpvar} %{?paevar} %{?xenvar} %{?kdumpvar}}
+%{!?kvariants: %define kvariants %{?upvar}}
-%define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}
+%{!?ksrcdir: %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
%else # Legacy kernel build stuff
# End legacy kernel build stuff
%endif
+%define dkms_version %{osvers}.%{pkgrel}
+
# Set 'debugspec' to 1 if you want to debug the spec file. This will
# not remove the installed tree as part of the %clean operation
%if %{?debugspec:0}%{!?debugspec:1}
# to distribute aklog and asetkey
%define krb5support %{?_without_krb5:0}%{!?_without_krb5:1}
+%if %{krb5support}
+%if %{?krb5config:0}%{!?krb5config:1}
+%define krb5config /usr/kerberos/bin/krb5-config
+%endif
+%endif
+
# Set 'bootkernelsupport' to 1 if you want to build the
# kernel module for Red Hat BOOT Kernels on x86.
%define bootkernelsupport %{?_with_bootkernel:1}%{!?_with_bootkernel:0}
License: IBM Public License
URL: http://www.openafs.org
BuildRoot: %{_tmppath}/%{name}-%{version}-root
-Packager: Derek Atkins <warlord@MIT.EDU>
+Packager: OpenAFS Gatekeepers <openafs-gatekeepers@openafs.org>
Group: Networking/Filesystems
BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel, flex, bison
-%if %{build_userspace}
-BuildRequires: autoconf
+%if %{krb5support}
+BuildRequires: krb5-devel
%endif
-ExclusiveArch: %{ix86} x86_64 ia64
+ExclusiveArch: %{ix86} x86_64 ia64 s390 s390x sparc64 ppc ppc64
# http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers}
Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog
+Source20: http://dl.central.org/dl/cellservdb/CellServDB.2007-10-25
+
Source30: openafs-kernel-version.sh
+Source996: openafs-kvers-is.sh
+Source997: openafs-buildfedora.pl
Source998: openafs-buildall.sh
-Source999: kmodtool
+Source999: openafs-kmodtool
Patch0: openafs-1.4.0-kmodule26.patch
will be installed. You probably don't
need to change this ever.
- --define "fedorakmod 1" Build 'Fedora' style kernel modules
+ --define "fedorakmod 0" Disable the building of 'Fedora' style kernel
+ modules, and use the old format.
+
+ --define "kvariants <variants>" When building Fedora style kernel modules,
+ this defines the set of kernel variants
+ to build.
+ <variants> is a space seperated list which
+ may contain one or more of
+ '' (for the generic kernel), smp, PAE, xen
+ or kdump
To a kernel module for your running kernel, just run:
rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{osvers}.%{pkgrel}.src.rpm
This package provides basic server support to host files in an AFS
Cell.
+%if %{build_dkmspkg}
+%package -n dkms-%{name}
+Summary: DKMS-ready kernel source for AFS distributed filesystem
+Group: Development/Kernel
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+%if %{fedorakmod}
+Provides: %{name}-kmod = %{PACKAGE_VERSION}
+%endif
+Requires(pre): dkms
+Requires(pre): flex
+Requires(post): dkms
+Requires: %{name}-kmod-common = %{version}
+
+%description -n dkms-%{name}
+The AFS distributed filesystem. AFS is a distributed filesystem
+allowing cross-platform sharing of files among multiple computers.
+Facilities are provided for access control, authentication, backup and
+administrative management.
+
+This package provides the source code to allow DKMS to build an
+AFS kernel module.
+%endif
+
%if %{build_authlibs}
%package authlibs
Summary: OpenAFS authentication shared libraries
Summary: OpenAFS programs to use with krb5
Requires: openafs = %{PACKAGE_VERSION}
Group: Networking/Filesystems
-BuildRequires: krb5-devel, autoconf, automake
+BuildRequires: krb5-devel
%description krb5
The AFS distributed filesystem. AFS is a distributed filesystem
# Patch openafs to build a kernel module named "openafs" instead of "libafs"
%patch0 -p1 -b .kmod26
-%if %{build_userspace}
-# Save some time -- install these if we're building userspace
-
-# Install the Krb5 Migration Kit
-tar -xzf src/packaging/RedHat/openafs-krb5-2.0.tar.gz
-
-#
-# patch afs-krb5 migration kit to work with openafs-1.3 and krb5-1.3;
-# add some features and fix bugs
-#
-
-# krb524 is no longer in a separate library as of krb5-1.3; handle this
-patch -p0 -b -z .krb524 < src/packaging/RedHat/afs-krb5-2.0-krb524.patch
-
-# make sure NETLIBS gets added to the proper programs (seems to be
-# needed only for Solaris)
-patch -p0 -b -z .libsocket < src/packaging/RedHat/afs-krb5-2.0-libsocket.patch
-
-# find an existing libcom_err and use that
-patch -p0 -b -z .com_err < src/packaging/RedHat/afs-krb5-2.0-com_err.patch
-
-# make afs-krb5 work with recent OpenAFS; includes and prototypes
-patch -p0 -b -z .openafs13 < src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch
-
-# nothing in afs-krb5 actually uses res_search
-patch -p0 -b -z .res_search < src/packaging/RedHat/afs-krb5-2.0-res_search.patch
-
-(cd afs-krb5/src && autoreconf) || exit 1
-
-%endif
-
##############################################################################
#
# building
# Configure AFS
+# If we're using Fedora kmods, work out which is the best kernel module to
+# use for the userland configuration step. If no variants have been specified,
+# then use the standard kernel. If variants are specified, use the standard kernel
+# if it's listed, otherwise pick the first listed kernel.
+ksrc=""
+%if %{fedorakmod}
+ for kvariant in %{kvariants} ; do
+ if [ -z "${kvariant}" -o -z "$ksrc" ] ; then
+ ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+ fi
+ done
+%endif
+if [ -z "$ksrc" ] ; then
+ksrc=%{ksrcdir}
+fi
+
CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
./configure --with-afs-sysname=${sysname} \
--libdir=%{_libdir} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
+ --disable-strip-binaries \
%if %{build_modules}
- --with-linux-kernel-headers=%{ksrcdir} \
+ --with-linux-kernel-headers=${ksrc} \
%endif
%if %{krb5support}
- --with-krb5-conf \
+ --with-krb5-conf=%{krb5config} \
%endif
$config_opts \
|| exit 1
%if %{fedorakmod} && %{build_modules}
for kvariant in %{kvariants} ; do
- cp -R libafs_tree _kmod_build_${kvariant}
- pushd _kmod_build_${kvariant}
- ./configure --with-afs-sysname=${sysname} \
+ if [ -n "${kvariant}" ] ; then
+ cp -R libafs_tree _kmod_build_${kvariant}
+ pushd _kmod_build_${kvariant}
+ ./configure --with-afs-sysname=${sysname} \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--with-linux-kernel-headers=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} \
%if %{krb5support}
- --with-krb5-conf \
+ --with-krb5-conf=/usr/kerberos/bin/krb5-config \
%endif
$config_opts \
|| exit 1
- popd
+ popd
+ fi
done
%endif
%if %{build_userspace}
# Build the user-space AFS stuff
make dest_nolibafs || exit 1
-
-%if %{krb5support}
-# Now build ka-forwarder
-(cd afs-krb5/src &&
- ./configure --prefix=%{_prefix} --with-krb5=%{_prefix}/kerberos \
- --libdir=%{_libdir} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --with-afs=`pwd`/../../${sysname}/dest/ && \
- make all PROGS="ka-forwarder" && \
- install -c -s ka-forwarder `pwd`/../../${sysname}/dest/etc ) \
- || exit 1
-%endif
-
%endif
%if %{build_modules}
%if %{fedorakmod}
for kvariant in %{kvariants}
do
- pushd _kmod_build_$kvariant;
- make all MPS=SP
- popd
+ if [ -n "${kvariant}" ] ; then
+ pushd _kmod_build_$kvariant;
+ make all MPS=SP
+ popd
+ else
+ make dest_only_libafs MPS=SP
+ fi
done
%else
# Populate /usr/vice/etc
uve=$RPM_BUILD_ROOT%{_prefix}/vice/etc
install -p -m 644 src/packaging/RedHat/openafs-ThisCell $uve/ThisCell
-install -p -m 644 src/afsd/CellServDB $uve/CellServDB.dist
+install -p -m 644 %{SOURCE20} $uve/CellServDB.dist
install -p -m 644 src/packaging/RedHat/openafs-cacheinfo $uve/cacheinfo
+#
+# install dkms source
+#
+install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/src
+cp -a libafs_tree $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}
+
+cat > $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{dkms_version}/dkms.conf <<EOF
+
+PACKAGE_VERSION="%{dkms_version}"
+
+# Items below here should not have to change with each driver version
+PACKAGE_NAME="%{name}"
+MAKE[0]="SMP=SP; eval \\\`grep CONFIG_SMP /boot/config-\${kernelver_array[0]}\\\`; [ -n \"\\\$CONFIG_SMP\" ] && SMP=MP; ./configure --with-linux-kernel-headers=\${kernel_source_dir}; make MPS=\\\$SMP; mv src/libafs/MODLOAD-*/openafs.ko ."
+CLEAN="make -C src/libafs clean"
+
+BUILT_MODULE_NAME[0]="\$PACKAGE_NAME"
+DEST_MODULE_LOCATION[0]="/kernel/3rdparty/\$PACKAGE_NAME/"
+
+AUTOINSTALL=yes
+
+EOF
+
#
# install kernel-source
#
# remove unused man pages
for x in afs_ftpd afs_inetd afs_login afs_rcp afs_rlogind afs_rsh \
- dkload knfs package runntp; do
+ dkload knfs package runntp symlink symlink_list symlink_make \
+ symlink_remove; do
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/${x}.1
done
>openafs-man5files
/bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
- |egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^uss' \
+ |egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^read_tape|^uss' \
>openafs-man8files
#
rm -f $RPM_BUILD_ROOT%{_libdir}/$f
done
-# Remove empty files from the krb5 migration
-for f in afs2k5db fakeka ; do
- rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
-done
-
%if !%{build_authlibs}
rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so
rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so.*
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so.*
%endif
%endif
%if %{fedorakmod}
for kvariant in %{kvariants}
do
- pushd _kmod_build_$kvariant
- srcdir=src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
- dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
+ if [ -n "$kvariant" ] ; then
+ srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
+ else
+ srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
+ fi
- mkdir -p ${dstdir}
- install -m 744 ${srcdir}/libafs-%{kverrel}${kvariant}.ko $dstdir/openafs.ko
- popd
+ dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
+ mkdir -p ${dstdir}
+ install -m 755 ${srcdir}/libafs-%{kverrel}${kvariant}.ko $dstdir/openafs.ko
done
%else
# Install the kernel modules
mkdir -p ${dstdir}
- # Mark kernel modules as executable; otherwise they won't get stripped
- # by /usr/lib/rpm/brp-strip
- install -m 744 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
+ install -m 755 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
done
%endif
%endif
chkconfig --del openafs-server
fi
+%if %{build_dkmspkg}
+%post -n dkms-%{name}
+dkms add -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+dkms build -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+dkms install -m %{name} -v %{dkms_version} --rpm_safe_upgrade
+
+%preun -n dkms-%{name}
+dkms remove -m %{namee} -v %{dkms_version} --rpm_safe_upgrade --all ||:
+%endif
%endif
%if %{build_modules}
%endif
%endif
-
##############################################################################
###
### file lists
%{_libdir}/libubik.a
%{_mandir}/man1/rxgen.*
+%if %{build_dkmspkg}
+%files -n dkms-%{name}
+%defattr(-,root,root)
+%{_prefix}/src/%{name}-%{dkms_version}
+%endif
+
%files kernel-source
%defattr(-,root,root)
%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
%defattr(-,root,root)
%{_bindir}/aklog
%{_sbindir}/asetkey
-%{_sbindir}/ka-forwarder
%{_mandir}/man1/aklog.*
%{_mandir}/man8/asetkey.*
%endif
%if %{hugemem_package}
%files kernel-hugemem
%defattr(-,root,root)
-%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/fs/openafs/openafs.*
%endif
%endif
###
##############################################################################
%changelog
+* Wed Dec 12 2007 Simon Wilkinson <simon@sxw.org.uk> 1.4.5
+- Make the RPM mockable
+
+* Tue Oct 29 2007 Simon Wilkinson <simon@sxw.org.uk> 1.4.5
+- Update to match the shipped 1.4.5 RPMS
+- Fix the kvariant stuff to only configure the 'standard' case once
+- Add openafs-kvers.sh back in
+
* Wed Oct 10 2007 Simon Wilkinson <simon@sxw.org.uk> 1.4.5pre1-1
- Use Fedora style kmods, which allows us to install multiple kernel types
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/pam/afs_pam_msg.c,v 1.6 2003/07/15 23:15:56 shadow Exp $");
+ ("$Header: /cvs/openafs/src/pam/afs_pam_msg.c,v 1.6.2.1 2007/10/30 15:23:59 shadow Exp $");
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include <security/pam_appl.h>
#include "afs_pam_msg.h"
#include <security/pam_modules.h>
RCSID
- ("$Header: /cvs/openafs/src/pam/afs_setcred.c,v 1.13.2.1 2005/05/30 03:37:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/pam/afs_setcred.c,v 1.13.2.2 2007/12/10 18:29:41 shadow Exp $");
#include <sys/param.h>
#include <afs/kautils.h>
int auth_ok = 0;
char *lh;
char *user = NULL;
- long password_expires = -1;
+ int password_expires = -1;
char *reason = NULL;
struct passwd unix_pwd, *upwd = NULL;
char upwd_buf[2048]; /* size is a guess. */
#include <afs/param.h>
#include <sys/wait.h>
#include <limits.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
+#ifdef AFS_AIX51_ENV
+#include <sys/cred.h>
+#include <sys/pag.h>
+#endif
RCSID
- ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.4 2006/10/10 03:23:39 shadow Exp $");
+ ("$Header: /cvs/openafs/src/pam/afs_util.c,v 1.12.2.6 2007/12/13 18:54:08 shadow Exp $");
#include "afs_util.h"
static afs_int32
curpag(void)
{
+#if defined(AFS_AIX51_ENV)
+ int code = getpagvalue("afs");
+ if (code < 0 && errno == EINVAL)
+ code = 0;
+ return code;
+#else
gid_t groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
+#endif
}
/* Returns the AFS pag number, if any, otherwise return -1 */
ptint.xdr.o: ptint.xdr.c ptint.h ptint.xg
ptint.cs.c: ptint.xg
- ${RXGEN} -x -C -u -o $@ ${srcdir}/ptint.xg
+ ${RXGEN} -x -C -A -u -o $@ ${srcdir}/ptint.xg
ptint.ss.c: ptint.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/ptint.xg
+ ${RXGEN} -x -S -A -o $@ ${srcdir}/ptint.xg
ptint.xdr.c: ptint.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/ptint.xg
+ ${RXGEN} -x -c -A -o $@ ${srcdir}/ptint.xg
ptint.h: ptint.xg
- ${RXGEN} -x -h -u -o $@ ${srcdir}/ptint.xg
+ ${RXGEN} -x -h -A -u -o $@ ${srcdir}/ptint.xg
ptint.cs.c: ptint.h
ptint.ss.c: ptint.h
ptint.xdr.c: ptint.h
Kptint.cs.c: ptint.xg Kptint.h
- ${RXGEN} -x -k -C -o Kptint.cs.c ${srcdir}/ptint.xg
+ ${RXGEN} -x -k -A -C -o Kptint.cs.c ${srcdir}/ptint.xg
Kptint.xdr.c: ptint.xg
- ${RXGEN} -x -k -c -o Kptint.xdr.c ${srcdir}/ptint.xg
+ ${RXGEN} -x -k -A -c -o Kptint.xdr.c ${srcdir}/ptint.xg
Kptint.h: ptint.xg
- ${RXGEN} -x -k -h -o Kptint.h ${srcdir}/ptint.xg
+ ${RXGEN} -x -k -A -h -o Kptint.h ${srcdir}/ptint.xg
display.o: display.c ${INCLS}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/db_verify.c,v 1.16.2.3 2007/08/11 23:50:02 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/db_verify.c,v 1.16.2.5 2007/10/31 04:13:43 shadow Exp $");
/*
* (3) Define a structure, idused, instead of an
#include <sys/file.h>
#endif
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <errno.h>
#include <fcntl.h>
#include <afs/cellconfig.h>
#include "AFS_component_version_number.c"
int
-WorkerBee(struct cmd_syndesc *as, char *arock)
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
char *recreateFile;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/display.c,v 1.9 2004/06/23 14:27:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/display.c,v 1.9.2.1 2007/10/30 15:24:02 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdio.h>
#include "ptserver.h"
-/* $Id: pt_util.c,v 1.9.2.3 2007/04/10 18:43:45 shadow Exp $ */
+/* $Id: pt_util.c,v 1.9.2.5 2008/03/09 01:41:27 jaltman Exp $ */
/*
*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/pt_util.c,v 1.9.2.3 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/pt_util.c,v 1.9.2.5 2008/03/09 01:41:27 jaltman Exp $");
#include <afs/cmd.h> /*Command line parsing */
#include <errno.h>
#include <ubik.h>
#include <rx/xdr.h>
#include <rx/rx.h>
+#include <afs/com_err.h>
#include "ptint.h"
#include "ptserver.h"
#include "pterror.h"
char *checkin();
char *check_core();
char *id_to_name();
-int CommandProc(struct cmd_syndesc *);
+int CommandProc(struct cmd_syndesc *, void *);
struct hash_entry {
char h_name[PR_MAXNAMELEN];
register struct cmd_syndesc *cs; /*Command line syntax descriptor */
register afs_int32 code; /*Return code */
- cs = cmd_CreateSyntax((char *)0, CommandProc, 0,
+ cs = cmd_CreateSyntax(NULL, CommandProc, NULL,
"access protection database");
cmd_AddParm(cs, "-w", CMD_FLAG, CMD_OPTIONAL,
"update prdb with contents of data file");
}
int
-CommandProc(register struct cmd_syndesc *a_as)
+CommandProc(register struct cmd_syndesc *a_as, void *arock)
{
register int i;
register long code;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ptprocs.c,v 1.21.2.8 2006/07/31 17:15:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ptprocs.c,v 1.21.2.9 2007/10/30 15:24:02 shadow Exp $");
#include <afs/stds.h>
#include <ctype.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "ptserver.h"
#include "pterror.h"
#include "ptprototypes.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/pts.c,v 1.13.2.4 2007/08/11 23:54:04 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/pts.c,v 1.13.2.7 2008/03/18 15:59:07 shadow Exp $");
#include <stdio.h>
#include <string.h>
FILE *s_file;
} *shead;
+struct authstate {
+ int sec;
+ const char *confdir;
+ char cell[MAXCELLCHARS];
+};
+
int
pts_Interactive(register struct cmd_syndesc *as)
{
+ source = stdin;
finished = 0;
return 0;
}
}
int
-GetGlobals(register struct cmd_syndesc *as)
+GetGlobals(struct cmd_syndesc *as, void *arock)
{
- register afs_int32 code;
- char *cell;
- afs_int32 sec = 1;
+ struct authstate *state = (struct authstate *) arock;
+ afs_int32 code;
+ char *cell = NULL;
+ afs_int32 sec;
+ int changed = 0;
+ const char* confdir;
whoami = as->a0name;
if (!strcmp(as->name, "help"))
return 0;
- if (as->parms[16].items)
+
+ if (*state->cell) {
+ cell = state->cell;
+ }
+ sec = state->sec;
+
+ if (state->confdir == NULL) {
+ changed = 1;
+ }
+
+ if (as->parms[16].items) {
+ changed = 1;
cell = as->parms[16].items->data;
- else
- cell = 0;
- if (as->parms[17].items)
+ }
+ if (as->parms[17].items) { /* -noauth */
+ changed = 1;
sec = 0;
-
- if (as->parms[18].items) { /* testing? */
- code = pr_Initialize(sec, AFSDIR_SERVER_ETC_DIRPATH, cell);
+ }
+ if (as->parms[20].items) { /* -localauth */
+ changed = 1;
+ sec = 2;
+ }
+ if (as->parms[21].items) { /* -auth */
+ changed = 1;
+ sec = 1;
+ }
+ if (as->parms[18].items || as->parms[20].items) { /* -test, -localauth */
+ changed = 1;
+ confdir = AFSDIR_SERVER_ETC_DIRPATH;
+ } else {
+ if (sec == 2)
+ confdir = AFSDIR_SERVER_ETC_DIRPATH;
+ else
+ confdir = AFSDIR_CLIENT_ETC_DIRPATH;
+ }
+ if (changed) {
+ CleanUp(as, arock);
+ code = pr_Initialize(sec, confdir, cell);
} else {
- code = pr_Initialize(sec, AFSDIR_CLIENT_ETC_DIRPATH, cell);
+ code = 0;
}
if (code) {
afs_com_err(whoami, code, "while initializing");
return code;
}
+ state->sec = sec;
+ state->confdir = confdir;
+ if (cell && cell != state->cell)
+ strncpy(state->cell, cell, MAXCELLCHARS-1);
+
+ force = 0;
if (as->parms[19].items)
force = 1;
+
return code;
}
int
-CleanUp(register struct cmd_syndesc *as)
+CleanUp(register struct cmd_syndesc *as, void *arock)
{
if (as && !strcmp(as->name, "help"))
return 0;
pr_ListEntries(flag, startindex, &nentries, &entriesp,
&nextstartindex);
if (code) {
- afs_com_err(whoami, code, "; unable to list entries\n");
+ afs_com_err(whoami, code, "; unable to list entries");
if (entriesp)
free(entriesp);
break;
cmd_AddParm(ts, "-test", CMD_FLAG, CMD_OPTIONAL | CMD_HIDE, test_help);
cmd_AddParm(ts, "-force", CMD_FLAG, CMD_OPTIONAL,
"Continue oper despite reasonable errors");
+ cmd_AddParm(ts, "-localauth", CMD_FLAG, CMD_OPTIONAL,
+ "use local authentication");
+ cmd_AddParm(ts, "-auth", CMD_FLAG, CMD_OPTIONAL,
+ "use user's authentication (default)");
}
/*
int parsec;
char *parsev[CMD_MAXPARMS];
char *savec;
+ struct authstate state;
#ifdef WIN32
WSADATA WSAjunk;
sigaction(SIGSEGV, &nsa, NULL);
#endif
- ts = cmd_CreateSyntax("creategroup", CreateGroup, 0,
+ memset(&state, 0, sizeof(state));
+ state.sec = 1; /* default is auth */
+
+ ts = cmd_CreateSyntax("creategroup", CreateGroup, NULL,
"create a new group");
cmd_AddParm(ts, "-name", CMD_LIST, 0, "group name");
cmd_AddParm(ts, "-owner", CMD_SINGLE, CMD_OPTIONAL, "owner of the group");
add_std_args(ts);
cmd_CreateAlias(ts, "cg");
- ts = cmd_CreateSyntax("createuser", CreateUser, 0, "create a new user");
+ ts = cmd_CreateSyntax("createuser", CreateUser, NULL, "create a new user");
cmd_AddParm(ts, "-name", CMD_LIST, 0, "user name");
cmd_AddParm(ts, "-id", CMD_LIST, CMD_OPTIONAL, "user id");
add_std_args(ts);
cmd_CreateAlias(ts, "cu");
- ts = cmd_CreateSyntax("adduser", AddToGroup, 0, "add a user to a group");
+ ts = cmd_CreateSyntax("adduser", AddToGroup, NULL, "add a user to a group");
cmd_AddParm(ts, "-user", CMD_LIST, 0, "user name");
cmd_AddParm(ts, "-group", CMD_LIST, 0, "group name");
add_std_args(ts);
- ts = cmd_CreateSyntax("removeuser", RemoveFromGroup, 0,
+ ts = cmd_CreateSyntax("removeuser", RemoveFromGroup, NULL,
"remove a user from a group");
cmd_AddParm(ts, "-user", CMD_LIST, 0, "user name");
cmd_AddParm(ts, "-group", CMD_LIST, 0, "group name");
add_std_args(ts);
- ts = cmd_CreateSyntax("membership", ListMembership, 0,
+ ts = cmd_CreateSyntax("membership", ListMembership, NULL,
"list membership of a user or group");
cmd_AddParm(ts, "-nameorid", CMD_LIST, 0, "user or group name or id");
add_std_args(ts);
cmd_CreateAlias(ts, "groups");
- ts = cmd_CreateSyntax("delete", Delete, 0,
+ ts = cmd_CreateSyntax("delete", Delete, NULL,
"delete a user or group from database");
cmd_AddParm(ts, "-nameorid", CMD_LIST, 0, "user or group name or id");
add_std_args(ts);
- ts = cmd_CreateSyntax("examine", CheckEntry, 0, "examine an entry");
+ ts = cmd_CreateSyntax("examine", CheckEntry, NULL, "examine an entry");
cmd_AddParm(ts, "-nameorid", CMD_LIST, 0, "user or group name or id");
add_std_args(ts);
cmd_CreateAlias(ts, "check");
- ts = cmd_CreateSyntax("chown", ChownGroup, 0,
+ ts = cmd_CreateSyntax("chown", ChownGroup, NULL,
"change ownership of a group");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "group name");
cmd_AddParm(ts, "-owner", CMD_SINGLE, 0, "new owner");
add_std_args(ts);
- ts = cmd_CreateSyntax("rename", ChangeName, 0, "rename user or group");
+ ts = cmd_CreateSyntax("rename", ChangeName, NULL, "rename user or group");
cmd_AddParm(ts, "-oldname", CMD_SINGLE, 0, "old name");
cmd_AddParm(ts, "-newname", CMD_SINGLE, 0, "new name");
add_std_args(ts);
cmd_CreateAlias(ts, "chname");
- ts = cmd_CreateSyntax("listmax", ListMax, 0, "list max id");
+ ts = cmd_CreateSyntax("listmax", ListMax, NULL, "list max id");
add_std_args(ts);
- ts = cmd_CreateSyntax("setmax", SetMax, 0, "set max id");
+ ts = cmd_CreateSyntax("setmax", SetMax, NULL, "set max id");
cmd_AddParm(ts, "-group", CMD_SINGLE, CMD_OPTIONAL, "group max");
cmd_AddParm(ts, "-user", CMD_SINGLE, CMD_OPTIONAL, "user max");
add_std_args(ts);
- ts = cmd_CreateSyntax("setfields", SetFields, 0,
+ ts = cmd_CreateSyntax("setfields", SetFields, NULL,
"set fields for an entry");
cmd_AddParm(ts, "-nameorid", CMD_LIST, 0, "user or group name or id");
cmd_AddParm(ts, "-access", CMD_SINGLE, CMD_OPTIONAL, "set privacy flags");
#endif
add_std_args(ts);
- ts = cmd_CreateSyntax("listowned", ListOwned, 0,
+ ts = cmd_CreateSyntax("listowned", ListOwned, NULL,
"list groups owned by an entry or zero id gets orphaned groups");
cmd_AddParm(ts, "-nameorid", CMD_LIST, 0, "user or group name or id");
add_std_args(ts);
- ts = cmd_CreateSyntax("listentries", ListEntries, 0,
+ ts = cmd_CreateSyntax("listentries", ListEntries, NULL,
"list users/groups in the protection database");
cmd_AddParm(ts, "-users", CMD_FLAG, CMD_OPTIONAL, "list user entries");
cmd_AddParm(ts, "-groups", CMD_FLAG, CMD_OPTIONAL, "list group entries");
add_std_args(ts);
- ts = cmd_CreateSyntax("interactive", pts_Interactive, 0,
+ ts = cmd_CreateSyntax("interactive", pts_Interactive, NULL,
"enter interactive mode");
add_std_args(ts);
cmd_CreateAlias(ts, "in");
- ts = cmd_CreateSyntax("quit", pts_Quit, 0, "exit program");
+ ts = cmd_CreateSyntax("quit", pts_Quit, NULL, "exit program");
add_std_args(ts);
- ts = cmd_CreateSyntax("source", pts_Source, 0, "read commands from file");
+ ts = cmd_CreateSyntax("source", pts_Source, NULL, "read commands from file");
cmd_AddParm(ts, "-file", CMD_SINGLE, 0, "filename");
add_std_args(ts);
- ts = cmd_CreateSyntax("sleep", pts_Sleep, 0, "pause for a bit");
+ ts = cmd_CreateSyntax("sleep", pts_Sleep, NULL, "pause for a bit");
cmd_AddParm(ts, "-delay", CMD_SINGLE, 0, "seconds");
add_std_args(ts);
- cmd_SetBeforeProc(GetGlobals, 0);
+ cmd_SetBeforeProc(GetGlobals, &state);
finished = 1;
+ source = NULL;
if (code = cmd_Dispatch(argc, argv)) {
- CleanUp(0);
+ CleanUp(NULL, NULL);
exit(1);
}
- source = stdin;
- while (!finished) {
+ while (source && !finished) {
if (isatty(fileno(source)))
fprintf(stderr, "pts> ");
if (!fgets(line, sizeof line, source)) {
parsev[0] = savec;
cmd_FreeArgv(parsev);
}
- CleanUp(0);
+ CleanUp(NULL, NULL);
exit(0);
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ptserver.c,v 1.21.2.8 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ptserver.c,v 1.21.2.11 2008/02/04 03:53:58 jaltman Exp $");
#include <afs/stds.h>
#ifdef AFS_AIX32_ENV
#include <netdb.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <rx/rx_globals.h>
int restricted = 0;
int rxMaxMTU = -1;
int rxBind = 0;
+int rxkadDisableDotCheck = 0;
#define ADDRSPERSITE 16 /* Same global is in rx/rx_user.c */
afs_uint32 SHostAddrs[ADDRSPERSITE];
else if (strncmp(arg, "-rxbind", alen) == 0) {
rxBind = 1;
}
+ else if (strncmp(arg, "-allow-dotted-principals", alen) == 0) {
+ rxkadDisableDotCheck = 1;
+ }
else if (strncmp(arg, "-enable_peer_stats", alen) == 0) {
rx_enablePeerRPCStats();
} else if (strncmp(arg, "-enable_process_stats", alen) == 0) {
rxMaxMTU = atoi(argv[++a]);
if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
(rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d% invalid; must be between %d-%d\n",
+ printf("rxMaxMTU %d invalid; must be between %d-%d\n",
rxMaxMTU, RX_MIN_PACKET_SIZE,
RX_MAX_PACKET_DATA_SIZE);
PT_EXIT(1);
"[-p <number of processes>] [-rebuild] "
"[-groupdepth <depth>] "
"[-restricted] [-rxmaxmtu <bytes>] [-rxbind] "
+ "[-allow-dotted-principals] "
"[-enable_peer_stats] [-enable_process_stats] "
"[-default_access default_user_access default_group_access] "
"[-help]\n");
printf("Usage: ptserver [-database <db path>] "
"[-auditlog <log path>] "
"[-p <number of processes>] [-rebuild] [-rxbind] "
+ "[-allow-dotted-principals] "
"[-default_access default_user_access default_group_access] "
"[-restricted] [-rxmaxmtu <bytes>] [-rxbind] "
"[-groupdepth <depth>] " "[-help]\n");
"[-enable_peer_stats] [-enable_process_stats] "
"[-default_access default_user_access default_group_access] "
"[-restricted] [-rxmaxmtu <bytes>] [-rxbind] "
+ "[-allow-dotted-principals] "
"[-help]\n");
#else /* AFS_NT40_ENV */
printf("Usage: ptserver [-database <db path>] "
"[-auditlog <log path>] "
"[-default_access default_user_access default_group_access] "
"[-restricted] [-rxmaxmtu <bytes>] [-rxbind] "
+ "[-allow-dotted-principals] "
"[-p <number of processes>] [-rebuild] " "[-help]\n");
#endif
#endif
}
rx_SetMinProcs(tservice, 2);
rx_SetMaxProcs(tservice, lwps);
+ if (rxkadDisableDotCheck) {
+ rx_SetSecurityConfiguration(tservice, RXS_CONFIG_FLAGS,
+ (void *)RXS_CONFIG_FLAGS_DISABLE_DOTCHECK,
+ NULL);
+ }
tservice =
rx_NewServiceHost(host, 0, RX_STATS_SERVICE_ID, "rpcstats", sc, 3,
#endif
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ptuser.c,v 1.16.2.15 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ptuser.c,v 1.16.2.17 2008/02/04 17:53:56 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#include <netinet/in.h>
#endif
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rx.h>
#include <rx/xdr.h>
#include <rx/rxkad.h>
if (!tdir) {
if (confDir && strcmp(confDir, ""))
fprintf(stderr,
- "libprot: Could not open configuration directory: %s.\n",
- confDir);
+ "%s: Could not open configuration directory: %s.\n",
+ whoami, confDir);
else
fprintf(stderr,
- "libprot: No configuration directory specified.\n");
+ "%s: No configuration directory specified.\n",
+ whoami);
return -1;
}
gottdir = 1;
/* Most callers use secLevel==1, however, the fileserver uses secLevel==2
* to force use of the KeyFile. secLevel == 0 implies -noauth was
* specified. */
- if ((secLevel == 2) && (afsconf_GetLatestKey(tdir, 0, 0) == 0)) {
- /* If secLevel is two assume we're on a file server and use
- * ClientAuthSecure if possible. */
- code = afsconf_ClientAuthSecure(tdir, &sc[2], &scIndex);
- if (code)
- fprintf(stderr,
- "libprot: clientauthsecure returns %d %s"
- " (so trying noauth)\n", code, afs_error_message(code));
- if (code)
- scIndex = 0; /* use noauth */
+ if (secLevel == 2) {
+ code = afsconf_GetLatestKey(tdir, 0, 0);
+ if (code) {
+ afs_com_err(whoami, code,
+ "(getting key from local KeyFile)\n");
+ scIndex = 0; /* use noauth */
+ } else {
+ /* If secLevel is two assume we're on a file server and use
+ * ClientAuthSecure if possible. */
+ code = afsconf_ClientAuthSecure(tdir, &sc[2], &scIndex);
+ if (code) {
+ afs_com_err(whoami, code,
+ "(calling client secure)\n");
+ scIndex = 0; /* use noauth */
+ }
+ }
if (scIndex != 2)
/* if there was a problem, an unauthenticated conn is returned */
sc[scIndex] = sc[2];
sname.instance[0] = 0;
strcpy(sname.name, "afs");
code = ktc_GetToken(&sname, &ttoken, sizeof(ttoken), NULL);
- if (code)
+ if (code) {
+ afs_com_err(whoami, code, "(getting token)");
scIndex = 0;
- else {
+ } else {
if (ttoken.kvno >= 0 && ttoken.kvno <= 256)
/* this is a kerberos ticket, set scIndex accordingly */
scIndex = 2;
else {
fprintf(stderr,
- "libprot: funny kvno (%d) in ticket, proceeding\n",
- ttoken.kvno);
+ "%s: funny kvno (%d) in ticket, proceeding\n",
+ whoami, ttoken.kvno);
scIndex = 2;
}
sc[2] =
if ((scIndex == 0) && (sc[0] == 0))
sc[0] = rxnull_NewClientSecurityObject();
if ((scIndex == 0) && (secLevel != 0))
- afs_com_err(whoami, code,
- "Could not get afs tokens, running unauthenticated.");
+ fprintf(stderr,
+ "%s: Could not get afs tokens, running unauthenticated\n",
+ whoami);
memset(serverconns, 0, sizeof(serverconns)); /* terminate list!!! */
for (i = 0; i < info.numServers; i++)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ptutils.c,v 1.18.2.4 2007/08/11 23:50:02 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ptutils.c,v 1.18.2.5 2007/10/30 15:24:03 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <lock.h>
#include <ubik.h>
#include <rx/xdr.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/readgroup.c,v 1.10.2.1 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/readgroup.c,v 1.10.2.3 2007/11/26 21:21:54 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <WINNT/afsevent.h>
#endif
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rx.h>
#include <rx/xdr.h>
#include <afs/cellconfig.h>
}
}
}
+ return 0;
}
void
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/readpwd.c,v 1.9.2.1 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/readpwd.c,v 1.9.2.3 2007/11/26 21:21:54 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <WINNT/afsevent.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rx.h>
#include <rx/xdr.h>
#include <afs/cellconfig.h>
fprintf(stderr, "%s (%d).\n", pr_ErrorMsg(code), code);
}
}
+ return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/testpt.c,v 1.14.2.2 2007/08/11 23:50:02 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/testpt.c,v 1.14.2.4 2007/10/31 04:13:43 shadow Exp $");
#include <ctype.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
static char lcell[MAXCELLCHARS];
int
-ListUsedIds(struct cmd_syndesc *as, char *arock)
+ListUsedIds(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
namelist lnames;
}
int
-TestManyMembers(struct cmd_syndesc *as, char *arock)
+TestManyMembers(struct cmd_syndesc *as, void *arock)
{
char *filled; /* users filled up */
char *cleaned; /* users cleaned up */
*/
int
-TestPrServ(struct cmd_syndesc *as, char *arock)
+TestPrServ(struct cmd_syndesc *as, void *arock)
{
afs_int32 id;
char name[PR_MAXNAMELEN + 1];
static char tmp_noauth_file[128] = "";
static int
-MyAfterProc(struct cmd_syndesc *as, char *arock)
+MyAfterProc(struct cmd_syndesc *as, void *arock)
{
if (strlen(tmp_conf_file))
unlink(tmp_conf_file);
}
static int
-MyBeforeProc(struct cmd_syndesc *as, char *arock)
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
int i;
cmd_SetBeforeProc(MyBeforeProc, NULL);
cmd_SetAfterProc(MyAfterProc, NULL);
- ts = cmd_CreateSyntax("usedIds", ListUsedIds, 0,
+ ts = cmd_CreateSyntax("usedIds", ListUsedIds, NULL,
"Find used (or unused) user (or group) ids");
cmd_AddParm(ts, "-startId", CMD_SINGLE, CMD_OPTIONAL,
"id to start checking");
cmd_AddParm(ts, "-unused", CMD_FLAG, CMD_OPTIONAL, "print unused ids");
add_std_args(ts);
- ts = cmd_CreateSyntax("initcmd", TestPrServ, 0, "test the prserver");
+ ts = cmd_CreateSyntax("initcmd", TestPrServ, NULL, "test the prserver");
add_std_args(ts);
- ts = cmd_CreateSyntax("testmanymembers", TestManyMembers, 0,
+ ts = cmd_CreateSyntax("testmanymembers", TestManyMembers, NULL,
"test creating users and groups w/ many members");
cmd_AddParm(ts, "-number", CMD_SINGLE, 0,
"number of users/groups to create");
-/* $Id: ubik.c,v 1.7.2.1 2006/03/09 06:41:54 shadow Exp $ */
+/* $Id: ubik.c,v 1.7.2.2 2007/10/30 15:24:03 shadow Exp $ */
#include <afsconfig.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/ubik.c,v 1.7.2.1 2006/03/09 06:41:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/ubik.c,v 1.7.2.2 2007/10/30 15:24:03 shadow Exp $");
#include <sys/types.h>
#include <netinet/in.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <lock.h>
#define UBIK_INTERNALS
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ptserver/utils.c,v 1.15 2004/06/23 14:27:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ptserver/utils.c,v 1.15.2.2 2008/02/04 17:53:56 shadow Exp $");
#include <sys/types.h>
#include <lock.h>
#include <netinet/in.h>
#include <netdb.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "ptserver.h"
#include "pterror.h"
return 1;
if (gid == AUTHUSERID && aid != ANONYMOUSID)
return 1;
+ /* check -localauth case */
+ if (gid == SYSADMINID && aid == SYSADMINID)
+ return 1;
if ((gid == 0) || (aid == 0))
return 0;
#if defined(SUPERGROUPS)
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.23.2.14 2007/06/12 05:47:48 rra Exp $");
+ ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.23.2.15 2008/01/30 17:26:24 shadow Exp $");
#include <linux/version.h>
#ifdef AFS_LINUX22_ENV
{
struct task_struct *listener;
extern int rxk_ListenerPid;
+ extern struct task_struct *rxk_ListenerTask;
- while (rxk_ListenerPid) {
-#ifdef EXPORTED_TASKLIST_LOCK
- if (&tasklist_lock)
- read_lock(&tasklist_lock);
-#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
-#ifdef EXPORTED_TASKLIST_LOCK
- else
-#endif
- rcu_read_lock();
-#endif
- listener = find_task_by_pid(rxk_ListenerPid);
- if (listener) {
- flush_signals(listener);
- force_sig(SIGKILL, listener);
+ while (rxk_ListenerTask) {
+ if (rxk_ListenerTask) {
+ flush_signals(rxk_ListenerTask);
+ force_sig(SIGKILL, rxk_ListenerTask);
}
-#ifdef EXPORTED_TASKLIST_LOCK
- if (&tasklist_lock)
- read_unlock(&tasklist_lock);
-#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
-#ifdef EXPORTED_TASKLIST_LOCK
- else
-#endif
- rcu_read_unlock();
-#endif
- if (!listener)
+ if (!rxk_ListenerTask)
break;
- afs_osi_Sleep(&rxk_ListenerPid);
+ afs_osi_Sleep(&rxk_ListenerTask);
}
sock_release(rx_socket);
rx_socket = NULL;
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/SOLARIS/rx_knet.c,v 1.19.2.2 2007/10/05 02:54:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/SOLARIS/rx_knet.c,v 1.19.2.4 2008/03/17 15:28:56 shadow Exp $");
#ifdef AFS_SUN5_ENV
#include "rx/rx_kcommon.h"
/* Was sockfs_sounbind(so, 0); sockfs_sockfree(so); That's wrong */
vp = SOTOV(so);
+ #ifdef AFS_SUN511_ENV
+ VOP_CLOSE(vp, FREAD|FWRITE, 1, (offset_t)0, CRED(), NULL);
+ #else
VOP_CLOSE(vp, FREAD|FWRITE, 1, (offset_t)0, CRED());
+ #endif
VN_RELE(vp);
return 0;
uint_t mtu;
uint64_t flags;
+ if (afs_termState == AFSOP_STOP_NETIF) {
+ afs_warn("NetIfPoller... ");
+ rw_destroy(&afsifinfo_lock);
+ ddi_taskq_destroy(afs_taskq);
+ afs_termState = AFSOP_STOP_COMPLETE;
+ osi_rxWakeup(&afs_termState);
+ return;
+ }
/* Get our permissions */
cr = CRED();
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/UKERNEL/rx_knet.c,v 1.10.2.3 2006/01/26 20:55:38 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/UKERNEL/rx_knet.c,v 1.10.2.4 2008/03/10 22:35:36 shadow Exp $");
#include "rx/rx_kcommon.h"
/* This is the server process request loop. The server process loop
* becomes a listener thread when rxi_ServerProc returns, and stays
* listener thread until rxi_ListenerProc returns. */
-void
-rx_ServerProc(void)
+void *
+rx_ServerProc(void *unused)
{
osi_socket sock;
int threadID;
#endif
RCSID
- ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58.2.39 2007/05/16 20:46:47 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58.2.45 2008/03/17 17:57:41 shadow Exp $");
#ifdef KERNEL
#include "afs/sysincludes.h"
# include "rxgen_consts.h"
#else /* KERNEL */
# include <sys/types.h>
+# include <string.h>
# include <errno.h>
#ifdef AFS_NT40_ENV
# include <stdlib.h>
# include <netinet/in.h>
# include <sys/time.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
# include "rx.h"
# include "rx_user.h"
# include "rx_clock.h"
(*registerProgram) (pid, name);
#endif /* KERNEL */
#endif /* AFS_NT40_ENV */
- rx_ServerProc(); /* Never returns */
+ rx_ServerProc(NULL); /* Never returns */
}
#ifdef RX_ENABLE_TSFPQ
/* no use leaving packets around in this thread's local queue if
conn->peer = rxi_FindPeer(shost, sport, 0, 1);
conn->serviceId = sservice;
conn->securityObject = securityObject;
- /* This doesn't work in all compilers with void (they're buggy), so fake it
- * with VOID */
- conn->securityData = (VOID *) 0;
+ conn->securityData = (void *) 0;
conn->securityIndex = serviceSecurityIndex;
rx_SetConnDeadTime(conn, rx_connDeadTime);
conn->ackRate = RX_FAST_ACK_RATE;
return 0;
}
+/* Set configuration options for all of a service's security objects */
+
+afs_int32
+rx_SetSecurityConfiguration(struct rx_service *service,
+ rx_securityConfigVariables type,
+ void *value)
+{
+ int i;
+ for (i = 0; i<service->nSecurityObjects; i++) {
+ if (service->securityObjects[i]) {
+ RXS_SetConfiguration(service->securityObjects[i], NULL, type,
+ value, NULL);
+ }
+ }
+ return 0;
+}
+
struct rx_service *
rx_NewService(u_short port, u_short serviceId, char *serviceName,
struct rx_securityClass **securityObjects, int nSecurityObjects,
void
rx_SetArrivalProc(register struct rx_call *call,
register void (*proc) (register struct rx_call * call,
- register VOID * mh,
+ register void * mh,
register int index),
- register VOID * handle, register int arg)
+ register void * handle, register int arg)
{
call->arrivalProc = proc;
call->arrivalProcHandle = handle;
struct rx_call *acall)
{
struct rx_call *call = acall;
- struct clock when;
+ struct clock when, now;
int i, waiting;
MUTEX_ENTER(&conn->conn_data_lock);
if (call != acall)
MUTEX_EXIT(&call->lock);
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
when.sec += RX_CHECKREACH_TIMEOUT;
MUTEX_ENTER(&conn->conn_data_lock);
if (!conn->checkReachEvent) {
conn->refCount++;
conn->checkReachEvent =
- rxevent_Post(&when, rxi_CheckReachEvent, conn, NULL);
+ rxevent_PostNow(&when, &now, rxi_CheckReachEvent, conn,
+ NULL);
}
MUTEX_EXIT(&conn->conn_data_lock);
}
afs_uint32 seq, serial, flags;
int isFirst;
struct rx_packet *tnp;
- struct clock when;
+ struct clock when, now;
MUTEX_ENTER(&rx_stats_mutex);
rx_stats.dataPacketsRead++;
MUTEX_EXIT(&rx_stats_mutex);
dpf(("packet %x dropped on receipt - quota problems", np));
if (rxi_doreclaim)
rxi_ClearReceiveQueue(call);
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
clock_Add(&when, &rx_softAckDelay);
if (!call->delayedAckEvent
|| clock_Gt(&call->delayedAckEvent->eventTime, &when)) {
RX_CALL_REFCOUNT_DELAY);
CALL_HOLD(call, RX_CALL_REFCOUNT_DELAY);
call->delayedAckEvent =
- rxevent_Post(&when, rxi_SendDelayedAck, call, 0);
+ rxevent_PostNow(&when, &now, rxi_SendDelayedAck, call, 0);
}
/* we've damaged this call already, might as well do it in. */
return np;
rxevent_Cancel(call->delayedAckEvent, call, RX_CALL_REFCOUNT_DELAY);
np = rxi_SendAck(call, np, serial, RX_ACK_IDLE, istack);
} else if (call->nSoftAcks) {
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
if (haveLast && !(flags & RX_CLIENT_INITIATED)) {
clock_Add(&when, &rx_lastAckDelay);
} else {
RX_CALL_REFCOUNT_DELAY);
CALL_HOLD(call, RX_CALL_REFCOUNT_DELAY);
call->delayedAckEvent =
- rxevent_Post(&when, rxi_SendDelayedAck, call, 0);
+ rxevent_PostNow(&when, &now, rxi_SendDelayedAck, call, 0);
}
} else if (call->flags & RX_CALL_RECEIVE_DONE) {
rxevent_Cancel(call->delayedAckEvent, call, RX_CALL_REFCOUNT_DELAY);
call->nNacks = nNacked;
}
} else {
- if (newAckCount) {
- call->nAcks++;
- }
+ call->nAcks += newAckCount;
call->nNacks = 0;
}
int istack, int force)
{
afs_int32 error;
- struct clock when;
+ struct clock when, now;
if (!call->error)
return packet;
rxi_SendSpecial(call, call->conn, packet, RX_PACKET_TYPE_ABORT,
(char *)&error, sizeof(error), istack);
} else if (!call->delayedAbortEvent) {
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
clock_Addmsec(&when, rxi_callAbortDelay);
CALL_HOLD(call, RX_CALL_REFCOUNT_ABORT);
call->delayedAbortEvent =
- rxevent_Post(&when, rxi_SendDelayedCallAbort, call, 0);
+ rxevent_PostNow(&when, &now, rxi_SendDelayedCallAbort, call, 0);
}
return packet;
}
struct rx_packet *packet, int istack, int force)
{
afs_int32 error;
- struct clock when;
+ struct clock when, now;
if (!conn->error)
return packet;
sizeof(error), istack);
MUTEX_ENTER(&conn->conn_data_lock);
} else if (!conn->delayedAbortEvent) {
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
clock_Addmsec(&when, rxi_connAbortDelay);
conn->delayedAbortEvent =
- rxevent_Post(&when, rxi_SendDelayedConnAbort, conn, 0);
+ rxevent_PostNow(&when, &now, rxi_SendDelayedConnAbort, conn, 0);
}
return packet;
}
struct rx_packet *p;
register struct rx_packet *nxp; /* Next pointer for queue_Scan */
struct rx_peer *peer = call->conn->peer;
- struct clock now, retryTime;
+ struct clock now, usenow, retryTime;
int haveEvent;
int nXmitPackets;
int maxXmitPackets;
* in this burst. Note, if we back off, it's reasonable to
* back off all of the packets in the same manner, even if
* some of them have been retransmitted more times than more
- * recent additions */
- clock_GetTime(&now);
- retryTime = now; /* initialize before use */
+ * recent additions.
+ * Do a dance to avoid blocking after setting now. */
+ clock_Zero(&retryTime);
MUTEX_ENTER(&peer->peer_lock);
clock_Add(&retryTime, &peer->timeout);
MUTEX_EXIT(&peer->peer_lock);
-
+ clock_GetTime(&now);
+ clock_Add(&retryTime, &now);
+ usenow = now;
/* Send (or resend) any packets that need it, subject to
* window restrictions and congestion burst control
* restrictions. Ask for an ack on the last packet sent in
osi_Panic("rxi_Start: xmit queue clobbered");
}
if (p->flags & RX_PKTFLAG_ACKED) {
+ /* Since we may block, don't trust this */
+ usenow.sec = usenow.usec = 0;
MUTEX_ENTER(&rx_stats_mutex);
rx_stats.ignoreAckedPacket++;
MUTEX_EXIT(&rx_stats_mutex);
#ifdef RX_ENABLE_LOCKS
CALL_HOLD(call, RX_CALL_REFCOUNT_RESEND);
call->resendEvent =
- rxevent_Post2(&retryTime, rxi_StartUnlocked,
- (void *)call, 0, istack);
+ rxevent_PostNow2(&retryTime, &usenow,
+ rxi_StartUnlocked,
+ (void *)call, 0, istack);
#else /* RX_ENABLE_LOCKS */
call->resendEvent =
- rxevent_Post2(&retryTime, rxi_Start, (void *)call,
- 0, istack);
+ rxevent_PostNow2(&retryTime, &usenow, rxi_Start,
+ (void *)call, 0, istack);
#endif /* RX_ENABLE_LOCKS */
}
}
rxi_ScheduleKeepAliveEvent(register struct rx_call *call)
{
if (!call->keepAliveEvent) {
- struct clock when;
- clock_GetTime(&when);
+ struct clock when, now;
+ clock_GetTime(&now);
+ when = now;
when.sec += call->conn->secondsUntilPing;
CALL_HOLD(call, RX_CALL_REFCOUNT_ALIVE);
call->keepAliveEvent =
- rxevent_Post(&when, rxi_KeepAliveEvent, call, 0);
+ rxevent_PostNow(&when, &now, rxi_KeepAliveEvent, call, 0);
}
}
conn->challengeEvent = NULL;
if (RXS_CheckAuthentication(conn->securityObject, conn) != 0) {
register struct rx_packet *packet;
- struct clock when;
+ struct clock when, now;
if (tries <= 0) {
/* We've failed to authenticate for too long.
RX_PACKET_TYPE_CHALLENGE, NULL, -1, 0);
rxi_FreePacket(packet);
}
- clock_GetTime(&when);
+ clock_GetTime(&now);
+ when = now;
when.sec += RX_CHALLENGE_TIMEOUT;
conn->challengeEvent =
- rxevent_Post2(&when, rxi_ChallengeEvent, conn, 0,
+ rxevent_PostNow2(&when, &now, rxi_ChallengeEvent, conn, 0,
(tries - 1));
}
}
void
rxi_ReapConnections(void)
{
- struct clock now;
+ struct clock now, when;
clock_GetTime(&now);
/* Find server connection structures that haven't been used for
}
MUTEX_EXIT(&rx_freePktQ_lock);
- now.sec += RX_REAP_TIME; /* Check every RX_REAP_TIME seconds */
- rxevent_Post(&now, rxi_ReapConnections, 0, 0);
+ when = now;
+ when.sec += RX_REAP_TIME; /* Check every RX_REAP_TIME seconds */
+ rxevent_Post(&when, rxi_ReapConnections, 0, 0);
}
#define _RX_
#ifndef KDUMP_RX_LOCK
-/* Substitute VOID (char) for void, because some compilers are confused by void
- * in some situations */
-#ifndef AFS_NT40_ENV
-#define VOID char
-#endif
-
#ifdef KERNEL
#include "rx_kmutex.h"
#include "rx_kernel.h"
#else /* KERNEL */
# include <sys/types.h>
# include <stdio.h>
+# include <string.h>
#ifdef AFS_PTHREAD_ENV
# include "rx_pthread.h"
#else
u_char securityIndex; /* corresponds to the security class of the */
/* securityObject for this conn */
struct rx_securityClass *securityObject; /* Security object for this connection */
- VOID *securityData; /* Private data for this conn's security class */
+ void *securityData; /* Private data for this conn's security class */
u_short securityHeaderSize; /* Length of security module's packet header data */
u_short securityMaxTrailerSize; /* Length of security module's packet trailer data */
int abortCount; /* number of times last error was sent */
u_int lastSendTime; /* Last time a packet was sent on this call */
u_int lastReceiveTime; /* Last time a packet was received for this call */
- void (*arrivalProc) (register struct rx_call * call, register VOID * mh, register int index); /* Procedure to call when reply is received */
- VOID *arrivalProcHandle; /* Handle to pass to replyFunc */
+ void (*arrivalProc) (register struct rx_call * call, register void * mh, register int index); /* Procedure to call when reply is received */
+ void *arrivalProcHandle; /* Handle to pass to replyFunc */
int arrivalProcArg; /* Additional arg to pass to reply Proc */
afs_uint32 lastAcked; /* last packet "hard" acked by receiver */
afs_uint32 startWait; /* time server began waiting for input data/send quota */
afs_int32 sparel[8];
};
+/* Configuration settings */
+
+/* Enum for storing configuration variables which can be set via the
+ * SetConfiguration method in the rx_securityClass, below
+ */
+
+typedef enum {
+ RXS_CONFIG_FLAGS /* afs_uint32 set of bitwise flags */
+} rx_securityConfigVariables;
+
+/* For the RXS_CONFIG_FLAGS, the following bit values are defined */
+
+/* Disable the principal name contains dot check in rxkad */
+#define RXS_CONFIG_FLAGS_DISABLE_DOTCHECK 0x01
+
/* XXXX (rewrite this description) A security class object contains a set of
* procedures and some private data to implement a security model for rx
* connections. These routines are called by rx as appropriate. Rx knows
int (*op_GetStats) (struct rx_securityClass * aobj,
struct rx_connection * aconn,
struct rx_securityObjectStats * astats);
- int (*op_Spare1) (void);
+ int (*op_SetConfiguration) (struct rx_securityClass * aobj,
+ struct rx_connection * aconn,
+ rx_securityConfigVariables atype,
+ void * avalue,
+ void ** acurrentValue);
int (*op_Spare2) (void);
int (*op_Spare3) (void);
} *ops;
- VOID *privateData;
+ void *privateData;
int refCount;
};
#define RXS_CheckPacket(obj,call,packet) RXS_OP(obj,CheckPacket,(obj,call,packet))
#define RXS_DestroyConnection(obj,conn) RXS_OP(obj,DestroyConnection,(obj,conn))
#define RXS_GetStats(obj,conn,stats) RXS_OP(obj,GetStats,(obj,conn,stats))
-
+#define RXS_SetConfiguration(obj, conn, type, value, currentValue) RXS_OP(obj, SetConfiguration,(obj,conn,type,value,currentValue))
/* Structure for keeping rx statistics. Note that this structure is returned
#endif
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_event.c,v 1.14.2.3 2005/04/14 02:31:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_event.c,v 1.14.2.4 2008/03/17 15:38:40 shadow Exp $");
#ifdef KERNEL
#ifndef UKERNEL
static struct xfreelist *xfreemallocs = 0, *xsp = 0;
struct clock rxevent_nextRaiseEvents; /* Time of next call to raise events */
+struct clock rxevent_lastEvent; /* backwards time detection */
int rxevent_raiseScheduled; /* true if raise events is scheduled */
#ifdef RX_ENABLE_LOCKS
#endif /* AFS_PTHREAD_ENV */
+int
+rxevent_adjTimes(struct clock *adjTime)
+{
+ /* backwards clock correction */
+ int nAdjusted = 0;
+ struct rxepoch *qep, *nqep;
+ struct rxevent *qev, *nqev;
+
+ for (queue_Scan(&rxepoch_queue, qep, nqep, rxepoch)) {
+ for (queue_Scan(&qep->events, qev, nqev, rxevent)) {
+ if (clock_Gt(&qev->eventTime, adjTime)) {
+ clock_Sub(&qev->eventTime, adjTime);
+ nAdjusted++;
+ }
+ }
+ if (qep->epochSec > adjTime->sec) {
+ qep->epochSec -= adjTime->sec;
+ }
+ }
+ return nAdjusted;
+}
+
/* Pass in the number of events to allocate at a time */
int rxevent_initialized = 0;
void
rxevent_ScheduledEarlierEvent = scheduler;
rxevent_initialized = 1;
clock_Zero(&rxevent_nextRaiseEvents);
+ clock_Zero(&rxevent_lastEvent);
rxevent_raiseScheduled = 0;
UNLOCK_EV_INIT;
}
* "when" argument specifies when "func" should be called, in clock (clock.h)
* units. */
-#if 0
-struct rxevent *
-rxevent_Post(struct clock *when,
- void (*func) (struct rxevent * event,
- struct rx_connection * conn,
- struct rx_call * acall), void *arg, void *arg1)
-#else
static struct rxevent *
-_rxevent_Post(struct clock *when, void (*func) (), void *arg, void *arg1,
- int arg2, int newargs)
-#endif
+_rxevent_Post(struct clock *when, struct clock *now, void (*func) (),
+ void *arg, void *arg1, int arg2, int newargs)
{
register struct rxevent *ev, *evqe, *evqpr;
register struct rxepoch *ep, *epqe, *epqpr;
MUTEX_ENTER(&rxevent_lock);
#ifdef RXDEBUG
if (rx_Log_event) {
- struct clock now;
- clock_GetTime(&now);
+ struct clock now1;
+ clock_GetTime(&now1);
fprintf(rx_Log_event, "%d.%d: rxevent_Post(%d.%d, %lx, %lx, %lx, %d)\n",
- (int)now.sec, (int)now.usec, (int)when->sec, (int)when->usec,
+ (int)now1.sec, (int)now1.usec, (int)when->sec, (int)when->usec,
(unsigned long)func, (unsigned long)arg,
(unsigned long)arg1, arg2);
}
#endif
-
+ /* If a time was provided, check for consistency */
+ if (now->sec) {
+ if (clock_Gt(&rxevent_lastEvent, now)) {
+ struct clock adjTime = rxevent_lastEvent;
+ clock_Sub(&adjTime, now);
+ rxevent_adjTimes(&adjTime);
+ }
+ rxevent_lastEvent = *now;
+ }
/* Get a pointer to the epoch for this event, if none is found then
* create a new epoch and insert it into the sorted list */
for (ep = NULL, queue_ScanBackwards(&rxepoch_queue, epqe, epqpr, rxepoch)) {
struct rxevent *
rxevent_Post(struct clock *when, void (*func) (), void *arg, void *arg1)
{
- return _rxevent_Post(when, func, arg, arg1, 0, 0);
+ struct clock now;
+ clock_Zero(&now);
+ return _rxevent_Post(when, &now, func, arg, arg1, 0, 0);
}
struct rxevent *
rxevent_Post2(struct clock *when, void (*func) (), void *arg, void *arg1,
int arg2)
{
- return _rxevent_Post(when, func, arg, arg1, arg2, 1);
+ struct clock now;
+ clock_Zero(&now);
+ return _rxevent_Post(when, &now, func, arg, arg1, arg2, 1);
+}
+
+struct rxevent *
+rxevent_PostNow(struct clock *when, struct clock *now, void (*func) (),
+ void *arg, void *arg1)
+{
+ return _rxevent_Post(when, now, func, arg, arg1, 0, 0);
+}
+
+struct rxevent *
+rxevent_PostNow2(struct clock *when, struct clock *now, void (*func) (),
+ void *arg, void *arg1, int arg2)
+{
+ return _rxevent_Post(when, now, func, arg, arg1, arg2, 1);
}
/* Cancel an event by moving it from the event queue to the free list.
register struct rxepoch *ep;
register struct rxevent *ev;
volatile struct clock now;
-
MUTEX_ENTER(&rxevent_lock);
/* Events are sorted by time, so only scan until an event is found that has
continue;
}
do {
+ reraise:
ev = queue_First(&ep->events, rxevent);
if (clock_Lt(&now, &ev->eventTime)) {
clock_GetTime(&now);
- if (clock_Lt(&now, &ev->eventTime)) {
- *next = rxevent_nextRaiseEvents = ev->eventTime;
- rxevent_raiseScheduled = 1;
- clock_Sub(next, &now);
- MUTEX_EXIT(&rxevent_lock);
- return 1;
+ if (clock_Gt(&rxevent_lastEvent, &now)) {
+ struct clock adjTime = rxevent_lastEvent;
+ int adjusted;
+ clock_Sub(&adjTime, &now);
+ adjusted = rxevent_adjTimes(&adjTime);
+ rxevent_lastEvent = now;
+ if (adjusted > 0)
+ goto reraise;
}
- }
+ if (clock_Lt(&now, &ev->eventTime)) {
+ *next = rxevent_nextRaiseEvents = ev->eventTime;
+ rxevent_raiseScheduled = 1;
+ clock_Sub(next, &now);
+ MUTEX_EXIT(&rxevent_lock);
+ return 1;
+ }
+ }
queue_Remove(ev);
rxevent_nPosted--;
MUTEX_EXIT(&rxevent_lock);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.15 2007/02/09 00:20:28 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.18 2008/03/10 22:35:36 shadow Exp $");
#include "rx/rx_kcommon.h"
#ifndef UKERNEL
/* This is the server process request loop. Kernel server
* processes never become listener threads */
-void
-rx_ServerProc(void)
+void *
+rx_ServerProc(void *unused)
{
int threadID;
if (afs_termState == AFSOP_STOP_RXEVENT) {
#ifdef RXK_LISTENER_ENV
afs_termState = AFSOP_STOP_RXK_LISTENER;
+#else
+#ifdef AFS_SUN510_ENV
+ afs_termState = AFSOP_STOP_NETIF;
#else
afs_termState = AFSOP_STOP_COMPLETE;
+#endif
#endif
osi_rxWakeup(&afs_termState);
return;
* OS's socket receive routine returns as a result of a signal.
*/
int rxk_ListenerPid; /* Used to signal process to wakeup at shutdown */
+#ifdef AFS_LINUX20_ENV
+struct task_struct *rxk_ListenerTask;
+#endif
#ifdef AFS_SUN5_ENV
/*
#ifdef AFS_LINUX20_ENV
rxk_ListenerPid = current->pid;
+ rxk_ListenerTask = current;
#endif
#ifdef AFS_SUN5_ENV
rxk_ListenerPid = 1; /* No PID, just a flag that we're alive */
AFS_GLOCK();
#endif /* RX_ENABLE_LOCKS */
if (afs_termState == AFSOP_STOP_RXK_LISTENER) {
+#ifdef AFS_SUN510_ENV
+ afs_termState = AFSOP_STOP_NETIF;
+#else
afs_termState = AFSOP_STOP_COMPLETE;
+#endif
osi_rxWakeup(&afs_termState);
}
rxk_ListenerPid = 0;
-#if defined(AFS_LINUX22_ENV) || defined(AFS_SUN5_ENV)
+#ifdef AFS_LINUX20_ENV
+ rxk_ListenerTask = 0;
+ osi_rxWakeup(&rxk_ListenerTask);
+#endif
+#if defined(AFS_SUN5_ENV)
osi_rxWakeup(&rxk_ListenerPid);
#endif
#ifdef AFS_SUN5_ENV
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_lwp.c,v 1.17.2.2 2007/06/14 19:05:03 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_lwp.c,v 1.17.2.3 2008/03/10 22:35:36 shadow Exp $");
# include <sys/types.h> /* fd_set on older platforms */
# include <errno.h>
}
PROCESS rx_listenerPid = 0; /* LWP process id of socket listener process */
-static int rx_ListenerProc(void *dummy);
+static void* rx_ListenerProc(void *dummy);
/*
* Delay the current thread the specified number of seconds.
}
void
-rxi_StartServerProc(void (*proc) (void), int stacksize)
+rxi_StartServerProc(void *(*proc) (void *), int stacksize)
{
PROCESS scratchPid;
static int number = 0;
char name[32];
sprintf(name, "srv_%d", ++number);
- LWP_CreateProcess((int (*)(void *))proc, stacksize, RX_PROCESS_PRIORITY, (void *)0,
+ LWP_CreateProcess(proc, stacksize, RX_PROCESS_PRIORITY, NULL,
"rx_ServerProc", &scratchPid);
if (registerProgram)
(*registerProgram) (scratchPid, name);
/* This is the listener process request loop. The listener process loop
* becomes a server thread when rxi_ListenerProc returns, and stays
* server thread until rxi_ServerProc returns. */
-static int
+static void *
rx_ListenerProc(void *dummy)
{
int threadID;
/* assert(sock != OSI_NULLSOCKET); */
}
/* not reached */
+ return NULL;
}
/* This is the server process request loop. The server process loop
* becomes a listener thread when rxi_ServerProc returns, and stays
* listener thread until rxi_ListenerProc returns. */
-void
-rx_ServerProc(void)
+void *
+rx_ServerProc(void * unused)
{
int sock;
int threadID;
/* assert(newcall != NULL); */
}
/* not reached */
+ return NULL;
}
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_misc.c,v 1.12.2.1 2004/08/25 07:09:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_misc.c,v 1.12.2.3 2008/01/31 00:27:40 jaltman Exp $");
#ifdef KERNEL
#include <afs/sysincludes.h>
#include "rx.h"
#endif /* AFS_PTHREAD_ENV */
#include <stdlib.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
if (code == ENOSPC)
err = VDISKFULL;
-#if !defined(AFS_SUN5_ENV) && !defined(AFS_NT40_ENV) && !defined(AFS_DJGPP_ENV)
+#ifdef EDQUOT
/* EDQUOT doesn't exist on solaris */
else if (code == EDQUOT)
err = VOVERQUOTA;
if (code == VDISKFULL)
err = ENOSPC;
else if (code == VOVERQUOTA)
-#if defined(AFS_SUN5_ENV) || defined(AFS_NT40_ENV) || defined(AFS_DJGPP_ENV)
+#ifndef EDQUOT
err = ENOSPC;
#else
err = EDQUOT;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_multi.c,v 1.8.2.1 2004/12/07 06:10:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_multi.c,v 1.8.2.2 2008/02/08 21:25:14 shadow Exp $");
#ifdef KERNEL
#include "afs/sysincludes.h"
for (i = 0; i < nConns; i++) {
register struct rx_call *call;
call = mh->calls[i] = rx_NewCall(conns[i]);
- rx_SetArrivalProc(call, multi_Ready, (VOID *) mh, i);
+ rx_SetArrivalProc(call, multi_Ready, (void *) mh, i);
}
return mh;
}
/* Called by Rx when the first reply packet of a call is received, or the call is aborted. */
void
-multi_Ready(register struct rx_call *call, register VOID *amh,
+multi_Ready(register struct rx_call *call, register void *amh,
register int index)
{
register struct multi_handle *mh = (struct multi_handle *)amh;
#endif
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.35.2.33 2007/06/23 06:27:22 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.35.2.34 2007/10/30 15:24:04 shadow Exp $");
#ifdef KERNEL
#if defined(UKERNEL)
#include "rx_globals.h"
#include <lwp.h>
#include <assert.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
extern void rx_SetArrivalProc(register struct rx_call *call,
register void (*proc) (register struct rx_call *
call,
- register VOID * mh,
+ register void * mh,
register int index),
- register VOID * handle, register int arg);
+ register void * handle, register int arg);
extern afs_int32 rx_EndCall(register struct rx_call *call, afs_int32 rc);
extern void rx_Finalize(void);
extern void rxi_PacketsUnWait(void);
void *arg, void *arg1);
extern struct rxevent *rxevent_Post2(struct clock *when, void (*func) (),
void *arg, void *arg1, int arg2);
+extern struct rxevent *rxevent_PostNow(struct clock *when, struct clock *now,
+ void (*func) (), void *arg, void *arg1);
+extern struct rxevent *rxevent_PostNow2(struct clock *when, struct clock *now,
+ void (*func) (), void *arg,
+ void *arg1, int arg2);
#endif
extern void shutdown_rxevent(void);
extern struct rxepoch *rxepoch_Allocate(struct clock *when);
extern int rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host,
int *port);
#ifdef UKERNEL
-extern void rx_ServerProc(void);
+extern void *rx_ServerProc(void *);
#endif
extern void osi_AssertFailK(const char *expr, const char *file, int line);
extern void rxk_ListenerProc(void);
/* rx_lwp.c */
-extern void rx_ServerProc(void);
extern void rxi_Sleep(void *addr);
extern void rxi_Delay(int seconds);
extern void rxi_InitializeThreadSupport(void);
extern void rxi_ReScheduleEvents(void);
#endif
extern void rxi_InitializeThreadSupport(void);
-extern void rxi_StartServerProc(void (*proc) (void), int stacksize);
+extern void rxi_StartServerProc(void *(*proc) (void *), int stacksize);
extern void rxi_StartListener(void);
-extern void rx_ServerProc(void);
+extern void *rx_ServerProc(void *);
extern int rxi_Listen(osi_socket sock);
extern int rxi_Recvmsg(osi_socket socket, struct msghdr *msg_p, int flags);
extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
register int nConns);
extern int multi_Select(register struct multi_handle *mh);
extern void multi_Ready(register struct rx_call *call,
- register VOID *mh, register int index);
+ register void *mh, register int index);
extern void multi_Finalize(register struct multi_handle *mh);
extern void multi_Finalize_Ignore(register struct multi_handle *mh);
/* rx_pthread.c */
extern void rxi_Delay(int sec);
extern void rxi_InitializeThreadSupport(void);
-extern void rxi_StartServerProc(void (*proc) (void), int stacksize);
+extern void rxi_StartServerProc(void *(*proc) (void *), int stacksize);
#ifndef rxi_ReScheduleEvents
extern void rxi_ReScheduleEvents(void);
#endif
-extern void rx_ServerProc(void);
+extern void *rx_ServerProc(void *);
extern void rxi_StartListener(void);
extern int rxi_Listen(osi_socket sock);
extern int rxi_Recvmsg(osi_socket socket, struct msghdr *msg_p, int flags);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_pthread.c,v 1.17.2.7 2006/07/03 01:16:36 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_pthread.c,v 1.17.2.9 2008/03/10 22:35:36 shadow Exp $");
#include <sys/types.h>
#include <errno.h>
#include <signal.h>
+#include <string.h>
#ifndef AFS_NT40_ENV
# include <sys/socket.h>
# include <sys/file.h>
* Start an Rx server process.
*/
void
-rxi_StartServerProc(void (*proc) (void), int stacksize)
+rxi_StartServerProc(void *(*proc) (void *), int stacksize)
{
pthread_t thread;
pthread_attr_t tattr;
/* This is the server process request loop. The server process loop
* becomes a listener thread when rxi_ServerProc returns, and stays
* listener thread until rxi_ListenerProc returns. */
-void
-rx_ServerProc(void)
+void *
+rx_ServerProc(void * dummy)
{
int sock;
int threadID;
#endif
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_rdwr.c,v 1.21.2.7 2006/02/28 00:19:20 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_rdwr.c,v 1.21.2.9 2008/03/17 15:38:40 shadow Exp $");
#ifdef KERNEL
#ifndef UKERNEL
# include <sys/stat.h>
# include <sys/time.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
RX_CALL_REFCOUNT_DELAY);
rxi_SendAck(call, 0, 0, RX_ACK_DELAY, 0);
} else {
- struct clock when;
- clock_GetTime(&when);
+ struct clock when, now;
+ clock_GetTime(&now);
+ when = now;
/* Delay to consolidate ack packets */
clock_Add(&when, &rx_hardAckDelay);
if (!call->delayedAckEvent
RX_CALL_REFCOUNT_DELAY);
CALL_HOLD(call, RX_CALL_REFCOUNT_DELAY);
call->delayedAckEvent =
- rxevent_Post(&when,
+ rxevent_PostNow(&when, &now,
rxi_SendDelayedAck, call,
0);
}
rxi_SendAck(call, 0, serial, RX_ACK_DELAY, 0);
didHardAck = 1;
} else {
- struct clock when;
- clock_GetTime(&when);
+ struct clock when, now;
+ clock_GetTime(&now);
+ when = now;
/* Delay to consolidate ack packets */
clock_Add(&when, &rx_hardAckDelay);
if (!call->delayedAckEvent
RX_CALL_REFCOUNT_DELAY);
CALL_HOLD(call, RX_CALL_REFCOUNT_DELAY);
call->delayedAckEvent =
- rxevent_Post(&when, rxi_SendDelayedAck, call, 0);
+ rxevent_PostNow(&when, &now, rxi_SendDelayedAck, call, 0);
}
}
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_trace.c,v 1.11 2003/07/15 23:16:10 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_trace.c,v 1.11.2.2 2007/11/26 21:21:55 shadow Exp $");
#ifdef RXDEBUG
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <io.h>
printf(" %3u %7u %7u %x.%x\n", ip.qlen, ip.servicetime,
ip.waittime, ip.cid, ip.call);
}
+ return 0;
}
#endif /* DUMPTRACE */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.18.2.4 2005/04/03 18:18:56 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.18.2.5 2007/10/30 15:24:04 shadow Exp $");
# include <sys/types.h>
# include <errno.h>
# include <signal.h>
+# include <string.h>
#ifdef AFS_NT40_ENV
# include <WINNT/syscfg.h>
#else
#endif
#include <afs/afs_args.h>
#include <afs/afsutil.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifndef IPPORT_USERRESERVED
/* If in.h doesn't define this, define it anyway. Unfortunately, defining
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/test/generator.c,v 1.8 2003/07/15 23:16:37 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/test/generator.c,v 1.8.2.1 2007/10/31 04:13:44 shadow Exp $");
#include <stdio.h>
#include <string.h>
fprintf(itl_h, "}\n");
fprintf(itl_h,
- "\n\nstatic void DoRun(struct cmd_syndesc *as, char *arock) {\n");
+ "\n\nstatic void DoRun(struct cmd_syndesc *as, void *arock) {\n");
if (threadModel == PTHREADS) {
fprintf(itl_h, "\tpthread_t *tid;\n");
fprintf(itl_h,
"static void SetupRunCmd(void) {\n" "\tstruct cmd_syndesc *ts;\n"
- "\tts = cmd_CreateSyntax(NULL,DoRun, 0, \"run the test client program\");\n"
+ "\tts = cmd_CreateSyntax(NULL,DoRun, NULL, \"run the test client program\");\n"
"\tcmd_AddParm(ts, \"-threadCount\", CMD_SINGLE, CMD_REQUIRED, \"number of threads to spawn\");\n"
"\tcmd_AddParm(ts, \"-iterationCount\", CMD_SINGLE, CMD_REQUIRED, \"number of iterations to make over entire interface for each thread\");\n"
"\tcmd_AddParm(ts, \"-secType\", CMD_SINGLE, CMD_REQUIRED, \"security level to use (1 -> unauthenticated, 2 -> authenticated)\");\n"
"\nstatic long GetKey (char *rock, long kvno, struct ktc_encryptionKey *key) {\n"
"\tmemcpy ((void *) key, (void *) &serviceKey, sizeof(*key));\n"
"\treturn 0;\n" "}\n\n"
- "static void DoRun(struct cmd_syndesc *as, char *arock) {\n"
+ "static void DoRun(struct cmd_syndesc *as, void *arock) {\n"
"\tstruct rx_service *serv;\n"
"\tstruct rx_securityClass *sc[3];\n\n"
"\tint port=0, errflg=0;\n" "\tint lowThreads=4, highThreads=8;\n"
"\t\trx_SetMaxProcs(serv,highThreads);\n"
"\t\trx_StartServer(1);\n" "\t}\n" "\texit(0);\n" "}\n\n"
"static void SetupRunCmd(void) {\n" "\tstruct cmd_syndesc *ts;\n"
- "\tts = cmd_CreateSyntax(NULL,DoRun, 0, \"run the test server program\");\n"
+ "\tts = cmd_CreateSyntax(NULL,DoRun, NULL, \"run the test server program\");\n"
"\tcmd_AddParm(ts, \"-lowThreadCount\", CMD_SINGLE, CMD_REQUIRED, \"minimum number of threads to spawn\");\n"
"\tcmd_AddParm(ts, \"-highThreadCount\", CMD_SINGLE, CMD_REQUIRED, \"maximum number of threads to spawn\");\n"
"\tcmd_AddParm(ts, \"-serverPort\", CMD_SINGLE, CMD_REQUIRED, \"port that server is using\");\n"
#include "afs/param.h"
#else
#include <afs/param.h>
+#include <string.h>
#endif
RCSID
- ("$Header: /cvs/openafs/src/rx/xdr.c,v 1.9.2.2 2005/10/05 05:58:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/xdr.c,v 1.9.2.3 2007/10/30 15:24:04 shadow Exp $");
/*
* xdr.c, Generic XDR routines implementation.
#include "rx.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/xdr_array.c,v 1.9.2.3 2006/08/13 20:19:57 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/xdr_array.c,v 1.9.2.4 2007/10/30 15:24:04 shadow Exp $");
#ifndef NeXT
#endif /* AFS_LINUX20_ENV */
#else
#include <stdio.h>
+#include <string.h>
#endif
#include "xdr.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rx/xdr_rec.c,v 1.6 2003/07/15 23:16:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/xdr_rec.c,v 1.6.2.2 2008/02/04 04:07:18 jaltman Exp $");
#include <stdio.h>
#ifdef HAVE_STDLIB_H
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/* * A record is composed of one or more record fragments.
register u_int len);
static u_int xdrrec_getpos(register XDR * xdrs);
static bool_t xdrrec_setpos(register XDR * xdrs, u_int pos);
-static afs_int32 *xdrrec_inline(register XDR * xdrs, int len);
+static afs_int32 *xdrrec_inline(register XDR * xdrs, u_int len);
static void xdrrec_destroy(register XDR * xdrs);
static bool_t flush_out(register RECSTREAM * rstrm, bool_t eor);
static bool_t fill_input_buf(register RECSTREAM * rstrm);
}
static afs_int32 *
-xdrrec_inline(register XDR * xdrs, int len)
+xdrrec_inline(register XDR * xdrs, u_int len)
{
register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
afs_int32 *buf = NULL;
#include "rx.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/xdr_refernce.c,v 1.6.2.1 2005/12/15 05:57:12 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rx/xdr_refernce.c,v 1.6.2.2 2007/10/30 15:24:04 shadow Exp $");
#ifndef NeXT
#include "xdr.h"
#include <stdio.h>
+#include <string.h>
#define LASTUNSIGNED ((u_int)0-1)
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxdebug/rxdebug.c,v 1.5.2.1 2004/12/07 06:17:15 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxdebug/rxdebug.c,v 1.5.2.3 2007/10/31 04:13:44 shadow Exp $");
#include <sys/types.h>
#include <errno.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/stat.h>
#include <afs/stds.h>
#include <afs/cmd.h>
}
int
-MainCommand(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+MainCommand(struct cmd_syndesc *as, void *arock)
{
register int i;
int s;
}
#endif
- ts = cmd_CreateSyntax(NULL, MainCommand, 0, "probe RX server");
+ ts = cmd_CreateSyntax(NULL, MainCommand, NULL, "probe RX server");
cmd_AddParm(ts, "-servers", CMD_SINGLE, CMD_REQUIRED, "server machine");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "IP port");
cmd_AddParm(ts, "-nodally", CMD_FLAG, CMD_OPTIONAL,
rxgen: $(OBJS) AFS_component_version_number.c $(HDRS)
$(CC) $(CFLAGS) $(OBJS) $(XLIBS) -o $@
+rpc_main.o: rpc_main.c
+ $(CCOBJ) $(CFLAGS) -c $< -D__PROG_CPP__="\"$(CPP)\""
+
#
# Install targets
#
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_cout.c,v 1.9 2003/07/15 23:16:39 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_cout.c,v 1.9.2.1 2007/10/30 15:24:05 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_hout.c,v 1.7.2.3 2006/07/31 17:07:50 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_hout.c,v 1.7.2.4 2008/02/05 18:53:22 shadow Exp $");
#include <stdio.h>
#include <string.h>
(1 << DEF_INPARAM) | (1 << DEF_INOUTPARAM));
psproc1(defp, 1, "int", "End",
(1 << DEF_OUTPARAM) | (1 << DEF_INOUTPARAM));
- } else {
- psproc1(defp, 0, "int", "", 0xFFFFFFFF);
- }
+ }
+ if (!(!multi_flag && split_flag))
+ psproc1(defp, 0, "int", "", 0xFFFFFFFF);
if (uflag && !kflag)
psproc1(defp, 2, "int", "ubik_", 0xFFFFFFFF);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_main.c,v 1.21.2.3 2006/08/24 15:56:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_main.c,v 1.21.2.6 2008/01/08 18:57:28 shadow Exp $");
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
#define EXTEND 1 /* alias for TRUE */
struct commandline {
+ int ansic_flag;
int cflag;
int hflag;
int lflag;
char *OutFileFlag = "";
char OutFile[256];
char Sflag = 0, Cflag = 0, hflag = 0, cflag = 0, kflag = 0, uflag = 0;
+char ansic_flag = 0; /* If set, build ANSI C style prototypes */
char zflag = 0; /* If set, abort server stub if rpc call returns non-zero */
char xflag = 0; /* if set, add stats code to stubs */
char yflag = 0; /* if set, only emit function name arrays to xdr file */
int debug = 0;
static char *cmdname;
-#ifdef AFS_SUN5_ENV
-static char CPP[] = "/usr/ccs/lib/cpp";
-#elif defined(AFS_XBSD_ENV) || defined(AFS_DARWIN60_ENV)
-static char CPP[] = "/usr/bin/cpp";
-#elif defined(AFS_NT40_ENV)
-static char CPP[MAXCMDLINE];
-#elif defined(AFS_DARWIN_ENV)
-static char CPP[] = "cc -E";
+#ifdef __PROG_CPP__
+static char CPP[] = __PROG_CPP__;
#else
static char CPP[] = "/lib/cpp";
#endif
for (j = 1; argv[i][j] != 0; j++) {
c = argv[i][j];
switch (c) {
+ case 'A':
case 'c':
case 'h':
case 'l':
;
}
}
+ cmd->ansic_flag = ansic_flag = flag['A'];
cmd->cflag = cflag = flag['c'];
cmd->hflag = hflag = flag['h'];
cmd->sflag = flag['s'];
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_parse.c,v 1.18.2.3 2006/07/31 21:51:21 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_parse.c,v 1.18.2.5 2007/11/01 16:06:00 shadow Exp $");
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
}
}
-
static void
cs_ProcName_setup(definition * defp, char *procheader, int split_flag)
{
proc1_list *plist;
+ char *first_arg;
- if (!cflag) {
+ if (ansic_flag) {
+ if (split_flag) {
+ first_arg = "register struct rx_call *z_call";
+ } else {
+ first_arg = "register struct rx_connection *z_conn";
+ }
+ } else {
if (split_flag) {
- f_print(fout, "int %s%s%s%s(z_call", procheader, prefix,
- PackagePrefix[PackageIndex], defp->pc.proc_name);
+ first_arg = "z_call";
} else {
- f_print(fout, "int %s%s%s%s(z_conn", procheader, prefix,
- PackagePrefix[PackageIndex], defp->pc.proc_name);
+ first_arg = "z_conn";
}
}
+
+ if (!cflag) {
+ f_print(fout, "int %s%s%s%s(%s", procheader, prefix,
+ PackagePrefix[PackageIndex], defp->pc.proc_name, first_arg);
+ }
if ((strlen(procheader) + strlen(prefix) +
strlen(PackagePrefix[PackageIndex]) + strlen(defp->pc.proc_name)) >=
MAX_FUNCTION_NAME_LEN) {
if (!cflag) {
for (plist = defp->pc.plists; plist; plist = plist->next) {
if (plist->component_kind == DEF_PARAM) {
- plist->pl.param_flag &= ~PROCESSED_PARAM;
- f_print(fout, ", %s", plist->pl.param_name);
+ if (ansic_flag) {
+ if (plist->pl.param_flag & OUT_STRING) {
+ f_print(fout, ",%s *%s", plist->pl.param_type,
+ plist->pl.param_name);
+ } else {
+ f_print(fout, ",%s %s", plist->pl.param_type,
+ plist->pl.param_name);
+ }
+ } else {
+ f_print(fout, ", %s", plist->pl.param_name);
+ plist->pl.param_flag &= ~PROCESSED_PARAM;
+ }
}
}
f_print(fout, ")\n");
}
}
-
static void
cs_ProcParams_setup(definition * defp, int split_flag)
{
proc1_list *plist, *plist1;
+ if (ansic_flag)
+ return;
+
if (!split_flag)
f_print(fout, "\tregister struct rx_connection *z_conn;\n");
if (split_flag) {
proc1_list *plist;
if (!cflag) {
- f_print(fout, "int %s%s%s%s(aclient, aflags", procheader, prefix,
- PackagePrefix[PackageIndex], defp->pc.proc_name);
+ if (ansic_flag) {
+ f_print(fout, "int %s%s%s%s(register struct ubik_client *aclient, afs_int32 aflags",
+ procheader, prefix, PackagePrefix[PackageIndex],
+ defp->pc.proc_name);
+ } else {
+ f_print(fout, "int %s%s%s%s(aclient, aflags", procheader, prefix,
+ PackagePrefix[PackageIndex], defp->pc.proc_name);
+ }
}
if ((strlen(procheader) + strlen(prefix) +
strlen(PackagePrefix[PackageIndex]) + strlen(defp->pc.proc_name)) >=
if (!cflag) {
for (plist = defp->pc.plists; plist; plist = plist->next) {
if (plist->component_kind == DEF_PARAM) {
- plist->pl.param_flag &= ~PROCESSED_PARAM;
- f_print(fout, ", %s", plist->pl.param_name);
+ if (ansic_flag) {
+ if (plist->pl.param_flag & OUT_STRING) {
+ f_print(fout, ",%s *%s", plist->pl.param_type,
+ plist->pl.param_name);
+ } else {
+ f_print(fout, ",%s %s", plist->pl.param_type,
+ plist->pl.param_name);
+ }
+ } else {
+ plist->pl.param_flag &= ~PROCESSED_PARAM;
+ f_print(fout, ", %s", plist->pl.param_name);
+ }
}
}
f_print(fout, ")\n");
{
proc1_list *plist, *plist1;
+ if (ansic_flag)
+ return;
+
f_print(fout, "\tregister struct ubik_client *aclient;\n\tafs_int32 aflags;\n");
for (plist = defp->pc.plists; plist; plist = plist->next) {
if (plist->component_kind == DEF_PARAM
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_scan.c,v 1.9 2003/10/24 06:26:14 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_scan.c,v 1.9.2.1 2007/10/30 15:24:05 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
+
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_svcout.c,v 1.9 2003/07/15 23:16:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_svcout.c,v 1.9.2.1 2007/10/30 15:24:05 shadow Exp $");
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "rpc_scan.h"
#include "rpc_parse.h"
#include "rpc_util.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxgen/rpc_util.c,v 1.9 2003/07/15 23:16:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxgen/rpc_util.c,v 1.9.2.1 2007/10/30 15:24:05 shadow Exp $");
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
extern char *OutFileFlag;
extern char OutFile[];
extern char Sflag, Cflag, hflag, cflag, kflag, uflag;
+extern char ansic_flag;
extern char zflag;
extern char xflag;
extern char yflag;
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/crc.c,v 1.3 2003/07/15 23:16:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/crc.c,v 1.3.2.1 2007/10/30 15:24:05 shadow Exp $");
#if defined(UKERNEL)
#include "../afs/sysincludes.h"
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <des.h>
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/domestic/crypt_conn.c,v 1.11.2.4 2006/02/28 00:19:21 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/domestic/crypt_conn.c,v 1.11.2.6 2008/01/04 18:08:24 rees Exp $");
#ifdef KERNEL
#include "afs/stds.h"
#ifndef UKERNEL
#include "h/types.h"
-#if defined(AFS_AIX_ENV) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV)
+#if defined(AFS_AIX_ENV) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_XBSD_ENV)
#include "h/systm.h"
#endif
#include "rx/rx.h"
#else /* !KERNEL */
#include <afs/stds.h>
#include <sys/types.h>
+#include <string.h>
#include <rx/rx.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/domestic/fcrypt.c,v 1.11.2.7 2006/08/02 19:07:04 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/domestic/fcrypt.c,v 1.11.2.8 2007/10/30 15:24:05 shadow Exp $");
#define DEBUG 0
#ifdef KERNEL
#include <afs/stds.h>
#include <sys/types.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <des.h>
#include "rxkad.h"
#endif /* defined(UKERNEL) */
-RCSID("$Id: md4.c,v 1.1.2.2 2006/08/02 19:07:04 shadow Exp $");
+RCSID("$Id: md4.c,v 1.1.2.3 2007/10/30 15:24:05 shadow Exp $");
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include <rx/xdr.h>
#include <rx/rx.h>
#include <des.h>
#include "lifetimes.h"
#include "rxkad.h"
#endif /* defined(UKERNEL) */
-RCSID("$Id: md5.c,v 1.1.2.2 2006/08/02 19:07:04 shadow Exp $");
+RCSID("$Id: md5.c,v 1.1.2.3 2007/10/30 15:24:05 shadow Exp $");
char *get_key_rock; /* rock for get_key function */
int (*get_key) (); /* func. of kvno and server key ptr */
int (*user_ok) (); /* func called with new client name */
+ afs_uint32 flags; /* configuration flags */
};
/* private data in server-side connection */
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/rxkad_client.c,v 1.18.2.5 2006/05/23 16:31:02 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/rxkad_client.c,v 1.18.2.7 2008/01/04 18:08:23 rees Exp $");
#ifdef KERNEL
#include "afs/stds.h"
#ifndef UKERNEL
#include "h/types.h"
#include "h/time.h"
-#if defined(AFS_AIX_ENV) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV)
+#if defined(AFS_AIX_ENV) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_XBSD_ENV)
#include "h/systm.h"
#endif
#ifdef AFS_LINUX20_ENV
#include <afs/stds.h>
#include <sys/types.h>
#include <time.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
#define INCLUDE_RXKAD_PRIVATE_DECLS
RCSID
- ("$Header: /cvs/openafs/src/rxkad/rxkad_common.c,v 1.20.2.10 2006/05/23 16:31:02 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/rxkad_common.c,v 1.20.2.11 2007/10/30 15:24:05 shadow Exp $");
#ifdef KERNEL
#ifndef UKERNEL
#else /* KERNEL */
#include <afs/stds.h>
#include <sys/types.h>
+#include <string.h>
#include <time.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#endif
#include <rx/rx.h>
#include <rx/xdr.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afsutil.h>
#endif /* KERNEL */
afs_uint32 * expiration, char *name,
char *instance, char *cell,
afs_int32 * kvno);
-
-
+extern afs_int32 rxkad_SetConfiguration(struct rx_securityClass *aobj,
+ struct rx_connection *aconn,
+ rx_securityConfigVariables atype,
+ void * avalue, void **aresult);
/* ticket.c */
extern int tkt_DecodeTicket(char *asecret, afs_int32 ticketLen,
char *get_key_rock, int serv_kvno, char *name,
char *inst, char *cell, char *session_key,
afs_int32 * host, afs_int32 * start,
- afs_int32 * end);
+ afs_int32 * end, afs_int32 disableDotCheck);
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14.2.9 2007/06/10 14:22:49 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14.2.11 2008/01/23 04:22:51 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/rx.h>
#include <rx/xdr.h>
#include <des.h>
rxkad_CheckPacket, /* check data packet */
rxkad_DestroyConnection,
rxkad_GetStats,
- 0, /* spare 1 */
+ rxkad_SetConfiguration,
0, /* spare 2 */
0, /* spare 3 */
};
code =
tkt_DecodeTicket5(tix, tlen, tsp->get_key, tsp->get_key_rock,
kvno, client.name, client.instance, client.cell,
- &sessionkey, &host, &start, &end);
+ &sessionkey, &host, &start, &end,
+ tsp->flags & RXS_CONFIG_FLAGS_DISABLE_DOTCHECK);
if (code)
return code;
}
} else
return RXKADNOAUTH;
}
+
+/* Set security object configuration variables */
+afs_int32 rxkad_SetConfiguration(struct rx_securityClass *aobj,
+ struct rx_connection *aconn,
+ rx_securityConfigVariables atype,
+ void * avalue, void **currentValue)
+{
+ struct rxkad_sprivate *private =
+ (struct rxkad_sprivate *) aobj->privateData;
+
+ switch (atype) {
+ case RXS_CONFIG_FLAGS:
+ if (currentValue) {
+ *((afs_uint32 *)currentValue) = private->flags;
+ } else {
+ private->flags = (afs_uint32) avalue;
+ }
+ break;
+ default:
+ break;
+ }
+ return 0;
+}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/rxkad/test/stress.c,v 1.9.2.1 2007/04/10 18:43:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/test/stress.c,v 1.9.2.2 2007/10/31 04:13:47 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#define aKEYFILE 26
static int
-CommandProc(as, arock)
- char *arock;
- struct cmd_syndesc *as;
+CommandProc(struct cmd_syndesc *as, void *arock)
{
long code;
int startServer = (as->parms[aSERVER].items != 0);
exit(1);
}
#endif
- ts = cmd_CreateSyntax(NULL, CommandProc, 0,
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL,
"run Rx authentication stress test");
cmd_AddParm(ts, "-server", CMD_FLAG, CMD_OPTIONAL, "start server");
cmd_AddParm(ts, "-client", CMD_SINGLE, CMD_OPTIONAL, "start client");
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/ticket.c,v 1.13.2.1 2006/11/04 23:50:38 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/ticket.c,v 1.13.2.2 2007/10/30 15:24:05 shadow Exp $");
#if defined(UKERNEL)
#include "afs/sysincludes.h"
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <des.h>
#endif
RCSID
- ("$Header: /cvs/openafs/src/rxkad/ticket5.c,v 1.8.2.3 2006/06/29 23:25:49 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/rxkad/ticket5.c,v 1.8.2.5 2008/01/23 04:22:51 shadow Exp $");
#if defined(UKERNEL)
#include "../afs/sysincludes.h"
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <des.h>
int (*get_key) (char *, int, struct ktc_encryptionKey *),
char *get_key_rock, int serv_kvno, char *name, char *inst,
char *cell, char *session_key, afs_int32 * host,
- afs_int32 * start, afs_int32 * end)
+ afs_int32 * start, afs_int32 * end, afs_int32 disableCheckdot)
{
char plain[MAXKRB5TICKETLEN];
struct ktc_encryptionKey serv_key;
goto bad_ticket;
}
- /*
- * If the first part of the name_string contains a dot, punt since
- * then we can't see the diffrence between the kerberos 5
- * principals foo.root and foo/root later in the fileserver.
- */
- if (strchr(decr_part.cname.name_string.val[0], '.') != NULL)
- goto bad_ticket;
+ if (!disableCheckdot) {
+ /*
+ * If the first part of the name_string contains a dot, punt since
+ * then we can't see the diffrence between the kerberos 5
+ * principals foo.root and foo/root later in the fileserver.
+ */
+ if (strchr(decr_part.cname.name_string.val[0], '.') != NULL)
+ goto bad_ticket;
+ }
/* Verify that decr_part.key is of right type */
switch (decr_part.key.keytype) {
# Build targets
#
rxstat.cs.c: rxstat.xg
- ${RXGEN} -x -C -o $@ ${srcdir}/rxstat.xg
+ ${RXGEN} -A -x -C -o $@ ${srcdir}/rxstat.xg
rxstat.ss.c: rxstat.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/rxstat.xg
+ ${RXGEN} -A -x -S -o $@ ${srcdir}/rxstat.xg
rxstat.xdr.c: rxstat.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/rxstat.xg
+ ${RXGEN} -A -x -c -o $@ ${srcdir}/rxstat.xg
rxstat.h: rxstat.xg
- ${RXGEN} -x -h -o $@ ${srcdir}/rxstat.xg
+ ${RXGEN} -A -x -h -o $@ ${srcdir}/rxstat.xg
rxstat.xdr.c: rxstat.h
rxstat.cs.c: rxstat.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/scout/scout.c,v 1.9.2.1 2006/03/09 06:42:04 shadow Exp $");
+ ("$Header: /cvs/openafs/src/scout/scout.c,v 1.9.2.4 2007/11/26 21:21:55 shadow Exp $");
#undef IN
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#undef IN
#include <gtxwindows.h> /*Generic window package */
#include <gtxobjects.h> /*Object definitions */
* Initializes this program.
*------------------------------------------------------------------------*/
-static int scoutInit(as, arock)
- struct cmd_syndesc *as;
- char *arock;
-
+static int scoutInit(struct cmd_syndesc *as, void *arock)
{ /*scoutInit */
static char rn[] = "scoutInit"; /*Routine name */
/*
* Set up the commands we understand.
*/
- ts = cmd_CreateSyntax("initcmd", scoutInit, 0, "initialize the program");
+ ts = cmd_CreateSyntax("initcmd", scoutInit, NULL, "initialize the program");
cmd_AddParm(ts, "-server", CMD_LIST, CMD_REQUIRED,
"FileServer name(s) to monitor");
cmd_AddParm(ts, "-basename", CMD_SINGLE, CMD_OPTIONAL,
} else
scout_CleanExit(0);
+ return 0; /* not reachable */
} /*main */
#
# $ what /opt/langtools/bin/pxdb32
# /opt/langtools/bin/pxdb32:
-# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.15.2.10 $
+# HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.15.2.11 $
#
# The problem occurs when -g and -O are both used when compiling des.c.
# The simplest way to work around the problem is to leave out either -g or -O.
syscall.o: ${SYS}/syscall.s
case "$(SYS_NAME)" in \
sun4x_5* | sunx86_5*) \
- /usr/ccs/lib/cpp ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
+ $(CPP) ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
sgi_* | *_darwin_* ) \
*fbsd* ) \
touch syscall.o ;; \
*) \
- /lib/cpp ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
+ $(CPP) ${SFLAGS} ${SYS}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
esac
multi_Select;
multi_Init;
multi_Finalize_Ignore;
- add_to_error_table;
+ afs_add_to_error_table;
xdr_afsUUID;
xdr_afs_int32;
xdr_afs_uint32;
RXSTATS_ClearProcessRPCStats;
RXSTATS_ClearPeerRPCStats;
TM_GetTimeOfDay;
+ strcompose;
+ stolower;
+ ucstring;
+ lcstring;
+ AssertionFailed;
local:
*;
multi_Select;
multi_Init;
multi_Finalize_Ignore;
- add_to_error_table;
+ afs_add_to_error_table;
afs_xdr_opaque;
afs_xdr_string;
afs_xdr_short;
RXSTATS_ClearProcessRPCStats;
RXSTATS_ClearPeerRPCStats;
TM_GetTimeOfDay;
+ strcompose;
+ stolower;
+ ucstring;
+ lcstring;
+ AssertionFailed;
local:
*;
+# API version. When something changes, increment as appropriate.
+# Ignore at your own risk.
+LIBAFSSETPAGMAJOR=1
+LIBAFSSETPAGMINOR=0
+
# Copyright 2000, International Business Machines Corporation and others.
# All Rights Reserved.
#
SFLAGS=-I${TOP_INCDIR}
LIBS=libsys.a ${TOP_LIBDIR}/librx.a libsys.a ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/util.a ${XLIBS}
-OBJECTS= afssyscalls.o setpag.o glue.o syscall.o
-SHLIBOBJS = picobj/setpag.o picobj/glue.o syscall.o
+OBJECTS= afssyscalls.o setpag.o glue.o
+SHLIBOBJS = picobj/setpag.o picobj/glue.o
RMTOBJS=rmtsysnet.o rmtsysc.o rmtsys.cs.o rmtsys.xdr.o rmtsys.ss.o rmtsyss.o
+LIBAFSSETPAG = libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}.${LIBAFSSETPAGMINOR}
+LIBAFSSETPAG_DARWIN = libafssetpag.${LIBAFSSETPAGMAJOR}.${SHLIB_SUFFIX}
+
all: \
rmtsysd \
pagsh \
${KERNELDIR}/afs/xfsattrs.h \
${UKERNELDIR}/afs \
${UKERNELDIR}/afs/afsl.exp
+ @set -x; case ${SYS_NAME} in \
+ *_darwin_*) \
+ ${MAKE} '${TOP_LIBDIR}/${LIBAFSSETPAG_DARWIN}';; \
+ *) \
+ ${MAKE} '${TOP_LIBDIR}/${LIBAFSSETPAG}';; \
+ esac
-libsys.a: ${OBJECTS} ${RMTOBJS} afsl.exp AFS_component_version_number.o
+libsys.a: ${OBJECTS} ${RMTOBJS} syscall.o afsl.exp AFS_component_version_number.o
-$(RM) -f $@
- $(AR) crv $@ ${OBJECTS} ${RMTOBJS} \
- AFS_component_version_number.o ${LIBSYS_AIX_EXP}
+ @set -x; case "${SYS_NAME}" in \
+ hp_ux11*) \
+ $(AR) crv $@ ${OBJECTS} ${RMTOBJS} \
+ AFS_component_version_number.o ${LIBSYS_AIX_EXP} ;; \
+ *) \
+ $(AR) crv $@ ${OBJECTS} ${RMTOBJS} syscall.o \
+ AFS_component_version_number.o ${LIBSYS_AIX_EXP} ;; \
+ esac
$(RANLIB) $@
@set -x; case "${SYS_NAME}" in \
rs_aix*) \
$(AR) crv $@ afsl.exp;; \
esac
+${LIBAFSSETPAG}: ${SHLIBOBJS} syscall.o
+ @set -x; case ${SYS_NAME} in \
+ *_linux*) \
+ ${SHLIB_LINKER} -Wl,-h,libafssetpag.so.${LIBAFSSETPAGMAJOR} \
+ -o ${LIBAFSSETPAG} -Wl,--version-script=${srcdir}/mapfile \
+ ${SHLIBOBJS} syscall.o ;; \
+ rs_aix4*) \
+ ${SHLIB_LINKER} -o ${LIBAFSSETPAG} ${SHLIBOBJS} syscall.o \
+ -bE:afssetpag.exp;; \
+ sun*_5*) \
+ ${SHLIB_LINKER} -h libafssetpag.so.${LIBAFSSETPAGMAJOR} \
+ -o ${LIBAFSSETPAG} ${SHLIBOBJS} syscall.o;; \
+ hp_ux11*) \
+ ${SHLIB_LINKER} -o ${LIBAFSSETPAG} ${SHLIBOBJS};; \
+ *) \
+ ${SHLIB_LINKER} -o ${LIBAFSSETPAG} ${SHLIBOBJS} syscall.o ;; \
+ esac
+
+${LIBAFSSETPAG_DARWIN}: ${SHLIBOBJS}
+ ${SHLIB_LINKER} -o ${LIBAFSSETPAG_DARWIN} ${ARCHFLAGS} -install_name ${libdir}/${LIBAFSSETPAG_DARWIN} -compatibility_version ${LIBAFSSETPAGMAJOR} -current_version ${LIBAFSSETPAGMAJOR}.${LIBAFSSETPAGMINOR} ${SHLIBOBJS}
+
tests: pagsh pagsh.krb fixit iinc idec icreate iopen istat rmtsysd
syscall.o: syscall.s
@set -x; case "$(SYS_NAME)" in \
sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5? | sun4x_5?? | sunx86_5? | sunx86_5?? ) \
- /usr/ccs/lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
+ $(CPP) -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
sgi_* |*_darwin* ) \
${AS} syscall.S -o syscall.o ; \
$(RM) -f syscall.S ;;\
*) \
- /lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
+ $(CPP) -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
as -o syscall.o syscall.ss; \
$(RM) syscall.ss;; \
esac
rmtsysd: AFS_component_version_number.o afs.exp afsl.exp
rmtsys.cs.c: rmtsys.xg
- ${RXGEN} -C -o $@ ${srcdir}/rmtsys.xg
+ ${RXGEN} -A -C -o $@ ${srcdir}/rmtsys.xg
rmtsys.ss.c: rmtsys.xg
- ${RXGEN} -S -o $@ ${srcdir}/rmtsys.xg
+ ${RXGEN} -A -S -o $@ ${srcdir}/rmtsys.xg
rmtsys.xdr.c: rmtsys.xg
- ${RXGEN} -c -o $@ ${srcdir}/rmtsys.xg
+ ${RXGEN} -A -c -o $@ ${srcdir}/rmtsys.xg
rmtsys.h: rmtsys.xg
- ${RXGEN} -h -o $@ ${srcdir}/rmtsys.xg
+ ${RXGEN} -A -h -o $@ ${srcdir}/rmtsys.xg
+
+Krmtsys.cs.c: rmtsys.xg Krmtsys.h
+ ${RXGEN} -A -k -C -o Krmtsys.cs.c ${srcdir}/rmtsys.xg
+
+Krmtsys.xdr.c: rmtsys.xg
+ ${RXGEN} -A -k -c -o Krmtsys.xdr.c ${srcdir}/rmtsys.xg
+
+Krmtsys.h: rmtsys.xg
+ ${RXGEN} -A -k -h -o Krmtsys.h ${srcdir}/rmtsys.xg
rmtsysd: rmtsysd.o libsys.a
${CC} ${CFLAGS} -o rmtsysd rmtsysd.o ${LIBS}
$(CC) -o xfsinode ${CFLAGS} ${srcdir}/xfsinode.c ${LIBS}
esac
+${TOP_LIBDIR}/${LIBAFSSETPAG}: ${LIBAFSSETPAG}
+ ${INSTALL} ${LIBAFSSETPAG} ${TOP_LIBDIR}/${LIBAFSSETPAG}
+ -ln -f -s ${LIBAFSSETPAG} ${TOP_LIBDIR}/libafssetpag.${SHLIB_SUFFIX}
+ -ln -f -s ${LIBAFSSETPAG} ${TOP_LIBDIR}/libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}
+
+${TOP_LIBDIR}/${LIBAFSSETPAG_DARWIN}: ${LIBAFSSETPAG_DARWIN}
+ ${INSTALL} ${LIBAFSSETPAG_DARWIN} ${TOP_LIBDIR}/${LIBAFSSETPAG_DARWIN}
+ -ln -f -s ${LIBAFSSETPAG_DARWIN} ${TOP_LIBDIR}/libafssetpag.${SHLIB_SUFFIX}
+ -ln -f -s ${LIBAFSSETPAG_DARWIN} ${TOP_LIBDIR}/libafssetpag.${LIBAFSSETPAGMAJOR}.${LIBAFSSETPAGMINOR}.${SHLIB_SUFFIX}
+
+
afs.exp: ${srcdir}/afs4.exp ${srcdir}/afs5.exp
@set -x; case ${SYS_NAME} in \
rs_aix5* ) \
${TOP_INCDIR}/afs/afssyscalls.h: afssyscalls.h
${INSTALL} $? $@
+${TOP_INCDIR}/afs/rmtsys.h: rmtsys.h
+ ${INSTALL} $? $@
+
${TOP_INCDIR}/afs/afs.exp: afs.exp
@set -x; case ${SYS_NAME} in \
rs_aix* ) \
depinstall: \
${TOP_INCDIR}/afs/afssyscalls.h \
+ ${TOP_INCDIR}/afs/rmtsys.h \
${TOP_INCDIR}/afs/afs.exp \
${TOP_INCDIR}/afs/xfsattrs.h \
${KERNELDIR}/afs/xfsattrs.h \
- ${UKERNELDIR}/afs/afsl.exp
+ ${UKERNELDIR}/afs/afsl.exp \
+ Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c rmtsys.h
install: \
${DESTDIR}${libdir}/afs/libsys.a \
${DESTDIR}${bindir}/pagsh.krb \
${DESTDIR}${includedir}/afs/afs.exp \
${DESTDIR}${includedir}/afs/xfsattrs.h
+ @set -x; case ${SYS_NAME} in \
+ *_darwin_*) \
+ ${MAKE} '${DESTDIR}${libdir}/${LIBAFSSETPAG_DARWIN}';; \
+ *) \
+ ${MAKE} '${DESTDIR}${libdir}/${LIBAFSSETPAG}';; \
+ esac
${DESTDIR}${libdir}/afs/libsys.a: libsys.a
${INSTALL} $? $@
+${DESTDIR}${libdir}/${LIBAFSSETPAG}: ${LIBAFSSETPAG}
+ ${INSTALL} ${LIBAFSSETPAG} ${DESTDIR}${libdir}/${LIBAFSSETPAG}
+ -ln -f -s ${LIBAFSSETPAG} \
+ ${DESTDIR}${libdir}/libafssetpag.${SHLIB_SUFFIX}
+ -ln -f -s ${LIBAFSSETPAG} \
+ ${DESTDIR}${libdir}/libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}
+
+${DESTDIR}${libdir}/${LIBAFSSETPAG_DARWIN}: ${LIBAFSSETPAG_DARWIN}
+ ${INSTALL} ${LIBAFSSETPAG_DARWIN} ${DESTDIR}${libdir}/${LIBAFSSETPAG_DARWIN}
+ -ln -f -s ${LIBAFSSETPAG_DARWIN} \
+ ${DESTDIR}${libdir}/libafssetpag.${SHLIB_SUFFIX} ; \
+ -ln -f -s ${LIBAFSSETPAG_DARWIN} \
+ ${DESTDIR}${libdir}/libafssetpag.${LIBAFSSETPAGMAJOR}.${LIBAFSSETPAGMINOR}.${SHLIB_SUFFIX} ;; \
+
${DESTDIR}${sbindir}/rmtsysd: rmtsysd
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${includedir}/afs/afssyscalls.h: afssyscalls.h
${INSTALL} $? $@
${DESTDIR}${bindir}/pagsh: pagsh
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/pagsh.krb: pagsh.krb
- ${INSTALL} -s $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
${DESTDIR}${includedir}/afs/afs.exp: afs.exp
@set -x; case ${SYS_NAME} in \
${DEST}/include/afs/afssyscalls.h \
${DEST}/include/afs/afs.exp \
${DEST}/include/afs/xfsattrs.h
+ @set -x; case ${SYS_NAME} in \
+ *_darwin_*) \
+ ${MAKE} '${TOP_LIBDIR}/${LIBAFSSETPAG_DARWIN}';; \
+ *) \
+ ${MAKE} '${TOP_LIBDIR}/${LIBAFSSETPAG}';; \
+ esac
${DEST}/lib/afs/libsys.a: libsys.a
${INSTALL} $? $@
${INSTALL} $? $@
${DEST}/etc/rmtsysd: rmtsysd
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/pagsh: pagsh
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/pagsh.krb: pagsh.krb
- ${INSTALL} -s $? $@
+ ${INSTALL} ${NO_STRIP_KRB} $? $@
#
# Misc targets
$(RM) -f *.o libsys.a xfsinode iinc idec icreate iopen istat core \
rmtsysc rmtsyss *.o rmtsys.ss.c rmtsys.cs.c rmtsys.xdr.c rmtsys.h \
rmtsysd AFS_component_version_number.c pagsh pagsh.krb \
- afs.exp afsl.exp
+ afs.exp afsl.exp libafssetpag.* Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c
$(RM) -rf picobj
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.4 2007/07/10 20:30:57 shadow Exp $");
+ ("$Header: /cvs/openafs/src/sys/pagsh.c,v 1.9.2.8 2007/12/13 21:23:42 shadow Exp $");
#ifdef AFS_AIX32_ENV
#include <signal.h>
+#ifdef AFS_AIX51_ENV
+#include <sys/cred.h>
+#include <sys/pag.h>
+#include <errno.h>
+#endif
#endif
#include <stdio.h>
#include <stdlib.h>
#ifndef AFS_NT40_ENV
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
#include <pwd.h>
#ifdef AFS_KERBEROS_ENV
#include <sys/types.h>
static afs_uint32
curpag(void)
{
+#if defined(AFS_AIX51_ENV)
+ int code = getpagvalue("afs");
+ if (code < 0 && errno == EINVAL)
+ code = 0;
+ return code;
+#else
afs_uint32 groups[NGROUPS_MAX];
afs_uint32 g0, g1;
afs_uint32 h, l, ret;
return -1;
}
return -1;
+#endif
}
int
strcat(*denv, fname5);
*++denv = 0;
environ = newenv;
+ return 0;
}
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/rmtsysc.c,v 1.11.2.1 2006/07/31 15:33:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/sys/rmtsysc.c,v 1.11.2.5 2007/11/28 05:08:11 shadow Exp $");
#include <errno.h>
#include <limits.h>
#endif
#include <sys/stat.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
static int hostAddrLookup = 0;
char *afs_server = 0, server_name[128];
static afs_int32 SetClientCreds();
+int afs_get_pag_from_groups(afs_uint32 g0, afs_uint32 g1);
+void afs_get_groups_from_pag(afs_uint32 pag, afs_uint32 * g0p, afs_uint32 * g1p);
/* Picks up the name of the remote afs client host where the rmtsys
* daemon resides. Since the clients may be diskless and/or readonly
return NOPAG;
}
-
+void
afs_get_groups_from_pag(afs_uint32 pag, afs_uint32 * g0p, afs_uint32 * g1p)
{
unsigned short g0, g1;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/rmtsysd.c,v 1.7 2003/07/15 23:16:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/sys/rmtsysd.c,v 1.7.2.1 2007/11/26 21:21:55 shadow Exp $");
#ifdef AFS_AIX32_ENV
#include <signal.h>
* at some point... */
rx_SetMaxProcs(service, 2);
rx_StartServer(1); /* Donate this process to the server process pool */
+ return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/rmtsysnet.c,v 1.8 2003/11/10 22:25:28 rees Exp $");
+ ("$Header: /cvs/openafs/src/sys/rmtsysnet.c,v 1.8.2.2 2007/11/26 21:21:55 shadow Exp $");
#include <errno.h>
#include <sys/param.h>
#endif
#include <sys/stat.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afsint.h>
#include <afs/venus.h>
#include <rx/xdr.h>
sprintf(tstring, "%s %d\n", tp->name, tp->rights);
strcat(mydata, tstring);
}
+ return 0;
}
free(te);
}
free(aa);
+ return 0;
}
status->PartBlocksAvail = htonl(status->PartBlocksAvail);
status->PartMaxBlocks = htonl(status->PartMaxBlocks);
}
+ return 0;
}
int
ticket->BeginTimestamp = htonl(ticket->BeginTimestamp);
ticket->EndTimestamp = htonl(ticket->EndTimestamp);
}
+ return 0;
}
int
/* Note that new pioctls are supposed to be in network order! */
break;
}
+ return 0;
}
/* Note that new pioctls are supposed to be in network order! */
break;
}
+ return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/sys/rmtsyss.c,v 1.10 2003/07/15 23:16:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/sys/rmtsyss.c,v 1.10.2.2 2007/11/26 21:21:55 shadow Exp $");
#include <sys/types.h>
#include <sys/ioctl.h>
#include <rx/xdr.h>
#include <errno.h>
#include <signal.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#endif
/*#include <afs/cellconfig.h>*/
#include "rmtsys.h"
* at some point... */
rx_SetMaxProcs(service, 2);
rx_StartServer(1); /* Donate this process to the server process pool */
+ return 0; /* not reached */
}
EXTRA_OBJS = err.o errx.o warn.o warnx.o vwarn.o vwarnx.o verr.o verrx.o warnerr.o snprintf.o
-OpenAFS/OS.pm: OpenAFS/OS-$(MKAFS_OSTYPE).pm
- $(CP) OpenAFS/OS-$(MKAFS_OSTYPE).pm OpenAFS/OS.pm
-
fsx: fsx.o $(EXTRA_OBJS)
$(CC) $(LDFLAGS) -o $@ fsx.o $(EXTRA_OBJS) $(LIBS)
uninstall:
-all: run-tests OpenAFS/OS.pm libxfiles.a libdumpscan.a $(TEST_PROGRAMS)\
+all: run-tests dirpath.conf OpenAFS/Dirpath.pm libxfiles.a libdumpscan.a $(TEST_PROGRAMS)\
afsdump_scan afsdump_dirlist afsdump_extract dumptool
@chmod +x run-tests
clean:
-rm -f xf_errs.c xf_errs.h dumpscan_errs.c dumpscan_errs.h *.o \
- $(TARGETS) run-tests $(TEST_PROGRAMS) OS.pm
+ $(TARGETS) run-tests $(TEST_PROGRAMS) OpenAFS/Dirpath.pm
include ../config/Makefile.version
check-fast: run-tests $(TEST_PROGRAMS)
./run-tests -all -fast
+dirpath.conf: Makefile
+ @echo "creating $@"
+ @echo "# auto-generated by src/tests/Makefile" >$@
+ @echo "# DO NOT EDIT" >>$@
+ @echo "afsconfdir=@afsconfdir@" >>$@
+ @echo "viceetcdir=@viceetcdir@" >>$@
+ @echo "afssrvbindir=@afssrvbindir@" >>$@
+ @echo "afssrvsbindir=@afssrvsbindir@" >>$@
+ @echo "afssrvlibexecdir=@afssrvlibexecdir@" >>$@
+ @echo "afsdbdir=@afsdbdir@" >>$@
+ @echo "afslogsdir=@afslogsdir@" >>$@
+ @echo "afslocaldir=@afslocaldir@" >>$@
+ @echo "afsbackupdir=@afsbackupdir@" >>$@
+ @echo "afsbosconfigdir=@afsbosconfigdir@" >>$@
+ @echo "afskerneldir=@afskerneldir@" >>$@
+ @echo "initdir=@sysconfdir@" >>$@
+ @echo "localstatedir=@localstatedir@" >>$@
+ @echo "ostype=@MKAFS_OSTYPE@" >>$@
+
+OpenAFS/Dirpath.pm: Makefile
+ @echo "Creating OpenAFS/Dirpath.pm"
+ @echo "# This is -*- perl -*-" >$@
+ @echo "# auto-generated by src/tests/Makefile" >>$@
+ @echo "# DO NOT EDIT" >>$@
+ @echo "package OpenAFS::Dirpath;" >>$@
+ @echo "use strict;" >>$@
+ @echo "use vars qw( @ISA @EXPORT \$$openafsdirpath);" >>$@
+ @echo "@ISA = qw(Exporter);" >>$@
+ @echo "require Exporter;" >>$@
+ @echo "@EXPORT = qw(\$$openafsdirpath);" >>$@
+ @echo "" >>$@
+ @echo "\$$openafsdirpath = {" >>$@
+ @echo " 'afsconfdir' => '@afsconfdir@'," >>$@
+ @echo " 'viceetcdir' => '@viceetcdir@'," >>$@
+ @echo " 'afssrvbindir' => '@afssrvbindir@'," >>$@
+ @echo " 'afssrvsbindir' => '@afssrvsbindir@'," >>$@
+ @echo " 'afssrvlibexecdir' => '@afssrvlibexecdir@'," >>$@
+ @echo " 'afsdbdir' => '@afsdbdir@'," >>$@
+ @echo " 'afslogsdir' => '@afslogsdir@'," >>$@
+ @echo " 'afslocaldir' => '@afslocaldir@'," >>$@
+ @echo " 'afsbackupdir' => '@afsbackupdir@'," >>$@
+ @echo " 'afsbosconfigdir' => '@afsbosconfigdir@'," >>$@
+ @echo " 'afskerneldir' => '@afskerneldir@'," >>$@
+ @echo " 'initdir' => '@sysconfdir@'," >>$@
+ @echo " 'localstatedir' => '@localstatedir@'," >>$@
+ @echo " 'ostype' => '@MKAFS_OSTYPE@'," >>$@
+ @echo "};" >>$@
+ @echo "" >>$@
+ @echo "1;" >>$@
+
.PHONY: all install clean realclean distclean mostlyclean install uninstall check
--- /dev/null
+# This is -*- perl -*-
+
+package OpenAFS::Auth;
+use strict;
+use warnings;
+use OpenAFS::Dirpath;
+use OpenAFS::ConfigUtils;
+
+my $path = $OpenAFS::Dirpath::openafsdirpath;
+
+#
+# Create an auth type for the specified Kerberos implementation.
+#
+# parameters:
+# type -- Kerberos implementation: mit, heimdal, kaserver
+# keytab -- path and name of the keytab file for mit and heimdal
+# cell -- cell name. if not specified, attempts to find the
+# cell name in the ThisCell configuration file.
+# realm -- realm name. if not specified, assume the realm name
+# is the same as the cell name, in uppercase.
+#
+# example:
+# my $auth = OpenAFS::Auth::create(
+# 'type'=>'mit',
+# 'keytab'=>'/path/to/file/krb5.keytab');
+#
+# $auth->authorize('admin');
+#
+sub create {
+ my $self = {
+ # default values
+ 'type' => 'MIT',
+ 'keytab' => "$path->{'afsconfdir'}/krb5.keytab",
+ 'cell' => '',
+ 'realm' => '',
+ 'debug' => '0',
+ # user specified values
+ @_,
+ };
+
+ # check for supported kerberos type.
+ my $type = $self->{'type'};
+ $self->{'type'} = _check_kerberos_type($type) or
+ die "Unsupported kerberos type: $type\n";
+
+ # create the sub-class for the kerberos type.
+ my $class = "OpenAFS::Auth::$self->{'type'}";
+ $self = bless($self, $class);
+
+ # attempt get default values.
+ unless ($self->{'cell'}) {
+ eval {
+ $self->{'cell'} = $self->_lookup_cell_name();
+ }
+ }
+ unless ($self->{'realm'}) {
+ if ($self->{'cell'}) {
+ my $cell = $self->{'cell'};
+ ($self->{'realm'} = $cell) =~ tr[a-z][A-Z];
+ }
+ }
+ unless ($self->{'keytab'}) {
+ $self->{'keytab'} = "$path->{'afsconfdir'}/krb5.keytab";
+ }
+
+ # kerberos type specific sanity checks.
+ $self->_sanity_check();
+
+ if ($self->debug) {
+ print "debug: Auth::create()\n";
+ foreach my $k (sort keys(%$self)) {
+ print "debug: $k => $self->{$k}\n";
+ }
+ }
+ return $self;
+}
+
+#
+# Check for supported kerberos type, and allow for case insensitivity.
+#
+sub _check_kerberos_type {
+ my $type = shift;
+ foreach my $supported ('MIT', 'Heimdal', 'Kaserver') {
+ if ($type =~ /^$supported$/i) {
+ return $supported;
+ }
+ }
+ return undef;
+}
+
+#
+# Returns the cell name from the ThisCell configuration file.
+#
+sub _lookup_cell_name {
+ my $self = shift;
+ my $cell;
+ open(CELL, "$path->{'afsconfdir'}/ThisCell")
+ or die "error: Cannot open $path->{'afsconfdir'}/ThisCell: $!\n";
+ $cell = <CELL>;
+ chomp $cell;
+ close CELL;
+ return $cell;
+}
+
+#
+# Placeholder for make_keyfile. Sub-classes should override.
+#
+sub make_keyfile {
+ my $self = shift;
+ return;
+}
+
+#
+# Make the krb.conf file if the realm name is different
+# than the cell name. The syntax is something like,
+#
+# UMICH.EDU
+# UMICH.EDU fear.ifs.umich.edu admin server
+# UMICH.EDU surprise.ifs.umich.edu
+# UMICH.EDU ruthless.ifs.umich.edu
+#
+sub make_krb_config {
+ my $self = shift;
+ my $cell = $self->{'cell'};
+ my $realm = $self->{'realm'};
+
+ if ($realm && $realm ne $cell) {
+ unless ( -d $path->{'afsconfdir'} ) {
+ die "error: OpenAFS configuration directory '$path->{'afsconfdir'}' is missing.\n";
+ }
+ unless ( -w $path->{'afsconfdir'} ) {
+ die "error: Write access to the configuration directory '$path->{'afsconfdir'}' is required.\n";
+ }
+ print "debug: Making $path->{'afsconfdir'}/krb.conf file for realm $realm\n" if $self->{'debug'};
+ open(KRB, "> $path->{'afsconfdir'}/krb.conf") or die "error: Failed to open $path->{'afsconfdir'}/krb.conf, $!\n";
+ print KRB "$realm\n";
+ close KRB;
+ }
+}
+
+#
+# Enable/disable debug messages.
+#
+sub debug {
+ my $self = shift;
+ if (@_) {
+ $self->{'debug'} = shift;
+ }
+ return $self->{'debug'};
+}
+
+
+#------------------------------------------------------------------------------------
+# MIT Kerberos authorization commands.
+#
+package OpenAFS::Auth::MIT;
+use strict;
+use OpenAFS::Dirpath;
+use OpenAFS::ConfigUtils;
+our @ISA = ("OpenAFS::Auth");
+
+#
+# Sanity checks before we get started.
+#
+sub _sanity_check {
+ my $self = shift;
+ unless (defined $path->{'afssrvbindir'}) {
+ die "error: \$path->{'afssrvbindir'} is not defined.\n";
+ }
+ unless (-f "$path->{'afssrvbindir'}/aklog") {
+ die "error: $path->{'afssrvbindir'}/aklog not found.\n";
+ }
+ unless (-x "$path->{'afssrvbindir'}/aklog") {
+ die "error: $path->{'afssrvbindir'}/aklog not executable.\n";
+ }
+ unless ($self->{'realm'}) {
+ die "error: Missing realm parameter Auth::create().\n";
+ }
+ unless ($self->{'keytab'}) {
+ die "error: Missing keytab parameter Auth::create().\n";
+ }
+ unless ( -f $self->{'keytab'} ) {
+ die "error: Kerberos keytab file not found: $self->{'keytab'}\n";
+ }
+ unless ( -f $self->{'keytab'} ) {
+ die "error: Keytab file not found: $self->{'keytab'}\n";
+ }
+}
+
+#
+# Create the KeyFile from the Kerberos keytab file. The keytab file
+# should be created using the Kerberos kadmin command (or with the kadmin.local command
+# as root on the KDC). See the OpenAFS asetkey man page for details.
+#
+sub make_keyfile {
+ my $self = shift;
+
+ # asetkey annoyance. The current asetkey implementation requires the ThisCell and CellServDB files
+ # to be present but they really are not needed to create the KeyFile. This check is done here
+ # rather than in the _sanity_checks() because the ThisCell/CellServerDB are created later in
+ # the process of creating the new cell.
+ unless ( -f "$path->{'afsconfdir'}/ThisCell" ) {
+ die "error: OpenAFS configuration file is required, $path->{'afsconfdir'}/ThisCell\n";
+ }
+ unless ( -f "$path->{'afsconfdir'}/CellServDB" ) {
+ die "error: OpenAFS configuration file is required, $path->{'afsconfdir'}/CellServDB\n";
+ }
+
+ unless ( -f "$path->{'afssrvbindir'}/asetkey" ) {
+ die "error: $path->{'afssrvbindir'}/asetkey is missing.\nWas OpenAFS built with Kerberos support?\n";
+ }
+ unless ( -x "$path->{'afssrvbindir'}/asetkey" ) {
+ die "error: Do not have execute permissions on $path->{'afssrvbindir'}/asetkey\n";
+ }
+ unless ( -d $path->{'afsconfdir'} ) {
+ die "error: OpenAFS configuration directory '$path->{'afsconfdir'}' is missing.\n";
+ }
+ unless ( -w $path->{'afsconfdir'} ) {
+ die "error: Write access to the OpenAFS configuration directory '$path->{'afsconfdir'}' is required.\n";
+ }
+
+
+ # Run klist to get the kvno of the afs key. Search for afs/cellname@REALM
+ # then afs@REALM. klist must be in the path.
+ my %keys = ();
+ my $kvno;
+ my $principal;
+ my $afs_kvno;
+ my $afs_principal;
+ if ($self->debug) {
+ print "debug: reading $self->{'keytab'} to find afs kvno\n";
+ }
+ open(KLIST, "klist -k $self->{'keytab'} |") or die "make_keyfile: Failed to run klist.";
+ while (<KLIST>) {
+ chomp;
+ next if /^Keytab/; # skip headers
+ next if /^KVNO/;
+ next if /^----/;
+ ($kvno, $principal) = split;
+ if ($self->debug) {
+ print "debug: kvno=$kvno principal=$principal\n";
+ }
+ $keys{$principal} = $kvno;
+ }
+ close KLIST;
+ my $cell = $self->{'cell'};
+ my $realm = $self->{'realm'};
+ foreach my $principal ("afs/$cell\@$realm", "afs\@$realm") {
+ if ($self->debug) {
+ print "debug: searching for $principal\n";
+ }
+ if (defined $keys{$principal}) {
+ $afs_principal = $principal;
+ $afs_kvno = $keys{$afs_principal};
+ if ($self->debug) {
+ print "debug: found principal=$afs_principal kvno=$afs_kvno\n";
+ }
+ last;
+ }
+ }
+ unless ($afs_kvno) {
+ die "error: Could not find an afs key matching 'afs/$cell\@$realm' or ".
+ "'afs/$cell' in keytab $self->{'keytab'}\n";
+ }
+
+ # Run asetkey on the keytab to create the KeyFile. asetkey must be in the PATH.
+ run("$path->{'afssrvbindir'}/asetkey add $afs_kvno $self->{'keytab'} $afs_principal");
+}
+
+#
+# Get kerberos ticket and AFS token for the user.
+#
+sub authorize {
+ my $self = shift;
+ my $principal = shift || 'admin';
+ my $opt_aklog = "";
+ $opt_aklog .= " -d" if $self->debug;
+
+ run("kinit -k -t $self->{'keytab'} $principal");
+ run("$path->{'afssrvbindir'}/aklog $opt_aklog");
+ run("$path->{'afssrvbindir'}/tokens");
+}
+
+
+#------------------------------------------------------------------------------------
+package OpenAFS::Auth::Heimdal;
+use strict;
+use OpenAFS::Dirpath;
+use OpenAFS::ConfigUtils;
+our @ISA = ("OpenAFS::Auth");
+
+#
+# Various checks during initialization.
+#
+sub _sanity_check {
+ my $self = shift;
+ unless ($self->{'realm'}) {
+ die "Missing realm parameter Auth::create().\n";
+ }
+ unless ($self->{'keytab'}) {
+ die "Missing keytab parameter Auth::create().\n";
+ }
+ unless ( -f $self->{'keytab'} ) {
+ die "keytab file not found: $self->{'keytab'}\n";
+ }
+}
+
+#
+# Get kerberos ticket and AFS token for the user.
+#
+sub authorize {
+ my $self = shift;
+ my $principal = shift || 'admin';
+ run("kinit -k -t $self->{'keytab'} $principal\@$self->{'realm'} && afslog");
+}
+
+#------------------------------------------------------------------------------------
+package OpenAFS::Auth::Kaserver;
+use strict;
+use OpenAFS::Dirpath;
+use OpenAFS::ConfigUtils;
+our @ISA = ("OpenAFS::Auth");
+
+#
+# Various checks during initialization.
+#
+sub _sanity_check {
+ my $self = shift;
+ unless ($self->{'realm'}) {
+ die "Missing realm parameter Auth::create().\n";
+ }
+}
+
+#
+# Get kerberos ticket and AFS token for the user.
+#
+sub authorize {
+ my $self = shift;
+ my $principal = shift || 'admin';
+ run("echo \"Proceeding w/o authentication\"|klog -pipe ${principal}\@$self->{'realm'}");
+}
+
+1;
package OpenAFS::ConfigUtils;
use strict;
-use vars qw( @ISA @EXPORT @unwinds);
+use vars qw( @ISA @EXPORT @unwinds $debug);
@ISA = qw(Exporter);
require Exporter;
@EXPORT = qw(@unwinds run unwind);
-sub run ($) {
- print join(' ', @_);
- print "\n";
- system (@_) == 0
- or die "Failed: $?\n";
+$debug = 0;
+
+#--------------------------------------------------------------------
+# run(cmd) - run a command. Takes a command to be executed or
+# a perl code reference to be eval'd.
+sub run($) {
+ my $cmd = shift;
+ if (ref($cmd) eq 'CODE') {
+ eval { &$cmd };
+ if ($@) {
+ die "ERROR: $@\n";
+ }
+ }
+ else {
+ if ($debug) {
+ print "debug: $cmd\n";
+ }
+ my $rc = system($cmd);
+ unless ($rc==0) {
+ die "ERROR: Command failed: $cmd\nerror code=$?\n";
+ }
+ }
}
# This subroutine takes a command to run in case of failure. After
# each succesful step, this routine should be run with a command to
# undo the successful step.
-
- sub unwind($) {
- push @unwinds, $_[0];
- }
+sub unwind($) {
+ push @unwinds, $_[0];
+}
1;
--- /dev/null
+# This is -*- perl -*-
+
+package OpenAFS::OS;
+use warnings;
+use strict;
+use OpenAFS::Dirpath;
+use OpenAFS::ConfigUtils;
+
+my $path = $OpenAFS::Dirpath::openafsdirpath;
+
+#
+# Create the named system object for OS specific init scripts
+# and commands.
+#
+sub create {
+ my $self = {
+ 'debug'=>0,
+ 'ostype'=>$path->{'ostype'},
+ @_,
+ };
+
+ my $class = _get_class($self->{'ostype'});
+ $self = bless($self, $class);
+ $self->{'commands'} = $self->get_commands();
+
+ # Put the paths to the cache and afsd into the path
+ # table. Assume legacy paths if the the viceetcdir is set to
+ # the Transarc path.
+ if ($path->{'viceetcdir'} eq '/usr/vice/etc') {
+ # set in the makefile dest targets
+ $path->{'cachedir'} = "/usr/vice" unless $path->{'cachedir'};
+ $path->{'afsddir'} = "/usr/vice/etc" unless $path->{'afsddir'};
+ }
+ else {
+ # set in the makefile install targets
+ $path->{'cachedir'} = "$path->{'localstatedir'}/openafs" unless $path->{'cachedir'};
+ $path->{'afsddir'} = "$path->{'afssrvsbindir'}" unless $path->{'afsddir'};
+ }
+
+ return $self;
+}
+
+#
+# _get_class(name) - Return the package name for the ostype
+#
+sub _get_class {
+ my $type = shift;
+ if ($type=~/linux/i) {
+ return "OpenAFS::OS::Linux";
+ }
+ die "error: Unknow system type. Valid types are: linux\n";
+}
+
+#
+# command(name [,params...]) - Return the command string or code reference.
+#
+sub command {
+ my $self = shift;
+ my $name = shift;
+ my $cmd = $self->{'commands'}->{$name};
+ unless (defined $cmd) {
+ die "error: Unsupported command name $name for OS type $self->{'ostype'}\n";
+ }
+ # add parameters if present.
+ if (scalar @_) {
+ if (ref($cmd) eq 'CODE') {
+ $cmd = sub { &$cmd(@_) };
+ }
+ else {
+ $cmd = join(' ', ($cmd, @_));
+ }
+ }
+ return $cmd;
+}
+
+#--------------------------------------------------------------
+# Common unix style os commands.
+package OpenAFS::OS::Unix;
+use warnings;
+use strict;
+use OpenAFS::ConfigUtils;
+use OpenAFS::Dirpath;
+our @ISA = qw(OpenAFS::OS);
+
+#
+# remove(target) - recursive remove
+#
+sub remove {
+ my $self = shift;
+ my $target = shift;
+ run("rm -rf $target");
+}
+
+#
+# Start the server.
+#
+sub fileserver_start {
+ my $self = shift;
+ run("$path->{'afssrvsbindir'}/bosserver");
+}
+
+#
+# Stop the server.
+#
+sub fileserver_stop {
+ my $self = shift;
+ my @bosserver_pids = $self->find_pids("bosserver");
+ if (scalar @bosserver_pids) {
+ # bosserver is running, try to shutdown with bos.
+ eval {
+ run("$path->{'afssrvbindir'}/bos shutdown localhost -localauth");
+ };
+ if ($@) {
+ warn "WARNING: Shutdown command failed.\n";
+ }
+ # Now shutdown bosserver process itself. Kill all of them
+ # in case there are remants.
+ foreach my $pid (@bosserver_pids) {
+ eval { run("kill $pid") };
+ }
+ }
+}
+
+#
+# Restart the server.
+#
+sub fileserver_restart {
+ my $self = shift;
+ fileserver_stop();
+ fileserver_start();
+}
+
+#
+# Return a list of pids.
+#
+sub find_pids {
+ my $self = shift;
+ my $process = shift;
+ my @pids = ();
+ my $ps = "ps -e -o pid,cmd";
+ if ($self->{'debug'}) {
+ print("debug: searching for process $process\n");
+ }
+ open(PS, "$ps |") or die "Cannot run command: $ps: $!";
+ while (<PS>) {
+ chomp;
+ my ($pid,$cmd) = split;
+ if ($cmd=~/$process/) {
+ if ($self->{'debug'}) {
+ print("debug: found $pid $cmd\n");
+ }
+ push(@pids, $pid);
+ }
+ }
+ close PS;
+ return @pids;
+}
+
+#--------------------------------------------------------------
+package OpenAFS::OS::Linux;
+use warnings;
+use strict;
+use OpenAFS::ConfigUtils;
+use OpenAFS::Dirpath;
+our @ISA = qw(OpenAFS::OS::Unix);
+
+#
+# OS-specific commands. Defer to init scripts where possible.
+#
+sub get_commands {
+ my $self = shift;
+ my $syscnf = "$path->{'initdir'}/testclient.conf";
+
+ my $commands = {
+ 'client-start' => "SYSCNF=$syscnf $path->{'initdir'}/afs.rc start",
+ 'client-stop' => "SYSCNF=$syscnf $path->{'initdir'}/afs.rc stop",
+ 'client-restart' => "SYSCNF=$syscnf $path->{'initdir'}/afs.rc restart",
+ 'client-forcestop' => sub { $self->client_forcestop() },
+ 'fileserver-start' => sub { $self->fileserver_start() },
+ 'fileserver-stop' => sub { $self->fileserver_stop() },
+ 'fileserver-restart' => sub { $self->fileserver_restart() },
+ 'remove' => 'rm -rf',
+ };
+ return $commands;
+}
+
+#
+# Setup the init script configuration, including the install paths.
+# Create the required directories for the client, /afs and the
+# cache directory.
+#
+# N.B.The cacheinfo file is created by the init script.
+#
+sub configure_client {
+ my $self = shift;
+ my $config = {
+ # defaults
+ 'cachesize' => '50000',
+ # custom
+ @_,
+ };
+
+ my $debug = $self->{'debug'};
+ my $syscnf = "$path->{'initdir'}/testclient.conf";
+
+ open (SYSCNF, "> $syscnf") or
+ die "error: Cannot open afs.rc configuration file $syscnf, $!\n";
+
+ print "debug: creating afs.rc configuration file $syscnf\n" if $debug;
+ print SYSCNF <<"_SYSCNF_";
+AFS_CLIENT=on
+AFS_SERVER=off
+ENABLE_AFSDB=off
+ENABLE_DYNROOT=off
+CACHESIZE=$config->{'cachesize'}
+OPTIONS="-confdir $path->{'viceetcdir'}"
+WAIT_FOR_SALVAGE=no
+AFSDIR=/afs
+CACHEDIR=$path->{'cachedir'}/cache
+CACHEINFO=$path->{'viceetcdir'}/cacheinfo
+VERBOSE=
+AFS_POST_INIT=
+AFSD=$path->{'afsddir'}/afsd
+BOSSERVER=$path->{'afssrvsbindir'}/bosserver
+BOS=$path->{'afssrvbindir'}/bos
+KILLAFS=$path->{'viceetcdir'}/killafs
+MODLOADDIR=$path->{'afskerneldir'}
+_SYSCNF_
+ close SYSCNF;
+ if ($debug) {
+ if (open(SYSCNF, "< $syscnf")) {
+ while (<SYSCNF>) {
+ chomp; print "debug: $_\n";
+ }
+ close SYSCNF;
+ }
+ }
+
+ # Create a cache directory if none.
+ unless ( -d "$path->{'cachedir'}/cache" ) {
+ print "debug: making cache directory: $path->{'cachedir'}/cache\n" if $debug;
+ system("mkdir -p $path->{'cachedir'}/cache");
+ system("chmod 0700 $path->{'cachedir'}/cache");
+ }
+
+ # Create the local /afs directory on which the afs filespace will be mounted.
+ if ( ! -d "/afs" ) {
+ print "debug: making the local /afs directory.\n" if $debug;
+ system("mkdir /afs");
+ system("chmod 0777 /afs");
+ }
+}
+
+#
+# Force the client to stop. The sequence is:
+# umount /afs
+# /usr/vice/etc/afsd -shutdown
+# rmmod openafs (or rmmod libafs)
+#
+sub client_forcestop {
+ my $self = shift;
+ print "debug: client forcestop\n" if $self->{'debug'};
+
+ eval {
+ run("umount /afs");
+ sleep 1;
+ };
+ eval {
+ run("$path->{'afsddir'}/afsd -shutdown");
+ sleep 1;
+ };
+
+ # Remove openafs modules still loaded.
+ my $mods = $self->list_modules();
+ if ($mods->{'openafs'}) {
+ eval { run("/sbin/rmmod openafs") };
+ }
+ if ($mods->{'libafs'}) {
+ eval { run("/sbin/rmmod libafs") };
+ }
+
+ # Check.
+ $mods = $self->list_modules();
+ if ($mods->{'openafs'}) {
+ print "warning: kernel module still loaded: openafs\n";
+ }
+ if ($mods->{'libafs'}) {
+ print "warning: kernel module still loaded: libafs\n";
+ }
+
+ # remove stale lock set by init script.
+ run("rm -f /var/lock/subsys/afs");
+}
+
+#
+# list_modules() - Returns a table of loaded module names.
+#
+sub list_modules {
+ my $self = shift;
+ my $mods = {};
+ if (open(LSMOD, "/sbin/lsmod |")) {
+ while(<LSMOD>) {
+ chomp;
+ my ($mod) = split;
+ $mods->{$mod} = 1;
+ }
+ close LSMOD;
+ }
+ return $mods;
+}
+
+1;
=cut
-$def_ConfDir = "$openafsdirpath->{'viceetcdir'}";
+$def_ConfDir = $OpenAFS::Dirpath::openafsdirpath->{'viceetcdir'};
#$def_ConfDir = "/usr/vice/etc";
=cut
@CmdPath = (split(/:/, $ENV{PATH}),
- "$openafsdirpath->{'afssrvbindir'}", # For servers
+ $OpenAFS::Dirpath::openafsdirpath->{'afssrvbindir'}, # For servers
'/usr/local/bin', # Many sites put AFS in /usr/local
'/usr/local/etc',
'/usr/afsws/bin', # For people who use Transarc's
-#!/usr/bin/env perl -w
+#!/usr/bin/env perl
# Copyright (C) 2000 by Sam Hartman
# This file may be copied either under the terms of the GNU GPL or the IBM Public License
# either version 2 or later of the GPL or version 1.0 or later of the IPL.
-use Term::ReadLine;
+use warnings;
use strict;
+use Term::ReadLine;
use OpenAFS::ConfigUtils;
use OpenAFS::Dirpath;
use OpenAFS::OS;
use OpenAFS::Auth;
use Getopt::Long;
-use vars qw($admin $server $cellname $cachesize $part
- $requirements_met $shutdown_needed $csdb);
-my $rl = new Term::ReadLine('afs-newcell');
+use Pod::Usage;
=head1 NAME
=head1 SYNOPSIS
-B<afs-newcell> [B<--requirements-met>] [B<--admin> admin_user] [B<--cellname> cellname] [B<--cachesize> size] [B<--partition> partition-letter]
+B<afs-newcell>
+ B<--batch>
+ B<--debug>
+ B<--dont-unwind>
+ B<--help>
+ B<--ostype>=os
+ B<--server>=hostname
+ B<--cellname>=cell
+ B<--partition>=partition
+ B<--admin>=administrator
+ B<--kerberos-type>=authentication_type
+ B<--kerberos-realm>=realm_name
+ B<--kerberos-keytab>=keytab_file
+ B<--skip-make-keyfile>
+ B<--with-dafs>
+ B<--options-fileserver>=options
+ B<--options-volserver>=options
+ B<--options-salvageserver>=options
+ B<--options-salvager>=options
=head1 DESCRIPTION
-
This script sets up the initial AFS database and configures the first
-database/file server. It also sets up an AFS cell's root volumes. It
-assumes that you already have a fileserver and database servers. The
-fileserver should have an empty root.afs. This script creates root.cell,
-user, service and populates root.afs.
+database/file server. It also sets up an AFS cell's root volumes. It assumes
+that you already have a fileserver and database servers installed. The
+fileserver should have an empty root.afs. This script creates root.cell, user,
+service and populates root.afs.
-The B<requirements-met> option specifies that the initial requirements
-have been met and that the script can proceed without displaying the
-initial banner or asking for confirmation.
+The B<batch> option specifies that the initial requirements have been met and
+that the script can proceed without displaying the initial banner or asking for
+confirmation.
The B<admin> option specifies the name of the administrative user.
This user will be given system:administrators and susers permission in
The B<cellname> option specifies the name of the cell.
-The B<cachesize> option specifies the size of the AFS cache.
+The B<partition> option specifies the partition letter of the AFS partition. The
+default value is 'a', for /vicepa.
-=head1 AUTHOR
+=head1 PREREQUISITES
-Sam Hartman <hartmans@debian.org>
+The following requirements must be met before running
+this script.
-=cut
+This machine must have a working, empty filesystem mounted on /vicepa. A
+different partition letter may be specified by the partition command line
+option. For example, to use /vicepb, specify '--partition=b' on the command
+line.
-# main script
+The OpenAFS client and server binaries must be installed on this machine.
-# mkvol(volume, mount)
-sub mkvol($$) {
- my ($vol, $mnt) = @_;
- run("$openafsdirpath->{'afssrvsbindir'}/vos create $server $part $vol -localauth");
- unwind("$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part $vol -localauth");
- run("$openafsdirpath->{'afssrvbindir'}/fs mkm $mnt $vol ");
- run("$openafsdirpath->{'afssrvbindir'}/fs sa $mnt system:anyuser rl");
-}
+A working Kerberos realm with Kerberos4 support must be available. Supported
+Kerberos implementations are Heimdal with Kth-kerberos compatibility, MIT
+Kerberos5, and Kaserver (deprecated).
-GetOptions (
- "requirements-met" => \$requirements_met,
- "cellname=s" => \$cellname,
- "cachesize=s" => \$cachesize,
- "partition=s" => \$part,
- "admin=s" => \$admin);
+Create the single-DES AFS key and write it to a keytab file using the kerberos
+kadmin program.
+
+Create a principal called afs/cellname in your realm. The cell name should be
+all lower case, unlike Kerberos realms which are all upper case. You can use
+the asetkey command or if you used AFS3 salt to create the key, the bos addkey
+command. The asetkey command is built when OpenAFS built with Kerberos support.
+The asetkey command requires a cell configuration.
-unless ($requirements_met) {
- print <<eoreqs;
- Prerequisites
-
-In order to set up a new AFS cell, you must meet the following:
-
-1) You need a working Kerberos realm with Kerberos4 support. You
- should install Heimdal with Kth-kerberos compatibility or MIT
- Kerberos5.
-
-2) You need to create the single-DES AFS key and load it into
- $openafsdirpath->{'afsconfdir'}/KeyFile. If your cell's name is the same as
- your Kerberos realm then create a principal called afs. Otherwise,
- create a principal called afs/cellname in your realm. The cell
- name should be all lower case, unlike Kerberos realms which are all
- upper case. You can use asetkey from the openafs-krb5 package, or
- if you used AFS3 salt to create the key, the bos addkey command.
-
-3) This machine should have a filesystem mounted on /vicepa. If you
- do not have a free partition, on Linux you can create a large file by using
- dd to extract bytes from /dev/zero. Create a filesystem on this file
- and mount it using -oloop.
-
-4) You will need an administrative principal created in a Kerberos
- realm. This principal will be added to susers and
- system:administrators and thus will be able to run administrative
- commands. Generally the user is a root instance of some administravie
- user. For example if jruser is an administrator then it would be
- reasonable to create jruser/root and specify jruser/root as the user
- to be added in this script.
-
-5) The AFS client must not be running on this workstation. It will be
- at the end of this script.
+You will need an administrative principal created in a Kerberos realm. This
+principal will be added to system:administrators and thus will be able to run
+administrative commands. Generally the user is a root instance of some
+administravie user. For example if jruser is an administrator then it would be
+reasonable to create jruser/root and specify jruser/root as the user to be
+added in this script using the 'admin' command line option. You will also need
+to create a keyfile for this adminstrative user which is used by the script to
+obtain a ticket. The keyfile must be located in
+$openafsdirpath->{'afsconfdir'}/krb5.conf.
-eoreqs
+The AFS client must not be running on this workstation. It will be started
+during the execution of this script.
- $_ = $rl->readline("Do you meet these requirements? [y/n] ");
- unless (/^y/i ) {
- print "Run this script again when you meet the requirements\n";
- exit(1);
- }
-
- if ($> != 0) {
- die "This script should almost always be run as root. Use the --requirements-met option to run as non-root.\n";
+=head1 AUTHOR
+
+Sam Hartman <hartmans@debian.org>
+
+=cut
+
+
+my $term = new Term::ReadLine('afs-newcell');
+my $path = $OpenAFS::Dirpath::openafsdirpath;
+
+#-----------------------------------------------------------------------------------
+# prompt(message, default_value)
+#
+sub prompt($$) {
+ my ($message,$default) = @_;
+ my $value = $term->readline("$message [$default] ");
+ unless ($value) {
+ $value = $default;
}
+ return $value;
+}
+
+#-----------------------------------------------------------------------------------
+# mkvol(volume, mount, partition)
+#
+sub mkvol($$$$) {
+ my ($vol, $mnt, $srv, $part) = @_;
+ run("$path->{'afssrvsbindir'}/vos create $srv $part $vol -maxquota 0 -localauth");
+ unwind("$path->{'afssrvsbindir'}/vos remove $srv $part $vol -localauth");
+ run("$path->{'afssrvbindir'}/fs mkm $mnt $vol ");
+ run("$path->{'afssrvbindir'}/fs sa $mnt system:anyuser rl");
}
-open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
-while(<MOUNT>) {
- if(m:^AFS:) {
- print "The AFS client is currently running on this workstation.\n";
- print "Please restart this script after running $openafsinitcmd->{'client-stop'}\n";
- exit(1);
+
+#-----------------------------------------------------------------------------------
+# check_program($prog) - verify the program is installed.
+#
+sub check_program($) {
+ my ($program) = @_;
+ unless ( -f $program ) {
+ die "error: Missing program: $program\n";
}
- if(m:^/afs on AFS:) {
- print "The AFS client is currently running on this workstation.\n";
- print "Please restart this script after running $openafsinitcmd->{'client-stop'}\n";
- exit(1);
+ unless ( -x $program ) {
+ die "error: Not executable: $program\n";
}
}
-close MOUNT;
-unless ( -f "$openafsdirpath->{'afsconfdir'}/KeyFile") {
- print "You do not have an AFS keyfile. Please create this using asetkey from openafs-krb5 or
-the bos addkey command";
- exit(1);
-}
+#-----------------------------------------------------------------------------------
+# main script
+
+# options
+my $batch = 0;
+my $debug = 0;
+my $dont_unwind = 0;
+my $help = 0;
+my $ostype = $path->{'ostype'};
+my $server = 'localhost';
+my $cellname = 'testcell';
+my $partition = '/vicepa';
+my $admin = 'admin';
+my $kerberos_type = 'MIT';
+my $kerberos_realm = 'TESTCELL';
+my $kerberos_keytab = "$path->{'afsconfdir'}/krb5.keytab";
+my $skip_make_keyfile = 0;
+my $with_dafs = 0;
+my $options_fileserver = '';
+my $options_volserver = '';
+my $options_salvageserver = '';
+my $options_salvager = '';
-print "If the fileserver is not running, this may hang for 30 seconds.\n";
-run("$openafsinitcmd->{'filesrv-stop'}");
$server = `hostname`;
chomp $server;
-$admin = $rl->readline("What administrative principal should be used? ") unless $admin;
- die "Please specify an administrative user\n" unless $admin;
-$admin =~ s:/:.:g;
-if($admin =~ /@/) {
-die "The administrative user must be in the same realm as the cell and no realm may be specified.\n";
+
+GetOptions (
+ "batch" => \$batch,
+ "debug!" => \$debug,
+ "dont-unwind!" => \$dont_unwind,
+ "help" => \$help,
+ "ostype=s" => \$ostype,
+ "server=s" => \$server,
+ "cellname=s" => \$cellname,
+ "partition=s" => \$partition,
+ "admin=s" => \$admin,
+ "kerberos-type=s" => \$kerberos_type,
+ "kerberos-realm=s" => \$kerberos_realm,
+ "kerberos-keytab=s" => \$kerberos_keytab,
+ "skip-make-keyfile" => \$skip_make_keyfile,
+ "with-dafs" => \$with_dafs,
+ "options-fileserver=s" => \$options_fileserver,
+ "options-volserver=s" => \$options_volserver,
+ "options-salvageserver=s" => \$options_salvageserver,
+ "options-salvager=s" => \$options_salvager,
+ );
+
+if ($help) {
+ pod2usage(1);
+ exit 0;
}
-$cellname = $rl->readline("What cellname should be used? ") unless $cellname;
-die "Please specify a cellname\n" unless $cellname;
+# print debug messages when running commands.
+$OpenAFS::ConfigUtils::debug = $debug;
-if (! -f "$openafsdirpath->{'afsconfdir'}/ThisCell") {
- open(CELL, "> $openafsdirpath->{'afsconfdir'}/ThisCell");
- print CELL "${cellname}";
- close CELL;
-}
+#
+# Verify we have a clean slate before starting.
+#
+my @problems = ();
+my $try_rm_cell = 0;
-open(CELL, "$openafsdirpath->{'afsconfdir'}/ThisCell") or
- die "Cannot open $openafsdirpath->{'afsconfdir'}/ThisCell: $!\n";
-
-my $lcell = <CELL>;
-chomp $lcell;
-close CELL;
-
-run( "echo \\>$lcell >$openafsdirpath->{'afsconfdir'}/CellServDB");
-$csdb = `host $server|awk '{print $4 " #" $1}'`;
-run( "echo $csdb >>$openafsdirpath->{'afsconfdir'}/CellServDB");
-run("$openafsinitcmd->{'filesrv-start'}");
-unwind("$openafsinitcmd->{'filesrv-stop'}");
-$shutdown_needed = 1;
-run ("$openafsdirpath->{'afssrvbindir'}/bos addhost $server $server -localauth ||true");
-run("$openafsdirpath->{'afssrvbindir'}/bos adduser $server $admin -localauth");
-unwind("$openafsdirpath->{'afssrvbindir'}/bos removeuser $server $admin -localauth");
-if ( -f "$openafsdirpath->{'afsdbdir'}/prdb.DB0" ) {
- die "Protection database already exists; cell already partially created\n";
- }
-open(PRDB, "|$openafsdirpath->{'afssrvsbindir'}/pt_util -p $openafsdirpath->{'afsdbdir'}/prdb.DB0 -w ")
-or die "Unable to start pt_util: $!\n";
-print PRDB "$admin 128/20 1 -204 -204\n";
-print PRDB "system:administrators 130/20 -204 -204 -204\n";
-print PRDB" $admin 1\n";
-close PRDB;
-unwind( "rm $openafsdirpath->{'afsdbdir'}/prdb* ");
-# Start up ptserver and vlserver
-run("$openafsdirpath->{'afssrvbindir'}/bos create $server ptserver simple $openafsdirpath->{'afssrvlibexecdir'}/ptserver -localauth");
-unwind("$openafsdirpath->{'afssrvbindir'}/bos delete $server ptserver -localauth");
-
-run("$openafsdirpath->{'afssrvbindir'}/bos create $server vlserver simple $openafsdirpath->{'afssrvlibexecdir'}/vlserver -localauth");
-unwind("$openafsdirpath->{'afssrvbindir'}/bos delete $server vlserver -localauth");
-
-run( "$openafsdirpath->{'afssrvbindir'}/bos create $server fs fs ".
- "-cmd $openafsdirpath->{'afssrvlibexecdir'}/fileserver ".
- "-cmd $openafsdirpath->{'afssrvlibexecdir'}/volserver ".
- "-cmd $openafsdirpath->{'afssrvlibexecdir'}/salvager -localauth");
-unwind( "$openafsdirpath->{'afssrvbindir'}/bos delete $server fs -localauth ");
-
-print "Waiting for database elections: ";
-sleep(30);
-print "done.\n";
-# Past this point we want to control when bos shutdown happens
-$shutdown_needed = 0;
-unwind( "$openafsdirpath->{'afssrvbindir'}/bos shutdown $server -localauth ");
-run("$openafsdirpath->{'afssrvsbindir'}/vos create $server a root.afs -localauth");
-# bring up client
-
-$cachesize = $rl->readline("What size cache (in 1k blocks)? ") unless $cachesize;
-die "Please specify a cache size\n" unless $cachesize;
-
-run("echo $lcell >$openafsdirpath->{'viceetcdir'}/ThisCell");
-run("cp $openafsdirpath->{'afsconfdir'}/CellServDB $openafsdirpath->{'viceetcdir'}/CellServDB");
-run("echo /afs:/usr/vice/cache:${cachesize} >$openafsdirpath->{'viceetcdir'}/cacheinfo");
-run("$openafsinitcmd->{'client-forcestart'}");
-my $afs_running = 0;
-open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
-while(<MOUNT>) {
-if(m:^AFS:) {
- $afs_running = 1;
-}
- }
-unless ($afs_running) {
-print "*** The AFS client failed to start.\n";
-print "Please fix whatever problem kept it from running.\n";
- exit(1);
+if ($> != 0) {
+ push(@problems, "This script should run as root.");
}
-unwind("$openafsinitcmd->{'client-stop'}");
-unless ($part) {
- $part = $rl ->readline("What partition? [a] ");
- $part = "a" unless $part;
+my @afsconfigfiles = (
+ "$path->{'afsconfdir'}/ThisCell",
+ "$path->{'afsconfdir'}/CellServDB",
+ "$path->{'afsconfdir'}/UserList",
+ "$path->{'afsdbdir'}/prdb.DB0",
+ "$path->{'afsbosconfigdir'}/BosConfig",
+);
+foreach my $configfile (@afsconfigfiles) {
+ if ( -f $configfile ) {
+ push(@problems, "Configuration file already exists, $configfile.");
+ $try_rm_cell = 1;
+ }
}
-&OpenAFS::Auth::authadmin();
-
-run("$openafsdirpath->{'afssrvbindir'}/fs sa /afs system:anyuser rl");
-
-run("$openafsdirpath->{'afssrvsbindir'}/vos create $server $part root.cell -localauth");
-unwind("$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part root.cell -localauth");
-# We make root.cell s:anyuser readable after we mount in the next
-# loop.
-open(CELLSERVDB, "$openafsdirpath->{'viceetcdir'}/CellServDB")
- or die "Unable to open $openafsdirpath->{'viceetcdir'}/CellServDB: $!\n";
-while(<CELLSERVDB>) {
- chomp;
- if (/^>\s*([a-z0-9_\-.]+)/ ) {
- run("$openafsdirpath->{'afssrvbindir'}/fs mkm /afs/$1 root.cell -cell $1 -fast");
- unwind ("$openafsdirpath->{'afssrvbindir'}/fs rmm /afs/$1");
- }
+if (@problems) {
+ foreach my $problem (@problems) {
+ print "error: $problem\n";
+ }
+ print "info: Try running afs-rmcell.pl\n" if $try_rm_cell;
+ exit 1;
}
-run("$openafsdirpath->{'afssrvbindir'}/fs sa /afs/$lcell system:anyuser rl");
-run ("$openafsdirpath->{'afssrvbindir'}/fs mkm /afs/.$lcell root.cell -cell $lcell -rw");
-unwind ("$openafsdirpath->{'afssrvbindir'}/fs rmm /afs/.$lcell");
-run("$openafsdirpath->{'afssrvbindir'}/fs mkm /afs/.root.afs root.afs -rw");
-unwind ("$openafsdirpath->{'afssrvbindir'}/fs rmm /afs/.root.afs");
+#
+# Interactive mode
+#
+unless ($batch) {
+
+ print <<eoreqs;
+ REQUIREMENTS
+
+The following requirements must be meet before running
+this script. See 'pod2text $0' for more details.
+
+1) A filesystem must be mounted on /vicepa. (See
+ the --partition option for alternative mount points.)
+
+2) The OpenAFS client and server binaries must be installed.
+ The init scripts to start and stop the client and servers
+ must be installed and configured. OpenAFS/OS.pm must be
+ configured for your system. There should be no remants
+ from a previous cell. Run afs-rmcell to remove any.
+
+3) A Kerberos realm with Kerberos4 support must be available.
+ Supported Kerberos implementations are Heimdal with
+ Kth-kerberos compatibility, MIT Kerberos 5, and
+ Kaserver (deprecated). OpenAFS/Auth.pm must be configured
+ for your system.
+
+4) A Kerberos keytab file containing the afs principal
+ and the administrator principal must be be present at
+ $path->{'afsconfdir'}/krb5.keytab.
+ See the asetkey man page for information about creating the
+ keytab file. The default name of the administrator
+ principal is 'admin'. See the --admin option for
+ alternative names.
-mkvol( "user", "/afs/$lcell/user" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part user -localauth ");
+eoreqs
-mkvol( "service", "/afs/$lcell/service" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part service -localauth ");
+ my $answer = prompt("Does your system meet these requirements? (yes/no)", "no");
+ unless ($answer=~/^y/i ) {
+ print "OK: Aborted.\n";
+ exit 0;
+ }
-mkvol( "rep", "/afs/$lcell/.replicated" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part rep -localauth ");
-run( "$openafsdirpath->{'afssrvbindir'}/fs mkm /afs/$lcell/replicated rep.readonly " );
+ print "\nServer options:\n";
+ $ostype = prompt("Which OS?", $ostype);
+ $server = prompt("What server name should be used?", $server);
+ $cellname = prompt("What cellname should be used?", $cellname);
+ $partition = prompt("What vice partition?", $partition);
+ $admin = prompt("What administrator username?", $admin);
+ if($admin =~ /@/) {
+ die "error: Please specify the username without the realm name.\n";
+ }
-run( "$openafsdirpath->{'afssrvsbindir'}/vos addsite $server $part rep -localauth" );
-run( "$openafsdirpath->{'afssrvsbindir'}/vos release rep -localauth" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part rep.readonly -localauth ");
+ print "\nKerberos options:\n";
+ $kerberos_type = prompt("Which Kerberos is to be used?", $kerberos_type);
+ if ($kerberos_type!~/kaserver/i) {
+ $kerberos_realm = prompt("What Kerberos realm?", $kerberos_realm);
+ $kerberos_keytab = prompt("What keytab file?", $kerberos_keytab);
+ $answer = prompt("Create OpenAFS KeyFile from a keytab? (yes/no)", "yes");
+ $skip_make_keyfile = ($answer=~/^y/i) ? 0 : 1;
+ }
-mkvol( "unrep", "/afs/$lcell/unreplicated" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part unrep -localauth ");
+ print "\nFileserver options:\n";
+ $answer = prompt("Use DAFS fileserver (requires DAFS build option)? (yes/no)", "no");
+ $with_dafs = ($answer=~/^y/i) ? 1 : 0;
+ $options_fileserver = prompt("fileserver options:", $options_fileserver);
+ $options_volserver = prompt("volserver options:", $options_volserver);
+ $options_salvageserver = prompt("salvageserver options:", $options_salvageserver);
+ $options_salvager = prompt("salvager options:", $options_salvager);
+
+ print "\nConfirmation:\n";
+ print "OS Type : $ostype\n";
+ print "Server name : $server\n";
+ print "Cell name : $cellname\n";
+ print "Partition : $partition\n";
+ print "Administrator : $admin\n";
+ print "Kerberos : $kerberos_type\n";
+ if ($kerberos_type!~/kaserver/i) {
+ print "Realm : $kerberos_realm\n";
+ print "Keytab file : $kerberos_keytab\n";
+ print "Make KeyFile : ", $skip_make_keyfile ? "yes" : "no", "\n";
+ }
+ print "DAFS fileserver : ", $with_dafs ? "yes" : "no", "\n";
+ print "fileserver options : $options_fileserver\n";
+ print "volserver options : $options_volserver\n";
+ print "salvagerserver options : $options_salvageserver\n";
+ print "salvager options : $options_salvager\n";
+ print "\n";
+
+ $answer = prompt("Continue? (yes/no)", "yes");
+ unless ($answer=~/^y/i ) {
+ print "OK: Aborted.\n";
+ exit 0;
+ }
-$lcell =~ /^([^.]*)/;
-my $cellpart = $1;
-run("ln -s /afs/$lcell /afs/$cellpart");
-unwind ("rm /afs/$cellpart");
-run( "ln -s /afs/.$lcell /afs/.$cellpart" );
-unwind ("rm /afs/.$cellpart");
+ # Save the options for the next time.
+ $answer = prompt("Save as command-line options? (yes/no)", "yes");
+ if ($answer=~/^y/i ) {
+ my $switches = "";
+ $switches .= "--batch";
+ $switches .= " --debug" if $debug;
+ $switches .= " --dont_unwind" if $dont_unwind;
+ $switches .= " --ostype='$ostype'" if $ostype;
+ $switches .= " --server='$server'" if $server;
+ $switches .= " --cellname='$cellname'" if $cellname;
+ $switches .= " --partition='$partition'" if $partition;
+ $switches .= " --admin='$admin'" if $admin;
+ $switches .= " --kerberos-type='$kerberos_type'" if $kerberos_type;
+ $switches .= " --kerberos-realm='$kerberos_realm'" if $kerberos_realm;
+ $switches .= " --kerberos-keytab='$kerberos_keytab'" if $kerberos_keytab;
+ $switches .= " --skip-make-keyfile" if $skip_make_keyfile;
+ $switches .= " --with-dafs" if $with_dafs;
+ $switches .= " --options-fileserver='$options_fileserver'" if $options_fileserver;
+ $switches .= " --options-volserver='$options_volserver'" if $options_volserver;;
+ $switches .= " --options-salvageserver='$options_salvageserver'" if $options_salvageserver;;
+ $switches .= " --options-salvager='$options_salvager'" if $options_salvager;
+
+ my $conf = prompt("Filename for save?", "afs-newcell.conf");
+ open(CONF, "> $conf") or die "error: Cannot open file $conf: $!\n";
+ print CONF "$switches\n";
+ close CONF;
+ }
+}
-run( "$openafsdirpath->{'afssrvsbindir'}/vos addsite $server $part root.afs -localauth" );
-run( "$openafsdirpath->{'afssrvsbindir'}/vos addsite $server $part root.cell -localauth" );
-run( "$openafsdirpath->{'afssrvsbindir'}/vos release root.afs -localauth" );
-run( "$openafsdirpath->{'afssrvsbindir'}/vos release root.cell -localauth" );
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part root.cell.readonly -localauth ");
-unwind( "$openafsdirpath->{'afssrvsbindir'}/vos remove $server $part root.afs.readonly -localauth ");
+if ($debug) {
+ print "debug: afs-newcell options\n";
+ print "debug: \$batch = '$batch'\n";
+ print "debug: \$debug = '$debug'\n";
+ print "debug: \$dont_unwind = '$dont_unwind'\n";
+ print "debug: \$help = '$help'\n";
+ print "debug: \$ostype = '$ostype'\n";
+ print "debug: \$server = '$server'\n";
+ print "debug: \$cellname = '$cellname'\n";
+ print "debug: \$partition = '$partition'\n";
+ print "debug: \$admin = '$admin'\n";
+ print "debug: \$kerberos_type = '$kerberos_type'\n";
+ print "debug: \$kerberos_realm = '$kerberos_realm'\n";
+ print "debug: \$kerberos_keytab = '$kerberos_keytab'\n";
+ print "debug: \$skip_make_keyfile = '$skip_make_keyfile'\n";
+ print "debug: \$with_dafs = '$with_dafs'\n";
+ print "debug: \$options_fileserver = '$options_fileserver'\n";
+ print "debug: \$options_volserver = '$options_volserver'\n";
+ print "debug: \$options_salvageserver = '$options_salvageserver'\n";
+ print "debug: \$options_salvager = '$options_salvager'\n";
+}
+#
+# Create an auth object for the type of kerberos
+# to be used for authentication in our cell.
+#
+my $auth = OpenAFS::Auth::create(
+ 'debug'=>$debug,
+ 'type'=>$kerberos_type,
+ 'cell'=>$cellname,
+ 'realm'=>$kerberos_realm,
+ 'keytab'=>$kerberos_keytab,
+ );
+
+my $os = OpenAFS::OS::create(
+ 'debug'=>$debug,
+ 'ostype'=>$ostype,
+ );
+
+#
+# Sanity checks before we begin. Make sure we have correct
+# binaries, directories, and permissions.
+#
+
+my $bosserver = "$path->{'afssrvsbindir'}/bosserver";
+my $bos = "$path->{'afssrvbindir'}/bos";
+my $fs = "$path->{'afssrvbindir'}/fs";
+my $pts = "$path->{'afssrvbindir'}/pts";
+my $vos = "$path->{'afssrvsbindir'}/vos";
+
+check_program($bosserver);
+check_program($bos);
+check_program($fs);
+check_program($pts);
+check_program($vos);
+
+
+#
+# Sanity check admin username and convert kerberos 5 notation to afs.
+#
+if ($admin =~ /@/) {
+ die "error: Please specify the username without the realm name.\n";
+}
+my $username = $admin;
+$username=~s:/:.:g; # convert kerberos separators to afs separators.
+
+# Shutdown the client and server, if running.
+run($os->command('client-stop'));
+run($os->command('fileserver-stop'));
+
+#
+# Attempt the client setup for this system before we try to create the cell.
+#
+$os->configure_client();
+
+#
+# Create the initial server configuration and the server administrator, temporarily running
+# with -noauth.
+#
+
+# bosserver attempts to create the following directories with these limited
+# permissions. However, bosserver does not create parent directories as needed, so
+# the directories are not successfully created when they are more than one level
+# deep.
+run("mkdir -m 0775 -p $path->{'afsconfdir'}");
+run("mkdir -m 0700 -p $path->{'afslocaldir'}");
+run("mkdir -m 0700 -p $path->{'afsdbdir'}");
+run("mkdir -m 0755 -p $path->{'afslogsdir'}");
+run("mkdir -m 0777 -p $path->{'viceetcdir'}");
+
+# In case the directories were created earlier with the wrong permissions.
+run("chmod 0775 $path->{'afsconfdir'}");
+run("chmod 0700 $path->{'afslocaldir'}");
+run("chmod 0700 $path->{'afsdbdir'}");
+run("chmod 0755 $path->{'afslogsdir'}");
+run("chmod 0777 $path->{'viceetcdir'}");
+
+print "debug: Starting bosserver...\n" if $debug;
+run("$path->{'afssrvsbindir'}/bosserver -noauth");
+ unwind($os->command('remove', "$path->{'afsconfdir'}/ThisCell"));
+ unwind($os->command('remove', "$path->{'afsconfdir'}/CellServDB"));
+ unwind($os->command('remove', "$path->{'afsconfdir'}/UserList"));
+ unwind($os->command('remove', "$path->{'afsbosconfigdir'}/BosConfig"));
+ unwind($os->command('fileserver-stop'));
+
+run("$bos setcellname $server $cellname -localauth");
+run("$bos addhost $server $server -localauth");
+run("$bos adduser $server $username -localauth");
+ unwind("$bos removeuser $server $username -localauth");
+
+#
+# Create the AFS KeyFile. (This must be done after bosserver creates the configuration files.)
+#
+unless ($skip_make_keyfile) {
+ print "debug: Making the keyfile...\n" if $debug;
+ $auth->make_keyfile();
+}
+unless ( -f "$path->{'afsconfdir'}/KeyFile") {
+ die "You do not have an AFS keyfile. Please create this using asetkey or the bos addkey command.\n";
+}
+# make the krb.conf file if the realm name is different than the cell name.
+$auth->make_krb_config();
+
+#
+# Start up the ptserver and vlserver.
+#
+print "debug: Starting the ptserver and vlserver...\n" if $debug;
+run("$bos create $server ptserver simple $path->{'afssrvlibexecdir'}/ptserver -localauth");
+ unwind($os->command('remove', "$path->{'afsdbdir'}/prdb.DB0"));
+ unwind($os->command('remove', "$path->{'afsdbdir'}/prdb.DBSYS1"));
+ unwind("$bos delete $server ptserver -localauth");
+ unwind("$bos stop $server ptserver -localauth");
+
+run("$path->{'afssrvbindir'}/bos create $server vlserver simple $path->{'afssrvlibexecdir'}/vlserver -localauth");
+ unwind($os->command('remove', "$path->{'afsdbdir'}/vldb.DB0"));
+ unwind($os->command('remove', "$path->{'afsdbdir'}/vldb.DBSYS1"));
+ unwind("$bos delete $server vlserver -localauth");
+ unwind("$bos stop $server vlserver -localauth");
+
+#
+# Start the file server.
+#
+print "debug: Starting the fileserver...\n" if $debug;
+if ($with_dafs) {
+ run( "$bos create $server dafs dafs ".
+ "-cmd $path->{'afssrvlibexecdir'}/fileserver $options_fileserver ".
+ "-cmd $path->{'afssrvlibexecdir'}/volserver $options_volserver ".
+ "-cmd $path->{'afssrvlibexecdir'}/salvageserver $options_salvageserver".
+ "-cmd $path->{'afssrvlibexecdir'}/salvager $options_salvager".
+ "-localauth");
+}
+else {
+ run( "$bos create $server fs fs ".
+ "-cmd $path->{'afssrvlibexecdir'}/fileserver $options_fileserver ".
+ "-cmd $path->{'afssrvlibexecdir'}/volserver $options_volserver ".
+ "-cmd $path->{'afssrvlibexecdir'}/salvager $options_salvager ".
+ "-localauth");
+}
+ unwind("$bos delete $server fs -localauth ");
+ unwind("$bos stop $server fs -localauth ");
+
+#
+# Create the AFS administrator (with the same name as the server administrator).
+#
+print "debug: Creating users...\n" if $debug;
+sleep(10); # wait to avoid "no quorum elected" errors.
+
+run("$pts createuser -name $username -cell $cellname -noauth");
+run("$pts adduser $username system:administrators -cell $cellname -noauth");
+run("$pts membership $username -cell $cellname -noauth");
+
+#
+# Create the root afs volume.
+#
+print "debug: Creating root.afs volume...\n" if $debug;
+run("$vos create $server $partition root.afs -cell $cellname -noauth");
+ unwind($os->command('remove', "$partition/AFSIDat "));
+ unwind($os->command('remove', "$partition/V*.vol"));
+ unwind($os->command('remove', "$partition/Lock"));
+ unwind("$vos remove $server $partition root.afs -cell $cellname -noauth");
+
+# The initial configuration is done, turn on authorization checking.
+#run("$bos setauth $server -authrequired on -cell $cellname -localauth");
+# unwind("$bos setauth $server -authrequired off -cell $cellname -localauth");
+
+
+#
+# Bring up the AFS client.
+#
+print "debug: Starting the OpenAFS client...\n" if $debug;
+run($os->command('client-start'));
+ unwind($os->command('client-stop'));
+
+#
+# Run as the administrator.
+#
+$auth->authorize($admin);
+
+#
+# Create the root cell volumes, read-only and read-write.
+#
+print "debug: Creating the root volumes...\n" if $debug;
+run("$fs setacl /afs system:anyuser rl");
+
+run("$vos create $server $partition root.cell -localauth");
+ unwind("$vos remove $server $partition root.cell -localauth");
+
+run("$fs mkmount /afs/$cellname root.cell -cell $cellname -fast");
+ unwind("$fs rmmount /afs/$cellname");
+
+run("$fs setacl /afs/$cellname system:anyuser rl");
+run("$fs mkmount /afs/.$cellname root.cell -cell $cellname -rw");
+ unwind("$fs rmmount /afs/.$cellname");
+
+#run("$fs mkmount /afs/.root.afs root.afs -rw");
+# unwind("$fs rmmmount /afs/.root.afs");
+
+#
+# Create some volumes in our new cell.
+#
+print "debug: Creating the test volumes...\n" if $debug;
+mkvol("user", "/afs/$cellname/user", $server, $partition);
+mkvol("service", "/afs/$cellname/service", $server, $partition);
+mkvol("unrep", "/afs/$cellname/unreplicated", $server, $partition);
+
+# make a read-only volume
+mkvol("rep", "/afs/$cellname/.replicated", $server, $partition);
+run("$fs mkmount /afs/$cellname/replicated rep.readonly");
+run("$vos addsite $server $partition rep -localauth");
+run("$vos release rep -localauth");
+ unwind("$vos remove $server $partition rep.readonly -localauth");
+
+
+#
+# Create readonly volumes of our roots.
+#
+run("$vos addsite $server $partition root.afs -localauth");
+run("$vos addsite $server $partition root.cell -localauth");
+run("$vos release root.afs -localauth");
+run("$vos release root.cell -localauth");
+ unwind("$vos remove $server $partition root.cell.readonly -localauth");
+ unwind("$vos remove $server $partition root.afs.readonly -localauth");
+
+# done.
+@unwinds = (); # clear unwinds
-@unwinds = ();
END {
-# If we fail before all the instances are created, we need to perform
-# our own bos shutdown
- system("$openafsdirpath->{'afssrvbindir'}/bos shutdown $server -localauth") if $shutdown_needed;
- run(pop @unwinds) while @unwinds;
+ if (!$dont_unwind && scalar @unwinds) {
+ print "\ninfo: Error encountered, unwinding...\n";
+ while (@unwinds) {
+ eval {
+ run(pop(@unwinds));
+ };
+ if ($@) {
+ print "warn: Unwind command failed.\n$@\n";
+ }
+ }
}
+}
--- /dev/null
+#!/usr/bin/env perl
+#
+# Remove cell files from this machine. Use with caution!
+#
+
+use warnings;
+use strict;
+use OpenAFS::Dirpath;
+use OpenAFS::OS;
+use OpenAFS::ConfigUtils;
+use Term::ReadLine;
+use Getopt::Long;
+use Pod::Usage;
+
+=head1 NAME
+
+ afs-rmcell - Delete AFS cell files from this machine.
+
+=head1 SYNOPSIS
+
+B<afs-rmcell> [B<--batch>] [B<--partition-id>=letter] [B<--help>] [B<--debug>]
+
+=head1 DESCRIPTION
+
+This script destroys the AFS database and volume files on this machine.
+Use with caution!
+
+=cut
+
+my $debug = 0;
+my $help = 0;
+my $batch = 0;
+my $partition_id = 'a';
+my $path = $OpenAFS::Dirpath::openafsdirpath;
+my $ostype = $path->{'ostype'};
+
+#-----------------------------------------------------------------------------------
+# main script
+
+GetOptions(
+ "debug" => \$debug,
+ "help" => \$help,
+ "batch" => \$batch,
+ "partition-id=s" => \$partition_id,
+ "ostype=s" => \$ostype,
+);
+
+$OpenAFS::ConfigUtils::debug = $debug;
+
+if ($help) {
+ pod2usage(1);
+ exit 0;
+}
+
+if ($> != 0) {
+ die "error: This script should run as root.\n";
+}
+
+# To be on the safe side, we do no accept the full partition name, just the letter id.
+# You'll have to manually delete volume files for unconventional partition names.
+unless ($partition_id=~/^(([a-z])|([a-h][a-z])|([i][a-v]))$/) {
+ die "error: Invalid partition id specified.\n".
+ "info: Please specify a valid partition abbreviation, for example --partition-id='a' for /vicepa\n";
+}
+
+unless ($batch) {
+ my $rl = new Term::ReadLine('afs-rmcell');
+ print "\n*** WARNING!! WARNING!! WARNING!! *** \n";
+ print "You are about to permanently DESTROY the OpenAFS configuration, database, and volumes on this machine!\n\n";
+ my $answer = $rl->readline("Do you really want to destroy the AFS cell data? (y/n) [n] ");
+ unless ($answer=~/^y/i ) {
+ print "info: Aborted.\n";
+ exit 0;
+ }
+}
+
+my $os = OpenAFS::OS::create('ostype'=>$ostype, 'debug'=>$debug);
+
+# make sure the client init script has the correct paths.
+$os->configure_client();
+
+run($os->command('client-stop'));
+run($os->command('fileserver-stop'));
+run($os->command('client-forcestop'));
+
+$os->remove("$path->{'afsdbdir'}/prdb.DB0");
+$os->remove("$path->{'afsdbdir'}/prdb.DBSYS1");
+$os->remove("$path->{'afsdbdir'}/vldb.DB0");
+$os->remove("$path->{'afsdbdir'}/vldb.DBSYS1");
+$os->remove("$path->{'afsbosconfigdir'}/BosConfig");
+$os->remove("$path->{'afslogsdir'}/*");
+$os->remove("$path->{'afslocaldir'}/*");
+$os->remove("$path->{'afsconfdir'}/UserList");
+$os->remove("$path->{'afsconfdir'}/ThisCell");
+$os->remove("$path->{'afsconfdir'}/CellServDB");
+$os->remove("$path->{'afsconfdir'}/KeyFile");
+$os->remove("$path->{'afsconfdir'}/krb.conf");
+$os->remove("/vicep$partition_id/AFSIDat ");
+$os->remove("/vicep$partition_id/V*.vol");
+$os->remove("/vicep$partition_id/Lock");
+
$host = `hostname`;
&AFS_Init();
-&AFS_vos_restore("badvol","localhost","a","/usr/tmp/t.uniq-bad","100","full",);
+&AFS_vos_restore("badvol","localhost","a","/tmp/t.uniq-bad","100","full",);
&AFS_bos_salvage("localhost","a","badvol",,,,,,);
&AFS_fs_mkmount("badvol", "badvol",,,);
if ( -f "badvol/test" ) {
&AFS_Init();
&AFS_bos_exec(localhost,"$openafsdirpath->{'afssrvbindir'}/foo.sh",);
-if (-f "/usr/tmp/garbage") {
+if (-f "/tmp/garbage") {
} else {
exit(1);
}
-unlink "/usr/tmp/garbage";
+unlink "/tmp/garbage";
exit(0);
open(FOO, ">foo.sh");
print FOO "#!/bin/sh\n";
-print FOO "touch /usr/tmp/garbage\n";
+print FOO "touch /tmp/garbage\n";
print FOO "exit 0\n";
close FOO;
chmod 0755, "foo.sh";
#!/bin/sh
FS=${FS:-${objdir}/../appl/fs/fs}
${FS} sa . system:anyuser all || exit 1
-${objdir}/write-rand /usr/tmp/$$ 262144 || exit 1
-${objdir}/afscp -i -b 56k /usr/tmp/$$ `pwd`/$$ || exit 1
-diff /usr/tmp/$$ `pwd`/$$ || exit 1
-${objdir}/afscp -i -b 32k /usr/tmp/$$ `pwd`/$$ || exit 1
-diff /usr/tmp/$$ `pwd`/$$ || exit 1
+${objdir}/write-rand /tmp/$$ 262144 || exit 1
+${objdir}/afscp -i -b 56k /tmp/$$ `pwd`/$$ || exit 1
+diff /tmp/$$ `pwd`/$$ || exit 1
+${objdir}/afscp -i -b 32k /tmp/$$ `pwd`/$$ || exit 1
+diff /tmp/$$ `pwd`/$$ || exit 1
exit 0
FS=${FS:-${objdir}/../appl/fs/fs}
${FS} sa . system:anyuser all || exit 1
${objdir}/write-rand $$ 262144 || exit 1
-${objdir}/afscp -o -b 56k `pwd`/$$ /usr/tmp/$$ || exit 1
-diff /usr/tmp/$$ `pwd`/$$ || exit 1
-${objdir}/afscp -o -b 32k `pwd`/$$ /usr/tmp/$$ || exit 1
-diff /usr/tmp/$$ `pwd`/$$ || exit 1
+${objdir}/afscp -o -b 56k `pwd`/$$ /tmp/$$ || exit 1
+diff /tmp/$$ `pwd`/$$ || exit 1
+${objdir}/afscp -o -b 32k `pwd`/$$ /tmp/$$ || exit 1
+diff /tmp/$$ `pwd`/$$ || exit 1
exit 0
#!/bin/sh
-# $Id: hardlink5,v 1.1 2002/01/14 07:49:17 shadow Exp $
+# $Id: hardlink5,v 1.1.10.1 2008/01/21 19:50:32 shadow Exp $
if test "X$FAST" != "X" ; then echo "Not running $0" ; exit 0 ; fi
FS=${FS:-${objdir}/../appl/fs/fs}
+# Should not be able to create a hardlink across volumes. In this test
+# ../../service is mounted on the separate volume. Suppress the expected
+# error message from the ln command which clutters the test output.
touch file
-ln file ../../service/file && exit 1
+ln file ../../service/file 2>/dev/null && (echo "hardlink ../../service/file should not have been created"; exit 1)
rm file
#!/usr/bin/env perl
-use Term::ReadLine;
use strict;
-use OpenAFS::ConfigUtils;
+use warnings;
use OpenAFS::Dirpath;
-use OpenAFS::OS;
use OpenAFS::Auth;
use Getopt::Long;
-use vars qw($admin $server $cellname $cachesize $part
- $requirements_met $shutdown_needed $csdb);
-&OpenAFS::Auth::authadmin();
+# options
+my $debug = 0;
+my $cellname = 'testcell';
+my $admin = 'admin';
+my $kerberos_type = 'MIT';
+my $kerberos_realm = 'TESTCELL';
+my $kerberos_keytab = "$openafsdirpath->{'afsconfdir'}/krb5.keytab";
+
+GetOptions (
+ "debug!" => \$debug,
+ "cellname=s" => \$cellname,
+ "admin=s" => \$admin,
+ "kerberos-type=s" => \$kerberos_type,
+ "kerberos-realm=s" => \$kerberos_realm,
+ "kerberos-keytab=s" => \$kerberos_keytab,
+ );
+
+my $auth = OpenAFS::Auth::create(
+ 'debug'=>$debug,
+ 'type'=>$kerberos_type,
+ 'cell'=>$cellname,
+ 'realm'=>$kerberos_realm,
+ 'keytab'=>$kerberos_keytab,
+ );
+
+# Run as the administrator.
+$auth->authorize($admin);
#!/bin/sh
#
-# $Id: run-tests.in,v 1.5 2002/02/21 06:06:00 shadow Exp $
+# $Id: run-tests.in,v 1.5.8.1 2008/01/21 19:50:32 shadow Exp $
#
+
+# Directory paths configured during the build.
+if test -f dirpath.conf; then
+ . dirpath.conf
+else
+ echo "error: Missing dirpath.conf file, try make dirpath.conf"
+fi
+
+if test -f run-test.conf; then
+ . run-test.conf
+fi
+
+
srcdir=@srcdir@
objdir=`pwd`
SHELL=/bin/sh
VERSION=@VERSION@
PACKAGE=@PACKAGE@
host=@host@
-RUNAS=nobody
-FS=@afssrvbindir@/fs
+RUNAS=
+FS=${afssrvbindir}/fs
+CELLNAME=${CELLNAME-testcell}
export FS
export SHELL
+
+PERL5LIB=${PERL5LIB-`pwd`}
AFSROOT=${AFSROOT-/afs}
+TESTDIR=${TESTDIR-unreplicated}
+WORKDIR=$AFSROOT/$CELLNAME/$TESTDIR
export AFSROOT
+export TESTDIR
+export WORKDIR
+export PERL5LIB
+
BASIC_TESTS="creat1 \
mkdir1 \
aclcopy.pl"
EXEC_TESTS="exec \
- hello-world \
- build-openafs"
+ hello-world"
MMAP_TESTS="append-over-page \
mmap-shared-write \
aclcopy.pl \
exec \
hello-world \
- build-openafs \
append-over-page \
mmap-shared-write \
mmap-vs-read2 \
-large) LARGE=yes;;
-j) PARALLELL="&";;
-verbose) VERBOSE=yes;;
- -user) RUNAS=$1; shift;;
+ -user) RUNAS=$2; shift;;
-x) SHELLVERBOSE="-x";;
-p) PRINT_CACHESIZE="yes";;
-basic) TESTS="$BASIC_TESTS";TEST_MODE="basic";;
-help|--help) echo $usage;
echo "tests available: $linebreak"; for a in "$ALL_TESTS"; do echo $a ; done;
exit 0;;
- -version|--version) echo "$0 $Id: run-tests.in,v 1.5 2002/02/21 06:06:00 shadow Exp $"; exit 0;;
+ -version|--version) echo "$0 $Id: run-tests.in,v 1.5.8.1 2008/01/21 19:50:32 shadow Exp $"; exit 0;;
-*) echo "$0: Bad option $1"; echo $usage; exit 1;;
*) break;;
esac
if test "$a" = "setgroups" ; then
b="${objdir}/asu root $b"
else
- b="${objdir}/asu $RUNAS $b"
+ if test "X$RUNAS" != "X" ; then
+ b="${objdir}/asu $RUNAS $b"
+ fi
fi
tmpdir="`hostname`-$a-`date +%Y-%m-%d-%H-%M-%S`-$$"
cd $WORKDIR && mkdir $tmpdir && (cd $tmpdir && $b ${PARALLELL})
if test "$FAILEDTESTS"; then
echo "-----------------------------------------------------------"
echo "Failed test(s) were: $FAILEDTESTS"
+ exitval=1
else
echo "All test(s) were succesful!"
+ exitval=0
fi
exit $exitval
$host = `hostname`;
&AFS_Init();
-&AFS_vos_dump("service",0,"/usr/tmp/service.dump",);
+&AFS_vos_dump("service",0,"/tmp/service.dump",);
exit(0);
$host = `hostname`;
&AFS_Init();
-&AFS_vos_restore("service2","localhost","a","/usr/tmp/service.dump",,"full",);
+&AFS_vos_restore("service2","localhost","a","/tmp/service.dump",,"full",);
exit(0);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/tsm41/aix_aklog.c,v 1.1.4.2 2007/07/13 19:55:35 shadow Exp $");
+ ("$Header: /cvs/openafs/src/tsm41/aix_aklog.c,v 1.1.4.6 2008/01/03 18:05:26 shadow Exp $");
#if defined(AFS_AIX51_ENV)
#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/file.h>
+#include <sys/pag.h>
#include <errno.h>
#include <usersec.h>
+#include <syslog.h>
#include <krb5.h>
#include <afs/dirpath.h>
#include <rx/rxkad.h>
#include <afs/auth.h>
+#include <afs/ptserver.h>
#include "aix_auth_prototypes.h"
struct afsconf_cell ak_cellconfig; /* General information about the cell */
* Other prototypes
*/
-static krb5_error_code get_credv5(krb5_context context, char *, char *,
+static krb5_error_code get_credv5(krb5_context context, char *, char *, char *,
char *, krb5_creds **);
static int get_user_realm(krb5_context, char *);
char *afs_realm_of_cell(krb5_context context, struct afsconf_cell *cellconfig, int fallback)
{
static char krbrlm[REALM_SZ+1];
- char **hrealms = 0;
- krb5_error_code retval;
-
+ char **hrealms = 0;
+ krb5_error_code retval;
+
if (!cellconfig)
return 0;
-
+
if (fallback) {
char * p;
p = strchr(cellconfig->hostName[0], '.');
return 0;
if(!hrealms[0]) return 0;
strcpy(krbrlm, hrealms[0]);
-
+
if (hrealms) krb5_free_host_realm(context, hrealms);
}
return krbrlm;
int code, unixauthneeded, password_expires = -1;
int status;
krb5_context context;
-
+
krb5_init_context(&context);
*reenter = 0;
*message = (char *)0;
-
-#if 0
- if ((pwd = getpwnam(userName)) == NULL) {
- *message = (char *)malloc(256);
- sprintf(*message, "getpwnam for user failed\n");
- return AUTH_FAILURE;
- }
-#endif
-
- status = auth_to_cell(context, NULL, NULL);
+
+ status = auth_to_cell(context, userName, NULL, NULL);
+
if (status) {
*message = (char *)malloc(1024);
sprintf(*message, "Unable to obtain AFS tokens: %s.\n",
fcell[strlen(fcell) - 1] = '\0';
- auth_status = auth_to_cell(context, fcell, NULL);
+ auth_status = auth_to_cell(context, userName, fcell, NULL);
if (status == AKLOG_SUCCESS)
status = auth_status;
else
#endif
return AUTH_SUCCESS;
}
-
-static krb5_error_code get_credv5(krb5_context context,
- char *name, char *inst, char *realm,
- krb5_creds **creds)
+
+static krb5_error_code get_credv5(krb5_context context, char *user,
+ char *name, char *inst, char *realm,
+ krb5_creds **creds)
{
krb5_creds increds;
krb5_error_code r;
static krb5_principal client_principal = 0;
-
+ char *str;
+
memset((char *)&increds, 0, sizeof(increds));
/* instance may be ptr to a null string. Pass null then */
if ((r = krb5_build_principal(context, &increds.server,
- strlen(realm), realm,
- name,
- (inst && strlen(inst)) ? inst : (void *) NULL,
- (void *) NULL))) {
+ strlen(realm), realm,
+ name,
+ (inst && strlen(inst)) ? inst : (void *) NULL,
+ (void *) NULL))) {
return r;
}
-
- if (!_krb425_ccache) {
- r = krb5_cc_default(context, &_krb425_ccache);
- if (r)
- return r;
- }
- if (!client_principal) {
- r = krb5_cc_get_principal(context, _krb425_ccache, &client_principal);
- if (r)
- return r;
+ r = krb5_cc_default(context, &_krb425_ccache);
+ if (r) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: krb5_cc_default returns %d", r);
+ return r;
}
-
+ r = krb5_cc_get_principal(context, _krb425_ccache, &client_principal);
+ if (r) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: krb5_cc_get_principal returns %d", r);
+ return r;
+ }
increds.client = client_principal;
increds.times.endtime = 0;
- /* Ask for DES since that is what V4 understands */
+ /* Ask for DES since that is what V4 understands */
get_creds_enctype((&increds)) = ENCTYPE_DES_CBC_CRC;
-
+
r = krb5_get_credentials(context, 0, _krb425_ccache, &increds, creds);
-
+
return r;
}
{
static krb5_principal client_principal = 0;
int i;
-
+
if (!_krb425_ccache)
krb5_cc_default(context, &_krb425_ccache);
if (!client_principal)
krb5_cc_get_principal(context, _krb425_ccache, &client_principal);
-
+
i = realm_len(context, client_principal);
if (i > REALM_SZ-1) i = REALM_SZ-1;
strncpy(realm,realm_data(context, client_principal), i);
realm[i] = 0;
-
+
return 0;
}
int
aklog_passwdrestrictions(char *userName, char *newPasswd, char *oldPasswd,
- char **message)
+ char **message)
{
return AUTH_SUCCESS;
}
{
int status = 0;
struct afsconf_dir *configdir;
-
+
memset(local_cell, 0, sizeof(local_cell));
memset((char *)cellconfig, 0, sizeof(*cellconfig));
-
+
if (!(configdir = afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH))) {
return AFSCONF_NODB;
}
-
+
if (afsconf_GetLocalCell(configdir, local_cell, MAXCELLCHARS)) {
return AFSCONF_FAILURE;
}
-
+
if ((cell == NULL) || (cell[0] == 0))
cell = local_cell;
-
- linkedcell[0] = '\0';
+
+ linkedcell[0] = '\0';
if (afsconf_GetCellInfo(configdir, cell, NULL, cellconfig)) {
status = AFSCONF_NOTFOUND;
}
if (cellconfig->linkedCell)
strncpy(linkedcell,cellconfig->linkedCell,MAXCELLCHARS);
-
+
(void) afsconf_Close(configdir);
-
+
return(status);
}
* doing anything. Otherwise, log to it and mark that it has been logged
* to.
*/
-static int auth_to_cell(krb5_context context, char *cell, char *realm)
+static int auth_to_cell(krb5_context context, char *user, char *cell, char *realm)
{
int status = 0;
char username[BUFSIZ]; /* To hold client username structure */
afs_int32 viceId; /* AFS uid of user */
-
+
char name[ANAME_SZ]; /* Name of afs key */
char primary_instance[INST_SZ]; /* Instance of afs key */
char secondary_instance[INST_SZ]; /* Backup instance to try */
struct ktc_principal aserver;
struct ktc_principal aclient;
struct ktc_token atoken, btoken;
- int afssetpag = 1;
-
+ int afssetpag = 0, uid = -1;
+ struct passwd *pwd;
+
memset(name, 0, sizeof(name));
memset(primary_instance, 0, sizeof(primary_instance));
memset(secondary_instance, 0, sizeof(secondary_instance));
memset(realm_of_user, 0, sizeof(realm_of_user));
memset(realm_of_cell, 0, sizeof(realm_of_cell));
-
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog starting: user %s uid %d", user, getuid());
if (confname[0] == '\0') {
strncpy(confname, AFSDIR_CLIENT_ETC_DIRPATH, sizeof(confname));
confname[sizeof(confname) - 2] = '\0';
}
-
+
/* NULL or empty cell returns information on local cell */
if ((status = get_cellconfig(cell, &ak_cellconfig,
- local_cell, linkedcell)))
+ local_cell, linkedcell))) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: get_cellconfig returns %d", status);
return(status);
-
+ }
+
strncpy(cell_to_use, ak_cellconfig.name, MAXCELLCHARS);
cell_to_use[MAXCELLCHARS] = 0;
-
+
/*
* Find out which realm we're supposed to authenticate to. If one
* is not included, use the kerberos realm found in the credentials
char *afs_realm = afs_realm_of_cell(context, &ak_cellconfig, FALSE);
if (!afs_realm) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: afs_realm_of_cell returns %d", status);
return AFSCONF_FAILURE;
}
* afs@<realm>
*/
- status = get_credv5(context, name, primary_instance, realm_of_cell,
+ status = get_credv5(context, user, name, primary_instance, realm_of_cell,
&v5cred);
if ((status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN ||
char *afs_realm = afs_realm_of_cell(context, &ak_cellconfig, TRUE);
if (!afs_realm) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: afs_realm_of_cell returns %d", status);
return AFSCONF_FAILURE;
}
secondary_instance[0] = '\0';
}
- status = get_credv5(context, name, primary_instance, realm_of_cell,
- &v5cred);
-
+ status = get_credv5(context, user, name, primary_instance,
+ realm_of_cell, &v5cred);
}
if (status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN ||
status == KRB5KRB_ERR_GENERIC) {
if (try_secondary)
- status = get_credv5(context, name, secondary_instance,
+ status = get_credv5(context, user, name, secondary_instance,
realm_of_cell, &v5cred);
}
if (status) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: get_credv5 returns %d", status);
return status;
}
atoken.ticketLen = v5cred->ticket.length;
memcpy(atoken.ticket, v5cred->ticket.data, atoken.ticketLen);
}
-
+
if ((status = get_user_realm(context, realm_of_user))) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: get_user_realm returns %d", status);
return KRB5_REALM_UNKNOWN;
}
if (strcmp(realm_of_user, realm_of_cell)) {
}
strcpy(lastcell, aserver.cell);
-
- if (!pr_Initialize (0, confname, aserver.cell))
- status = pr_SNameToId (username, &viceId);
-
+
/*
* This is a crock, but it is Transarc's crock, so
* we have to play along in order to get the
* the code for tokens, this hack (AFS ID %d) will
* not work if you change %d to something else.
*/
+
+#if 0
+ /* This actually crashes long-running daemons */
+ if (!pr_Initialize (0, confname, aserver.cell))
+ status = pr_SNameToId (username, &viceId);
+ if ((status == 0) && (viceId != ANONYMOUSID))
+ sprintf (username, "AFS ID %d", (int) viceId);
+#else
+ /*
+ * This actually only works assuming that your uid and pts space match
+ * and probably this works only for the local cell anyway.
+ */
+
+ if ((uid = getuid()) == 0) {
+ if ((pwd = getpwnam(user)) == NULL) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: getpwnam %s failed", user);
+ return AUTH_FAILURE;
+ }
+ }
+ /* Don't do first-time registration. Handle only the simple case */
+ if ((status == 0) && (viceId != ANONYMOUSID))
+ sprintf (username, "AFS ID %d", ((uid==0)?(int)pwd->pw_uid:(int)uid));
+#endif
+
/* Reset the "aclient" structure before we call ktc_SetToken.
* This structure was first set by the ktc_GetToken call when
* we were comparing whether identical tokens already existed.
strcpy(aclient.instance, "");
strncpy(aclient.cell, realm_of_user, MAXKTCREALMLEN - 1);
+#ifndef AFS_AIX51_ENV
/* on AIX 4.1.4 with AFS 3.4a+ if a write is not done before
* this routine, it will not add the token. It is not clear what
- * is going on here! So we will do the following operation
+ * is going on here! So we will do the following operation.
+ * On AIX 5 this kills our parent. So we won't.
*/
write(2,"",0); /* dummy write */
- status = ktc_SetToken(&aserver, &atoken, &aclient, afssetpag);
-
+#endif
+ afssetpag = (getpagvalue("afs") > 0) ? 1 : 0;
+ if (uid == 0) {
+ struct sigaction newAction, origAction;
+ pid_t cid, pcid;
+ int wstatus;
+
+ sigemptyset(&newAction.sa_mask);
+ newAction.sa_handler = SIG_DFL;
+ newAction.sa_flags = 0;
+ status = sigaction(SIGCHLD, &newAction, &origAction);
+ if (status) {
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: sigaction returned %d", status);
+ return AUTH_FAILURE;
+ }
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog: in daemon? forking to set tokens");
+ cid = fork();
+ if (cid <= 0) {
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog child: setting tokens");
+ setuid(pwd->pw_uid);
+ status = ktc_SetToken(&aserver, &atoken, &aclient, afssetpag);
+ if (status != 0)
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog child: set tokens, returning %d", status);
+ exit((status == 0)?0:255);
+ } else {
+ do {
+ pcid = waitpid(cid, &wstatus, 0);
+ } while ((pcid == -1) && (errno == EINTR));
+ if ((pcid == cid) && WIFEXITED(wstatus))
+ status = WEXITSTATUS(wstatus);
+ else
+ status = -1;
+ }
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog: collected child status %d", status);
+ sigaction(SIGCHLD, &origAction, NULL);
+ } else {
+ status = ktc_SetToken(&aserver, &atoken, &aclient, afssetpag);
+ }
+ if (status != 0)
+ syslog(LOG_AUTH|LOG_ERR, "LAM aklog: set tokens returned %d", status);
+ else
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog: set tokens, pag %d", getpagvalue("afs"));
return(status);
}
aklog_initialize(struct secmethod_table *meths)
{
memset(meths, 0, sizeof(struct secmethod_table));
-
+ syslog(LOG_AUTH|LOG_DEBUG, "LAM aklog loaded: uid %d pag %d", getuid(), getpagvalue("afs"));
/*
* Initialize the exported interface routines.
* Aside from method_authenticate, these are just no-ops.
meths->method_passwdexpired = aklog_passwdexpired;
meths->method_passwdrestrictions = aklog_passwdrestrictions;
meths->method_getpasswd = aklog_getpasswd;
-
+
return (0);
}
#endif /* AFS_AIX51_ENV */
${CC} ${CFLAGS} -o udebug udebug.o libubik.a $(LIBS)
ubik_int.cs.c: ubik_int.xg
- ${RXGEN} -x -C -o $@ ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -A -C -o $@ ${srcdir}/ubik_int.xg
ubik_int.ss.c: ubik_int.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -A -S -o $@ ${srcdir}/ubik_int.xg
ubik_int.xdr.c: ubik_int.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -A -c -o $@ ${srcdir}/ubik_int.xg
ubik_int.h: ubik_int.xg
- ${RXGEN} -x -h -o $@ ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -A -h -o $@ ${srcdir}/ubik_int.xg
ubik_int.cs.c: ubik_int.h
ubik_int.ss.c: ubik_int.h
ubik_int.xdr.c: ubik_int.h
Kubik_int.cs.c: ubik_int.xg Kubik_int.h
- ${RXGEN} -x -k -C -o Kubik_int.cs.c ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -k -A -C -o Kubik_int.cs.c ${srcdir}/ubik_int.xg
Kubik_int.xdr.c: ubik_int.xg
- ${RXGEN} -x -k -c -o Kubik_int.xdr.c ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -k -A -c -o Kubik_int.xdr.c ${srcdir}/ubik_int.xg
Kubik_int.h: ubik_int.xg
- ${RXGEN} -x -k -h -o Kubik_int.h ${srcdir}/ubik_int.xg
+ ${RXGEN} -x -k -A -h -o Kubik_int.h ${srcdir}/ubik_int.xg
utst_int.ss.o: utst_int.ss.c utst_int.xdr.c
utst_int.cs.o: utst_int.cs.c utst_int.xdr.c
utst_int.xdr.o: utst_int.xdr.c utst_int.h
utst_int.cs.c: utst_int.xg
- ${RXGEN} -C -o $@ ${srcdir}/utst_int.xg
+ ${RXGEN} -A -C -o $@ ${srcdir}/utst_int.xg
utst_int.ss.c: utst_int.xg
- ${RXGEN} -S -o $@ ${srcdir}/utst_int.xg
+ ${RXGEN} -A -S -o $@ ${srcdir}/utst_int.xg
utst_int.xdr.c: utst_int.xg
- ${RXGEN} -c -o $@ ${srcdir}/utst_int.xg
+ ${RXGEN} -A -c -o $@ ${srcdir}/utst_int.xg
utst_int.h: utst_int.xg
- ${RXGEN} -h -o $@ ${srcdir}/utst_int.xg
+ ${RXGEN} -A -h -o $@ ${srcdir}/utst_int.xg
utst_int.cs.c: utst_int.h
utst_int.ss.c: utst_int.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19.2.3 2004/10/18 17:44:03 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19.2.6 2008/03/10 22:35:36 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
#include <errno.h>
#include <lock.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <rx/rx_multi.h>
*/
/* procedure called from debug rpc call to get this module's state for debugging */
+void
ubeacon_Debug(aparm)
register struct ubik_debug *aparm;
{
* we're sync site or we want to be the sync site. It runs in its very own light-weight
* process.
*/
-ubeacon_Interact()
+void *
+ubeacon_Interact(void *dummy)
{
register afs_int32 code;
struct timeval tt;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/disk.c,v 1.14 2003/12/08 01:45:31 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ubik/disk.c,v 1.14.2.1 2007/10/30 15:24:06 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <netinet/in.h>
#endif
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <lock.h>
#include <rx/xdr.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/phys.c,v 1.8.2.1 2006/03/09 06:42:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/phys.c,v 1.8.2.3 2007/12/10 22:46:07 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <lwp.h>
#include <lock.h>
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#define UBIK_INTERNALS 1
#include "ubik.h"
}
/* not found, open it and try to enter in cache */
- strcpy(pbuffer, adbase->pathName);
- strcat(pbuffer, ".DB");
- if (afid < 0) {
- i = -afid;
- strcat(pbuffer, "SYS");
- } else
- i = afid;
- sprintf(temp, "%d", i);
- strcat(pbuffer, temp);
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB%s%d", adbase->pathName,
+ (afid<0)?"SYS":"", (afid<0)?-afid:afid);
fd = open(pbuffer, O_CREAT | O_RDWR, 0600);
if (fd < 0) {
/* try opening read-only */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/recovery.c,v 1.13 2003/12/08 02:41:22 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ubik/recovery.c,v 1.13.2.4 2008/03/10 22:35:36 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <time.h>
+#include <fcntl.h>
#else
#include <sys/file.h>
#include <netinet/in.h>
#endif
#include <assert.h>
#include <lock.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <errno.h>
* requests. However, the recovery module still has one more task:
* propagating the dbase out to everyone who is up in the network.
*/
-int
-urecovery_Interact(void)
+void *
+urecovery_Interact(void *dummy)
{
afs_int32 code, tcode;
struct ubik_server *bestServer = NULL;
struct timeval tv;
int length, tlen, offset, file, nbytes;
struct rx_call *rxcall;
- char tbuffer[256];
+ char tbuffer[1024];
struct ubik_stat ubikstat;
struct in_addr inAddr;
+#ifndef OLD_URECOVERY
+ char pbuffer[1028];
+ int flen, fd = -1;
+ afs_int32 epoch, pass;
+#endif
/* otherwise, begin interaction */
urecovery_state = 0;
urecovery_state |= UBIK_RECHAVEDB;
} else {
/* we don't have the best version; we should fetch it. */
-#if defined(UBIK_PAUSE)
DBHOLD(ubik_dbase);
-#else
- ObtainWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
urecovery_AbortAll(ubik_dbase);
/* Rx code to do the Bulk fetch */
goto FetchEndCall;
}
- /* Truncate the file firest */
+#ifdef OLD_URECOVERY
+ /* Truncate the file first */
code = (*ubik_dbase->truncate) (ubik_dbase, file, 0);
if (code) {
ubik_dprint("truncate io error=%d\n", code);
goto FetchEndCall;
}
-
+ tversion.counter = 0;
+#endif
/* give invalid label during file transit */
tversion.epoch = 0;
- tversion.counter = 0;
code = (*ubik_dbase->setlabel) (ubik_dbase, file, &tversion);
if (code) {
ubik_dprint("setlabel io error=%d\n", code);
goto FetchEndCall;
}
+#ifndef OLD_URECOVERY
+ flen = length;
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.TMP", ubik_dbase->pathName);
+ fd = open(pbuffer, O_CREAT | O_RDWR | O_TRUNC, 0600);
+ if (fd < 0) {
+ code = errno;
+ goto FetchEndCall;
+ }
+ code = lseek(fd, HDRSIZE, 0);
+ if (code != HDRSIZE) {
+ close(fd);
+ goto FetchEndCall;
+ }
+#endif
while (length > 0) {
tlen = (length > sizeof(tbuffer) ? sizeof(tbuffer) : length);
+#ifndef AFS_PTHREAD_ENV
+ if (pass % 4 == 0)
+ IOMGR_Poll();
+#endif
nbytes = rx_Read(rxcall, tbuffer, tlen);
if (nbytes != tlen) {
ubik_dprint("Rx-read bulk error=%d\n", code = BULK_ERROR);
code = EIO;
+ close(fd);
goto FetchEndCall;
}
+#ifdef OLD_URECOVERY
nbytes =
(*ubik_dbase->write) (ubik_dbase, file, tbuffer, offset,
tlen);
+#else
+ nbytes = write(fd, tbuffer, tlen);
+ pass++;
+#endif
if (nbytes != tlen) {
code = UIOERROR;
+ close(fd);
goto FetchEndCall;
}
offset += tlen;
length -= tlen;
}
+#ifndef OLD_URECOVERY
+ code = close(fd);
+ if (code)
+ goto FetchEndCall;
+#endif
code = EndDISK_GetFile(rxcall, &tversion);
FetchEndCall:
tcode = rx_EndCall(rxcall, code);
urecovery_state |= UBIK_RECHAVEDB;
memcpy(&ubik_dbase->version, &tversion,
sizeof(struct ubik_version));
+#ifdef OLD_URECOVERY
(*ubik_dbase->sync) (ubik_dbase, 0); /* get data out first */
+#else
+ afs_snprintf(tbuffer, sizeof(tbuffer), "%s.DB0", ubik_dbase->pathName);
+#ifdef AFS_NT40_ENV
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.OLD", ubik_dbase->pathName);
+ code = unlink(pbuffer);
+ if (!code)
+ code = rename(tbuffer, pbuffer);
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.TMP", ubik_dbase->pathName);
+#endif
+ if (!code)
+ code = rename(pbuffer, tbuffer);
+ if (!code)
+#endif
/* after data is good, sync disk with correct label */
code =
(*ubik_dbase->setlabel) (ubik_dbase, 0,
&ubik_dbase->version);
+#ifndef OLD_URECOVERY
+#ifdef AFS_NT40_ENV
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.OLD", ubik_dbase->pathName);
+ unlink(pbuffer);
+#endif
+#endif
}
if (code) {
+#ifndef OLD_URECOVERY
+ unlink(pbuffer);
+ /*
+ * We will effectively invalidate the old data forever now.
+ * Unclear if we *should* but we do.
+ */
+#endif
ubik_dbase->version.epoch = 0;
ubik_dbase->version.counter = 0;
ubik_print("Ubik: Synchronize database failed (error = %d)\n",
code);
} else {
ubik_print("Ubik: Synchronize database completed\n");
+ urecovery_state |= UBIK_RECHAVEDB;
}
udisk_Invalidate(ubik_dbase, 0); /* data has changed */
LWP_NoYieldSignal(&ubik_dbase->version);
-#if defined(UBIK_PAUSE)
DBRELE(ubik_dbase);
-#else
- ReleaseWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
}
#if defined(UBIK_PAUSE)
if (!(urecovery_state & UBIK_RECSYNCSITE))
* database and overwrite this one.
*/
if (ubik_dbase->version.epoch == 1) {
-#if defined(UBIK_PAUSE)
DBHOLD(ubik_dbase);
-#else
- ObtainWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
urecovery_AbortAll(ubik_dbase);
ubik_epochTime = 2;
ubik_dbase->version.epoch = ubik_epochTime;
(*ubik_dbase->setlabel) (ubik_dbase, 0, &ubik_dbase->version);
udisk_Invalidate(ubik_dbase, 0); /* data may have changed */
LWP_NoYieldSignal(&ubik_dbase->version);
-#if defined(UBIK_PAUSE)
DBRELE(ubik_dbase);
-#else
- ReleaseWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
}
/* Check the other sites and send the database to them if they
/* now propagate out new version to everyone else */
dbok = 1; /* start off assuming they all worked */
-#if defined(UBIK_PAUSE)
DBHOLD(ubik_dbase);
-#else
- ObtainWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
/*
* Check if a write transaction is in progress. We can't send the
* db when a write is in progress here because the db would be
tv.tv_sec = 0;
tv.tv_usec = 50000;
while ((ubik_dbase->flags & DBWRITING) && (safety < 500)) {
-#if defined(UBIK_PAUSE)
DBRELE(ubik_dbase);
-#else
- ReleaseWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
/* sleep for a little while */
IOMGR_Select(0, 0, 0, 0, &tv);
tv.tv_usec += 10000;
safety++;
-#if defined(UBIK_PAUSE)
DBHOLD(ubik_dbase);
-#else
- ObtainWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
}
}
ts->currentDB = 1;
}
}
-#if defined(UBIK_PAUSE)
DBRELE(ubik_dbase);
-#else
- ReleaseWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
if (dbok)
urecovery_state |= UBIK_RECSENTDB;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12.2.3 2006/12/15 16:38:22 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12.2.6 2008/02/20 20:10:39 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
+#include <fcntl.h>
#else
#include <sys/file.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <lock.h>
#include <rx/xdr.h>
#include <rx/rx.h>
+#include <errno.h>
#include <afs/afsutil.h>
#define UBIK_INTERNALS
{
register afs_int32 code;
register struct ubik_dbase *dbase;
- char tbuffer[256];
+ char tbuffer[1024];
afs_int32 offset;
struct ubik_version tversion;
register int tlen;
struct rx_peer *tpeer;
struct rx_connection *tconn;
afs_uint32 otherHost;
+#ifndef OLD_URECOVERY
+ char pbuffer[1028];
+ int flen, fd = -1;
+ afs_int32 epoch, pass;
+#endif
/* send the file back to the requester */
afs_inet_ntoa(otherHost));
offset = 0;
+#ifdef OLD_URECOVERY
(*dbase->truncate) (dbase, file, 0); /* truncate first */
- tversion.epoch = 0; /* start off by labelling in-transit db as invalid */
tversion.counter = 0;
+#else
+ epoch =
+#endif
+ tversion.epoch = 0; /* start off by labelling in-transit db as invalid */
(*dbase->setlabel) (dbase, file, &tversion); /* setlabel does sync */
+#ifndef OLD_URECOVERY
+ flen = length;
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.TMP", ubik_dbase->pathName);
+ fd = open(pbuffer, O_CREAT | O_RDWR | O_TRUNC, 0600);
+ if (fd < 0) {
+ code = errno;
+ goto failed;
+ }
+ code = lseek(fd, HDRSIZE, 0);
+ if (code != HDRSIZE) {
+ close(fd);
+ goto failed;
+ }
+#else
+ pass = 0;
+#endif
memcpy(&ubik_dbase->version, &tversion, sizeof(struct ubik_version));
while (length > 0) {
tlen = (length > sizeof(tbuffer) ? sizeof(tbuffer) : length);
+#if !defined(OLD_URECOVERY) && defined(AFS_PTHREAD_ENV)
+ if (pass % 4 == 0)
+ IOMGR_Poll();
+#endif
code = rx_Read(rxcall, tbuffer, tlen);
if (code != tlen) {
DBRELE(dbase);
ubik_dprint("Rx-read length error=%d\n", code);
code = BULK_ERROR;
+ close(fd);
goto failed;
}
+#ifdef OLD_URECOVERY
code = (*dbase->write) (dbase, file, tbuffer, offset, tlen);
+#else
+ code = write(fd, tbuffer, tlen);
+ pass++;
+#endif
if (code != tlen) {
DBRELE(dbase);
ubik_dprint("write failed error=%d\n", code);
code = UIOERROR;
+ close(fd);
goto failed;
}
offset += tlen;
length -= tlen;
}
+#ifndef OLD_URECOVERY
+ code = close(fd);
+ if (code)
+ goto failed;
+#endif
/* sync data first, then write label and resync (resync done by setlabel call).
* This way, good label is only on good database. */
+#ifdef OLD_URECOVERY
(*ubik_dbase->sync) (dbase, file);
+#else
+ afs_snprintf(tbuffer, sizeof(tbuffer), "%s.DB0", ubik_dbase->pathName);
+#ifdef AFS_NT40_ENV
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.OLD", ubik_dbase->pathName);
+ code = unlink(pbuffer);
+ if (!code)
+ code = rename(tbuffer, pbuffer);
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.TMP", ubik_dbase->pathName);
+#endif
+ if (!code)
+ code = rename(pbuffer, tbuffer);
+ if (!code)
+#endif
code = (*ubik_dbase->setlabel) (dbase, file, avers);
+#ifndef OLD_URECOVERY
+#ifdef AFS_NT40_ENV
+ afs_snprintf(pbuffer, sizeof(pbuffer), "%s.DB0.OLD", ubik_dbase->pathName);
+ unlink(pbuffer);
+#endif
+#endif
memcpy(&ubik_dbase->version, avers, sizeof(struct ubik_version));
udisk_Invalidate(dbase, file); /* new dbase, flush disk buffers */
LWP_NoYieldSignal(&dbase->version);
DBRELE(dbase);
failed:
if (code) {
+#ifndef OLD_URECOVERY
+ unlink(pbuffer);
+ /* Failed to sync. Allow reads again for now. */
+ tversion.epoch = epoch;
+ (*dbase->setlabel) (dbase, file, &tversion);
+#endif
ubik_print
("Ubik: Synchronize database with server %s failed (error = %d)\n",
afs_inet_ntoa(otherHost), code);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/ubik.c,v 1.15.2.1 2006/06/12 21:53:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/ubik.c,v 1.15.2.3 2008/03/10 22:35:36 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
#include <time.h>
#include <lock.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/cellconfig.h>
struct rx_service *tservice;
extern int VOTE_ExecuteRequest(), DISK_ExecuteRequest();
- extern void rx_ServerProc();
extern int rx_stackSize;
initialize_U_error_table();
extern int urecovery_AbortAll(struct ubik_dbase *adbase);
extern int urecovery_CheckTid(register struct ubik_tid *atid);
extern int urecovery_Initialize(register struct ubik_dbase *adbase);
-extern int urecovery_Interact(void);
+extern void *urecovery_Interact(void *);
extern int DoProbe(struct ubik_server *server);
-extern int ubeacon_Interact();
+extern void *ubeacon_Interact(void *);
extern int sdisk_Interact();
extern int uvote_Interact();
extern int DISK_Abort();
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/ubikcmd.c,v 1.7 2003/07/15 23:17:05 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/ubikcmd.c,v 1.7.2.1 2007/10/30 15:24:06 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
#include <time.h>
#include <lock.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/udebug.c,v 1.16.2.2 2005/06/21 22:20:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/udebug.c,v 1.16.2.4 2007/10/31 04:13:49 shadow Exp $");
#include <sys/types.h>
#include <stdlib.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
}
static int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
{
char *hostName, *portName, *times;
afs_int32 hostAddr;
nsa.sa_flags = SA_FULLDUMP;
sigaction(SIGSEGV, &nsa, NULL);
#endif
- ts = cmd_CreateSyntax(NULL, CommandProc, 0, "probe ubik server");
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL, "probe ubik server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_REQUIRED, "server machine");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "IP port");
cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL, "print all info");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/uinit.c,v 1.6.2.3 2006/09/15 23:19:28 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ubik/uinit.c,v 1.6.2.4 2007/10/30 15:24:06 shadow Exp $");
#include <afs/stds.h>
#ifdef AFS_NT40_ENV
#include <sys/statfs.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/dirpath.h>
#include <errno.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/utst_client.c,v 1.7 2003/07/15 23:17:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/utst_client.c,v 1.7.2.1 2007/10/30 15:24:06 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
#include <time.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <lock.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/utst_server.c,v 1.8 2003/07/15 23:17:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/utst_server.c,v 1.8.2.1 2007/10/30 15:24:06 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#endif
#include <time.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <lock.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/vote.c,v 1.14 2003/12/08 01:45:31 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/ubik/vote.c,v 1.14.2.1 2007/10/30 15:24:06 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
#include <afs/afsutil.h>
#include <lock.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/afsutil.h>
client.o server.o: update.h global.h AFS_component_version_number.c
update.cs.c: update.xg
- ${RXGEN} -u -C -o $@ ${srcdir}/update.xg
+ ${RXGEN} -A -u -C -o $@ ${srcdir}/update.xg
update.ss.c: update.xg
- ${RXGEN} -S -o $@ ${srcdir}/update.xg
+ ${RXGEN} -A -S -o $@ ${srcdir}/update.xg
update.xdr.c: update.xg
- ${RXGEN} -c -o $@ ${srcdir}/update.xg
+ ${RXGEN} -A -c -o $@ ${srcdir}/update.xg
update.h: update.xg
- ${RXGEN} -u -h -o $@ ${srcdir}/update.xg
+ ${RXGEN} -A -u -h -o $@ ${srcdir}/update.xg
update.cs.c: update.h
upcate.ss.c: update.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/update/client.c,v 1.12.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/update/client.c,v 1.12.2.2 2007/10/30 15:24:08 shadow Exp $");
#include <afs/stds.h>
#ifdef AFS_AIX32_ENV
#include <sys/time.h>
#include <dirent.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/update/server.c,v 1.13.2.3 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/update/server.c,v 1.13.2.4 2007/10/30 15:24:08 shadow Exp $");
#include <afs/stds.h>
#ifdef AFS_AIX32_ENV
#include <sys/file.h>
#include <dirent.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/update/utils.c,v 1.10 2004/06/23 14:27:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/update/utils.c,v 1.10.2.1 2007/10/30 15:24:08 shadow Exp $");
#include <afs/stds.h>
#include <rx/rxkad.h>
#include <WINNT/afssw.h>
#endif
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/usd/usd_file.c,v 1.14 2004/03/03 22:41:05 rees Exp $");
+ ("$Header: /cvs/openafs/src/usd/usd_file.c,v 1.14.2.1 2007/10/30 15:24:08 shadow Exp $");
#include <errno.h>
#include <fcntl.h>
#include <sys/mtio.h>
#endif /* AFS_AIX_ENV */
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include <afs/debug.h>
#include <afsconfig.h>
#include <afs/param.h>
#include <stdio.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
extern int line;
extern int uss_perr;
char *s;
{
fprintf(stderr,"%s. ",s);
+return 0;
}
#include <afsconfig.h>
#include <afs/param.h>
-RCSID("$Header: /cvs/openafs/src/uss/lex.l,v 1.1 2003/06/19 16:55:10 shadow Exp $");
+RCSID("$Header: /cvs/openafs/src/uss/lex.l,v 1.1.2.3 2007/12/10 18:24:15 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "y.tab.h"
#include "uss_common.h"
#else
#define dprint(x)
#endif
+void Replace(char *in, char *out);
%}
/* definitions */
* and replaces the second with a null.
*/
+void
Replace(in, out)
char *in, *out;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss.c,v 1.8 2004/03/15 18:51:03 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss.c,v 1.8.2.3 2007/11/26 21:21:56 shadow Exp $");
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "uss_common.h" /*Common uss definitions, globals */
#include "uss_procs.h" /*Main uss operations */
* As advertised.
*------------------------------------------------------------------------*/
-static afs_int32
-GetCommon(a_as)
- register struct cmd_syndesc *a_as;
-
+static int
+GetCommon(register struct cmd_syndesc *a_as, void *arock)
{ /*GetCommon */
int code; /*Result of ka_LocalCell */
*------------------------------------------------------------------------*/
static int
-DelUser(a_as, a_rock)
- struct cmd_syndesc *a_as;
- char *a_rock;
-
+DelUser(struct cmd_syndesc *a_as, void *a_rock)
{ /*DelUser */
int code;
*------------------------------------------------------------------------*/
static int
-PurgeVolumes(a_as, a_rock)
- struct cmd_syndesc *a_as;
- char *a_rock;
-
+PurgeVolumes(struct cmd_syndesc *a_as, void *a_rock)
{ /*PurgeVolumes */
fprintf(stderr, "Sorry, purgevolumes has not yet been implemented.\n");
*------------------------------------------------------------------------*/
static int
-RestoreUser(a_as, a_rock)
- struct cmd_syndesc *a_as;
- char *a_rock;
-
+RestoreUser(struct cmd_syndesc *a_as, void *a_rock)
{ /*RestoreUser */
fprintf(stderr, "Sorry, restoreuser has not yet been implemented.\n");
*------------------------------------------------------------------------*/
extern int Pipe;
static int
-HandleBulk(a_as, a_rock)
- register struct cmd_syndesc *a_as;
- char *a_rock;
-
+HandleBulk(register struct cmd_syndesc *a_as, void *a_rock)
{ /*HandleBulk */
#define USS_BULK_CMD_CHARS 128
*------------------------------------------------------------------------*/
static int
-AddUser(a_as, a_rock)
- register struct cmd_syndesc *a_as;
- char *a_rock;
-
+AddUser(register struct cmd_syndesc *a_as, void *a_rock)
{ /*AddUser */
int i;
/* ----------------------------- add ----------------------------- */
- cs = cmd_CreateSyntax("add", AddUser, 0, "create a new user account");
+ cs = cmd_CreateSyntax("add", AddUser, NULL, "create a new user account");
cmd_AddParm(cs, "-user", CMD_SINGLE, 0, "login name");
cmd_AddParm(cs, "-realname", CMD_SINGLE, CMD_OPTIONAL,
"full name in quotes");
/* ---------------------------- bulk ----------------------------- */
- cs = cmd_CreateSyntax("bulk", HandleBulk, 0, "bulk input mode");
+ cs = cmd_CreateSyntax("bulk", HandleBulk, NULL, "bulk input mode");
cmd_AddParm(cs, "-file", CMD_SINGLE, 0, "bulk input file");
cmd_Seek(cs, AUSS_TEMPLATE);
cmd_AddParm(cs, "-template", CMD_SINGLE, CMD_OPTIONAL,
/* ---------------------------- delete --------------------------- */
- cs = cmd_CreateSyntax("delete", DelUser, 0, "delete a user account");
+ cs = cmd_CreateSyntax("delete", DelUser, NULL, "delete a user account");
cmd_AddParm(cs, "-user", CMD_SINGLE, 0, "login name");
cmd_AddParm(cs, "-mountpoint", CMD_SINGLE, CMD_OPTIONAL,
"mountpoint for user's volume");
#if USS_DONT_HIDE_SOME_FEATURES
/* ------------------------- purgevolumes ------------------------ */
- cs = cmd_CreateSyntax("purgevolumes", PurgeVolumes, 0,
+ cs = cmd_CreateSyntax("purgevolumes", PurgeVolumes, NULL,
"destroy a deleted user's volume");
cmd_AddParm(cs, "-volname", CMD_LIST, CMD_OPTIONAL | CMD_EXPANDS,
"Name(s) of volume(s) to destroy");
#if USS_DONT_HIDE_SOME_FEATURES
/* ---------------------------- restore -------------------------- */
- cs = cmd_CreateSyntax("restore", RestoreUser, 0,
+ cs = cmd_CreateSyntax("restore", RestoreUser, NULL,
"restore a deleted user account");
cmd_AddParm(cs, "-user", CMD_SINGLE, 0, "login name to restore");
cmd_AddParm(cs, "-uid", CMD_SINGLE, 0, "user id number");
if (doUnlog) {
code = uss_fs_UnlogToken(uss_Cell);
}
+ return 0;
} /*Main routine */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_acl.c,v 1.6.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_acl.c,v 1.6.2.2 2007/10/30 15:24:09 shadow Exp $");
#include "uss_acl.h"
#include "uss_common.h"
#include <netdb.h>
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#undef VIRTUE
#undef VICE
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_common.c,v 1.6 2003/07/15 23:17:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_common.c,v 1.6.2.1 2007/10/30 15:24:09 shadow Exp $");
#include "uss_common.h" /*Interface definitions */
#include <afs/kautils.h> /*MAXKTCREALMLEN & MAXKTCNAMELEN */
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/*
#include <stdio.h> /*I/O stuff */
#include <afs/afsutil.h>
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/*
* --------------------- Exported definitions ---------------------
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_fs.c,v 1.8 2003/07/15 23:17:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_fs.c,v 1.8.2.2 2007/11/26 21:21:56 shadow Exp $");
#include "uss_fs.h" /*Interface to this module */
#include <sys/types.h>
#endif
#include <netinet/in.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/venus.h>
#include "uss_common.h"
#endif /* USS_FS_DB */
return (-1);
}
-
+ return 0;
} /*uss_fs_MkMountPoint */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_kauth.c,v 1.10.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_kauth.c,v 1.10.2.2 2007/10/30 15:24:09 shadow Exp $");
#include "uss_kauth.h" /*Module interface */
#include "uss_common.h" /*Common defs & operations */
#include <errno.h>
#include <pwd.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/com_err.h>
#include <afs/kautils.h> /*MAXKTCREALMLEN*/
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_procs.c,v 1.9 2003/07/15 23:17:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_procs.c,v 1.9.2.1 2007/10/30 15:24:09 shadow Exp $");
#include "uss_procs.h" /*Module interface */
#include "uss_common.h" /*Common defs & operations */
#include <fcntl.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/kautils.h> /*MAXKTCREALMLEN*/
#undef USS_PROCS_DB
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/uss/uss_vol.c,v 1.10.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/uss/uss_vol.c,v 1.10.2.2 2007/10/30 15:24:09 shadow Exp $");
#include "uss_vol.h" /*Interface to this module */
#include "uss_common.h" /*Common definitions */
#include <netdb.h>
#include <errno.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/vlserver.h>
#include <afs/auth.h>
extern char *serverLogSyslogTag;
#endif
extern void vFSLog(const char *format, va_list args);
-extern void SetLogThreadNumProgram(int (*func) () );
+extern void SetLogThreadNumProgram(int (*func) (void) );
/*@printflike@*/ extern void FSLog(const char *format, ...);
#define ViceLog(level, str) if ((level) <= LogLevel) (FSLog str)
extern void SetupLogSignals(void);
extern int OpenLog(const char *fileName);
extern int ReOpenLog(const char *fileName);
-extern int LogThreadNum();
+extern int LogThreadNum(void);
/* snprintf.c */
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
RCSID
- ("$Header: /cvs/openafs/src/util/assert.c,v 1.11 2003/08/20 22:41:06 zacheiss Exp $");
+ ("$Header: /cvs/openafs/src/util/assert.c,v 1.11.2.2 2007/10/31 04:26:29 shadow Exp $");
#include <stdio.h>
#include "afsutil.h"
time_t when;
time(&when);
- afs_ctime(&when, tdate, 25);
+ (void)afs_ctime(&when, tdate, 25);
fprintf(stderr, "%s: Assertion failed! file %s, line %d.\n", tdate, file,
line);
fflush(stderr);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/casestrcpy.c,v 1.6.2.1 2006/07/31 17:15:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/casestrcpy.c,v 1.6.2.2 2007/10/30 15:24:09 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <ctype.h>
#include <stddef.h>
#include <stdarg.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/fileutil.c,v 1.7 2003/07/15 23:17:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/fileutil.c,v 1.7.2.1 2007/10/30 15:24:09 shadow Exp $");
#include <afs/stds.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <windows.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/get_krbrlm.c,v 1.6 2003/11/29 22:08:19 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/util/get_krbrlm.c,v 1.6.2.1 2007/10/30 15:24:09 shadow Exp $");
#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
#include "afsutil.h"
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/hostparse.c,v 1.13 2003/07/15 23:17:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/hostparse.c,v 1.13.2.1 2007/10/30 15:24:09 shadow Exp $");
#ifdef UKERNEL
#include "afs/sysincludes.h"
#include <netdb.h>
#include <ctype.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <errno.h>
#include "afsutil.h"
#endif /* UKERNEL */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/kreltime.c,v 1.8.2.4 2006/10/22 01:51:57 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/util/kreltime.c,v 1.8.2.5 2007/10/30 15:24:09 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include "ktime.h"
#include <time.h>
#include <ctype.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "afsutil.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/ktime.c,v 1.10.2.1 2004/10/18 07:12:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/ktime.c,v 1.10.2.2 2007/10/30 15:24:09 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <malloc.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <stdlib.h>
#include "afsutil.h"
#endif
RCSID
- ("$Header: /cvs/openafs/src/util/netutils.c,v 1.13.2.2 2007/01/12 05:23:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/netutils.c,v 1.13.2.5 2007/10/31 12:36:03 shadow Exp $");
#include <stdlib.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <ctype.h>
#ifdef KERNEL
#include "afs/sysincludes.h"
#define INADDR_LOOPBACK (afs_uint32)0x7f000001
#endif
+int ParseNetInfoFile_int(afs_uint32 *, afs_uint32 *, afs_uint32 *,
+ int, char reason[], const char *,
+ int);
/*
* The line parameter is a pointer to a buffer containing a string of
* bytes of the form
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/serverLog.c,v 1.22.2.11 2006/06/07 04:27:20 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/serverLog.c,v 1.22.2.14 2008/03/10 22:35:36 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include <fcntl.h>
#include <afs/stds.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/stat.h>
#include "afsutil.h"
#include "fileutil.h"
+#include <lwp.h>
#if defined(AFS_PTHREAD_ENV)
#include <assert.h>
#include <pthread.h>
{
return -1;
}
-static int (*threadNumProgram) () = dummyThreadNum;
+static int (*threadNumProgram) (void) = dummyThreadNum;
static int serverLogFD = -1;
static char ourName[MAXPATHLEN];
void
-SetLogThreadNumProgram(int (*func) () )
+SetLogThreadNumProgram(int (*func) (void) )
{
threadNumProgram = func;
}
va_end(args);
} /*FSLog */
-static int
-DebugOn(int loglevel)
+static void*
+DebugOn(void *param)
{
+ int loglevel = (int)param;
if (loglevel == 0) {
ViceLog(0, ("Reset Debug levels to 0\n"));
} else {
void
SetDebug_Signal(int signo)
{
-/* extern int IOMGR_SoftSig();*/
-
if (LogLevel > 0) {
LogLevel *= 5;
}
printLocks = 2;
#if defined(AFS_PTHREAD_ENV)
- DebugOn(LogLevel);
+ DebugOn((void *) LogLevel);
#else /* AFS_PTHREAD_ENV */
- IOMGR_SoftSig(DebugOn, LogLevel);
+ IOMGR_SoftSig(DebugOn, (void *) LogLevel);
#endif /* AFS_PTHREAD_ENV */
(void)signal(signo, SetDebug_Signal); /* on some platforms, this
if (printLocks > 0)
--printLocks;
#if defined(AFS_PTHREAD_ENV)
- DebugOn(LogLevel);
+ DebugOn((void *) LogLevel);
#else /* AFS_PTHREAD_ENV */
- IOMGR_SoftSig(DebugOn, LogLevel);
+ IOMGR_SoftSig(DebugOn, (void *) LogLevel);
#endif /* AFS_PTHREAD_ENV */
(void)signal(signo, ResetDebug_Signal); /* on some platforms,
ReOpenLog(const char *fileName)
{
int isfifo = 0;
-#if !defined(AFS_PTHREAD_ENV)
- int tempfd;
-#endif
#if !defined(AFS_NT40_ENV)
struct stat statbuf;
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/snprintf.c,v 1.21.2.2 2004/10/18 17:44:05 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/snprintf.c,v 1.21.2.5 2007/12/14 13:09:26 jaltman Exp $");
#include <sys/types.h>
#include <stdarg.h>
#include <stdio.h>
#include <ctype.h>
+#include <string.h>
#ifndef AFS_NT40_ENV
#include <netinet/in.h>
#include <netdb.h>
+#ifndef HAVE_VSYSLOG
+#include <syslog.h>
+#endif
#else
#include <winsock2.h>
#endif
#if defined(AFS_AIX32_ENV) || defined(AFS_SUN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SGI65_ENV)
#include <sys/socket.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#define MAXPREC 100
#endif /* AFS_OSF20_ENV || AFS_AIX32_ENV */
#ifndef AFS_NT40_ENV
+#ifndef HAVE_VSYSLOG
+void
+vsyslog(int priority, const char *format, va_list args)
+{
+ char buf[1024];
+ vsnprintf(buf, sizeof(buf), format, args);
+ syslog(priority, "%s", buf);
+}
+#endif
+
#if defined(AFS_OSF20_ENV) && !defined(AFS_DUX50_ENV) || defined(AFS_AIX32_ENV) || (defined(AFS_SUN55_ENV) && !defined(AFS_SUN56_ENV)) || !defined(HAVE_SNPRINTF)
#ifdef AFS_AIX51_ENV
#define _POSIX_PTHREAD_SEMANTICS
#include <afs/param.h>
#include <assert.h>
+#include <stdlib.h>
#include <stdio.h>
#ifndef AFS_NT40_ENV
#include <signal.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/strlcat.c,v 1.2 2003/07/15 23:17:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/strlcat.c,v 1.2.2.1 2007/10/31 04:26:29 shadow Exp $");
#ifndef HAVE_STRLCAT
#include <sys/types.h>
+#include <string.h>
/*
* Appends src to string dst of size siz (unlike strncat, siz is the
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/sys.c,v 1.6 2003/07/15 23:17:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/sys.c,v 1.6.2.1 2007/10/31 04:26:29 shadow Exp $");
#include <stdio.h>
#include "AFS_component_version_number.c"
int
-main()
+main(int argc, char **argv)
{
printf("%s\n", SYS_NAME);
return 0;
#endif
RCSID
- ("$Header: /cvs/openafs/src/util/uuid.c,v 1.16.2.1 2005/12/24 01:09:55 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/uuid.c,v 1.16.2.2 2007/10/30 15:24:09 shadow Exp $");
#ifdef KERNEL
#include "afs/sysincludes.h"
#else /* KERNEL */
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <process.h>
#include <sys/time.h>
#endif /* ITIMER_REAL */
#include <net/if.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/util/volparse.c,v 1.11 2003/07/15 23:17:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/util/volparse.c,v 1.11.2.1 2007/10/30 15:24:09 shadow Exp $");
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
cacheout.o: cacheout.c
${DEST}/bin/fs ${DEST}/root.server/usr/afs/bin/fs: fs
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/livesys: livesys
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/up: up
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/etc/fstrace: fstrace
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/bin/cmdebug: cmdebug
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
alpha_osf1 | alpha_osf20 | alpha_osf30 | alpha_osf32 | alpha_osf32c | alpha_dux??) \
${CC} -o kdump kdump.o ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a ${XLIBS} -ll -lmld;; \
ncrx86_* ) ${CC} -o kdump kdump.o ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a -lelf ${XLIBS} ;; \
- *nbsd*) touch kdump ;; \
+ *bsd*) touch kdump ;; \
* ) ${CC} -o kdump kdump.o ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/util.a ${XLIBS} ;; \
esac
esac || exit $$?; \
done \
;; \
- *nbsd*) \
+ *bsd*) \
touch kdump.o ;; \
*) \
${CC} ${KERN_DBG} ${KERN_OPTMZ} -I${TOP_SRCDIR} -I${TOP_INCDIR}/afs \
ln -fs kdump.IP20 ${DEST}/etc/kdump.IP22; \
ln -fs kdump.IP20 ${DEST}/etc/kdump.IP32; \
for f in kdump.IP??; \
- do ${INSTALL} -s $$f ${DEST}/etc/$$f || exit $$? ; \
+ do ${INSTALL} $$f ${DEST}/etc/$$f || exit $$? ; \
done ;; \
sun*_5[789] | sun*_510 ) \
${INSTALLex} -f ${srcdir}/kdump.sh.solaris7 ${DEST}/etc/kdump; \
- ${INSTALL} -s -f ${srcdir}/kdump ${DEST}/etc/kdump32;; \
+ ${INSTALL} -f ${srcdir}/kdump ${DEST}/etc/kdump32;; \
*alpha_linux* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.linux ${DEST}/etc/kdump; \
- ${INSTALL} -s kdump-alpha_linux-${LINUX_VERSION} $@ ;; \
+ ${INSTALL} kdump-alpha_linux-${LINUX_VERSION} $@ ;; \
*linux* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.linux ${DEST}/etc/kdump; \
- ${INSTALL} -s kdump-linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
+ ${INSTALL} kdump-linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
hp_ux11* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.hp_ux11 ${DEST}/etc/kdump; \
- ${INSTALL} -s -f $? $@;; \
- *nbsd*) \
+ ${INSTALL} -f $? $@;; \
+ *bsd*) \
;; \
*) \
- ${INSTALL} -s $? $@ ;; \
+ ${INSTALL} $? $@ ;; \
esac
${DEST}/etc/kdump64: kdump-build
if [ -f kdump64 ]; then \
- ${INSTALL} -s kdump64 $@; \
+ ${INSTALL} kdump64 $@; \
fi
include ../config/Makefile.version
${DESTDIR}${bindir}/fs: fs
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/livesys: livesys
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvbindir}/fs: fs
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/up: up
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${sbindir}/fstrace: fstrace
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${bindir}/cmdebug: cmdebug
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${sbindir}/kdump: kdump-build
-set -x; \
ln -fs kdump.IP20 ${DESTDIR}${sbindir}/kdump.IP22; \
ln -fs kdump.IP20 ${DESTDIR}${sbindir}/kdump.IP32; \
for f in kdump.IP??; \
- do ${INSTALL} -s $$f ${DESTDIR}${sbindir}/$$f || exit $$? ; \
+ do ${INSTALL} $$f ${DESTDIR}${sbindir}/$$f || exit $$? ; \
done ;; \
sun*_5[789] | sun*_510 ) \
${INSTALLex} -f kdump.sh.solaris7 ${DESTDIR}${sbindir}/kdump32; \
- ${INSTALL} -s -f $? $@;; \
+ ${INSTALL} -f $? $@;; \
*linux* ) \
${INSTALLex} -f kdump.sh.linux ${DESTDIR}${sbindir}/kdump; \
- ${INSTALL} -s $? $@ ;; \
+ ${INSTALL} $? $@ ;; \
hp_ux11* ) \
${INSTALLex} -f kdump.sh.hp_ux11 ${DESTDIR}${sbindir}/kdump; \
- ${INSTALL} -s -f $? $@;; \
+ ${INSTALL} -f $? $@;; \
*) \
- ${INSTALL} -s $? $@ ;; \
+ ${INSTALL} $? $@ ;; \
esac
${DESTDIR}${sbindir}/kdump64: kdump-build
if [ -f kdump64 ]; then \
- ${INSTALL} -s kdump64 $@; \
+ ${INSTALL} kdump64 $@; \
fi
dest: \
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/cacheout.c,v 1.8 2003/07/15 23:17:19 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/cacheout.c,v 1.8.2.1 2007/10/31 04:13:49 shadow Exp $");
#include <stdio.h>
#include <string.h>
extern int VL_GetAddrs();
-afs_int32
-InvalidateCache(as)
- struct cmd_syndesc *as;
+static int
+InvalidateCache(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
struct cmd_item *u;
return code;
}
-afs_int32
-GetServerList()
+static int
+GetServerList(struct cmd_syndesc *as, void *arock)
{
- afs_int32 code;
+ int code;
int i;
code = ListServers();
Command is executed in user's cell.
*/
-static
-MyBeforeProc(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
register char *tcell = NULL;
char confdir[200];
cmd_SetBeforeProc(MyBeforeProc, NULL);
ts = cmd_CreateSyntax("initcmd" /*"invalidatecache" */ , InvalidateCache,
- 0, "invalidate server ACL cache");
+ NULL, "invalidate server ACL cache");
cmd_AddParm(ts, "-id", CMD_LIST, CMD_OPTIONAL, "user identifier");
cmd_AddParm(ts, "-ip", CMD_LIST, CMD_OPTIONAL, "IP address");
cmd_CreateAlias(ts, "ic");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name");
- ts = cmd_CreateSyntax("listservers", GetServerList, 0,
+ ts = cmd_CreateSyntax("listservers", GetServerList, NULL,
"list servers in the cell");
cmd_CreateAlias(ts, "ls");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/cmdebug.c,v 1.15.2.6 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/cmdebug.c,v 1.15.2.11 2008/03/08 01:15:36 shadow Exp $");
#include <sys/types.h>
#include <netdb.h>
#endif
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
#include <lock.h>
#include <afs/afs_args.h>
#include <afs/afsutil.h>
+#include <afs/com_err.h>
extern struct hostent *hostutil_GetHostByName();
+static int print_ctime = 0;
+
static int
PrintCacheConfig(struct rx_connection *aconn)
{
} else {
printf("cmdebug: unsupported server version %d\n", srv_ver);
}
+ return 0;
}
#ifndef CAPABILITY_BITS
}
printf(" %12d bytes DV %12d refcnt %5d\n", centry.Length,
centry.DataVersion, centry.refCount);
- printf(" callback %08x\texpires %u\n", centry.callback,
- centry.cbExpires);
+ if (print_ctime) {
+ time_t t = centry.cbExpires;
+ printf(" callback %08x\texpires %s\n", centry.callback,
+ ctime(&t));
+ } else
+ printf(" callback %08x\texpires %u\n", centry.callback,
+ centry.cbExpires);
printf(" %d opens\t%d writers\n", centry.opens, centry.writers);
/* now display states */
printf(" %12d bytes DV %12d refcnt %5d\n", centry.Length,
centry.DataVersion, centry.refCount);
#endif
- printf(" callback %08x\texpires %u\n", centry.callback,
- centry.cbExpires);
+ if (print_ctime) {
+ time_t t = centry.cbExpires;
+ printf(" callback %08x\texpires %s\n", centry.callback,
+ ctime(&t));
+ } else
+ printf(" callback %08x\texpires %u\n", centry.callback,
+ centry.cbExpires);
printf(" %d opens\t%d writers\n", centry.opens, centry.writers);
/* now display states */
return PrintCacheEntries32(aconn, aint32);
}
+static int
+PrintCellServDBEntry(struct rx_connection *aconn, afs_int32 cellnum)
+{
+ static struct cell_cache *cache;
+ int code;
+ char *cellname;
+ serverList sl;
+ unsigned int n;
+ int rc = 0;
+
+ cellname = NULL;
+ sl.serverList_len = 0;
+ sl.serverList_val = NULL;
+ code = RXAFSCB_GetCellServDB(aconn, cellnum, &cellname, &sl);
+ if (code)
+ return 0;
+
+ if ( !cellname || !cellname[0] )
+ goto done;
+
+ rc = 1;
+ printf(">%-23s#%s\n", cellname, cellname);
+
+ if (sl.serverList_val) {
+ for ( n=0; n<sl.serverList_len; n++) {
+ struct hostent *host;
+ afs_uint32 addr = ntohl(sl.serverList_val[n]);
+
+ host = gethostbyaddr((const char *)&addr, sizeof(afs_uint32), AF_INET);
+ printf("%-28s#%s\n", afs_inet_ntoa(addr),
+ host ? host->h_name : "");
+ }
+ }
+
+ done:
+ if (cellname)
+ free(cellname);
+
+ if (sl.serverList_val)
+ free(sl.serverList_val);
+
+ return rc;
+}
+
+static void
+PrintCellServDB(struct rx_connection *aconn)
+{
+ afs_int32 index;
+
+ for ( index = 0 ; PrintCellServDBEntry(aconn, index); index++ );
+}
+
int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
{
struct rx_connection *conn;
register char *hostName;
hostName);
exit(1);
}
- if (as->parms[5].items) {
+
+ if (as->parms[6].items) {
/* -addrs */
PrintInterfaces(conn);
return 0;
}
- if (as->parms[6].items) {
+ if (as->parms[7].items) {
/* -cache */
PrintCacheConfig(conn);
return 0;
}
+
+ if (as->parms[8].items) {
+ /* -cellservdb */
+ PrintCellServDB(conn);
+ return 0;
+ }
+
+ if (as->parms[5].items)
+ print_ctime = 1;
+
if (as->parms[2].items)
/* -long */
int32p = 1;
rx_Init(0);
- ts = cmd_CreateSyntax(NULL, CommandProc, 0, "probe unik server");
+ ts = cmd_CreateSyntax(NULL, CommandProc, NULL, "query afs cache manager");
cmd_AddParm(ts, "-servers", CMD_SINGLE, CMD_REQUIRED, "server machine");
cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "IP port");
cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL, "print all info");
"print only cache entries with positive reference counts");
cmd_AddParm(ts, "-callbacks", CMD_FLAG, CMD_OPTIONAL,
"print only cache entries with callbacks");
+ cmd_AddParm(ts, "-ctime", CMD_FLAG, CMD_OPTIONAL,
+ "print human readable expiration time");
+
+
cmd_AddParm(ts, "-addrs", CMD_FLAG, CMD_OPTIONAL,
"print only host interfaces");
cmd_AddParm(ts, "-cache", CMD_FLAG, CMD_OPTIONAL,
"print only cache configuration");
+ cmd_AddParm(ts, "-cellservdb", CMD_FLAG, CMD_OPTIONAL,
+ "print only cellservdb info");
cmd_Dispatch(argc, argv);
exit(0);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/fs.c,v 1.24.2.8 2007/10/16 17:20:09 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/venus/fs.c,v 1.24.2.12 2008/03/08 01:15:36 shadow Exp $");
#include <afs/afs_args.h>
#include <rx/xdr.h>
#include <afs/stds.h>
#include <afs/vice.h>
#include <afs/venus.h>
+#include <afs/com_err.h>
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#undef VIRTUE
#undef VICE
extern struct hostent *hostutil_GetHostByName();
-extern struct cmd_syndesc *cmd_CreateSyntax();
static char pn[] = "fs";
static int rxInitDone = 0;
static void ZapList();
static int PruneList();
static CleanAcl();
-static SetVolCmd();
+static int SetVolCmd(struct cmd_syndesc *as, void *arock);
static GetCellName();
static VLDBInit();
static void Die();
if (arights & DFS_USR7)
printf("H");
}
+ return 0;
}
/* this function returns TRUE (1) if the file is in AFS, otherwise false (0) */
}
static int
-SetACLCmd(struct cmd_syndesc *as, char *arock)
+SetACLCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
static int
-CopyACLCmd(struct cmd_syndesc *as, char *arock)
+CopyACLCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
/* clean up an acl to not have bogus entries */
static int
-CleanACLCmd(struct cmd_syndesc *as, char *arock)
+CleanACLCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct Acl *ta = 0;
}
static int
-ListACLCmd(struct cmd_syndesc *as, char *arock)
+ListACLCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct Acl *ta;
}
static int
-GetCallerAccess(struct cmd_syndesc *as, char *arock)
+GetCallerAccess(struct cmd_syndesc *as, void *arock)
{
struct cmd_item *ti;
int error = 0;
}
static int
-FlushVolumeCmd(struct cmd_syndesc *as, char *arock)
+FlushVolumeCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
* CMD_OPTIONAL in the cmd_AddParam(-generate) call
*/
static int
-UuidCmd(struct cmd_syndesc *as, char *arock)
+UuidCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-FlushCmd(struct cmd_syndesc *as, char *arock)
+FlushCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
/* all this command does is repackage its args and call SetVolCmd */
static int
-SetQuotaCmd(struct cmd_syndesc *as, char *arock)
+SetQuotaCmd(struct cmd_syndesc *as, void *arock)
{
struct cmd_syndesc ts;
/* copy useful stuff from our command slot; we may later have to reorder */
memcpy(&ts, as, sizeof(ts)); /* copy whole thing */
- return SetVolCmd(&ts);
+ return SetVolCmd(&ts, arock);
}
static int
-SetVolCmd(struct cmd_syndesc *as, char *arock)
+SetVolCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
};
static int
-ExamineCmd(struct cmd_syndesc *as, char *arock)
+ExamineCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-ListQuotaCmd(struct cmd_syndesc *as, char *arock)
+ListQuotaCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-WhereIsCmd(struct cmd_syndesc *as, char *arock)
+WhereIsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
static int
-DiskFreeCmd(struct cmd_syndesc *as, char *arock)
+DiskFreeCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-QuotaCmd(struct cmd_syndesc *as, char *arock)
+QuotaCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-ListMountCmd(struct cmd_syndesc *as, char *arock)
+ListMountCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
return error;
}
-static
-MakeMountCmd(struct cmd_syndesc *as, char *arock)
+static int
+MakeMountCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
char *cellName, *volName, *tmpName;
* tp: Set to point to the actual name of the mount point to nuke.
*/
static int
-RemoveMountCmd(struct cmd_syndesc *as, char *arock)
+RemoveMountCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
struct ViceIoctl blob;
*/
static int
-CheckServersCmd(struct cmd_syndesc *as, char *arock)
+CheckServersCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-MessagesCmd(struct cmd_syndesc *as, char *arock)
+MessagesCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
struct ViceIoctl blob;
}
static int
-CheckVolumesCmd(struct cmd_syndesc *as, char *arock)
+CheckVolumesCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-SetCacheSizeCmd(struct cmd_syndesc *as, char *arock)
+SetCacheSizeCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
#define MAXGCSIZE 16
static int
-GetCacheParmsCmd(struct cmd_syndesc *as, char *arock)
+GetCacheParmsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-ListCellsCmd(struct cmd_syndesc *as, char *arock)
+ListCellsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
afs_int32 i, j;
}
static int
-ListAliasesCmd(struct cmd_syndesc *as, char *arock)
+ListAliasesCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code, i;
char *tp, *aliasName, *realName;
}
static int
-CallBackRxConnCmd(struct cmd_syndesc *as, char *arock)
+CallBackRxConnCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-NewCellCmd(struct cmd_syndesc *as, char *arock)
+NewCellCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code, linkedstate = 0, size = 0, *lp;
struct ViceIoctl blob;
}
static int
-NewAliasCmd(struct cmd_syndesc *as, char *arock)
+NewAliasCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-WhichCellCmd(struct cmd_syndesc *as, char *arock)
+WhichCellCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct cmd_item *ti;
}
static int
-WSCellCmd(struct cmd_syndesc *as, char *arock)
+WSCellCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
*/
static int
-MonitorCmd(struct cmd_syndesc *as, char *arock)
+MonitorCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-SysNameCmd(struct cmd_syndesc *as, char *arock)
+SysNameCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
static char *exported_types[] = { "null", "nfs", "" };
static int
-ExportAfsCmd(struct cmd_syndesc *as, char *arock)
+ExportAfsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
static int
-GetCellCmd(struct cmd_syndesc *as, char *arock)
+GetCellCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-SetCellCmd(struct cmd_syndesc *as, char *arock)
+SetCellCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
static int
-SetPrefCmd(struct cmd_syndesc *as, char *arock)
+SetPrefCmd(struct cmd_syndesc *as, void *arock)
{
FILE *infd;
afs_int32 code;
static int
-GetPrefCmd(struct cmd_syndesc *as, char *arock)
+GetPrefCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct cmd_item *ti;
}
static int
-StoreBehindCmd(struct cmd_syndesc *as, char *arock)
+StoreBehindCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
struct ViceIoctl blob;
}
-static afs_int32
-SetCryptCmd(struct cmd_syndesc *as, char *arock)
+static int
+SetCryptCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0, flag;
struct ViceIoctl blob;
}
-static afs_int32
-GetCryptCmd(struct cmd_syndesc *as, char *arock)
+static int
+GetCryptCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0, flag;
struct ViceIoctl blob;
#endif
/* try to find volume location information */
- ts = cmd_CreateSyntax("getclientaddrs", GetClientAddrsCmd, 0,
+ ts = cmd_CreateSyntax("getclientaddrs", GetClientAddrsCmd, NULL,
"get client network interface addresses");
cmd_CreateAlias(ts, "gc");
- ts = cmd_CreateSyntax("setclientaddrs", SetClientAddrsCmd, 0,
+ ts = cmd_CreateSyntax("setclientaddrs", SetClientAddrsCmd, NULL,
"set client network interface addresses");
cmd_AddParm(ts, "-address", CMD_LIST, CMD_OPTIONAL | CMD_EXPANDS,
"client network interfaces");
cmd_CreateAlias(ts, "sc");
- ts = cmd_CreateSyntax("setserverprefs", SetPrefCmd, 0,
+ ts = cmd_CreateSyntax("setserverprefs", SetPrefCmd, NULL,
"set server ranks");
cmd_AddParm(ts, "-servers", CMD_LIST, CMD_OPTIONAL | CMD_EXPANDS,
"fileserver names and ranks");
cmd_AddParm(ts, "-stdin", CMD_FLAG, CMD_OPTIONAL, "input from stdin");
cmd_CreateAlias(ts, "sp");
- ts = cmd_CreateSyntax("getserverprefs", GetPrefCmd, 0,
+ ts = cmd_CreateSyntax("getserverprefs", GetPrefCmd, NULL,
"get server ranks");
cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL,
"output to named file");
/* cmd_AddParm(ts, "-cell", CMD_FLAG, CMD_OPTIONAL, "cellname"); */
cmd_CreateAlias(ts, "gp");
- ts = cmd_CreateSyntax("setacl", SetACLCmd, 0, "set access control list");
+ ts = cmd_CreateSyntax("setacl", SetACLCmd, NULL, "set access control list");
cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory");
cmd_AddParm(ts, "-acl", CMD_LIST, 0, "access list entries");
cmd_AddParm(ts, "-clear", CMD_FLAG, CMD_OPTIONAL, "clear access list");
"initial file acl (DFS only)");
cmd_CreateAlias(ts, "sa");
- ts = cmd_CreateSyntax("listacl", ListACLCmd, 0,
+ ts = cmd_CreateSyntax("listacl", ListACLCmd, NULL,
"list access control list");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
parm_listacl_id = ts->nParms;
cmd_AddParm(ts, "-if", CMD_FLAG, CMD_OPTIONAL, "initial file acl");
cmd_CreateAlias(ts, "la");
- ts = cmd_CreateSyntax("getcalleraccess", GetCallerAccess, 0,
+ ts = cmd_CreateSyntax("getcalleraccess", GetCallerAccess, NULL,
"list callers access");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
cmd_CreateAlias(ts, "gca");
- ts = cmd_CreateSyntax("cleanacl", CleanACLCmd, 0,
+ ts = cmd_CreateSyntax("cleanacl", CleanACLCmd, NULL,
"clean up access control list");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("copyacl", CopyACLCmd, 0,
+ ts = cmd_CreateSyntax("copyacl", CopyACLCmd, NULL,
"copy access control list");
cmd_AddParm(ts, "-fromdir", CMD_SINGLE, 0,
"source directory (or DFS file)");
cmd_CreateAlias(ts, "ca");
- ts = cmd_CreateSyntax("flush", FlushCmd, 0, "flush file from cache");
+ ts = cmd_CreateSyntax("flush", FlushCmd, NULL, "flush file from cache");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("flushmount", FlushMountCmd, 0,
+ ts = cmd_CreateSyntax("flushmount", FlushMountCmd, NULL,
"flush mount symlink from cache");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("setvol", SetVolCmd, 0, "set volume status");
+ ts = cmd_CreateSyntax("setvol", SetVolCmd, NULL, "set volume status");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
cmd_AddParm(ts, "-max", CMD_SINGLE, CMD_OPTIONAL,
"disk space quota in 1K units");
"offline message");
cmd_CreateAlias(ts, "sv");
- ts = cmd_CreateSyntax("messages", MessagesCmd, 0,
+ ts = cmd_CreateSyntax("messages", MessagesCmd, NULL,
"control Cache Manager messages");
cmd_AddParm(ts, "-show", CMD_SINGLE, CMD_OPTIONAL,
"[user|console|all|none]");
- ts = cmd_CreateSyntax("examine", ExamineCmd, 0, "display file/volume status");
+ ts = cmd_CreateSyntax("examine", ExamineCmd, NULL, "display file/volume status");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
cmd_CreateAlias(ts, "lv");
cmd_CreateAlias(ts, "listvol");
- ts = cmd_CreateSyntax("listquota", ListQuotaCmd, 0, "list volume quota");
+ ts = cmd_CreateSyntax("listquota", ListQuotaCmd, NULL, "list volume quota");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
cmd_CreateAlias(ts, "lq");
- ts = cmd_CreateSyntax("diskfree", DiskFreeCmd, 0,
+ ts = cmd_CreateSyntax("diskfree", DiskFreeCmd, NULL,
"show server disk space usage");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
cmd_CreateAlias(ts, "df");
- ts = cmd_CreateSyntax("quota", QuotaCmd, 0, "show volume quota usage");
+ ts = cmd_CreateSyntax("quota", QuotaCmd, NULL, "show volume quota usage");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("lsmount", ListMountCmd, 0, "list mount point");
+ ts = cmd_CreateSyntax("lsmount", ListMountCmd, NULL, "list mount point");
cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory");
- ts = cmd_CreateSyntax("mkmount", MakeMountCmd, 0, "make mount point");
+ ts = cmd_CreateSyntax("mkmount", MakeMountCmd, NULL, "make mount point");
cmd_AddParm(ts, "-dir", CMD_SINGLE, 0, "directory");
cmd_AddParm(ts, "-vol", CMD_SINGLE, 0, "volume name");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell name");
*/
- ts = cmd_CreateSyntax("rmmount", RemoveMountCmd, 0, "remove mount point");
+ ts = cmd_CreateSyntax("rmmount", RemoveMountCmd, NULL, "remove mount point");
cmd_AddParm(ts, "-dir", CMD_LIST, 0, "directory");
- ts = cmd_CreateSyntax("checkservers", CheckServersCmd, 0,
+ ts = cmd_CreateSyntax("checkservers", CheckServersCmd, NULL,
"check local cell's servers");
cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_OPTIONAL, "cell to check");
cmd_AddParm(ts, "-all", CMD_FLAG, CMD_OPTIONAL, "check all cells");
cmd_AddParm(ts, "-interval", CMD_SINGLE, CMD_OPTIONAL,
"seconds between probes");
- ts = cmd_CreateSyntax("checkvolumes", CheckVolumesCmd, 0,
+ ts = cmd_CreateSyntax("checkvolumes", CheckVolumesCmd, NULL,
"check volumeID/name mappings");
cmd_CreateAlias(ts, "checkbackups");
- ts = cmd_CreateSyntax("setcachesize", SetCacheSizeCmd, 0,
+ ts = cmd_CreateSyntax("setcachesize", SetCacheSizeCmd, NULL,
"set cache size");
cmd_AddParm(ts, "-blocks", CMD_SINGLE, CMD_OPTIONAL,
"size in 1K byte blocks (0 => reset)");
#endif
cmd_CreateAlias(ts, "sq");
- ts = cmd_CreateSyntax("newcell", NewCellCmd, 0, "configure new cell");
+ ts = cmd_CreateSyntax("newcell", NewCellCmd, NULL, "configure new cell");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "cell name");
cmd_AddParm(ts, "-servers", CMD_LIST, CMD_REQUIRED, "primary servers");
cmd_AddParm(ts, "-linkedcell", CMD_SINGLE, CMD_OPTIONAL,
"linked cell name");
- ts = cmd_CreateSyntax("newalias", NewAliasCmd, 0,
+ ts = cmd_CreateSyntax("newalias", NewAliasCmd, NULL,
"configure new cell alias");
cmd_AddParm(ts, "-alias", CMD_SINGLE, 0, "alias name");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "real name of cell");
"cell's vldb server port");
#endif
- ts = cmd_CreateSyntax("whichcell", WhichCellCmd, 0, "list file's cell");
+ ts = cmd_CreateSyntax("whichcell", WhichCellCmd, NULL, "list file's cell");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("whereis", WhereIsCmd, 0, "list file's location");
+ ts = cmd_CreateSyntax("whereis", WhereIsCmd, NULL, "list file's location");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("wscell", WSCellCmd, 0, "list workstation's cell");
+ ts = cmd_CreateSyntax("wscell", WSCellCmd, NULL, "list workstation's cell");
/*
- ts = cmd_CreateSyntax("primarycell", PrimaryCellCmd, 0, "obsolete (listed primary cell)");
+ ts = cmd_CreateSyntax("primarycell", PrimaryCellCmd, NULL, "obsolete (listed primary cell)");
*/
/* set cache monitor host address */
- ts = cmd_CreateSyntax("monitor", MonitorCmd, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("monitor", MonitorCmd, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL,
"host name or 'off'");
cmd_CreateAlias(ts, "mariner");
- ts = cmd_CreateSyntax("getcellstatus", GetCellCmd, 0, "get cell status");
+ ts = cmd_CreateSyntax("getcellstatus", GetCellCmd, NULL, "get cell status");
cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name");
- ts = cmd_CreateSyntax("setcell", SetCellCmd, 0, "set cell status");
+ ts = cmd_CreateSyntax("setcell", SetCellCmd, NULL, "set cell status");
cmd_AddParm(ts, "-cell", CMD_LIST, 0, "cell name");
cmd_AddParm(ts, "-suid", CMD_FLAG, CMD_OPTIONAL, "allow setuid programs");
cmd_AddParm(ts, "-nosuid", CMD_FLAG, CMD_OPTIONAL,
"disallow setuid programs");
- ts = cmd_CreateSyntax("flushvolume", FlushVolumeCmd, 0,
+ ts = cmd_CreateSyntax("flushvolume", FlushVolumeCmd, NULL,
"flush all data in volume");
cmd_AddParm(ts, "-path", CMD_LIST, CMD_OPTIONAL, "dir/file path");
- ts = cmd_CreateSyntax("sysname", SysNameCmd, 0,
+ ts = cmd_CreateSyntax("sysname", SysNameCmd, NULL,
"get/set sysname (i.e. @sys) value");
cmd_AddParm(ts, "-newsys", CMD_LIST, CMD_OPTIONAL, "new sysname");
- ts = cmd_CreateSyntax("exportafs", ExportAfsCmd, 0,
+ ts = cmd_CreateSyntax("exportafs", ExportAfsCmd, NULL,
"enable/disable translators to AFS");
cmd_AddParm(ts, "-type", CMD_SINGLE, 0, "exporter name");
cmd_AddParm(ts, "-start", CMD_SINGLE, CMD_OPTIONAL,
"allow nfs mounts to subdirs of /afs/.. (on | off)");
- ts = cmd_CreateSyntax("storebehind", StoreBehindCmd, 0,
+ ts = cmd_CreateSyntax("storebehind", StoreBehindCmd, NULL,
"store to server after file close");
cmd_AddParm(ts, "-kbytes", CMD_SINGLE, CMD_OPTIONAL,
"asynchrony for specified names");
/* get clients interface addresses */
static int
-GetClientAddrsCmd(struct cmd_syndesc *as, char *arock)
+GetClientAddrsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct cmd_item *ti;
}
static int
-SetClientAddrsCmd(struct cmd_syndesc *as, char *arock)
+SetClientAddrsCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code, addr;
struct cmd_item *ti;
}
static int
-FlushMountCmd(struct cmd_syndesc *as, char *arock)
+FlushMountCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
}
static int
-RxStatProcCmd(struct cmd_syndesc *as, char *arock)
+RxStatProcCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
afs_int32 flags = 0;
}
static int
-RxStatPeerCmd(struct cmd_syndesc *as, char *arock)
+RxStatPeerCmd(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
afs_int32 flags = 0;
}
static int
-GetFidCmd(struct cmd_syndesc *as, char *arock)
+GetFidCmd(struct cmd_syndesc *as, void *arock)
{
struct ViceIoctl blob;
struct cmd_item *ti;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/fstrace.c,v 1.16.2.5 2005/10/05 05:58:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/fstrace.c,v 1.16.2.8 2007/11/26 21:21:56 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
#undef abs
#include <stdlib.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/stds.h>
#include <afs/cmd.h>
} *allInfo = 0;
char dumpFileName[256] = "";
+void
RegisterIclDumpFileName(name)
char *name;
{
#if defined(AFS_SGI61_ENV) && !defined(AFS_SGI62_ENV)
#define uint64_t long long
#endif
-static
+static void
DisplayRecord(outFilep, alp, rsize)
FILE *outFilep;
register afs_int32 *alp;
}
-static
-DoDump(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoDump(struct cmd_syndesc *as, void *arock)
{
afs_int32 code = 0;
afs_int32 tcode;
struct cmd_syndesc *dumpSyntax;
dumpSyntax =
- cmd_CreateSyntax("dump", DoDump, (char *)NULL, "dump AFS trace logs");
+ cmd_CreateSyntax("dump", DoDump, NULL, "dump AFS trace logs");
(void)cmd_AddParm(dumpSyntax, "-set", CMD_LIST, CMD_OPTIONAL, "set_name");
(void)cmd_AddParm(dumpSyntax, "-follow", CMD_SINGLE, CMD_OPTIONAL,
"log_name");
"seconds_between_reads");
}
-static
-DoShowLog(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoShowLog(register struct cmd_syndesc *as, void *arock)
{
afs_int32 retVal = 0;
afs_int32 code = 0;
struct cmd_syndesc *showSyntax;
showSyntax =
- cmd_CreateSyntax("lslog", DoShowLog, (char *)NULL,
+ cmd_CreateSyntax("lslog", DoShowLog, NULL,
"list available logs");
(void)cmd_AddParm(showSyntax, "-set", CMD_LIST, CMD_OPTIONAL, "set_name");
(void)cmd_AddParm(showSyntax, "-log", CMD_LIST, CMD_OPTIONAL, "log_name");
(void)cmd_AddParm(showSyntax, "-long", CMD_FLAG, CMD_OPTIONAL, "");
}
-static
-DoShowSet(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoShowSet(register struct cmd_syndesc *as, void *arock)
{
afs_int32 retVal = 0;
afs_int32 code = 0;
struct cmd_syndesc *showSyntax;
showSyntax =
- cmd_CreateSyntax("lsset", DoShowSet, (char *)NULL,
+ cmd_CreateSyntax("lsset", DoShowSet, NULL,
"list available event sets");
(void)cmd_AddParm(showSyntax, "-set", CMD_LIST, CMD_OPTIONAL, "set_name");
}
-static
-DoClear(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoClear(register struct cmd_syndesc *as, void *arock)
{
afs_int32 retVal = 0;
afs_int32 code = 0;
struct cmd_syndesc *clearSyntax;
clearSyntax =
- cmd_CreateSyntax("clear", DoClear, (char *)NULL,
+ cmd_CreateSyntax("clear", DoClear, NULL,
"clear logs by logname or by event set");
(void)cmd_AddParm(clearSyntax, "-set", CMD_LIST, CMD_OPTIONAL,
"set_name");
"log_name");
}
-static
-DoSet(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoSet(register struct cmd_syndesc *as, void *arock)
{
afs_int32 retVal = 0;
afs_int32 code = 0;
struct cmd_syndesc *setSyntax;
setSyntax =
- cmd_CreateSyntax("setset", DoSet, (char *)NULL,
+ cmd_CreateSyntax("setset", DoSet, NULL,
"set state of event sets");
(void)cmd_AddParm(setSyntax, "-set", CMD_LIST, CMD_OPTIONAL, "set_name");
(void)cmd_AddParm(setSyntax, "-active", CMD_FLAG, CMD_OPTIONAL, "");
(void)cmd_AddParm(setSyntax, "-dormant", CMD_FLAG, CMD_OPTIONAL, "");
}
-static
-DoResize(as, arock)
- register struct cmd_syndesc *as;
- char *arock;
+static int
+DoResize(register struct cmd_syndesc *as, void *arock)
{
afs_int32 retVal = 0;
afs_int32 code = 0;
struct cmd_syndesc *setsizeSyntax;
setsizeSyntax =
- cmd_CreateSyntax("setlog", DoResize, (char *)NULL,
+ cmd_CreateSyntax("setlog", DoResize, NULL,
"set the size of a log");
(void)cmd_AddParm(setsizeSyntax, "-log", CMD_LIST, CMD_OPTIONAL,
"log_name");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/kdump.c,v 1.33.2.7 2007/03/20 19:24:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/kdump.c,v 1.33.2.8 2007/10/31 04:13:50 shadow Exp $");
#include <stdio.h>
#include <errno.h>
-#ifndef AFS_KDUMP_LIB
-extern struct cmd_syndesc *cmd_CreateSyntax();
-#endif
int opencore();
#if defined(AFS_HPUX_ENV) && defined(__LP64__)
#ifndef AFS_KDUMP_LIB
-static
-cmdproc(as, arock)
- register struct cmd_syndesc *as;
- afs_int32 arock;
+static int
+cmdproc(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code = 0;
sigaction(SIGSEGV, &nsa, NULL);
#endif
- ts = cmd_CreateSyntax(NULL, cmdproc, 0,
+ ts = cmd_CreateSyntax(NULL, cmdproc, NULL,
"Read internal cache manager structs");
cmd_AddParm(ts, "-kobj", CMD_SINGLE, CMD_OPTIONAL,
"kernel object (default /vmunix)");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/livesys.c,v 1.4.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/livesys.c,v 1.4.2.3 2008/03/08 01:15:37 shadow Exp $");
#include <afs/afs_args.h>
#include <rx/xdr.h>
#include <stdio.h>
#include <netinet/in.h>
#include <sys/stat.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/stds.h>
#include <afs/vice.h>
#include <afs/venus.h>
+#include <afs/com_err.h>
#ifdef AFS_AIX32_ENV
#include <signal.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/test/fulltest.c,v 1.6 2003/07/15 23:17:24 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/test/fulltest.c,v 1.6.2.1 2007/11/26 21:21:56 shadow Exp $");
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <stdio.h>
#include <unistd.h>
main(argc, argv)
dirName = argv[1];
mkdir(dirName, 0777);
if (chdir(dirName) < 0)
- return perror("chdir");
+ {perror("chdir");return;}
if (getcwd(tempName, 1024) == 0) {
return printf("Could not get working dir.\n");
}
/* now create some files */
fd1 = open("hi", O_CREAT | O_TRUNC | O_RDWR, 0666);
if (fd1 < 0)
- return perror("open1");
+ {perror("open1");return;}
if (close(fd1) < 0)
- return perror("close1");
+ {perror("close1");return;}
if (access("hi", 2) < 0)
return printf("New file can not be written (access)\n");
if (chmod("hi", 0741) < 0)
- return perror("chmod1");
+ {perror("chmod1");return;}
if (stat("hi", &tstat) < 0)
- return perror("stat1");
+ {perror("stat1");return;}
if ((tstat.st_mode & 0777) != 0741)
return printf("chmod failed to set mode properly\n");
fd1 = open("hi", O_RDWR);
if (fd1 < 0)
- return perror("open2");
+ {perror("open2");return;}
if (fchmod(fd1, 0654) < 0)
- return perror("fchmod");
+ {perror("fchmod");return;}
if (fstat(fd1, &tstat) < 0)
- return perror("fstat1");
+ {perror("fstat1");return;}
if ((tstat.st_mode & 0777) != 0654)
return printf("fchmod failed to set mode properly\n");
#if 0
/* These appear to be defunct routines;
* I don't know what, if anything, replaced them */
if (osi_ExclusiveLockNoBlock(fd1) < 0)
- return perror("flock1");
+ {perror("flock1");return;}
if (osi_UnLock(fd1) < 0)
- return perror("flock/unlock");
+ {perror("flock/unlock");return;}
#endif
/* How about shared lock portability? */
fl.l_len = 0;
if (fcntl(fd1, F_SETLK, &fl) == -1)
- return perror("fcntl1: RDLCK");
+ {perror("fcntl1: RDLCK");return;}
fl.l_type = F_UNLCK;
fl.l_whence = SEEK_SET;
fl.l_len = 0;
if (fcntl(fd1, F_SETLK, &fl) == -1)
- return perror("fcntl2: UNLCK");
+ {perror("fcntl2: UNLCK");return;}
fl.l_type = F_WRLCK;
fl.l_whence = SEEK_SET;
fl.l_len = 0;
if (fcntl(fd1, F_SETLK, &fl) == -1)
- return perror("fcntl3: WRLCK");
+ {perror("fcntl3: WRLCK");return;}
fl.l_type = F_UNLCK;
fl.l_whence = SEEK_SET;
fl.l_len = 0;
if (fcntl(fd1, F_SETLK, &fl) == -1)
- return perror("fcntl4: UNLCK");
+ {perror("fcntl4: UNLCK");return;}
}
if (fsync(fd1) < 0)
- return perror("fsync");
+ {perror("fsync");return;}
if (write(fd1, "hi\n", 3) != 3)
- return perror("write");
+ {perror("write");return;}
if (ftruncate(fd1, 2) < 0)
- return perror("ftruncate");
+ {perror("ftruncate");return;}
if (close(fd1) < 0)
- return perror("close2");
+ {perror("close2");return;}
fd1 = open("hi", O_RDONLY);
if (fd1 < 0)
- return perror("open3");
+ {perror("open3");return;}
if (read(fd1, tempName, 100) != 2)
- return perror("read2");
+ {perror("read2");return;}
if (close(fd1) < 0)
- return perror("close3");
+ {perror("close3");return;}
if (link("hi", "bye") < 0)
- return perror("link");
+ {perror("link");return;}
if (stat("bye", &tstat) < 0)
- return perror("link/stat");
+ {perror("link/stat");return;}
if (unlink("bye") < 0)
- return perror("unlink");
+ {perror("unlink");return;}
if (symlink("hi", "bye") < 0)
- return perror("symlink");
+ {perror("symlink");return;}
if (readlink("bye", tempName, 100) != 2)
- return perror("readlink");
+ {perror("readlink");return;}
if (strncmp(tempName, "hi", 2) != 0)
return printf("readlink contents");
if (mkdir("tdir", 0777) < 0)
- return perror("mkdir");
+ {perror("mkdir");return;}
fd1 = open("tdir/fdsa", O_CREAT | O_TRUNC, 0777);
close(fd1);
if (rmdir("tdir") == 0)
return printf("removed non-empty dir\n");
if (unlink("tdir/fdsa") < 0)
- return perror("unlink tdir contents");
+ {perror("unlink tdir contents");return;}
if (rmdir("tdir") < 0)
- return perror("rmdir");
+ {perror("rmdir");return;}
fd1 = open(".", O_RDONLY);
if (fd1 < 0)
- return perror("open dot");
+ {perror("open dot");return;}
if (read(fd1, tempName, 20) < 20)
perror("read dir");
close(fd1);
fd1 = open("rotest", O_RDWR | O_CREAT, 0444);
if (fd1 < 0)
- return perror("open ronly");
+ {perror("open ronly");return;}
fchown(fd1, 1, -1); /* don't check error code, may fail on Ultrix */
code = write(fd1, "test", 4);
if (code != 4) {
}
code = close(fd1);
if (code)
- return perror("close ronly");
+ {perror("close ronly");return;}
code = stat("rotest", &tstat);
if (code < 0)
- return perror("stat ronly");
+ {perror("stat ronly");return;}
if (tstat.st_size != 4) {
printf("rotest short close\n");
exit(1);
}
if (unlink("rotest") < 0)
- return perror("rotest unlink");
+ {perror("rotest unlink");return;}
if (rename("hi", "bye") < 0)
- return perror("rename1");
+ {perror("rename1");return;}
if (stat("bye", &tstat) < 0)
- return perror("rename target invisible\n");
+ {perror("rename target invisible\n");return;}
if (stat("hi", &tstat) == 0)
return printf("rename source still there\n");
#ifndef AFS_AIX_ENV
/* No truncate(2) on aix so the following are excluded */
if (truncate("bye", 1) < 0)
- return perror("truncate");
+ {perror("truncate");return;}
if (stat("bye", &tstat) < 0)
- return perror("truncate zapped");
+ {perror("truncate zapped");return;}
if (tstat.st_size != 1)
return printf("truncate failed\n");
#endif
if (utimes("bye", tvp) < 0)
- return perror("utimes");
+ {perror("utimes");return;}
if (unlink("bye") < 0)
- return perror("unlink bye");
+ {perror("unlink bye");return;}
/* now finish up */
chdir("..");
rmdir(dirName);
printf("Test completed successfully.\n");
+ return 0;
}
#include <afsconfig.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/test/getinitparams.c,v 1.5 2003/07/15 23:17:24 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/test/getinitparams.c,v 1.5.2.1 2007/10/31 04:13:50 shadow Exp $");
#include <afs/param.h>
#include <stdio.h>
int
-GetInitParamsCmd(struct cmd_syndesc *as)
+GetInitParamsCmd(struct cmd_syndesc *as, void *arock)
{
struct cm_initparams cm_initParams;
struct ViceIoctl blob;
#include <afsconfig.h>
#include <afs/param.h>
+#include <stdio.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/test/idtest.c,v 1.5 2003/07/15 23:17:24 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/test/idtest.c,v 1.5.2.1 2007/11/26 21:21:56 shadow Exp $");
main(argc, argv)
{
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#include <stdio.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/test/owntest.c,v 1.8 2003/07/15 23:17:24 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/test/owntest.c,v 1.8.2.1 2007/11/26 21:21:56 shadow Exp $");
#include <sys/types.h>
#include <sys/file.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/twiddle.c,v 1.7.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/twiddle.c,v 1.7.2.3 2008/03/08 01:15:37 shadow Exp $");
#include <rx/xdr.h>
#include <sys/ioctl.h>
#include "afs/prs_fs.h"
#include <afs/afsint.h>
#include <afs/auth.h>>
-#include <errno.h
+#include <errno.h>
#include <afs/cellconfig.h>
#include <afs/cmd.h>
#include <strings.h>
-
+#include <afs/com_err.h>
#define MAXSIZE 2048
#define MAXINSIZE 1300 /* pioctl complains if data is larger than this */
static struct ubik_client *uclient;
-extern struct cmd_syndesc *cmd_CreateSyntax();
static char pn[] = "fs";
static int rxInitDone = 0;
-static
-Twiddle(as)
- struct cmd_syndesc *as;
+static int
+Twiddle(struct cmd_syndesc *as, void *arock)
{
afs_int32 code;
struct ViceIoctl blob;
/* try to find volume location information */
- ts = cmd_CreateSyntax(NULL, Twiddle, 0, "adjust rx parms");
+ ts = cmd_CreateSyntax(NULL, Twiddle, NULL, "adjust rx parms");
cmd_AddParm(ts, "-initReceiveWindow ", CMD_SINGLE, CMD_OPTIONAL, "16");
cmd_AddParm(ts, "-maxReceiveWindow ", CMD_SINGLE, CMD_OPTIONAL, "16");
cmd_AddParm(ts, "-initSendWindow ", CMD_SINGLE, CMD_OPTIONAL, "8");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/up.c,v 1.13.2.1 2007/05/07 17:23:11 rra Exp $");
+ ("$Header: /cvs/openafs/src/venus/up.c,v 1.13.2.4 2007/12/11 16:36:54 shadow Exp $");
/* missing type from C language */
-#define Boolean short
-#define true 1
-#define false 0
#include <errno.h>
#ifdef AFS_AIX32_ENV
#undef _NONSTD_TYPES
#endif
#include <stdio.h>
+#include <unistd.h>
#include <afs/afs_args.h>
#include <sys/param.h>
#ifdef AFS_SUN5_ENV
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/venus.h>
extern char *sys_errlist[];
#endif
-Boolean verbose = false;
-Boolean renameTargets = false;
-Boolean oneLevel = false;
-Boolean preserveDate = true;
-Boolean preserveMountPoints = false;
-Boolean forceOverwrite = false;
+short verbose = 0;
+short renameTargets = 0;
+short oneLevel = 0;
+short preserveDate = 1;
+short preserveMountPoints = 0;
+short forceOverwrite = 0;
int pageSize;
-Boolean setacl = true;
-Boolean oldAcl = false;
+short setacl = 1;
+short oldAcl = 0;
char file1[MAXPATHLEN], file2[MAXPATHLEN];
#define MAXSIZE 2048
char data[1];
};
+static void ScanArgs(int argc, char *argv[]);
+static short MakeParent(char *file, afs_int32 owner);
+static int Copy(char *file1, char *file2, short recursive, int level);
+static int isMountPoint(char *name, struct ViceIoctl *blob);
+
+
/* ************************************************************ */
/* */
/* main program */
#include "AFS_component_version_number.c"
-main(argc, argv)
- int argc;
- char *argv[];
-
+int
+main(int argc, char *argv[])
{
#ifdef AFS_AIX32_ENV
/*
/* now read each line of the CopyList */
if (Copy(file1, file2, !oneLevel, 0))
- exit(1); /* some type of failure */
+ return(1); /* some type of failure */
- exit(0);
+ return(0);
}
-ScanArgs(argc, argv)
- int argc;
- char *argv[];
-
+#define USAGE "usage: up [-v1frxm] from to\n"
+static void
+ScanArgs(int argc, char *argv[])
{
/* skip program name */
argc--, argv++;
switch (*++cp) {
case 'v':
- verbose = true;
+ verbose = 1;
break;
case '1':
- oneLevel = true;
+ oneLevel = 1;
break;
case 'r':
- renameTargets = true;
+ renameTargets = 1;
break;
case 'f':
- forceOverwrite = true;
+ forceOverwrite = 1;
break;
case 'x':
- preserveDate = false;
+ preserveDate = 0;
break;
case 'm':
- preserveMountPoints = true;
+ preserveMountPoints = 1;
break;
default:
fprintf(stderr, "Unknown option: '%c'\n", *cp);
- fprintf(stderr, "usage: up [-v1frxm] from to\n");
+ fprintf(stderr, USAGE);
exit(1);
}
argc--, argv++;
}
if (argc != 2) {
- fprintf(stderr, "usage: up [-v1frx] from to\n");
+ fprintf(stderr, USAGE);
exit(1);
}
/*
* MakeParent
* Make sure the parent directory of this file exists. Returns
- * true if it exists, false otherwise. Note: the owner argument
+ * 1 if it exists, 0 otherwise. Note: the owner argument
* is a hack. All directories made will have this owner.
*/
-Boolean
-MakeParent(file, owner)
- char *file;
- afs_int32 owner;
+static short
+MakeParent(char *file, afs_int32 owner)
{
char parent[MAXPATHLEN];
char *p;
if (stat(parent, &s) < 0) {
if (!MakeParent(parent, owner))
- return (false);
+ return (0);
if (verbose) {
printf("Creating directory %s\n", parent);
mkdir(parent, 0777);
chown(parent, owner, -1);
}
- return (true);
+ return (1);
} /*MakeParent */
* This does the bulk of the work of the program. Handle one file,
* possibly copying subfiles if this is a directory
*/
-Copy(file1, file2, recursive, level)
- char *file1; /* input file name */
- char *file2; /* output file name */
- Boolean recursive; /* true if directory should be copied */
- int level; /* level of recursion: 0, 1, ... */
-
+static int
+Copy(char *file1, char *file2, short recursive, int level)
{
struct stat s1, s2; /*Stat blocks */
struct ViceIoctl blob;
rcode = 1;
}
- if (setacl == true) {
+ if (setacl == 1) {
if (verbose) {
printf(" Set acls for %s\n", file2);
fflush(stdout);
if (oldAcl) {
/* Get an old-style ACL and convert it */
+ if (verbose) {
+ printf(" Getting old style acl\n");
+ fflush(stdout);
+ }
+
for (i = 1; i < strlen(file1); i++)
if (file1[i] == '/')
break;
close(tfd);
if (code < 0) {
if (errno == EINVAL) {
- setacl = false;
+ setacl = 0;
+ if (verbose) {
+ printf(" _VICEIOCTL(4) returns EINVAL\n");
+ fflush(stdout);
+ }
} else {
return 1;
}
} /*Grab and convert old-style ACL */
else {
/* Get a new-style ACL */
+ if (verbose) {
+ printf(" Getting new style acl\n");
+ fflush(stdout);
+ }
+
code = pioctl(file1, _VICEIOCTL(2), &blob, 1);
if (code < 0) {
if (errno == EINVAL) {
- setacl = false;
+ setacl = 0;
+ if (verbose) {
+ printf(" _VICEIOCTL(2) returns EINVAL\n");
+ fflush(stdout);
+ }
} else {
perror("getacl ");
return 1;
/*
* Now, set the new-style ACL.
*/
- if (setacl == true) {
+ if (setacl == 1) {
+ if (verbose) {
+ printf(" Setting new style acl\n");
+ fflush(stdout);
+ }
blob.out = aclspace;
blob.in = aclspace;
blob.out_size = 0;
code = pioctl(file2, _VICEIOCTL(1), &blob, 1);
if (code) {
if (errno == EINVAL) {
- setacl = false;
+ setacl = 0;
+ if (verbose) {
+ printf(" _VICEIOCTL(1) returns EINVAL\n");
+ fflush(stdout);
+ }
} else {
fprintf(stderr, "Couldn't set acls for %s\n", file2);
return 1;
}
}
- if (setacl == false) {
+ if (setacl == 0) {
printf("Not setting acls\n");
}
}
} /*Copy */
-int
-isMountPoint(name, blob)
- char *name;
- struct ViceIoctl *blob;
+static int
+isMountPoint(char *name, struct ViceIoctl *blob)
{
afs_int32 code;
char true_name[1024]; /*dirname */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/venus/whatfid.c,v 1.5.2.1 2007/04/10 18:43:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/venus/whatfid.c,v 1.5.2.2 2007/10/31 04:13:50 shadow Exp $");
#include <stdio.h>
#include <errno.h>
int WhatFidCmd_FileParm;
int WhatFidCmd_FollowLinkParm;
int
-WhatFidCmd(as)
- register struct cmd_syndesc *as;
+WhatFidCmd(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct ViceIoctl blob;
pn = argv[0];
- ts = cmd_CreateSyntax("initcmd", WhatFidCmd, 0, "list fid for file(s)");
+ ts = cmd_CreateSyntax("initcmd", WhatFidCmd, NULL, "list fid for file(s)");
WhatFidCmd_FileParm = cmd_AddParm(ts, "-path", CMD_LIST, 0, "pathnames");
WhatFidCmd_FollowLinkParm =
cmd_AddParm(ts, "-link", CMD_FLAG, CMD_OPTIONAL,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vfsck/dirutils.c,v 1.5 2003/07/15 23:17:27 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vfsck/dirutils.c,v 1.5.2.1 2007/10/30 15:24:10 shadow Exp $");
#include <sys/types.h>
#include <sys/stat.h>
+#include <string.h>
#include <dirent.h>
#include <afs/partition.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vfsck/setup.c,v 1.10.2.3 2005/04/03 18:15:54 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vfsck/setup.c,v 1.10.2.4 2007/10/30 15:24:10 shadow Exp $");
#include <stdio.h>
+#include <string.h>
#define VICE
#if defined(AFS_SUN_ENV) || defined(AFS_OSF_ENV)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vfsck/utilities.c,v 1.5.2.3 2005/10/03 02:46:33 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vfsck/utilities.c,v 1.5.2.4 2007/10/30 15:24:10 shadow Exp $");
#include <sys/param.h>
#define VICE /* allow us to put our changes in at will */
#endif /* AFS_OSF_ENV */
#include <stdio.h>
+#include <string.h>
#include <ctype.h>
#include "fsck.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.43.2.1 2007/12/13 20:59:29 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.81.2.47 2008/02/19 14:33:44 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifndef AFS_LINUX20_ENV
#include <net/if.h>
hpr_End(uclient);
code = hpr_Initialize(&uclient);
- assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ if (!code)
+ assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
H_LOCK;
#else
code = pr_Initialize(2, AFSDIR_SERVER_ETC_DIRPATH, 0);
if (IsEmpty(&childdir) != 0)
return (EEXIST);
DZap(&childdir);
+ FidZap(&childdir);
(*targetptr)->delete = 1;
} else if ((--(*targetptr)->disk.linkCount) == 0)
(*targetptr)->delete = 1;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/callback.c,v 1.55.2.18.2.2 2007/12/13 20:57:11 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/callback.c,v 1.55.2.27 2008/03/11 17:40:55 shadow Exp $");
#include <stdio.h>
#include <stdlib.h> /* for malloc() */
#include <time.h> /* ANSI standard location for time stuff */
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <io.h>
#include <sys/time.h>
#include <sys/file.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/assert.h>
#include <afs/stds.h>
#define FreeCB(cb) iFreeCB((struct CallBack *)cb, &cbstuff.nCBs)
#define FreeFE(fe) iFreeFE((struct FileEntry *)fe, &cbstuff.nFEs)
-/* Other protos - move out sometime */
-extern void ShutDown();
-
#define VHASH 512 /* Power of 2 */
static afs_uint32 HashTable[VHASH]; /* File entry hash table */
#define VHash(volume, unique) (((volume)+(unique))&(VHASH-1))
struct CallBack *newcb = 0;
int safety;
+ cbstuff.AddCallBacks++;
+
host->Console |= 2;
/* allocate these guys first, since we can't call the allocator with
return 0;
}
+static int
+CompareCBA(const void *e1, const void *e2)
+{
+ const struct cbstruct *cba1 = (const struct cbstruct *)e1;
+ const struct cbstruct *cba2 = (const struct cbstruct *)e2;
+ return ((cba1->hp)->index - (cba2->hp)->index);
+}
+
/* Take an array full of hosts, all held. Break callbacks to them, and
* release the holds once you're done, except don't release xhost. xhost
* may be NULL. Currently only works for a single Fid in afidp array.
assert(ncbas <= MAX_CB_HOSTS);
+ /* sort cba list to avoid makecall issues */
+ qsort(cba, ncbas, sizeof(struct cbstruct), CompareCBA);
+
/* set up conns for multi-call */
for (i = 0, j = 0; i < ncbas; i++) {
struct host *thishost = cba[i].hp;
register afs_uint32 *pcb;
char hoststr[16];
+ H_LOCK;
cbstuff.DeleteCallBacks++;
- H_LOCK;
h_Lock_r(host);
fe = FindFE(fid);
if (!fe) {
fe->volid));
fid.Volume = fe->volid;
*feip = fe->fnext;
+ fe->status &= ~FE_LATER;
/* Works since volid is deeper than the largest pointer */
tmpfe = (struct object *)fe;
tmpfe->next = (struct object *)myfe;
int
DumpCallBackState(void)
{
- int fd;
+ int fd, oflag;
afs_uint32 magic = MAGIC, now = FT_ApproxTime(), freelisthead;
- fd = open(AFSDIR_SERVER_CBKDUMP_FILEPATH, O_WRONLY | O_CREAT | O_TRUNC,
- 0666);
+ oflag = O_WRONLY | O_CREAT | O_TRUNC;
+#ifdef AFS_NT40_ENV
+ oflag |= O_BINARY;
+#endif
+ fd = open(AFSDIR_SERVER_CBKDUMP_FILEPATH, oflag, 0666);
if (fd < 0) {
ViceLog(0,
("Couldn't create callback dump file %s\n",
time_t
ReadDump(char *file)
{
- int fd;
+ int fd, oflag;
afs_uint32 magic, freelisthead;
- time_t now;
+ afs_uint32 now;
- fd = open(file, O_RDONLY);
+ oflag = O_RDONLY;
+#ifdef AFS_NT40_ENV
+ oflag |= O_BINARY;
+#endif
+ fd = open(file, oflag);
if (fd < 0) {
fprintf(stderr, "Couldn't read dump file %s\n", file);
exit(1);
printf("%d:%12x%12x%12x%12x\n", i, p[0], p[1], p[2], p[3]);
}
}
+ return 0;
}
int
printf("vol=%u vn=%u cbs=%d hi=%d st=%d fest=%d, exp in %d secs at %s",
fe->volid, fe->vnode, fe->ncbs, cb->hhead, cb->status, fe->status,
expires - now, ctime(&expires));
+ return 0;
}
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/check_sysid.c,v 1.6 2003/07/15 23:17:30 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/check_sysid.c,v 1.6.2.1 2007/11/26 21:21:57 shadow Exp $");
#include <fcntl.h>
#include <errno.h>
}
close(fd);
+ return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/fsprobe.c,v 1.11 2003/07/15 23:17:30 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/fsprobe.c,v 1.11.2.2 2007/11/26 21:21:57 shadow Exp $");
#include <afs/stds.h>
#include <afs/afsint.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <ubik.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
struct ubik_client *cstruct;
struct rx_connection *serverconns[MAXSERVERS];
}
}
#endif
+ return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.49.2.1 2007/12/13 20:55:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/host.c,v 1.57.2.58 2008/02/25 20:39:04 shadow Exp $");
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <winsock2.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <afs/stds.h>
#include <rx/xdr.h>
#include <afs/assert.h>
if (!uclient) {
code = hpr_Initialize(&uclient);
- assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ if (!code)
+ assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ else
+ return code;
}
over = 0;
if (!uclient) {
code = hpr_Initialize(&uclient);
- assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ if (!code)
+ assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ else
+ return code;
}
for (i = 0; i < names->namelist_len; i++)
if (!uclient) {
code = hpr_Initialize(&uclient);
- assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ if (!code)
+ assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ else
+ return code;
}
code = ubik_PR_IDToName(uclient, 0, ids, names);
if (!uclient) {
code = hpr_Initialize(&uclient);
- assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ if (!code)
+ assert(pthread_setspecific(viced_uclient_key, (void *)uclient) == 0);
+ else
+ return code;
}
over = 0;
void
h_flushhostcps(register afs_uint32 hostaddr, register afs_uint16 hport)
{
- register struct host *host;
+ struct host *host;
int held = 0;
H_LOCK;
- host = h_Lookup_r(hostaddr, hport, &held);
+ h_Lookup_r(hostaddr, hport, &held, &host);
if (host) {
host->hcpsfailed = 1;
if (!held)
/* hostaddr and hport are in network order */
/* Note: host should be released by caller if 0 == *heldp and non-null */
/* hostaddr and hport are in network order */
-struct host *
-h_Lookup_r(afs_uint32 haddr, afs_uint16 hport, int *heldp)
+int
+h_Lookup_r(afs_uint32 haddr, afs_uint16 hport, int *heldp, struct host **hostp)
{
register afs_int32 now;
register struct host *host = NULL;
assert(host);
if (!(host->hostFlags & HOSTDELETED) && chain->addr == haddr
&& chain->port == hport) {
+ if ((host->hostFlags & HWHO_INPROGRESS) &&
+ h_threadquota(host->lock.num_waiting)) {
+ *hostp = 0;
+ return VBUSY;
+ }
*heldp = h_Held_r(host);
if (!*heldp)
h_Hold_r(host);
}
host = NULL;
}
- return host;
-
+ *hostp = host;
+ return 0;
} /*h_Lookup */
/* Lookup a host given its UUID. */
if (!(held[count] = h_Held_r(host)))
h_Hold_r(host);
}
- assert(count == hostCount);
+ if (count != hostCount) {
+ ViceLog(0, ("h_Enumerate found %d of %d hosts\n", count, hostCount));
+ }
+ assert(count <= hostCount);
H_UNLOCK;
for (i = 0; i < count; i++) {
held[i] = (*proc) (list[i], held[i], param);
caps.Capabilities_len = 0;
code = 0;
- host = h_Lookup_r(haddr, hport, &held);
+ if (h_Lookup_r(haddr, hport, &held, &host))
+ return 0;
identP = (struct Identity *)rx_GetSpecific(tcon, rxcon_ident_key);
if (host && !identP && !(host->Console & 1)) {
/* This is a new connection, and we already have a host
* of the caller matches the identity in the host structure.
*/
if ((host->hostFlags & HWHO_INPROGRESS) &&
- h_threadquota(host->lock.num_waiting))
+ h_threadquota(host->lock.num_waiting)) {
+ if (!held)
+ h_Release_r(host);
return 0;
+ }
h_Lock_r(host);
if (!(host->hostFlags & ALTADDR)) {
- host->hostFlags &= ~HWHO_INPROGRESS;
/* Another thread is doing initialization */
h_Unlock_r(host);
if (!held)
ntohs(host->port)));
goto retry;
}
+ host->hostFlags |= HWHO_INPROGRESS;
host->hostFlags &= ~ALTADDR;
cb_conn = host->callback_rxcon;
rx_GetConnection(cb_conn);
cb_conn=NULL;
H_LOCK;
if ((code == RXGEN_OPCODE) ||
- (afs_uuid_equal(&interf.uuid, &nulluuid))) {
+ ((code == 0) && (afs_uuid_equal(&interf.uuid, &nulluuid)))) {
identP = (struct Identity *)malloc(sizeof(struct Identity));
if (!identP) {
ViceLog(0, ("Failed malloc in h_GetHost_r\n"));
afs_inet_ntoa_r(host->host, hoststr),
ntohs(host->port)));
h_Lock_r(host);
- host->hostFlags &= ~HWHO_INPROGRESS;
h_Unlock_r(host);
if (!held)
h_Release_r(host);
/* The host in the cache is not the host for this connection */
h_Lock_r(host);
host->hostFlags |= HOSTDELETED;
- host->hostFlags &= ~HWHO_INPROGRESS;
h_Unlock_r(host);
if (!held)
h_Release_r(host);
int pident = 0;
cb_conn = host->callback_rxcon;
rx_GetConnection(cb_conn);
+ host->hostFlags |= HWHO_INPROGRESS;
H_UNLOCK;
code =
RXAFSCB_TellMeAboutYourself(cb_conn, &interf, &caps);
cb_conn=NULL;
H_LOCK;
if ((code == RXGEN_OPCODE) ||
- afs_uuid_equal(&interf.uuid, &nulluuid)) {
+ ((code == 0) && (afs_uuid_equal(&interf.uuid, &nulluuid)))) {
if (!identP)
identP =
(struct Identity *)malloc(sizeof(struct Identity));
extern int DeleteAllCallBacks_r(struct host *host, int deletefe);
extern struct host *h_Alloc(register struct rx_connection *r_con);
extern struct host *h_Alloc_r(register struct rx_connection *r_con);
-extern struct host *h_Lookup_r(afs_uint32 hostaddr, afs_uint16 hport,
- int *heldp);
+extern int h_Lookup_r(afs_uint32 hostaddr, afs_uint16 hport,
+ int *heldp, struct host **hostp);
extern void hashInsert_r(afs_uint32 addr, afs_uint16 port,
struct host* host);
extern struct host *h_LookupUuid_r(afsUUID * uuidp);
extern int removeInterfaceAddr_r(struct host *host, afs_uint32 addr, afs_uint16 port);
extern int removeAddress_r(struct host *host, afs_uint32 addr, afs_uint16 port);
+extern void *ShutDown(void *);
+
struct Interface *MultiVerifyInterface_r();
struct host *(hosttableptrs[h_MAXHOSTTABLES]); /* Used by h_itoh */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/physio.c,v 1.14 2003/12/08 01:45:34 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/viced/physio.c,v 1.14.2.1 2007/10/30 15:24:11 shadow Exp $");
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#else
#include <sys/time.h>
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/nfs.h>
#include <afs/assert.h>
#include <lwp.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/viced/viced.c,v 1.58.2.19.2.1 2007/12/13 21:00:43 shadow Exp $");
+ ("$Header: /cvs/openafs/src/viced/viced.c,v 1.58.2.27 2008/03/11 17:40:55 shadow Exp $");
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
+#include <string.h>
#include <sys/types.h>
#include <afs/procmgmt.h> /* signal(), kill(), wait(), etc. */
#include <sys/stat.h>
#include <netdb.h>
#include <unistd.h> /* sysconf() */
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#ifndef ITIMER_REAL
#include <sys/time.h>
#endif /* ITIMER_REAL */
extern int LogLevel, etext;
extern afs_int32 BlocksSpare, PctSpare;
-void ShutDown(void);
+void *ShutDown(void *);
static void ClearXStatValues(), NewParms(), PrintCounters();
static void ResetCheckDescriptors(void), ResetCheckSignal(void);
-static void CheckSignal(void);
+static void *CheckSignal(void *);
extern int GetKeysFromToken();
extern int RXAFS_ExecuteRequest();
extern int RXSTATS_ExecuteRequest();
int printBanner = 0;
int rxJumbograms = 1; /* default is to send and receive jumbograms. */
int rxBind = 0; /* don't bind */
+int rxkadDisableDotCheck = 0; /* disable check for dot in principal name */
int rxMaxMTU = -1;
afs_int32 implicitAdminRights = PRSFS_LOOKUP; /* The ADMINISTER right is
* already implied */
*/
/* DEBUG HACK */
-static void
-CheckDescriptors()
+static void *
+CheckDescriptors(void *unused)
{
#ifndef AFS_NT40_ENV
struct afs_stat status;
fflush(stdout);
ResetCheckDescriptors();
#endif
+ return 0;
} /*CheckDescriptors */
void
CheckSignal_Signal(x)
{
- CheckSignal();
+ CheckSignal(NULL);
}
void
ShutDown_Signal(x)
{
- ShutDown();
+ ShutDown(NULL);
}
void
CheckDescriptors_Signal(x)
{
- CheckDescriptors();
+ CheckDescriptors(NULL);
}
#else /* AFS_PTHREAD_ENV */
void
}
/* This LWP does things roughly every 5 minutes */
-static void
-FiveMinuteCheckLWP()
+static void *
+FiveMinuteCheckLWP(void *unused)
{
static int msg = 0;
char tbuffer[32];
}
}
}
+ return NULL;
} /*FiveMinuteCheckLWP */
* other 5 minute activities because it may be delayed by timeouts when
* it probes the workstations
*/
-static void
-HostCheckLWP()
+static void *
+HostCheckLWP(void *unused)
{
ViceLog(1, ("Starting Host check process\n"));
setThreadId("HostCheckLWP");
ViceLog(2, ("Checking for dead venii & clients\n"));
h_CheckHosts();
}
+ return NULL;
} /*HostCheckLWP */
/* This LWP does fsync checks every 5 minutes: it should not be used for
* other 5 minute activities because it may be delayed by timeouts when
* it probes the workstations
*/
-static
-FsyncCheckLWP()
+static void *
+FsyncCheckLWP(void *unused)
{
afs_int32 code;
#ifdef AFS_PTHREAD_ENV
setThreadId("FsyncCheckLWP");
-#ifdef AFS_PTHREAD_ENV
- assert(pthread_cond_init(&fsync_cond, NULL) == 0);
- assert(pthread_mutex_init(&fsync_glock_mutex, NULL) == 0);
-#endif
-
while (1) {
FSYNC_LOCK;
#ifdef AFS_PTHREAD_ENV
code = BreakLaterCallBacks();
} while (code != 0);
}
+ return NULL;
}
/*------------------------------------------------------------------------
-static void
-CheckSignal()
+static void *
+CheckSignal(void *unused)
{
if (FS_registered > 0) {
/*
DumpCallBackState();
PrintCounters();
ResetCheckSignal();
-
+ return NULL;
} /*CheckSignal */
void
} /*ShutDown */
-void
-ShutDown(void)
+void *
+ShutDown(void *unused)
{ /* backward compatibility */
ShutDownAndCore(DONTPANIC);
+ return NULL;
}
strcat(buffer, "[-rxdbge (enable rxevent debugging)] ");
strcat(buffer, "[-rxmaxmtu <bytes>] ");
strcat(buffer, "[-rxbind (bind the Rx socket to one address)] ");
+ strcat(buffer, "[-allow-dotted-principals (disable the rxkad principal name dot check)] ");
#if AFS_PTHREAD_ENV
strcat(buffer, "[-vattachpar <number of volume attach threads>] ");
#endif
rxJumbograms = 0;
} else if (!strcmp(argv[i], "-rxbind")) {
rxBind = 1;
+ } else if (!strcmp(argv[i], "-allow-dotted-principals")) {
+ rxkadDisableDotCheck = 1;
} else if (!strcmp(argv[i], "-rxmaxmtu")) {
if ((i + 1) >= argc) {
fprintf(stderr, "missing argument for -rxmaxmtu\n");
rx_SetBusyThreshold(busy_threshold, VBUSY);
rx_SetCallAbortThreshold(abort_threshold);
rx_SetConnAbortThreshold(abort_threshold);
+#ifdef AFS_XBSD_ENV
+ stackSize = 128 * 1024;
+#else
stackSize = lwps * 4000;
if (stackSize < 32000)
stackSize = 32000;
else if (stackSize > 44000)
stackSize = 44000;
-#if defined(AFS_HPUX_ENV) || defined(AFS_SUN_ENV) || defined(AFS_SGI51_ENV)
+#endif
+#if defined(AFS_HPUX_ENV) || defined(AFS_SUN_ENV) || defined(AFS_SGI51_ENV) || defined(AFS_XBSD_ENV)
rx_SetStackSize(1, stackSize);
#endif
if (udpBufSize)
("Failed to initialize RX, probably two servers running.\n"));
exit(-1);
}
+ if (rxkadDisableDotCheck) {
+ rx_SetSecurityConfiguration(tservice, RXS_CONFIG_FLAGS,
+ (void *)RXS_CONFIG_FLAGS_DISABLE_DOTCHECK,
+ NULL);
+ }
rx_SetMinProcs(tservice, 3);
rx_SetMaxProcs(tservice, lwps);
rx_SetCheckReach(tservice, 1);
/* allow super users to manage RX statistics */
rx_SetRxStatUserOk(fs_rxstat_userok);
+#ifdef AFS_PTHREAD_ENV
+ assert(pthread_cond_init(&fsync_cond, NULL) == 0);
+ assert(pthread_mutex_init(&fsync_glock_mutex, NULL) == 0);
+#endif
+
rx_StartServer(0); /* now start handling requests */
/* we ensure that there is enough space in the vnode buffer to satisfy
assert(pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED) == 0);
assert(pthread_create
- (&serverPid, &tattr, (void *)FiveMinuteCheckLWP,
+ (&serverPid, &tattr, FiveMinuteCheckLWP,
&fiveminutes) == 0);
assert(pthread_create
- (&serverPid, &tattr, (void *)HostCheckLWP, &fiveminutes) == 0);
+ (&serverPid, &tattr, HostCheckLWP, &fiveminutes) == 0);
assert(pthread_create
- (&serverPid, &tattr, (void *)FsyncCheckLWP, &fiveminutes) == 0);
+ (&serverPid, &tattr, FsyncCheckLWP, &fiveminutes) == 0);
#else /* AFS_PTHREAD_ENV */
ViceLog(5, ("Starting LWP\n"));
assert(LWP_CreateProcess
(FiveMinuteCheckLWP, stack * 1024, LWP_MAX_PRIORITY - 2,
- (void *)&fiveminutes, "FiveMinuteChecks",
+ &fiveminutes, "FiveMinuteChecks",
&serverPid) == LWP_SUCCESS);
assert(LWP_CreateProcess
(HostCheckLWP, stack * 1024, LWP_MAX_PRIORITY - 2,
- (void *)&fiveminutes, "HostCheck", &serverPid) == LWP_SUCCESS);
+ &fiveminutes, "HostCheck", &serverPid) == LWP_SUCCESS);
assert(LWP_CreateProcess
(FsyncCheckLWP, stack * 1024, LWP_MAX_PRIORITY - 2,
- (void *)&fiveminutes, "FsyncCheck", &serverPid) == LWP_SUCCESS);
+ &fiveminutes, "FsyncCheck", &serverPid) == LWP_SUCCESS);
#endif /* AFS_PTHREAD_ENV */
TM_GetTimeOfDay(&tp, 0);
#else /* AFS_PTHREAD_ENV */
assert(LWP_WaitProcess(&parentPid) == LWP_SUCCESS);
#endif /* AFS_PTHREAD_ENV */
+ return 0;
}
vldbint.xdr.o: vldbint.xdr.c vldbint.h
vldbint.cs.c: vldbint.xg
- ${RXGEN} -u -x -C -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -u -x -C -o $@ ${srcdir}/vldbint.xg
vldbint.ss.c: vldbint.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -x -S -o $@ ${srcdir}/vldbint.xg
vldbint.xdr.c: vldbint.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -x -c -o $@ ${srcdir}/vldbint.xg
vldbint.h: vldbint.xg
- ${RXGEN} -u -x -h -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -u -x -h -o $@ ${srcdir}/vldbint.xg
vldbint.cs.c: vldbint.h
vldbint.ss.c: vldbint.h
vldbint.xdr.c: vldbint.h
Kvldbint.cs.c: vldbint.xg
- ${RXGEN} -x -k -C -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -x -k -C -o $@ ${srcdir}/vldbint.xg
Kvldbint.xdr.c: vldbint.xg
- ${RXGEN} -x -k -c -o $@ ${srcdir}/vldbint.xg
+ ${RXGEN} -A -x -k -c -o $@ ${srcdir}/vldbint.xg
libvldb.a: $(OBJS) AFS_component_version_number.o
$(RM) -f $@
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/cnvldb.c,v 1.9 2003/07/15 23:17:33 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/cnvldb.c,v 1.9.2.4 2007/12/09 23:37:17 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <sys/file.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include "cnvldb.h" /* CHANGEME! */
#include <netinet/in.h>
#define BADSERVERID 255 /* XXX */
-extern struct cmd_syndesc *cmd_CreateSyntax();
static char pn[] = "cnvldb";
static char tempname[] = "XXnewvldb";
static char space[MAXSIZE];
static int rewrite_header();
static char tspace[1024]; /* chdir can't handle anything bigger, anyway */
+
+void read_mhentries(afs_uint32 mh_addr, int oldfd);
+void convert_mhentries(int oldfd, int newfd, struct vlheader_2 *header, int fromver, int tover);
+
/* return a static pointer to a buffer */
static char *
Parent(apath)
char *pathname = NULL;
const char *dbPath;
-static
-handleit(as)
- struct cmd_syndesc *as;
+static int
+handleit(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
register afs_int32 code;
* verifying their address is not pass the EOF and the flags are good.
* If it's not good, then don't read the block in.
*/
+void
read_mhentries(mh_addr, oldfd)
int oldfd;
afs_uint32 mh_addr;
*
* Before this can be called, the routine read_mhentries must be called.
*/
+void
convert_mhentries(oldfd, newfd, header, fromver, tover)
int oldfd, newfd;
struct vlheader_2 *header;
register struct cmd_syndesc *ts;
afs_int32 code;
- ts = cmd_CreateSyntax("initcmd", handleit, 0, "optional");
+ ts = cmd_CreateSyntax("initcmd", handleit, NULL, "optional");
cmd_AddParm(ts, "-to", CMD_SINGLE, CMD_OPTIONAL, "goal version");
cmd_AddParm(ts, "-from", CMD_SINGLE, CMD_OPTIONAL, "current version");
cmd_AddParm(ts, "-path", CMD_SINGLE, CMD_OPTIONAL, "pathname");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/sascnvldb.c,v 1.7 2003/07/15 23:17:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/sascnvldb.c,v 1.7.2.1 2007/10/31 04:13:51 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include "cnvldb.h" /* CHANGEME! */
#include <netinet/in.h>
#include <afs/venus.h>
+#include <afs/cmd.h>
#ifdef notdef
#include <afs/vice.h>
#define MAXSIZE 2048 /* most I'll get back from PIOCTL */
-extern struct cmd_syndesc *cmd_CreateSyntax();
static char pn[] = "cnvldb";
static char tempname[] = "XXnewvldb";
static char space[MAXSIZE];
}
-static
-ListQuotaCmd(as)
- register struct cmd_syndesc *as;
+static int
+ListQuotaCmd(register struct cmd_syndesc *as, void *arock)
{
register afs_int32 code;
struct ViceIoctl blob;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/vlclient.c,v 1.12.2.1 2004/10/18 07:12:25 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/vlclient.c,v 1.12.2.3 2007/10/31 04:13:51 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <netinet/in.h>
#endif
#include <stdio.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afsutil.h>
#include <rx/xdr.h>
}
-static
-handleit(as)
- struct cmd_syndesc *as;
+static int
+handleit(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
register afs_int32 code, server = 0, sawserver = 0;
afs_int32 code;
strcpy(confdir, AFSDIR_CLIENT_ETC_DIRPATH);
- ts = cmd_CreateSyntax("initcmd", handleit, 0, "initialize the program");
+ ts = cmd_CreateSyntax("initcmd", handleit, NULL, "initialize the program");
cmd_AddParm(ts, "-cellpath", CMD_LIST, CMD_OPTIONAL,
"Cell configuration directory");
cmd_AddParm(ts, "-server", CMD_LIST, CMD_OPTIONAL,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/vldb_check.c,v 1.11.2.1 2006/12/16 06:26:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/vldb_check.c,v 1.11.2.5 2007/12/11 20:45:29 shadow Exp $");
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <WINNT/afsevent.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include "vlserver.h"
#include "vldbint.h"
#include <ubik.h>
if (headerp->vital_header.headersize != sizeof(*headerp))
printf("Header reports its size as %d (should be %d)\n",
headerp->vital_header.headersize, sizeof(*headerp));
+ return;
}
void
for (j = 0; j < VL_MAXIPADDRS_PERMH; j++)
e->ex_addrs[j] = ntohl(e->ex_addrs[j]);
}
+ return;
}
void
}
}
}
+ return;
}
void
("%d entries in name hash, longest is %d, shortest is %d, average length is %f\n",
count, longest, shortest, ((float)count / (float)HASHSIZE));
}
+ return;
}
/*
((float)count / (float)HASHSIZE));
}
}
+ return;
}
/*
}
if (verbose)
printf("%d entries on free chain\n", count);
+ return;
}
/*
printf("%d simple entries, %d multihomed entries, Total = %d\n",
regentries, mhentries, mhentries + regentries);
}
-
+ return;
}
void
}
int
-WorkerBee(struct cmd_syndesc *as, char *arock)
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
char *dbfile;
afs_int32 maxentries, type, tmp;
*/
ProbeServer(
-) = VLPROBE;
+) multi = VLPROBE;
/*
* VL_GetEntryByName was renamed to VL_GetEntryByNameO to avoid
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/vlprocs.c,v 1.13.2.2 2005/06/21 20:19:29 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/vlprocs.c,v 1.13.2.4 2007/11/26 21:21:57 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
+#include <string.h>
#include <lock.h>
#include <afs/afsutil.h>
#include <ubik.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/keys.h>
#include "vlserver.h"
#include "afs/audit.h"
static int put_attributeentry();
static int put_nattributeentry();
static int RemoveEntry();
-static ReleaseEntry();
+static void ReleaseEntry();
static int check_vldbentry();
static int check_nvldbentry();
static int vldbentry_to_vlentry();
static int nvldbentry_to_vlentry();
static get_vldbupdateentry();
static int repsite_exists();
-static repsite_compress();
-static vlentry_to_vldbentry();
-static vlentry_to_nvldbentry();
-static vlentry_to_uvldbentry();
+static void repsite_compress();
+static void vlentry_to_vldbentry();
+static void vlentry_to_nvldbentry();
+static void vlentry_to_uvldbentry();
static int InvalidVolname();
static int InvalidVoltype();
static int InvalidOperation();
return 0;
}
-static
+static void
ReleaseEntry(tentry, releasetype)
struct nvlentry *tentry;
afs_int32 releasetype;
/* Repsite table compression: used when deleting a repsite entry so that all active repsite entries are on the top of the table. */
-static
+static void
repsite_compress(VlEntry, offset)
struct nvlentry *VlEntry;
int offset;
/* Convert from the internal (compacted) vldb entry to the external representation used by the interface. */
-static
+static void
vlentry_to_vldbentry(VlEntry, VldbEntry)
struct nvlentry *VlEntry;
struct vldbentry *VldbEntry;
/* Convert from the internal (compacted) vldb entry to the external representation used by the interface. */
-static
+static void
vlentry_to_nvldbentry(VlEntry, VldbEntry)
struct nvlentry *VlEntry;
struct nvldbentry *VldbEntry;
VldbEntry->flags = VlEntry->flags;
}
-static
+static void
vlentry_to_uvldbentry(VlEntry, VldbEntry)
struct nvlentry *VlEntry;
struct uvldbentry *VldbEntry;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/vlserver.c,v 1.18.2.6 2006/06/20 20:35:01 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/vlserver.c,v 1.18.2.11 2008/03/10 22:35:37 shadow Exp $");
#include <afs/stds.h>
#include <sys/types.h>
#include <signal.h>
#include <sys/stat.h>
+#include <string.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#endif
#include <stdio.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <rx/xdr.h>
#include <rx/rx.h>
#include <rx/rx_globals.h>
extern int afsconf_CheckAuth();
extern int afsconf_ServerAuth();
-static CheckSignal();
+static void *CheckSignal(void*);
int LogLevel = 0;
int smallMem = 0;
int rxJumbograms = 1; /* default is to send and receive jumbo grams */
int rxMaxMTU = -1;
afs_int32 rxBind = 0;
+int rxkadDisableDotCheck = 0;
#define ADDRSPERSITE 16 /* Same global is in rx/rx_user.c */
afs_uint32 SHostAddrs[ADDRSPERSITE];
IOMGR_SoftSig(CheckSignal, 0);
}
-static
-CheckSignal()
+static void *
+CheckSignal(void *unused)
{
register int i, errorcode;
struct ubik_trans *trans;
for (i = 0; i < HASHSIZE; i++) {
HashIdDump(trans, i);
}
- return (ubik_EndTrans(trans));
+ return ((void *)ubik_EndTrans(trans));
} /*CheckSignal */
} else if (strcmp(argv[index], "-rxbind") == 0) {
rxBind = 1;
-
+ } else if (strcmp(argv[index], "-allow-dotted-principals") == 0) {
+ rxkadDisableDotCheck = 1;
} else if (!strcmp(argv[index], "-rxmaxmtu")) {
if ((index + 1) >= argc) {
fprintf(stderr, "missing argument for -rxmaxmtu\n");
rxMaxMTU = atoi(argv[++i]);
if ((rxMaxMTU < RX_MIN_PACKET_SIZE) ||
(rxMaxMTU > RX_MAX_PACKET_DATA_SIZE)) {
- printf("rxMaxMTU %d% invalid; must be between %d-%d\n",
+ printf("rxMaxMTU %d invalid; must be between %d-%d\n",
rxMaxMTU, RX_MIN_PACKET_SIZE,
RX_MAX_PACKET_DATA_SIZE);
return -1;
/* support help flag */
#ifndef AFS_NT40_ENV
printf("Usage: vlserver [-p <number of processes>] [-nojumbo] "
- "[-rxmaxmtu <bytes>] [-rxbind] "
+ "[-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals] "
"[-auditlog <log path>] "
"[-syslog[=FACILITY]] "
"[-enable_peer_stats] [-enable_process_stats] "
"[-help]\n");
#else
printf("Usage: vlserver [-p <number of processes>] [-nojumbo] "
- "[-rxmaxmtu <bytes>] [-rxbind] "
+ "[-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals] "
"[-auditlog <log path>] "
"[-enable_peer_stats] [-enable_process_stats] "
"[-help]\n");
lwps = 4;
rx_SetMaxProcs(tservice, lwps);
+ if (rxkadDisableDotCheck) {
+ rx_SetSecurityConfiguration(tservice, RXS_CONFIG_FLAGS,
+ (void *)RXS_CONFIG_FLAGS_DISABLE_DOTCHECK,
+ NULL);
+ }
+
tservice =
rx_NewServiceHost(host, 0, RX_STATS_SERVICE_ID, "rpcstats", sc, 3,
RXSTATS_ExecuteRequest);
rx_SetRxStatUserOk(vldb_rxstat_userok);
rx_StartServer(1); /* Why waste this idle process?? */
+
+ return 0; /* not reachable */
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vlserver/vlutils.c,v 1.9 2003/12/07 22:49:42 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/vlserver/vlutils.c,v 1.9.2.1 2007/10/30 15:24:11 shadow Exp $");
#include <sys/types.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <lock.h>
#include <rx/xdr.h>
#include <ubik.h>
${DESTDIR}${includedir}/afs/namei_ops.h
${DEST}/root.server/usr/afs/bin/salvager: salvager
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/root.server/usr/afs/bin/volinfo: volinfo
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/lib/afs/vlib.a: vlib.a
${INSTALL} $? $@
${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/fs_conv_dux40D: fs_conv_dux40D
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/xfs_size_check: xfs_size_check
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/fs_conv_sol26: fs_conv_sol26
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
$(DEST)/root.server/usr/afs/bin/fs_conv_dux40D: fs_conv_dux40D
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
$(DEST)/root.server/usr/afs/bin/xfs_size_check: xfs_size_check
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
$(DEST)/root.server/usr/afs/bin/fs_conv_sol26: fs_conv_sol26
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DEST}/include/afs/nfs.h: nfs.h
${INSTALL} $? $@
${INSTALL} $? $@
${DESTDIR}${afssrvlibexecdir}/salvager: salvager
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${afssrvsbindir}/volinfo: volinfo
- ${INSTALL} -s $? $@
+ ${INSTALL} $? $@
${DESTDIR}${includedir}/afs/nfs.h: nfs.h
${INSTALL} $? $@
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.5 2007/05/18 05:55:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.6 2007/10/30 15:24:11 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
#include <sys/file.h>
#include <sys/time.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <errno.h>
#include <sys/stat.h>
#include <afsconfig.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/devname.c,v 1.13 2003/12/08 07:31:57 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/devname.c,v 1.13.2.1 2007/10/30 15:24:11 shadow Exp $");
#include <afs/param.h>
#include <rx/xdr.h>
#include <afs/afsint.h>
+#include <string.h>
#include <ctype.h>
#if !defined(AFS_SGI_ENV)
#ifdef AFS_OSF_ENV
#endif /* ITIMER_REAL */
#include "partition.h"
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
-
/* ensure that we don't have a "/" instead of a "/dev/rxd0a" type of device.
* returns pointer to static storage; copy it out quickly!
*/
#include <afs/afsutil.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/Attic/fssync.c,v 1.26.2.7 2007/06/23 13:46:53 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/Attic/fssync.c,v 1.26.2.9 2008/03/21 16:59:26 shadow Exp $");
#include <sys/types.h>
#include <stdio.h>
+#include <unistd.h>
#ifdef AFS_NT40_ENV
#include <winsock2.h>
#include <time.h>
*/
struct Lock FSYNC_handler_lock;
+
+/*
+ * On AIX, connect() and bind() require use of SUN_LEN() macro;
+ * sizeof(struct sockaddr_un) will not suffice.
+ */
+#if defined(AFS_AIX_ENV) && defined(USE_UNIX_SOCKETS)
+#define AFS_SOCKADDR_LEN(sa) SUN_LEN(sa)
+#else
+#define AFS_SOCKADDR_LEN(sa) sizeof(*sa)
+#endif
+
int
FSYNC_clientInit(int f)
{
for (;;) {
FS_sd = getport(&addr);
- if (connect(FS_sd, (struct sockaddr *)&addr, sizeof(addr)) >= 0)
+ if (connect(FS_sd, (struct sockaddr *)&addr, AFS_SOCKADDR_LEN(&addr)) >= 0)
return 1;
if (!f) {
FSYNC_clientFinis();
for (numTries = 0; numTries < MAX_BIND_TRIES; numTries++) {
if ((code =
- bind(AcceptSd, (struct sockaddr *)&addr, sizeof(addr))) == 0)
+ bind(AcceptSd, (struct sockaddr *)&addr, AFS_SOCKADDR_LEN(&addr))) == 0)
break;
#ifdef USE_UNIX_SOCKETS
code = errno;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/ihandle.c,v 1.18.2.3 2007/09/10 21:55:58 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/vol/ihandle.c,v 1.18.2.5 2007/11/26 21:47:38 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#else
#include <sys/resource.h>
#endif
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
+
#include <rx/xdr.h>
#include <afs/afsint.h>
#include <errno.h>
*/
fdInUseCount += 1;
IH_UNLOCK;
+ih_open_retry:
fd = OS_IOPEN(ihP);
IH_LOCK;
- if (fd == INVALID_FD) {
+ if (fd == INVALID_FD && (errno != EMFILE || fdLruHead == NULL) ) {
fdInUseCount -= 1;
IH_UNLOCK;
return NULL;
* we permit the number of open files to exceed fdCacheSize.
* We only recycle open file descriptors when the number
* of open files reaches the size of the cache */
- if (fdInUseCount > fdCacheSize && fdLruHead != NULL) {
+ if ((fdInUseCount > fdCacheSize || fd == INVALID_FD) && fdLruHead != NULL) {
fdP = fdLruHead;
assert(fdP->fd_status == FD_HANDLE_OPEN);
DLL_DELETE(fdP, fdLruHead, fdLruTail, fd_next, fd_prev);
DLL_DELETE(fdP, fdP->fd_ih->ih_fdhead, fdP->fd_ih->ih_fdtail,
fd_ihnext, fd_ihprev);
closeFd = fdP->fd_fd;
+ if (fd == INVALID_FD) {
+ fdCacheSize--; /* reduce in order to not run into here too often */
+ DLL_INSERT_TAIL(fdP, fdAvailHead, fdAvailTail, fd_next, fd_prev);
+ fdP->fd_status = FD_HANDLE_AVAIL;
+ fdP->fd_ih = NULL;
+ fdP->fd_fd = INVALID_FD;
+ IH_UNLOCK;
+ OS_CLOSE(closeFd);
+ goto ih_open_retry;
+ }
} else {
if (fdAvailHead == NULL) {
fdHandleAllocateChunk();
#include <afsconfig.h>
#include <afs/param.h>
+#include <string.h>
+
RCSID
- ("$Header: /cvs/openafs/src/vol/listinodes.c,v 1.13.2.4 2006/09/03 05:51:42 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/listinodes.c,v 1.13.2.6 2007/11/13 22:15:34 shadow Exp $");
#ifndef AFS_NAMEI_ENV
#if defined(AFS_LINUX20_ENV) || defined(AFS_SUN4_ENV)
#if defined(AFS_HPUX101_ENV)
#include <unistd.h>
#endif
+#include "lock.h"
+#include "ihandle.h"
+#include "vnode.h"
+#include "volume.h"
+#include "volinodes.h"
#include "partition.h"
+#include "fssync.h"
/*@+fcnmacros +macrofcndecl@*/
#ifdef O_LARGEFILE
return -1;
}
- inodeFile = fopen(resultFile, "w");
- if (inodeFile == NULL) {
- Log("Unable to create inode description file %s\n", resultFile);
- goto out;
+ if (resultFile) {
+ inodeFile = fopen(resultFile, "w");
+ if (inodeFile == NULL) {
+ Log("Unable to create inode description file %s\n", resultFile);
+ goto out;
+ }
}
/*
if (judgeInode && (*judgeInode) (&info, judgeParam, rock) == 0)
continue;
- if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
- Log("Error writing inode file for partition %s\n", partition);
- goto out;
+ if (inodeFile) {
+ if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
+ Log("Error writing inode file for partition %s\n", partition);
+ goto out;
+ }
}
++ninodes;
}
- if (fflush(inodeFile) == EOF) {
- Log("Unable to successfully flush inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fsync(fileno(inodeFile)) == -1) {
- Log("Unable to successfully fsync inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fclose(inodeFile) == EOF) {
- Log("Unable to successfully close inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
+ if (inodeFile) {
+ if (fflush(inodeFile) == EOF) {
+ Log("Unable to successfully flush inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fsync(fileno(inodeFile)) == -1) {
+ Log("Unable to successfully fsync inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fclose(inodeFile) == EOF) {
+ Log("Unable to successfully close inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
- /*
- * Paranoia: check that the file is really the right size
- */
- if (stat(resultFile, &status) == -1) {
- Log("Unable to successfully stat inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
- Log("Wrong size (%d instead of %d) in inode file for %s\n",
- status.st_size, ninodes * sizeof(struct ViceInodeInfo),
- partition);
- err = -2;
- goto out1;
+ /*
+ * Paranoia: check that the file is really the right size
+ */
+ if (stat(resultFile, &status) == -1) {
+ Log("Unable to successfully stat inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
+ Log("Wrong size (%d instead of %d) in inode file for %s\n",
+ status.st_size, ninodes * sizeof(struct ViceInodeInfo),
+ partition);
+ err = -2;
+ goto out1;
+ }
}
close(pfd);
return 0;
return -1;
}
- inodeFile = fopen(resultFile, "w");
- if (inodeFile == NULL) {
- Log("Unable to create inode description file %s\n", resultFile);
- goto out;
+ if (resultFile) {
+ inodeFile = fopen(resultFile, "w");
+ if (inodeFile == NULL) {
+ Log("Unable to create inode description file %s\n", resultFile);
+ goto out;
+ }
}
/* Allocate space for one cylinder group's worth of inodes. */
if (judgeInode && (*judgeInode) (&info, judgeParam, rock) == 0)
continue;
- if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
- Log("Error writing inode file for partition %s\n", partition);
- goto out;
+ if (inodeFile) {
+ if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
+ Log("Error writing inode file for partition %s\n", partition);
+ goto out;
+ }
}
++ninodes;
}
- if (fflush(inodeFile) == EOF) {
- Log("Unable to successfully flush inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fsync(fileno(inodeFile)) == -1) {
- Log("Unable to successfully fsync inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fclose(inodeFile) == EOF) {
- Log("Unable to successfully close inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
+ if (inodeFile) {
+ if (fflush(inodeFile) == EOF) {
+ Log("Unable to successfully flush inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fsync(fileno(inodeFile)) == -1) {
+ Log("Unable to successfully fsync inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fclose(inodeFile) == EOF) {
+ Log("Unable to successfully close inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
- /*
- * Paranoia: check that the file is really the right size
- */
- if (stat(resultFile, &status) == -1) {
- Log("Unable to successfully stat inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
- Log("Wrong size (%d instead of %d) in inode file for %s\n",
- status.st_size, ninodes * sizeof(struct ViceInodeInfo),
- partition);
- err = -2;
- goto out1;
+ /*
+ * Paranoia: check that the file is really the right size
+ */
+ if (stat(resultFile, &status) == -1) {
+ Log("Unable to successfully stat inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
+ Log("Wrong size (%d instead of %d) in inode file for %s\n",
+ status.st_size, ninodes * sizeof(struct ViceInodeInfo),
+ partition);
+ err = -2;
+ goto out1;
+ }
}
efs_umount(mp);
if (dinodeBuf) {
return -1;
}
- inodeFile = fopen(resultFile, "w");
- if (inodeFile == NULL) {
- Log("Unable to create inode description file %s\n", resultFile);
- return -1;
+ if (resultFile) {
+ inodeFile = fopen(resultFile, "w");
+ if (inodeFile == NULL) {
+ Log("Unable to create inode description file %s\n", resultFile);
+ return -1;
+ }
}
if ((top_dirp = opendir(mountedOn)) == NULL) {
n_renames++;
}
- if (fwrite
- (&info.ili_info, sizeof(vice_inode_info_t), 1, inodeFile)
- != 1) {
- Log("Error writing inode file for partition %s\n", mountedOn);
- goto err1_exit;
+ if (inodeFile) {
+ if (fwrite(&info.ili_info, sizeof(vice_inode_info_t), 1, inodeFile) != 1) {
+ Log("Error writing inode file for partition %s\n", mountedOn);
+ goto err1_exit;
+ }
}
ninodes++;
closedir(top_dirp);
if (renames)
free((char *)renames);
- if (fflush(inodeFile) == EOF) {
- ("Unable to successfully flush inode file for %s\n", mountedOn);
- fclose(inodeFile);
- return errors ? -1 : -2;
- }
- if (fsync(fileno(inodeFile)) == -1) {
- Log("Unable to successfully fsync inode file for %s\n", mountedOn);
- fclose(inodeFile);
- return errors ? -1 : -2;
- }
- if (fclose(inodeFile) == EOF) {
- Log("Unable to successfully close inode file for %s\n", mountedOn);
- return errors ? -1 : -2;
- }
- /*
- * Paranoia: check that the file is really the right size
- */
- if (stat(resultFile, &status) == -1) {
- Log("Unable to successfully stat inode file for %s\n", partition);
- return errors ? -1 : -2;
- }
- if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
- Log("Wrong size (%d instead of %d) in inode file for %s\n",
- status.st_size, ninodes * sizeof(struct ViceInodeInfo),
- partition);
- return errors ? -1 : -2;
+
+ if (inodeFile) {
+ if (fflush(inodeFile) == EOF) {
+ ("Unable to successfully flush inode file for %s\n", mountedOn);
+ fclose(inodeFile);
+ return errors ? -1 : -2;
+ }
+ if (fsync(fileno(inodeFile)) == -1) {
+ Log("Unable to successfully fsync inode file for %s\n", mountedOn);
+ fclose(inodeFile);
+ return errors ? -1 : -2;
+ }
+ if (fclose(inodeFile) == EOF) {
+ Log("Unable to successfully close inode file for %s\n", mountedOn);
+ return errors ? -1 : -2;
+ }
+ /*
+ * Paranoia: check that the file is really the right size
+ */
+ if (stat(resultFile, &status) == -1) {
+ Log("Unable to successfully stat inode file for %s\n", partition);
+ return errors ? -1 : -2;
+ }
+ if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
+ Log("Wrong size (%d instead of %d) in inode file for %s\n",
+ status.st_size, ninodes * sizeof(struct ViceInodeInfo),
+ partition);
+ return errors ? -1 : -2;
+ }
}
if (errors) {
goto out;
}
- inodeFile = fopen(resultFile, "w");
- if (inodeFile == NULL) {
- Log("Unable to create inode description file %s\n", resultFile);
- goto out;
+ if (resultFile) {
+ inodeFile = fopen(resultFile, "w");
+ if (inodeFile == NULL) {
+ Log("Unable to create inode description file %s\n", resultFile);
+ goto out;
+ }
}
#ifdef AFS_AIX_ENV
/*
info.u.param[3] = auxp->aux_param4;
if (judgeInode && (*judgeInode) (&info, judgeParam, rock) == 0)
continue;
- if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
- Log("Error writing inode file for partition %s\n", partition);
- goto out;
+ if (inodeFile) {
+ if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
+ Log("Error writing inode file for partition %s\n", partition);
+ goto out;
+ }
}
ninodes++;
}
info.linkCount = p->di_nlink;
if (judgeInode && (*judgeInode) (&info, judgeParam, rock) == 0)
continue;
- if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
- Log("Error writing inode file for partition %s\n",
- partition);
- goto out;
+ if (inodeFile) {
+ if (fwrite(&info, sizeof info, 1, inodeFile) != 1) {
+ Log("Error writing inode file for partition %s\n",
+ partition);
+ goto out;
+ }
}
ninodes++;
}
if (inodes)
free(inodes);
#endif
- if (fflush(inodeFile) == EOF) {
- Log("Unable to successfully flush inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fsync(fileno(inodeFile)) == -1) {
- Log("Unable to successfully fsync inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (fclose(inodeFile) == EOF) {
- Log("Unable to successfully close inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
-
- /*
- * Paranoia: check that the file is really the right size
- */
- if (stat(resultFile, &status) == -1) {
- Log("Unable to successfully stat inode file for %s\n", partition);
- err = -2;
- goto out1;
- }
- if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
- Log("Wrong size (%d instead of %d) in inode file for %s\n",
- status.st_size, ninodes * sizeof(struct ViceInodeInfo),
- partition);
- err = -2;
- goto out1;
+ if (inodeFile) {
+ if (fflush(inodeFile) == EOF) {
+ Log("Unable to successfully flush inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fsync(fileno(inodeFile)) == -1) {
+ Log("Unable to successfully fsync inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (fclose(inodeFile) == EOF) {
+ Log("Unable to successfully close inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+
+ /*
+ * Paranoia: check that the file is really the right size
+ */
+ if (stat(resultFile, &status) == -1) {
+ Log("Unable to successfully stat inode file for %s\n", partition);
+ err = -2;
+ goto out1;
+ }
+ if (status.st_size != ninodes * sizeof(struct ViceInodeInfo)) {
+ Log("Wrong size (%d instead of %d) in inode file for %s\n",
+ status.st_size, ninodes * sizeof(struct ViceInodeInfo),
+ partition);
+ err = -2;
+ goto out1;
+ }
}
close(pfd);
return 0;
}
#endif /* AFS_LINUX20_ENV */
+static afs_int32
+convertVolumeInfo(int fdr, int fdw, afs_uint32 vid)
+{
+ struct VolumeDiskData vd;
+ char *p;
+
+ if (read(fdr, &vd, sizeof(struct VolumeDiskData)) !=
+ sizeof(struct VolumeDiskData)) {
+ Log("1 convertiVolumeInfo: read failed for %lu with code %d\n", vid,
+ errno);
+ return -1;
+ }
+ vd.restoredFromId = vd.id; /* remember the RO volume here */
+ vd.cloneId = vd.id;
+ vd.id = vd.parentId;
+ vd.type = RWVOL;
+ vd.dontSalvage = 0;
+ vd.inUse = 0;
+ vd.uniquifier += 5000; /* just in case there are still file copies
+ from the old RW volume around */
+
+ p = strrchr(vd.name, '.');
+ if (p && !strcmp(p, ".readonly")) {
+ memset(p, 0, 9);
+ }
+
+ if (write(fdw, &vd, sizeof(struct VolumeDiskData)) !=
+ sizeof(struct VolumeDiskData)) {
+ Log("1 convertiVolumeInfo: write failed for %lu with code %d\n", vid,
+ errno);
+ return -1;
+ }
+ return 0;
+}
+
+struct specino {
+ afs_int32 inodeType;
+ Inode inodeNumber;
+ Inode ninodeNumber;
+};
+
+
+int
+UpdateThisVolume(struct ViceInodeInfo *inodeinfo, VolumeId singleVolumeNumber,
+ struct specino *specinos)
+{
+ struct dinode *p;
+ if ((inodeinfo->u.vnode.vnodeNumber == INODESPECIAL) &&
+ (inodeinfo->u.vnode.volumeId == singleVolumeNumber)) {
+ specinos[inodeinfo->u.special.type].inodeNumber =
+ inodeinfo->inodeNumber;
+ }
+ return 0; /* We aren't using a result file, we're caching */
+}
+
+static char *
+getDevName(char *pbuffer, char *wpath)
+{
+ char pbuf[128], *ptr;
+ strcpy(pbuf, pbuffer);
+ ptr = (char *)strrchr(pbuf, '/');
+ if (ptr) {
+ *ptr = '\0';
+ strcpy(wpath, pbuf);
+ } else
+ return NULL;
+ ptr = (char *)strrchr(pbuffer, '/');
+ if (ptr) {
+ strcpy(pbuffer, ptr + 1);
+ return pbuffer;
+ } else
+ return NULL;
+}
+
+int
+inode_ConvertROtoRWvolume(char *pname, afs_int32 volumeId)
+{
+ char dir_name[512], oldpath[512], newpath[512];
+ char volname[20];
+ char headername[16];
+ char *name;
+ int fd, err, forcep, len, j, code;
+ struct dirent *dp;
+ struct DiskPartition *partP;
+ struct ViceInodeInfo info;
+ struct VolumeDiskHeader h;
+ IHandle_t *ih, *ih2;
+ FdHandle_t *fdP, *fdP2;
+ char wpath[100];
+ char tmpDevName[100];
+ char buffer[128];
+ struct specino specinos[VI_LINKTABLE+1];
+ Inode nearInode = 0;
+
+ memset(&specinos, 0, sizeof(specinos));
+
+ (void)afs_snprintf(headername, sizeof headername, VFORMAT, volumeId);
+ (void)afs_snprintf(oldpath, sizeof oldpath, "%s/%s", pname, headername);
+ fd = open(oldpath, O_RDONLY);
+ if (fd < 0) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't open header for RO-volume %lu.\n", volumeId);
+ return ENOENT;
+ }
+ if (read(fd, &h, sizeof(h)) != sizeof(h)) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't read header for RO-volume %lu.\n", volumeId);
+ close(fd);
+ return EIO;
+ }
+ close(fd);
+ FSYNC_askfs(volumeId, pname, FSYNC_RESTOREVOLUME, 0);
+
+ /* now do the work */
+
+ for (partP = DiskPartitionList; partP && strcmp(partP->name, pname);
+ partP = partP->next);
+ if (!partP) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't find DiskPartition for %s\n", pname);
+ return EIO;
+ }
+
+ strcpy(tmpDevName, partP->devName);
+ name = getDevName(tmpDevName, wpath);
+
+ if ((err = ListViceInodes(name, VPartitionPath(partP),
+ NULL, UpdateThisVolume, volumeId,
+ &forcep, 0, wpath, &specinos)) < 0)
+ {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't get special inodes\n");
+ return EIO;
+ }
+
+#if defined(NEARINODE_HINT)
+ nearInodeHash(volumeId, nearInode);
+ nearInode %= partP->f_files;
+#endif
+
+ for (j = VI_VOLINFO; j < VI_LINKTABLE+1; j++) {
+ if (specinos[j].inodeNumber > 0) {
+ specinos[j].ninodeNumber =
+ IH_CREATE(NULL, partP->device, VPartitionPath(partP),
+ nearInode, h.parent, INODESPECIAL, j, h.parent);
+ IH_INIT(ih, partP->device, volumeId,
+ specinos[j].inodeNumber);
+ fdP = IH_OPEN(ih);
+ if (!fdP) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't find special inode %d for %d\n", j, volumeId);
+ return -1;
+ }
+
+ IH_INIT(ih2, partP->device, h.parent, specinos[j].ninodeNumber);
+ fdP2 = IH_OPEN(ih2);
+ if (!fdP2) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't find special inode %d for %d\n", j, h.parent);
+ return -1;
+ }
+
+ if (j == VI_VOLINFO)
+ convertVolumeInfo(fdP->fd_fd, fdP2->fd_fd, ih2->ih_vid);
+ else {
+ while (1) {
+ len = read(fdP->fd_fd, buffer, sizeof(buffer));
+ if (len < 0)
+ return errno;
+ if (len == 0)
+ break;
+ code = write(fdP2->fd_fd, buffer, len);
+ if (code != len)
+ return -1;
+ }
+ }
+
+ FDH_CLOSE(fdP);
+ FDH_CLOSE(fdP2);
+ IH_RELEASE(ih);
+ IH_RELEASE(ih2);
+ }
+ }
+
+ h.id = h.parent;
+#ifdef AFS_64BIT_IOPS_ENV
+ h.volumeInfo_lo = (afs_int32)specinos[VI_VOLINFO].ninodeNumber & 0xffffffff;
+ h.volumeInfo_hi = (afs_int32)(specinos[VI_VOLINFO].ninodeNumber >> 32) && 0xffffffff;
+ h.smallVnodeIndex_lo = (afs_int32)specinos[VI_SMALLINDEX].ninodeNumber & 0xffffffff;
+ h.smallVnodeIndex_hi = (afs_int32)(specinos[VI_SMALLINDEX].ninodeNumber >> 32) & 0xffffffff;
+ h.largeVnodeIndex_lo = (afs_int32)specinos[VI_LARGEINDEX].ninodeNumber & 0xffffffff;
+ h.largeVnodeIndex_hi = (afs_int32)(specinos[VI_LARGEINDEX].ninodeNumber >> 32) & 0xffffffff;
+ if (specinos[VI_LINKTABLE].ninodeNumber) {
+ h.linkTable_lo = (afs_int32)specinos[VI_LINKTABLE].ninodeNumber & 0xffffffff;
+ h.linkTable_hi = (afs_int32)specinos[VI_LINKTABLE].ninodeNumber & 0xffffffff;
+ }
+#else
+ h.volumeInfo_lo = specinos[VI_VOLINFO].ninodeNumber;
+ h.smallVnodeIndex_lo = specinos[VI_SMALLINDEX].ninodeNumber;
+ h.largeVnodeIndex_lo = specinos[VI_LARGEINDEX].ninodeNumber;
+ if (specinos[VI_LINKTABLE].ninodeNumber) {
+ h.linkTable_lo = specinos[VI_LINKTABLE].ninodeNumber;
+ }
+#endif
+
+ (void)afs_snprintf(headername, sizeof headername, VFORMAT, h.id);
+ (void)afs_snprintf(newpath, sizeof newpath, "%s/%s", pname, headername);
+ fd = open(newpath, O_CREAT | O_EXCL | O_RDWR, 0644);
+ if (fd < 0) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't create header for RW-volume %lu.\n", h.id);
+ return EIO;
+ }
+ if (write(fd, &h, sizeof(h)) != sizeof(h)) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't write header for RW-volume %lu.\n", h.id);
+ close(fd);
+ return EIO;
+ }
+ close(fd);
+ if (unlink(oldpath) < 0) {
+ Log("1 inode_ConvertROtoRWvolume: Couldn't unlink RO header, error = %d\n", errno);
+ }
+ FSYNC_askfs(volumeId, pname, FSYNC_DONE, 0);
+ FSYNC_askfs(h.id, pname, FSYNC_ON, 0);
+ return 0;
+}
#endif /* AFS_NAMEI_ENV */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.21.2.13 2007/09/11 15:40:26 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.21.2.16 2007/11/26 21:21:57 shadow Exp $");
#ifdef AFS_NAMEI_ENV
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
#include "voldefs.h"
#include "partition.h"
#include <afs/errors.h>
+#include "fssync.h"
/*@+fcnmacros +macrofcndecl@*/
#ifdef O_LARGEFILE
*/
int
-namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
+namei_ConvertROtoRWvolume(char *pname, afs_int32 volumeId)
{
namei_t n;
char dir_name[512], oldpath[512], newpath[512];
char largeName[64];
char infoName[64];
IHandle_t t_ih;
+ IHandle_t *ih;
char infoSeen = 0;
char smallSeen = 0;
char largeSeen = 0;
char linkSeen = 0;
- int code, fd, fd2;
+ int code, fd, fd2, found;
char *p;
DIR *dirp;
+ Inode ino;
struct dirent *dp;
+ struct DiskPartition *partP;
struct ViceInodeInfo info;
+ struct VolumeDiskHeader h;
+ char volname[20];
+ char headername[16];
+ afs_int32 error = 0;
+
+ (void)afs_snprintf(headername, sizeof headername, VFORMAT, volumeId);
+ (void)afs_snprintf(oldpath, sizeof oldpath, "%s/%s", pname, headername);
+ fd = open(oldpath, O_RDONLY);
+ if (fd < 0) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't open header for RO-volume %lu.\n", volumeId);
+ return ENOENT;
+ }
+ if (read(fd, &h, sizeof(h)) != sizeof(h)) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't read header for RO-volume %lu.\n", volumeId);
+ close(fd);
+ return EIO;
+ }
+ close(fd);
+ FSYNC_askfs(volumeId, pname, FSYNC_RESTOREVOLUME, 0);
+
+ for (partP = DiskPartitionList; partP && strcmp(partP->name, pname);
+ partP = partP->next);
+ if (!partP) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't find DiskPartition for %s\n", pname);
+ return EIO;
+ }
+ ino = namei_MakeSpecIno(h.parent, VI_LINKTABLE);
+ IH_INIT(ih, partP->device, h.parent, ino);
- namei_HandleToName(&n, h);
+ namei_HandleToName(&n, ih);
strcpy(dir_name, n.n_path);
p = strrchr(dir_name, '/');
*p = 0;
if (*dp->d_name == '.')
continue;
- if (DecodeInode(dir_name, dp->d_name, &info, h->ih_vid) < 0) {
+ if (DecodeInode(dir_name, dp->d_name, &info, ih->ih_vid) < 0) {
Log("1 namei_ConvertROtoRWvolume: DecodeInode failed for %s/%s\n",
dir_name, dp->d_name);
closedir(dirp);
closedir(dirp);
return -1;
}
- if (info.u.param[0] != vid) {
- if (info.u.param[0] == h->ih_vid) {
+ if (info.u.param[0] != volumeId) {
+ if (info.u.param[0] == ih->ih_vid) {
if (info.u.param[2] == VI_LINKTABLE) { /* link table */
linkSeen = 1;
continue;
*/
memset(&t_ih, 0, sizeof(t_ih));
- t_ih.ih_dev = h->ih_dev;
- t_ih.ih_vid = h->ih_vid;
+ t_ih.ih_dev = ih->ih_dev;
+ t_ih.ih_vid = ih->ih_vid;
(void)afs_snprintf(oldpath, sizeof oldpath, "%s/%s", dir_name, infoName);
fd = afs_open(oldpath, O_RDWR, 0);
oldpath);
return -1;
}
- t_ih.ih_ino = namei_MakeSpecIno(h->ih_vid, VI_VOLINFO);
+ t_ih.ih_ino = namei_MakeSpecIno(ih->ih_vid, VI_VOLINFO);
namei_HandleToName(&n, &t_ih);
fd2 = afs_open(n.n_path, O_CREAT | O_EXCL | O_TRUNC | O_RDWR, 0);
if (fd2 < 0) {
close(fd);
return -1;
}
- code = convertVolumeInfo(fd, fd2, h->ih_vid);
+ code = convertVolumeInfo(fd, fd2, ih->ih_vid);
close(fd);
if (code) {
close(fd2);
unlink(n.n_path);
return -1;
}
- SetOGM(fd2, h->ih_vid, 1);
+ SetOGM(fd2, ih->ih_vid, 1);
close(fd2);
- t_ih.ih_ino = namei_MakeSpecIno(h->ih_vid, VI_SMALLINDEX);
+ t_ih.ih_ino = namei_MakeSpecIno(ih->ih_vid, VI_SMALLINDEX);
namei_HandleToName(&n, &t_ih);
(void)afs_snprintf(newpath, sizeof newpath, "%s/%s", dir_name, smallName);
fd = afs_open(newpath, O_RDWR, 0);
Log("1 namei_ConvertROtoRWvolume: could not open SmallIndex file: %s\n", newpath);
return -1;
}
- SetOGM(fd, h->ih_vid, 2);
+ SetOGM(fd, ih->ih_vid, 2);
close(fd);
link(newpath, n.n_path);
unlink(newpath);
- t_ih.ih_ino = namei_MakeSpecIno(h->ih_vid, VI_LARGEINDEX);
+ t_ih.ih_ino = namei_MakeSpecIno(ih->ih_vid, VI_LARGEINDEX);
namei_HandleToName(&n, &t_ih);
(void)afs_snprintf(newpath, sizeof newpath, "%s/%s", dir_name, largeName);
fd = afs_open(newpath, O_RDWR, 0);
Log("1 namei_ConvertROtoRWvolume: could not open LargeIndex file: %s\n", newpath);
return -1;
}
- SetOGM(fd, h->ih_vid, 3);
+ SetOGM(fd, ih->ih_vid, 3);
close(fd);
link(newpath, n.n_path);
unlink(newpath);
unlink(oldpath);
+
+ h.id = h.parent;
+ h.volumeInfo_hi = h.id;
+ h.smallVnodeIndex_hi = h.id;
+ h.largeVnodeIndex_hi = h.id;
+ h.linkTable_hi = h.id;
+ (void)afs_snprintf(headername, sizeof headername, VFORMAT, h.id);
+ (void)afs_snprintf(newpath, sizeof newpath, "%s/%s", pname, headername);
+ fd = open(newpath, O_CREAT | O_EXCL | O_RDWR, 0644);
+ if (fd < 0) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't create header for RW-volume %lu.\n", h.id);
+ return EIO;
+ }
+ if (write(fd, &h, sizeof(h)) != sizeof(h)) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't write header for RW-volume\
+ %lu.\n", h.id);
+ close(fd);
+ return EIO;
+ }
+ close(fd);
+ if (unlink(oldpath) < 0) {
+ Log("1 namei_ConvertROtoRWvolume: Couldn't unlink RO header, error = %d\n", error);
+ }
+ FSYNC_askfs(volumeId, pname, FSYNC_DONE, 0);
+ FSYNC_askfs(h.id, pname, FSYNC_ON, 0);
return 0;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30.2.4.2.1 2007/12/13 21:01:58 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30.2.6 2007/11/29 21:40:09 shadow Exp $");
#include <ctype.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <windows.h>
#include <winbase.h>
#include <mntent.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <rx/xdr.h>
#include <afs/afsint.h>
#include "nfs.h"
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/physio.c,v 1.12 2003/08/08 20:40:45 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/physio.c,v 1.12.2.1 2007/10/30 15:24:11 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
#else
#include <sys/file.h>
#include <unistd.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_SUN5_ENV
#include <sys/fcntl.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/purge.c,v 1.9.2.2 2006/07/13 18:20:32 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/purge.c,v 1.9.2.3 2007/10/30 15:24:11 shadow Exp $");
#include <stdio.h>
#ifdef AFS_NT40_ENV
#include <sys/file.h>
#include <sys/time.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/stat.h>
#include <afs/assert.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/vnode.c,v 1.19.2.4 2005/07/28 21:11:19 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/vnode.c,v 1.19.2.6 2007/12/28 22:16:51 shadow Exp $");
#include <errno.h>
#include <stdio.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_PTHREAD_ENV
#include <assert.h>
#else /* AFS_PTHREAD_ENV */
void StickOnLruChain_r(register Vnode * vnp,
register struct VnodeClassInfo *vcp);
+extern int LogLevel;
+
#define BAD_IGET -1000
/* There are two separate vnode queue types defined here:
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/vol-bless.c,v 1.1.2.1 2004/12/07 06:06:17 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/vol-bless.c,v 1.1.2.2 2007/10/31 04:13:51 shadow Exp $");
#include <stdio.h>
int VolumeChanged; /* to keep physio happy */
static int
-handleit(struct cmd_syndesc *as, char *arock)
+handleit(struct cmd_syndesc *as, void *arock)
{
Volume *vp;
Error ec;
register struct cmd_syndesc *ts;
afs_int32 code;
- ts = cmd_CreateSyntax(NULL, handleit, 0, "Manipulate volume blessed bit");
+ ts = cmd_CreateSyntax(NULL, handleit, NULL, "Manipulate volume blessed bit");
cmd_AddParm(ts, "-id", CMD_SINGLE, CMD_REQUIRED, "Volume id");
cmd_AddParm(ts, "-bless", CMD_FLAG, CMD_OPTIONAL, "Set blessed bit");
cmd_AddParm(ts, "-unbless", CMD_FLAG, CMD_OPTIONAL, "Clear blessed bit");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/vol-info.c,v 1.18.2.3 2005/05/08 06:10:27 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/vol-info.c,v 1.18.2.4 2007/10/31 04:13:51 shadow Exp $");
#include <ctype.h>
#include <errno.h>
static int
-handleit(struct cmd_syndesc *as)
+handleit(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
int err = 0;
register struct cmd_syndesc *ts;
afs_int32 code;
- ts = cmd_CreateSyntax(NULL, handleit, 0, "Dump volume's internal state");
+ ts = cmd_CreateSyntax(NULL, handleit, NULL, "Dump volume's internal state");
cmd_AddParm(ts, "-online", CMD_FLAG, CMD_OPTIONAL,
"Get info from running fileserver");
cmd_AddParm(ts, "-vnode", CMD_FLAG, CMD_OPTIONAL, "Dump vnode info");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.41.2.13 2007/09/07 04:05:49 shadow Exp $");
+ ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.41.2.14 2007/11/26 21:21:57 shadow Exp $");
#include <stdlib.h>
#include <stdio.h>
#endif /* FAST_RESTART */
err = cmd_Dispatch(argc, argv);
Exit(err);
+ return 0; /* not reached */
}
/* Get the salvage lock if not already held. Hold until process exits. */
${COMPILE_ET} -p ${srcdir} volerr -h volser
volint.cs.c: volint.xg
- ${RXGEN} -x -C -o $@ ${srcdir}/volint.xg
+ ${RXGEN} -A -x -C -o $@ ${srcdir}/volint.xg
volint.ss.c: volint.xg
- ${RXGEN} -x -S -o $@ ${srcdir}/volint.xg
+ ${RXGEN} -A -x -S -o $@ ${srcdir}/volint.xg
volint.xdr.c: volint.xg
- ${RXGEN} -x -c -o $@ ${srcdir}/volint.xg
+ ${RXGEN} -A -x -c -o $@ ${srcdir}/volint.xg
volint.h: volint.xg
- ${RXGEN} -x -h -o $@ ${srcdir}/volint.xg
+ ${RXGEN} -A -x -h -o $@ ${srcdir}/volint.xg
volint.cs.c: volint.h
volint.ss.c: volint.h
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.8 2006/12/19 04:51:08 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/dumpstuff.c,v 1.25.2.10 2008/01/21 14:11:20 shadow Exp $");
#include <sys/types.h>
#include <ctype.h>
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#else
#include <netinet/in.h>
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <sys/stat.h>
#ifdef AFS_PTHREAD_ENV
#include <assert.h>
iod_Init(iodp, call);
vp = avp;
- if (V_parentId(vp) == V_id(vp))
- delo = incremental;
if (!ReadDumpHeader(iodp, &header)) {
Log("1 Volser: RestoreVolume: Error reading header file for dump; aborted\n");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/lockprocs.c,v 1.8 2003/07/15 23:17:48 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/lockprocs.c,v 1.8.2.2 2007/11/26 21:21:57 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#else
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/voldefs.h>
#include <rx/xdr.h>
#include <rx/rx.h>
}
/* Changes the RW site only */
+void
Lp_SetRWValue(entry, oserver, opart, nserver, npart)
struct nvldbentry *entry;
afs_int32 oserver, opart, nserver, npart;
}
/* Changes the RO site only */
+void
Lp_SetROValue(entry, oserver, opart, nserver, npart)
struct nvldbentry *entry;
afs_int32 oserver, opart, nserver, npart;
}
/*initialize queue pointed by <ahead>*/
+void
Lp_QInit(ahead)
struct qHead *ahead;
{
}
/*add <elem> in front of queue <ahead> */
+void
Lp_QAdd(ahead, elem)
struct qHead *ahead;
struct aqueue *elem;
/*return the element in the beginning of the queue <ahead>, free
*the space used by that element . <success> indicates if enumeration was ok*/
+void
Lp_QEnumerate(ahead, success, elem)
struct qHead *ahead;
struct aqueue *elem;
*success = 0;
}
+void
Lp_QTraverse(ahead)
struct qHead *ahead;
{
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/physio.c,v 1.11 2003/12/09 23:07:57 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/physio.c,v 1.11.2.1 2007/10/30 15:24:12 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#include <netinet/in.h>
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#ifdef AFS_SUN5_ENV
#include <sys/fcntl.h>
#endif
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/restorevol.c,v 1.13 2003/12/05 08:36:06 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/restorevol.c,v 1.13.2.3 2007/11/26 21:21:57 shadow Exp $");
#include <afs/afsint.h>
#include <afs/nfs.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
char rootdir[MAXPATHLEN];
#define BUFSIZE 16384
char buf[BUFSIZE];
-char
+void
readdata(buffer, size)
char *buffer;
afs_sfsize_t size;
return ((afs_int32) tag);
}
-WorkerBee(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+WorkerBee(struct cmd_syndesc *as, void *arock)
{
int code = 0, c, len;
afs_int32 type, count, vcount;
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/vol-dump.c,v 1.1 2003/08/28 03:16:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/vol-dump.c,v 1.1.2.1 2007/10/31 04:13:54 shadow Exp $");
#include <ctype.h>
#include <errno.h>
static int
-handleit(struct cmd_syndesc *as, char *arock)
+handleit(struct cmd_syndesc *as, void *arock)
{
register struct cmd_item *ti;
int err = 0;
VInitVolumePackage(volumeUtility, 5, 5, DONT_CONNECT_FS, 0);
- ts = cmd_CreateSyntax(NULL, handleit, 0,
+ ts = cmd_CreateSyntax(NULL, handleit, NULL,
"Dump a volume to a 'vos dump' format file without using volserver");
cmd_AddParm(ts, "-part", CMD_LIST, CMD_OPTIONAL, "AFS partition name");
cmd_AddParm(ts, "-volumeid", CMD_LIST, CMD_OPTIONAL, "Volume id");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/volmain.c,v 1.18.2.9 2007/06/28 02:13:44 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/volmain.c,v 1.18.2.14 2008/03/10 22:35:37 shadow Exp $");
#include <sys/types.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <time.h>
#include <fcntl.h>
#include <sys/file.h>
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <rx/xdr.h>
#include <afs/afsint.h>
#include <stdio.h>
int udpBufSize = 0; /* UDP buffer size for receive */
int rxBind = 0;
+int rxkadDisableDotCheck = 0;
#define ADDRSPERSITE 16 /* Same global is in rx/rx_user.c */
afs_uint32 SHostAddrs[ADDRSPERSITE];
}
/* background daemon for timing out transactions */
-static void
-BKGLoop()
+static void*
+BKGLoop(void *unused)
{
struct timeval tv;
int loop = 0;
ReOpenLog(AFSDIR_SERVER_VOLSERLOG_FILEPATH);
}
}
+
+ return NULL;
}
/* Background daemon for sleeping so the volserver does not become I/O bound */
afs_int32 TTsleep, TTrun;
-static void
-BKGSleep()
+static void *
+BKGSleep(void *unused)
{
struct volser_trans *tt;
VTRANS_UNLOCK;
}
}
+ return NULL;
}
#ifndef AFS_NT40_ENV
goto usage;
} else if (strcmp(argv[code], "-rxbind") == 0) {
rxBind = 1;
+ } else if (strcmp(argv[code], "-allow-dotted-principals") == 0) {
+ rxkadDisableDotCheck = 1;
} else if (strcmp(argv[code], "-p") == 0) {
lwps = atoi(argv[++code]);
if (lwps > MAXLWP) {
#ifndef AFS_NT40_ENV
printf("Usage: volserver [-log] [-p <number of processes>] "
"[-auditlog <log path>] "
- "[-nojumbo] [-rxmaxmtu <bytes>] [-rxbind] "
+ "[-nojumbo] [-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals] "
"[-udpsize <size of socket buffer in bytes>] "
"[-syslog[=FACILITY]] "
"[-enable_peer_stats] [-enable_process_stats] "
#else
printf("Usage: volserver [-log] [-p <number of processes>] "
"[-auditlog <log path>] "
- "[-nojumbo] [-rxmaxmtu <bytes>] [-rxbind] "
+ "[-nojumbo] [-rxmaxmtu <bytes>] [-rxbind] [-allow-dotted-principals] "
"[-udpsize <size of socket buffer in bytes>] "
"[-enable_peer_stats] [-enable_process_stats] "
"[-help]\n");
if (lwps < 4)
lwps = 4;
rx_SetMaxProcs(service, lwps);
-#ifdef AFS_SGI_ENV
- rx_SetStackSize(service, 49152);
+#if defined(AFS_XBSD_ENV)
+ rx_SetStackSize(service, (128 * 1024));
+#elif defined(AFS_SGI_ENV)
+ rx_SetStackSize(service, (48 * 1024));
#else
- rx_SetStackSize(service, 32768);
+ rx_SetStackSize(service, (32 * 1024));
#endif
+ if (rxkadDisableDotCheck) {
+ rx_SetSecurityConfiguration(service, RXS_CONFIG_FLAGS,
+ (void *)RXS_CONFIG_FLAGS_DISABLE_DOTCHECK,
+ NULL);
+ }
+
service =
rx_NewService(0, RX_STATS_SERVICE_ID, "rpcstats", securityObjects, 3,
RXSTATS_ExecuteRequest);
osi_audit(VS_FinishEvent, (-1), AUD_END);
Abort("StartServer returned?");
+ return 0; /* not reached */
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.34.2.9 2007/10/15 14:18:57 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/volprocs.c,v 1.34.2.13 2008/03/17 17:14:21 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
+#include <string.h>
#include <errno.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <unistd.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <dirent.h>
#include <sys/stat.h>
#include <rx/xdr.h>
*error = EINVAL;
return NULL;
}
- tv = VAttachVolumeByName(error, pbuf, vbuf, amode);
+ tv = VAttachVolumeByName((Error *)error, pbuf, vbuf, amode);
return tv;
}
struct acl_accessList *ACL;
ViceFid did;
Inode inodeNumber, nearInode;
- char buf[SIZEOF_LARGEDISKVNODE];
- struct VnodeDiskObject *vnode = (struct VnodeDiskObject *)buf;
+ struct VnodeDiskObject *vnode;
struct VnodeClassInfo *vcp = &VnodeClassInfo[vLarge];
IHandle_t *h;
FdHandle_t *fdP;
int code;
afs_fsize_t length;
+ vnode = (struct VnodeDiskObject *)malloc(SIZEOF_LARGEDISKVNODE);
+ if (!vnode)
+ return ENOMEM;
memset(vnode, 0, SIZEOF_LARGEDISKVNODE);
V_pref(vp, nearInode);
VNDISK_GET_LEN(length, vnode);
V_diskused(vp) = nBlocks(length);
+ free(vnode);
return 1;
}
struct Volume *vp;
int i, is_incremental;
- if (results)
+ if (results) {
memset(results, 0, sizeof(manyResults));
+ i = results->manyResults_len = destinations->manyDests_len;
+ results->manyResults_val = codes =
+ (afs_int32 *) malloc(i * sizeof(afs_int32));
+ }
+ if (!results || !results->manyResults_val)
+ return ENOMEM;
if (!afsconf_SuperUser(tdir, acid, caller))
return VOLSERBAD_ACCESS; /*not a super user */
/* (fromDate == 0) ==> full dump */
is_incremental = (fromDate ? 1 : 0);
- i = results->manyResults_len = destinations->manyDests_len;
- results->manyResults_val = codes =
- (afs_int32 *) malloc(i * sizeof(afs_int32));
tcons =
(struct rx_connection **)malloc(i * sizeof(struct rx_connection *));
+ if (!tcons) {
+ return ENOMEM;
+ }
tcalls = (struct rx_call **)malloc(i * sizeof(struct rx_call *));
+ if (!tcalls) {
+ free(tcons);
+ return ENOMEM;
+ }
/* get auth info for this connection (uses afs from ticket file) */
code = afsconf_ClientAuth(tdir, &securityObject, &securityIndex);
struct volser_trans *tt;
register int len;
- *aname = NULL;
+ /* We need to at least fill it in */
+ *aname = (char *)malloc(1);
+ if (!*aname)
+ return ENOMEM;
tt = FindTrans(atrans);
if (!tt)
return ENOENT;
TRELE(tt);
return E2BIG;
}
- *aname = (char *)malloc(len);
+ *aname = (char *)realloc(*aname, len);
strcpy(*aname, td->name);
tt->rxCallPtr = (struct rx_call *)0;
if (TRELE(tt))
partList.partId[j++] = i;
}
pEntries->partEntries_val = (afs_int32 *) malloc(j * sizeof(int));
+ if (!pEntries->partEntries_val)
+ return ENOMEM;
memcpy((char *)pEntries->partEntries_val, (char *)&partList,
j * sizeof(int));
pEntries->partEntries_len = j;
unsigned int now;
volumeInfo->volEntries_val = (volintInfo *) malloc(sizeof(volintInfo));
+ if (!volumeInfo->volEntries_val)
+ return ENOMEM;
pntr = volumeInfo->volEntries_val;
volumeInfo->volEntries_len = 1;
if (GetPartName(partid, pname))
*/
a_volumeXInfoP->volXEntries_val =
(volintXInfo *) malloc(sizeof(volintXInfo));
+ if (!a_volumeXInfoP->volXEntries_val)
+ return ENOMEM;
xInfoP = a_volumeXInfoP->volXEntries_val;
a_volumeXInfoP->volXEntries_len = 1;
code = ENODEV;
volumeInfo->volEntries_val =
(volintInfo *) malloc(allocSize * sizeof(volintInfo));
+ if (!volumeInfo->volEntries_val)
+ return ENOMEM;
pntr = volumeInfo->volEntries_val;
volumeInfo->volEntries_len = 0;
if (GetPartName(partid, pname))
*/
a_volumeXInfoP->volXEntries_val =
(volintXInfo *) malloc(allocSize * sizeof(volintXInfo));
+ if (!a_volumeXInfoP->volXEntries_val)
+ return ENOMEM;
xInfoP = a_volumeXInfoP->volXEntries_val;
a_volumeXInfoP->volXEntries_len = 0;
transInfo->transDebugEntries_val =
(transDebugInfo *) malloc(allocSize * sizeof(transDebugInfo));
+ if (!transInfo->transDebugEntries_val)
+ return ENOMEM;
pntr = transInfo->transDebugEntries_val;
transInfo->transDebugEntries_len = 0;
allTrans = TransList();
return error;
}
-#ifdef AFS_NAMEI_ENV
-/*
- * Inode number format (from namei_ops.c):
- * low 26 bits - vnode number - all 1's if volume special file.
- * next 3 bits - tag
- * next 3 bits spare (0's)
- * high 32 bits - uniquifier (regular) or type if spare
- */
-#define NAMEI_VNODEMASK 0x003ffffff
-#define NAMEI_TAGMASK 0x7
-#define NAMEI_TAGSHIFT 26
-#define NAMEI_UNIQMASK 0xffffffff
-#define NAMEI_UNIQSHIFT 32
-#define NAMEI_INODESPECIAL ((Inode)NAMEI_VNODEMASK)
-#define NAMEI_VNODESPECIAL NAMEI_VNODEMASK
-#endif /* AFS_NAMEI_ENV */
-
afs_int32
SAFSVolConvertROtoRWvolume(struct rx_call *acid, afs_int32 partId,
afs_int32 volumeId)
{
-#if defined(AFS_NAMEI_ENV) && !defined(AFS_NT40_ENV)
+#ifdef AFS_NT40_ENV
+ return EXDEV;
+#else
+ char caller[MAXKTCNAMELEN];
DIR *dirp;
- char pname[16];
- char volname[20];
- afs_int32 error = 0;
+ register struct volser_trans *ttc;
+ char pname[16], volname[20];
+ struct DiskPartition *partP;
+ afs_int32 ret = ENODEV;
afs_int32 volid;
- int found = 0;
- char caller[MAXKTCNAMELEN];
- char headername[16];
- char opath[256];
- char npath[256];
- struct VolumeDiskHeader h;
- int fd;
- IHandle_t *ih;
- Inode ino;
- struct DiskPartition *dp;
if (!afsconf_SuperUser(tdir, acid, caller))
return VOLSERBAD_ACCESS; /*not a super user */
if (GetPartName(partId, pname))
- return VOLSERILLEGAL_PARTITION;
- dirp = opendir(pname);
+ return VOLSERILLEGAL_PARTITION;
+ if (!(partP = VGetPartition(pname, 0)))
+ return VOLSERILLEGAL_PARTITION;
+ dirp = opendir(VPartitionPath(partP));
if (dirp == NULL)
- return VOLSERILLEGAL_PARTITION;
+ return VOLSERILLEGAL_PARTITION;
strcpy(volname, "");
+ ttc = (struct volser_trans *)0;
- while (strcmp(volname, "EOD") && !found) { /*while there are more volumes in the partition */
- GetNextVol(dirp, volname, &volid);
- if (strcmp(volname, "")) { /* its a volume */
- if (volid == volumeId)
- found = 1;
+ while (strcmp(volname, "EOD")) {
+ if (!strcmp(volname, "")) { /* its not a volume, fetch next file */
+ GetNextVol(dirp, volname, &volid);
+ continue; /*back to while loop */
+ }
+
+ if (volid == volumeId) { /*copy other things too */
+#ifndef AFS_PTHREAD_ENV
+ IOMGR_Poll(); /*make sure that the client doesnot time out */
+#endif
+ ttc = NewTrans(volumeId, partId);
+ if (!ttc) {
+ return VBUSY;
+ }
+#ifdef AFS_NAMEI_ENV
+ ret = namei_ConvertROtoRWvolume(pname, volumeId);
+#else
+ ret = inode_ConvertROtoRWvolume(pname, volumeId);
+#endif
+ break;
}
+ GetNextVol(dirp, volname, &volid);
}
- if (!found)
- return ENOENT;
- (void)afs_snprintf(headername, sizeof headername, VFORMAT, volumeId);
- (void)afs_snprintf(opath, sizeof opath, "%s/%s", pname, headername);
- fd = open(opath, O_RDONLY);
- if (fd < 0) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't open header for RO-volume %lu.\n", volumeId);
- return ENOENT;
- }
- if (read(fd, &h, sizeof(h)) != sizeof(h)) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't read header for RO-volume %lu.\n", volumeId);
- close(fd);
- return EIO;
- }
- close(fd);
- FSYNC_askfs(volumeId, pname, FSYNC_RESTOREVOLUME, 0);
- for (dp = DiskPartitionList; dp && strcmp(dp->name, pname);
- dp = dp->next);
- if (!dp) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't find DiskPartition for %s\n", pname);
- return EIO;
+ if (ttc) {
+ DeleteTrans(ttc, 1);
+ ttc = (struct volser_trans *)0;
}
- ino = namei_MakeSpecIno(h.parent, VI_LINKTABLE);
- IH_INIT(ih, dp->device, h.parent, ino);
- error = namei_ConvertROtoRWvolume(ih, volumeId);
- if (error)
- return error;
- h.id = h.parent;
- h.volumeInfo_hi = h.id;
- h.smallVnodeIndex_hi = h.id;
- h.largeVnodeIndex_hi = h.id;
- h.linkTable_hi = h.id;
- (void)afs_snprintf(headername, sizeof headername, VFORMAT, h.id);
- (void)afs_snprintf(npath, sizeof npath, "%s/%s", pname, headername);
- fd = open(npath, O_CREAT | O_EXCL | O_RDWR, 0644);
- if (fd < 0) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't create header for RW-volume %lu.\n", h.id);
- return EIO;
- }
- if (write(fd, &h, sizeof(h)) != sizeof(h)) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't write header for RW-volume %lu.\n", h.id);
- close(fd);
- return EIO;
- }
- close(fd);
- if (unlink(opath) < 0) {
- Log("1 SAFS_VolConvertROtoRWvolume: Couldn't unlink RO header, error = %d\n", error);
- }
- FSYNC_askfs(volumeId, pname, FSYNC_DONE, 0);
- FSYNC_askfs(h.id, pname, FSYNC_ON, 0);
- return 0;
-#else /* AFS_NAMEI_ENV */
- return EINVAL;
-#endif /* AFS_NAMEI_ENV */
+ closedir(dirp);
+ return ret;
+#endif
}
afs_int32
/* Values for the UV_RestoreVolume flags parameter */
/* Also used for UV_CopyVolume and UV_CloneVolume */
-#define RV_FULLRST 0x00001
-#define RV_OFFLINE 0x00002
-#define RV_CRDUMP 0x00010
-#define RV_CRKEEP 0x00020
-#define RV_CRNEW 0x00040
-#define RV_LUDUMP 0x00100
-#define RV_LUKEEP 0x00200
-#define RV_LUNEW 0x00400
-#define RV_RDONLY 0x10000
-#define RV_CPINCR 0x20000
-#define RV_NOVLDB 0x40000
-#define RV_NOCLONE 0x80000
+#define RV_FULLRST 0x000001
+#define RV_OFFLINE 0x000002
+#define RV_CRDUMP 0x000010
+#define RV_CRKEEP 0x000020
+#define RV_CRNEW 0x000040
+#define RV_LUDUMP 0x000100
+#define RV_LUKEEP 0x000200
+#define RV_LUNEW 0x000400
+#define RV_RDONLY 0x010000
+#define RV_CPINCR 0x020000
+#define RV_NOVLDB 0x040000
+#define RV_NOCLONE 0x080000
+#define RV_NODEL 0x100000
struct ubik_client;
extern afs_uint32 vsu_GetVolumeID(char *astring, struct ubik_client *acstruct, afs_int32 *errp);
afs_int32 tovolid, char tovolname[], int flags,
afs_int32(*WriteData) (), char *rock);
extern int UV_LockRelease(afs_int32 volid);
-extern int UV_AddSite(afs_int32 server, afs_int32 part, afs_int32 volid);
+extern int UV_AddSite(afs_int32 server, afs_int32 part, afs_int32 volid, afs_int32 valid);
extern int UV_RemoveSite(afs_int32 server, afs_int32 part, afs_int32 volid);
extern int UV_ChangeLocation(afs_int32 server, afs_int32 part,
afs_int32 volid);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/voltrans.c,v 1.10.2.2 2007/03/22 16:01:16 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/voltrans.c,v 1.10.2.3 2007/10/30 15:24:12 shadow Exp $");
#ifdef AFS_NT40_ENV
#include <afs/afsutil.h>
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <winsock2.h>
#include <afs/vnode.h>
#include <afs/volume.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include "volser.h"
/*@printflike@*/ extern void Log(const char *format, ...);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/vos.c,v 1.40.2.20 2007/10/23 14:22:27 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/vos.c,v 1.40.2.25 2008/02/11 03:46:33 shadow Exp $");
#include <sys/types.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <io.h>
#endif
#include <errno.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <lock.h>
#include <afs/stds.h>
#include <rx/xdr.h>
}
/* command to forcibly remove a volume */
-static
-NukeVolume(as)
- register struct cmd_syndesc *as;
+static int
+NukeVolume(register struct cmd_syndesc *as)
{
register afs_int32 code;
afs_int32 volID, err;
* As advertised.
*------------------------------------------------------------------------
*/
-static
-ExamineVolume(as)
- register struct cmd_syndesc *as;
+static int
+ExamineVolume(register struct cmd_syndesc *as, void *arock)
{
struct nvldbentry entry;
afs_int32 vcode = 0;
* As advertised.
*------------------------------------------------------------------------
*/
-static
-SetFields(as)
- register struct cmd_syndesc *as;
+static int
+SetFields(register struct cmd_syndesc *as, void *arock)
{
struct nvldbentry entry;
afs_int32 vcode = 0;
* As advertised.
*------------------------------------------------------------------------
*/
-static
-volOnline(as)
- register struct cmd_syndesc *as;
+static int
+volOnline(register struct cmd_syndesc *as, void *arock)
{
afs_int32 server, partition, volid;
afs_int32 code, err = 0;
*------------------------------------------------------------------------
*/
static int
-volOffline(register struct cmd_syndesc *as)
+volOffline(register struct cmd_syndesc *as, void *arock)
{
afs_int32 server, partition, volid;
afs_int32 code, err = 0;
}
static int
-CreateVolume(register struct cmd_syndesc *as)
+CreateVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 pnum;
char part[10];
return error;
}
-static
-DeleteVolume(as)
- struct cmd_syndesc *as;
+static int
+DeleteVolume(struct cmd_syndesc *as, void *arock)
{
afs_int32 err, code = 0;
afs_int32 server = 0, partition = -1, volid;
#define TESTM 0 /* set for move space tests, clear for production */
static
-MoveVolume(as)
- register struct cmd_syndesc *as;
+MoveVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 volid, fromserver, toserver, frompart, topart;
return 0;
}
-static
-CopyVolume(as)
- register struct cmd_syndesc *as;
+static int
+CopyVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 volid, fromserver, toserver, frompart, topart, code, err, flags;
char fromPartName[10], toPartName[10], *tovolume;
}
-static
-ShadowVolume(as)
- register struct cmd_syndesc *as;
+static int
+ShadowVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 volid, fromserver, toserver, frompart, topart, tovolid;
afs_int32 code, err, flags;
}
-static
-CloneVolume(as)
- register struct cmd_syndesc *as;
+static int
+CloneVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 server, part, volid, cloneid, voltype;
char partName[10], *volname;
volname, VOLSER_OLDMAXVOLNAME - 1);
return E2BIG;
}
+#if 0
+ /*
+ * In order that you be able to make clones of RO or BK, this
+ * check must be omitted.
+ */
if (!VolNameOK(volname)) {
fprintf(STDERR,
"Illegal volume name %s, should not end in .readonly or .backup\n",
volname);
return EINVAL;
}
+#endif
if (IsNumeric(volname)) {
fprintf(STDERR,
"Illegal volume name %s, should not be a number\n",
return code;
}
MapPartIdIntoName(part, partName);
- fprintf(STDOUT, "Created clone for volume %lu\n",
+ fprintf(STDOUT, "Created clone for volume %s\n",
as->parms[0].items->data);
return 0;
}
-static
-BackupVolume(as)
- register struct cmd_syndesc *as;
+static int
+BackupVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aserver, apart, vtype, code, err;
struct nvldbentry entry;
return 0;
}
-static
-ReleaseVolume(as)
- register struct cmd_syndesc *as;
+static int
+ReleaseVolume(register struct cmd_syndesc *as, void *arock)
{
struct nvldbentry entry;
}
static
-DumpVolume(as)
- register struct cmd_syndesc *as;
-
+DumpVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aserver, apart, voltype, fromdate = 0, code, err, i, flags;
char filename[MAXPATHLEN];
#define TS_KEEP 2
#define TS_NEW 3
-static
-RestoreVolume(as)
- register struct cmd_syndesc *as;
-
+static int
+RestoreVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aparentid, aserver, apart, code, vcode, err;
afs_int32 aoverwrite = ASK;
default:
restoreflags |= RV_LUDUMP;
}
+ if (as->parms[10].items) {
+ restoreflags |= RV_NODEL;
+ }
+
code =
UV_RestoreVolume2(aserver, apart, avolid, aparentid,
return 0;
}
-static
-LockReleaseCmd(as)
- register struct cmd_syndesc *as;
-
+static int
+LockReleaseCmd(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, code, err;
return 0;
}
-static
-AddSite(as)
- register struct cmd_syndesc *as;
+static int
+AddSite(register struct cmd_syndesc *as, void *arock)
{
- afs_int32 avolid, aserver, apart, code, err;
+ afs_int32 avolid, aserver, apart, code, err, valid = 0;
char apartName[10], avolname[VOLSER_MAXVOLNAME + 1];
vsu_ExtractName(avolname, as->parms[2].items->data);;
as->parms[1].items->data);
exit(1);
}
- code = UV_AddSite(aserver, apart, avolid);
+ if (as->parms[3].items) {
+ valid = 1;
+ }
+ code = UV_AddSite(aserver, apart, avolid, valid);
if (code) {
PrintDiagnostics("addsite", code);
exit(1);
return 0;
}
-static
-RemoveSite(as)
- register struct cmd_syndesc *as;
+static int
+RemoveSite(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aserver, apart, code, err;
return 0;
}
-static
-ChangeLocation(as)
- register struct cmd_syndesc *as;
+static int
+ChangeLocation(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aserver, apart, code, err;
char apartName[10];
return 0;
}
-static
-ListPartitions(as)
- register struct cmd_syndesc *as;
+static int
+ListPartitions(register struct cmd_syndesc *as, void *arock)
{
afs_int32 aserver, code;
struct partList dummyPartList;
*------------------------------------------------------------------------*/
static
-ListVolumes(as)
- register struct cmd_syndesc *as;
+ListVolumes(register struct cmd_syndesc *as, void *arock)
{
afs_int32 apart, int32list, fast;
afs_int32 aserver, code;
return 0;
}
-static
-SyncVldb(as)
- register struct cmd_syndesc *as;
+static int
+SyncVldb(register struct cmd_syndesc *as, void *arock)
{
afs_int32 pnum = 0, code; /* part name */
char part[10];
}
}
+ if (as->parms[3].items) {
+ flags |= 2; /* don't update */
+ }
+
if (as->parms[2].items) {
/* Synchronize an individual volume */
volname = as->parms[2].items->data;
if (tserver) {
fprintf(STDOUT, " with state of server %s", as->parms[0].items->data);
}
- if (flags) {
+ if (flags & 1) {
MapPartIdIntoName(pnum, part);
fprintf(STDOUT, " partition %s\n", part);
}
return 0;
}
-static
-SyncServer(as)
- register struct cmd_syndesc *as;
-
+static int
+SyncServer(register struct cmd_syndesc *as, void *arock)
{
afs_int32 pnum, code; /* part name */
char part[10];
pnum = -1;
}
+ if (as->parms[2].items) {
+ flags |= 2; /* don't update */
+ }
code = UV_SyncServer(tserver, pnum, flags, 0 /*unused */ );
if (code) {
PrintDiagnostics("syncserv", code);
exit(1);
}
- if (flags) {
+ if (flags & 1) {
MapPartIdIntoName(pnum, part);
fprintf(STDOUT, "Server %s partition %s synchronized with VLDB\n",
as->parms[0].items->data, part);
return 0;
}
-static
-VolumeZap(as)
- register struct cmd_syndesc *as;
-
+static int
+VolumeZap(register struct cmd_syndesc *as, void *arock)
{
struct nvldbentry entry;
afs_int32 volid, code, server, part, zapbackupid = 0, backupid = 0, err;
return 0;
}
-static
-VolserStatus(as)
- register struct cmd_syndesc *as;
-
+static int
+VolserStatus(register struct cmd_syndesc *as, void *arock)
{
afs_int32 server, code;
transDebugInfo *pntr, *oldpntr;
return 0;
}
-static
-RenameVolume(as)
- register struct cmd_syndesc *as;
+static int
+RenameVolume(register struct cmd_syndesc *as, void *arock)
{
afs_int32 code1, code2, code;
struct nvldbentry entry;
return -1;
}
-static
-DeleteEntry(as)
- register struct cmd_syndesc *as;
-
+static int
+DeleteEntry(register struct cmd_syndesc *as, void *arock)
{
afs_int32 apart;
afs_int32 avolid;
}
*/
-static
-ListVLDB(as)
- struct cmd_syndesc *as;
+static int
+ListVLDB(struct cmd_syndesc *as, void *arock)
{
afs_int32 apart;
afs_int32 aserver, code;
return 0;
}
-static
-BackSys(as)
- register struct cmd_syndesc *as;
+static int
+BackSys(register struct cmd_syndesc *as, void *arock)
{
afs_int32 apart = 0, avolid;
afs_int32 aserver = 0, code, aserver1, apart1;
return 0;
}
-static
-UnlockVLDB(as)
- register struct cmd_syndesc *as;
+static int
+UnlockVLDB(register struct cmd_syndesc *as, void *arock)
{
afs_int32 apart;
afs_int32 aserver, code;
return output;
}
-static
-PartitionInfo(as)
- register struct cmd_syndesc *as;
+static int
+PartitionInfo(register struct cmd_syndesc *as, void *arock)
{
afs_int32 apart;
afs_int32 aserver, code;
return 0;
}
-static
-ChangeAddr(as)
- register struct cmd_syndesc *as;
-
+static int
+ChangeAddr(register struct cmd_syndesc *as, void *arock)
{
afs_int32 ip1, ip2, vcode;
int remove = 0;
return;
}
-static
-ListAddrs(as)
- register struct cmd_syndesc *as;
+static int
+ListAddrs(register struct cmd_syndesc *as, void *arock)
{
afs_int32 vcode;
afs_int32 i, noresolve = 0, printuuid = 0;
return 0;
}
-static
-LockEntry(as)
- register struct cmd_syndesc *as;
-
+static int
+LockEntry(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, vcode, err;
return 0;
}
-static
-ConvertRO(as)
- register struct cmd_syndesc *as;
-
+static int
+ConvertRO(register struct cmd_syndesc *as, void *arock)
{
afs_int32 partition = -1;
afs_int32 server, volid, code, i, same;
return code;
}
-static
-Sizes(as)
- register struct cmd_syndesc *as;
+static int
+Sizes(register struct cmd_syndesc *as, void *arock)
{
afs_int32 avolid, aserver, apart, voltype, fromdate = 0, code, err, i;
struct nvldbentry entry;
}
-static
-MyBeforeProc(as, arock)
- struct cmd_syndesc *as;
- char *arock;
+static int
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
{
register char *tcell;
register afs_int32 code;
cmd_SetBeforeProc(MyBeforeProc, NULL);
- ts = cmd_CreateSyntax("create", CreateVolume, 0, "create a new volume");
+ ts = cmd_CreateSyntax("create", CreateVolume, NULL, "create a new volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "volume name");
#endif
COMMONPARMS;
- ts = cmd_CreateSyntax("remove", DeleteVolume, 0, "delete a volume");
+ ts = cmd_CreateSyntax("remove", DeleteVolume, NULL, "delete a volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("move", MoveVolume, 0, "move a volume");
+ ts = cmd_CreateSyntax("move", MoveVolume, NULL, "move a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-fromserver", CMD_SINGLE, 0, "machine name on source");
cmd_AddParm(ts, "-frompartition", CMD_SINGLE, 0,
"copy live volume without cloning");
COMMONPARMS;
- ts = cmd_CreateSyntax("copy", CopyVolume, 0, "copy a volume");
+ ts = cmd_CreateSyntax("copy", CopyVolume, NULL, "copy a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID on source");
cmd_AddParm(ts, "-fromserver", CMD_SINGLE, 0, "machine name on source");
cmd_AddParm(ts, "-frompartition", CMD_SINGLE, 0,
"copy live volume without cloning");
COMMONPARMS;
- ts = cmd_CreateSyntax("shadow", ShadowVolume, 0,
+ ts = cmd_CreateSyntax("shadow", ShadowVolume, NULL,
"make or update a shadow volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID on source");
cmd_AddParm(ts, "-fromserver", CMD_SINGLE, 0, "machine name on source");
"do incremental update if target exists");
COMMONPARMS;
- ts = cmd_CreateSyntax("backup", BackupVolume, 0,
+ ts = cmd_CreateSyntax("backup", BackupVolume, NULL,
"make backup of a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("clone", CloneVolume, 0,
+ ts = cmd_CreateSyntax("clone", CloneVolume, NULL,
"make clone of a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "server");
"make clone volume read-only, not readwrite");
COMMONPARMS;
- ts = cmd_CreateSyntax("release", ReleaseVolume, 0, "release a volume");
+ ts = cmd_CreateSyntax("release", ReleaseVolume, NULL, "release a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-force", CMD_FLAG, CMD_OPTIONAL,
"force a complete release");
COMMONPARMS;
- ts = cmd_CreateSyntax("dump", DumpVolume, 0, "dump a volume");
+ ts = cmd_CreateSyntax("dump", DumpVolume, NULL, "dump a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-time", CMD_SINGLE, CMD_OPTIONAL, "dump from time");
cmd_AddParm(ts, "-file", CMD_SINGLE, CMD_OPTIONAL, "dump file");
"omit unchanged directories from an incremental dump");
COMMONPARMS;
- ts = cmd_CreateSyntax("restore", RestoreVolume, 0, "restore a volume");
+ ts = cmd_CreateSyntax("restore", RestoreVolume, NULL, "restore a volume");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-name", CMD_SINGLE, 0, "name of volume to be restored");
"dump | keep | new");
cmd_AddParm(ts, "-lastupdate", CMD_SINGLE, CMD_OPTIONAL,
"dump | keep | new");
+ cmd_AddParm(ts, "-nodelete", CMD_FLAG, CMD_OPTIONAL,
+ "do not delete old site when restoring to a new site");
COMMONPARMS;
- ts = cmd_CreateSyntax("unlock", LockReleaseCmd, 0,
+ ts = cmd_CreateSyntax("unlock", LockReleaseCmd, NULL,
"release lock on VLDB entry for a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("changeloc", ChangeLocation, 0,
+ ts = cmd_CreateSyntax("changeloc", ChangeLocation, NULL,
"change an RW volume's location in the VLDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0,
"machine name for new location");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("addsite", AddSite, 0, "add a replication site");
+ ts = cmd_CreateSyntax("addsite", AddSite, NULL, "add a replication site");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name for new site");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0,
"partition name for new site");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
+ cmd_AddParm(ts, "-valid", CMD_FLAG, CMD_OPTIONAL | CMD_HIDE, "publish as an up-to-date site in VLDB");
COMMONPARMS;
- ts = cmd_CreateSyntax("remsite", RemoveSite, 0,
+ ts = cmd_CreateSyntax("remsite", RemoveSite, NULL,
"remove a replication site");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("listpart", ListPartitions, 0, "list partitions");
+ ts = cmd_CreateSyntax("listpart", ListPartitions, NULL, "list partitions");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
COMMONPARMS;
- ts = cmd_CreateSyntax("listvol", ListVolumes, 0,
+ ts = cmd_CreateSyntax("listvol", ListVolumes, NULL,
"list volumes on server (bypass VLDB)");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
#endif /* FULL_LISTVOL_SWITCH */
COMMONPARMS;
- ts = cmd_CreateSyntax("syncvldb", SyncVldb, 0,
+ ts = cmd_CreateSyntax("syncvldb", SyncVldb, NULL,
"synchronize VLDB with server");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
cmd_AddParm(ts, "-volume", CMD_SINGLE, CMD_OPTIONAL, "volume name or ID");
+ cmd_AddParm(ts, "-dryrun", CMD_FLAG, CMD_OPTIONAL, "report without updating");
COMMONPARMS;
- ts = cmd_CreateSyntax("syncserv", SyncServer, 0,
+ ts = cmd_CreateSyntax("syncserv", SyncServer, NULL,
"synchronize server with VLDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
+ cmd_AddParm(ts, "-dryrun", CMD_FLAG, CMD_OPTIONAL, "report without updating");
COMMONPARMS;
- ts = cmd_CreateSyntax("examine", ExamineVolume, 0,
+ ts = cmd_CreateSyntax("examine", ExamineVolume, NULL,
"everything about the volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-extended", CMD_FLAG, CMD_OPTIONAL,
COMMONPARMS;
cmd_CreateAlias(ts, "volinfo");
- ts = cmd_CreateSyntax("setfields", SetFields, 0,
+ ts = cmd_CreateSyntax("setfields", SetFields, NULL,
"change volume info fields");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-maxquota", CMD_SINGLE, CMD_OPTIONAL, "quota (KB)");
cmd_AddParm(ts, "-clearuse", CMD_FLAG, CMD_OPTIONAL, "clear dayUse");
COMMONPARMS;
- ts = cmd_CreateSyntax("offline", volOffline, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("offline", volOffline, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "server name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-busy", CMD_FLAG, CMD_OPTIONAL, "busy volume");
COMMONPARMS;
- ts = cmd_CreateSyntax("online", volOnline, 0, (char *)CMD_HIDDEN);
+ ts = cmd_CreateSyntax("online", volOnline, NULL, (char *)CMD_HIDDEN);
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "server name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("zap", VolumeZap, 0,
+ ts = cmd_CreateSyntax("zap", VolumeZap, NULL,
"delete the volume, don't bother with VLDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
"also delete backup volume if one is found");
COMMONPARMS;
- ts = cmd_CreateSyntax("status", VolserStatus, 0,
+ ts = cmd_CreateSyntax("status", VolserStatus, NULL,
"report on volser status");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
COMMONPARMS;
- ts = cmd_CreateSyntax("rename", RenameVolume, 0, "rename a volume");
+ ts = cmd_CreateSyntax("rename", RenameVolume, NULL, "rename a volume");
cmd_AddParm(ts, "-oldname", CMD_SINGLE, 0, "old volume name ");
cmd_AddParm(ts, "-newname", CMD_SINGLE, 0, "new volume name ");
COMMONPARMS;
- ts = cmd_CreateSyntax("listvldb", ListVLDB, 0,
+ ts = cmd_CreateSyntax("listvldb", ListVLDB, NULL,
"list volumes in the VLDB");
cmd_AddParm(ts, "-name", CMD_SINGLE, CMD_OPTIONAL, "volume name or ID");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "machine name");
"do not alphabetically sort the volume names");
COMMONPARMS;
- ts = cmd_CreateSyntax("backupsys", BackSys, 0, "en masse backups");
+ ts = cmd_CreateSyntax("backupsys", BackSys, NULL, "en masse backups");
cmd_AddParm(ts, "-prefix", CMD_LIST, CMD_OPTIONAL,
"common prefix on volume(s)");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "machine name");
cmd_AddParm(ts, "-dryrun", CMD_FLAG, CMD_OPTIONAL, "no action");
COMMONPARMS;
- ts = cmd_CreateSyntax("delentry", DeleteEntry, 0,
+ ts = cmd_CreateSyntax("delentry", DeleteEntry, NULL,
"delete VLDB entry for a volume");
cmd_AddParm(ts, "-id", CMD_LIST, CMD_OPTIONAL, "volume name or ID");
cmd_AddParm(ts, "-prefix", CMD_SINGLE, CMD_OPTIONAL,
"no execute");
COMMONPARMS;
- ts = cmd_CreateSyntax("partinfo", PartitionInfo, 0,
+ ts = cmd_CreateSyntax("partinfo", PartitionInfo, NULL,
"list partition information");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
"print storage summary");
COMMONPARMS;
- ts = cmd_CreateSyntax("unlockvldb", UnlockVLDB, 0,
+ ts = cmd_CreateSyntax("unlockvldb", UnlockVLDB, NULL,
"unlock all the locked entries in the VLDB");
cmd_AddParm(ts, "-server", CMD_SINGLE, CMD_OPTIONAL, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
COMMONPARMS;
- ts = cmd_CreateSyntax("lock", LockEntry, 0,
+ ts = cmd_CreateSyntax("lock", LockEntry, NULL,
"lock VLDB entry for a volume");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
COMMONPARMS;
- ts = cmd_CreateSyntax("changeaddr", ChangeAddr, 0,
+ ts = cmd_CreateSyntax("changeaddr", ChangeAddr, NULL,
"change the IP address of a file server");
cmd_AddParm(ts, "-oldaddr", CMD_SINGLE, 0, "original IP address");
cmd_AddParm(ts, "-newaddr", CMD_SINGLE, CMD_OPTIONAL, "new IP address");
"remove the IP address from the VLDB");
COMMONPARMS;
- ts = cmd_CreateSyntax("listaddrs", ListAddrs, 0,
+ ts = cmd_CreateSyntax("listaddrs", ListAddrs, NULL,
"list the IP address of all file servers registered in the VLDB");
cmd_AddParm(ts, "-uuid", CMD_SINGLE, CMD_OPTIONAL, "uuid of server");
cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_OPTIONAL, "address of host");
"print uuid of hosts");
COMMONPARMS;
- ts = cmd_CreateSyntax("convertROtoRW", ConvertRO, 0,
+ ts = cmd_CreateSyntax("convertROtoRW", ConvertRO, NULL,
"convert a RO volume into a RW volume (after loss of old RW volume)");
cmd_AddParm(ts, "-server", CMD_SINGLE, 0, "machine name");
cmd_AddParm(ts, "-partition", CMD_SINGLE, 0, "partition name");
cmd_AddParm(ts, "-force", CMD_FLAG, CMD_OPTIONAL, "don't ask");
COMMONPARMS;
- ts = cmd_CreateSyntax("size", Sizes, 0,
+ ts = cmd_CreateSyntax("size", Sizes, NULL,
"obtain various sizes of the volume.");
cmd_AddParm(ts, "-id", CMD_SINGLE, 0, "volume name or ID");
cmd_AddParm(ts, "-partition", CMD_SINGLE, CMD_OPTIONAL, "partition name");
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/vsprocs.c,v 1.33.2.11 2007/07/19 18:52:41 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/vsprocs.c,v 1.33.2.18 2008/02/11 03:46:34 shadow Exp $");
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <string.h>
#ifdef AFS_AIX_ENV
#include <sys/statfs.h>
#endif
#include <netinet/in.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <lock.h>
#include <afs/voldefs.h>
#include <rx/xdr.h>
{ if (verbose) { fprintf(STDOUT, (es), (p1), (p2), (p3)); fflush(STDOUT); } }
#define VDONE \
{ if (verbose) { fprintf(STDOUT, " done\n"); fflush(STDOUT); } }
+#define VEPRINT(es) \
+ { if (verbose) { fprintf(STDERR, (es)); fflush(STDERR); } }
+#define VEPRINT1(es, p) \
+ { if (verbose) { fprintf(STDERR, (es), (p)); fflush(STDERR); } }
+#define VEPRINT2(es, p1, p2) \
+ { if (verbose) { fprintf(STDERR, (es), (p1), (p2)); fflush(STDERR); } }
+#define VEPRINT3(es, p1, p2, p3) \
+ { if (verbose) { fprintf(STDERR, (es), (p1), (p2), (p3)); fflush(STDERR); } }
+#define VEDONE \
+ { if (verbose) { fprintf(STDERR, " done\n"); fflush(STDERR); } }
code = AFSVolSetInfo(aconn, tid, &tstatus);
if (code)
- EPRINT(code, "Could not change quota (error %d), continuing...\n");
+ EPRINT(code, "Could not change quota, continuing...\n");
code = AFSVolSetFlags(aconn, tid, 0); /* bring it online (mark it InService */
EGOTO2(cfail, vcode, "Could not bring the volume %s %u online \n", aname,
(void)signal(SIGINT, dump_sig_handler);
if (!fromdate) {
- VPRINT("Full Dump ...\n");
+ VEPRINT("Full Dump ...\n");
} else {
- VPRINT1("Incremental Dump (as of %.24s)...\n",
+ VEPRINT1("Incremental Dump (as of %.24s)...\n",
ctime((time_t *) & fromdate));
}
/* get connections to the servers */
fromconn = UV_Bind(afromserver, AFSCONF_VOLUMEPORT);
- VPRINT1("Starting transaction on volume %u...", afromvol);
+ VEPRINT1("Starting transaction on volume %u...", afromvol);
code = AFSVolTransCreate(fromconn, afromvol, afrompart, ITBusy, &fromtid);
EGOTO1(error_exit, code,
"Could not start transaction on the volume %u to be dumped\n",
afromvol);
- VDONE;
+ VEDONE;
fromcall = rx_NewCall(fromconn);
- VPRINT1("Starting volume dump on volume %u...", afromvol);
+ VEPRINT1("Starting volume dump on volume %u...", afromvol);
if (flags & VOLDUMPV2_OMITDIRS)
code = StartAFSVolDumpV2(fromcall, fromtid, fromdate, flags);
else
retryold:
code = StartAFSVolDump(fromcall, fromtid, fromdate);
EGOTO(error_exit, code, "Could not start the dump process \n");
- VDONE;
+ VEDONE;
- VPRINT1("Dumping volume %u...", afromvol);
+ VEPRINT1("Dumping volume %u...", afromvol);
code = DumpFunction(fromcall, rock);
if (code == RXGEN_OPCODE)
goto error_exit;
EGOTO(error_exit, code, "Error while dumping volume \n");
- VDONE;
+ VEDONE;
error_exit:
if (fromcall) {
error = code;
}
if (fromtid) {
- VPRINT1("Ending transaction on volume %u...", afromvol);
+ VEPRINT1("Ending transaction on volume %u...", afromvol);
code = AFSVolEndTrans(fromconn, fromtid, &rcode);
if (code || rcode) {
fprintf(STDERR, "Could not end transaction on the volume %lu\n",
if (!error)
error = (code ? code : rcode);
}
- VDONE;
+ VEDONE;
}
if (fromconn)
rx_DestroyConnection(fromconn);
(void)signal(SIGINT, dump_sig_handler);
if (!fromdate) {
- VPRINT("Full Dump ...\n");
+ VEPRINT("Full Dump ...\n");
} else {
- VPRINT1("Incremental Dump (as of %.24s)...\n",
+ VEPRINT1("Incremental Dump (as of %.24s)...\n",
ctime((time_t *) & fromdate));
}
/* get connections to the servers */
fromconn = UV_Bind(afromserver, AFSCONF_VOLUMEPORT);
- VPRINT1("Starting transaction on volume %u...", afromvol);
+ VEPRINT1("Starting transaction on volume %u...", afromvol);
code = AFSVolTransCreate(fromconn, afromvol, afrompart, ITBusy, &fromtid);
EGOTO1(error_exit, code,
"Could not start transaction on the volume %u to be dumped\n",
afromvol);
- VDONE;
+ VEDONE;
/* Get a clone id */
- VPRINT1("Allocating new volume id for clone of volume %u ...", afromvol);
+ VEPRINT1("Allocating new volume id for clone of volume %u ...", afromvol);
code = ubik_VL_GetNewVolumeId(cstruct, 0, 1, &clonevol);
EGOTO1(error_exit, code,
"Could not get an ID for the clone of volume %u from the VLDB\n",
afromvol);
- VDONE;
+ VEDONE;
/* Do the clone. Default flags on clone are set to delete on salvage and out of service */
- VPRINT2("Cloning source volume %u to clone volume %u...", afromvol,
+ VEPRINT2("Cloning source volume %u to clone volume %u...", afromvol,
clonevol);
strcpy(vname, "dump-clone-temp");
code =
AFSVolClone(fromconn, fromtid, 0, readonlyVolume, vname, &clonevol);
EGOTO1(error_exit, code, "Failed to clone the source volume %u\n",
afromvol);
- VDONE;
+ VEDONE;
- VPRINT1("Ending the transaction on the volume %u ...", afromvol);
+ VEPRINT1("Ending the transaction on the volume %u ...", afromvol);
rcode = 0;
code = AFSVolEndTrans(fromconn, fromtid, &rcode);
fromtid = 0;
code = rcode;
EGOTO1(error_exit, code,
"Failed to end the transaction on the volume %u\n", afromvol);
- VDONE;
+ VEDONE;
- VPRINT1("Starting transaction on the cloned volume %u ...", clonevol);
+ VEPRINT1("Starting transaction on the cloned volume %u ...", clonevol);
code =
AFSVolTransCreate(fromconn, clonevol, afrompart, ITOffline,
&clonetid);
EGOTO1(error_exit, code,
"Failed to start a transaction on the cloned volume%u\n",
clonevol);
- VDONE;
+ VEDONE;
- VPRINT1("Setting flags on cloned volume %u ...", clonevol);
+ VEPRINT1("Setting flags on cloned volume %u ...", clonevol);
code = AFSVolSetFlags(fromconn, clonetid, VTDeleteOnSalvage | VTOutOfService); /*redundant */
EGOTO1(error_exit, code, "Could not set falgs on the cloned volume %u\n",
clonevol);
- VDONE;
+ VEDONE;
fromcall = rx_NewCall(fromconn);
- VPRINT1("Starting volume dump from cloned volume %u...", clonevol);
+ VEPRINT1("Starting volume dump from cloned volume %u...", clonevol);
if (flags & VOLDUMPV2_OMITDIRS)
code = StartAFSVolDumpV2(fromcall, clonetid, fromdate, flags);
else
code = StartAFSVolDump(fromcall, clonetid, fromdate);
EGOTO(error_exit, code, "Could not start the dump process \n");
- VDONE;
+ VEDONE;
- VPRINT1("Dumping volume %u...", afromvol);
+ VEPRINT1("Dumping volume %u...", afromvol);
code = DumpFunction(fromcall, rock);
EGOTO(error_exit, code, "Error while dumping volume \n");
- VDONE;
+ VEDONE;
error_exit:
/* now delete the clone */
- VPRINT1("Deleting the cloned volume %u ...", clonevol);
+ VEPRINT1("Deleting the cloned volume %u ...", clonevol);
code = AFSVolDeleteVolume(fromconn, clonetid);
if (code) {
fprintf(STDERR, "Failed to delete the cloned volume %lu\n",
(unsigned long)clonevol);
} else {
- VDONE;
+ VEDONE;
}
if (fromcall) {
}
}
if (clonetid) {
- VPRINT1("Ending transaction on cloned volume %u...", clonevol);
+ VEPRINT1("Ending transaction on cloned volume %u...", clonevol);
code = AFSVolEndTrans(fromconn, clonetid, &rcode);
if (code || rcode) {
fprintf(STDERR,
if (!error)
error = (code ? code : rcode);
}
- VDONE;
+ VEDONE;
}
if (fromconn)
rx_DestroyConnection(fromconn);
struct volser_status tstatus;
struct volintInfo vinfo;
char partName[10];
+ char tovolreal[VOLSER_OLDMAXVOLNAME];
afs_int32 pvolid, pparentid;
afs_int32 temptid;
int success;
}
if (!pparentid) pparentid = pvolid;
/* at this point we have a volume id to use/reuse for the volume to be restored */
+ strncpy(tovolreal, tovolname, VOLSER_OLDMAXVOLNAME);
+
if (strlen(tovolname) > (VOLSER_OLDMAXVOLNAME - 1)) {
EGOTO1(refail, VOLSERBADOP,
"The volume name %s exceeds the maximum limit of (VOLSER_OLDMAXVOLNAME -1 ) bytes\n",
tovolname);
+ } else {
+ if ((pparentid != pvolid) && (flags & RV_RDONLY)) {
+ if (strlen(tovolname) > (VOLSER_OLDMAXVOLNAME - 10)) {
+ EGOTO1(refail, VOLSERBADOP,
+ "The volume name %s exceeds the maximum limit of (VOLSER_OLDMAXVOLNAME -1 ) bytes\n", tovolname);
+ }
+ snprintf(tovolreal, VOLSER_OLDMAXVOLNAME, "%s.readonly", tovolname);
+ }
}
MapPartIdIntoName(topart, partName);
fprintf(STDOUT, "Restoring volume %s Id %lu on server %s partition %s ..",
- tovolname, (unsigned long)pvolid,
+ tovolreal, (unsigned long)pvolid,
hostutil_GetNameByINet(toserver), partName);
fflush(STDOUT);
code =
- AFSVolCreateVolume(toconn, topart, tovolname, volsertype, pparentid, &pvolid,
+ AFSVolCreateVolume(toconn, topart, tovolreal, volsertype, pparentid, &pvolid,
&totid);
if (code) {
if (flags & RV_FULLRST) { /* full restore: delete then create anew */
VDONE;
code =
- AFSVolCreateVolume(toconn, topart, tovolname, volsertype, pparentid,
+ AFSVolCreateVolume(toconn, topart, tovolreal, volsertype, pparentid,
&pvolid, &totid);
EGOTO1(refail, code, "Could not create new volume %u\n", pvolid);
} else {
cookie.parent = pparentid;
cookie.type = voltype;
cookie.clone = 0;
- strncpy(cookie.name, tovolname, VOLSER_OLDMAXVOLNAME);
+ strncpy(cookie.name, tovolreal, VOLSER_OLDMAXVOLNAME);
tocall = rx_NewCall(toconn);
terror = StartAFSVolRestore(tocall, totid, 1, &cookie);
error = code;
goto refail;
}
- code = AFSVolSetIdsTypes(toconn, totid, tovolname, voltype, pparentid, 0, 0);
+ code = AFSVolSetIdsTypes(toconn, totid, tovolreal, voltype, pparentid, 0, 0);
if (code) {
fprintf(STDERR, "Could not set the right type and ID on %lu\n",
(unsigned long)pvolid);
toserver, errcode);
if ((!errcode && !same)
|| (entry.serverPartition[index] != topart)) {
- tempconn =
- UV_Bind(entry.serverNumber[index],
- AFSCONF_VOLUMEPORT);
-
- MapPartIdIntoName(entry.serverPartition[index],
- apartName);
- VPRINT3
- ("Deleting the previous volume %u on server %s, partition %s ...",
- pvolid,
- hostutil_GetNameByINet(entry.serverNumber[index]),
- apartName);
- code =
- AFSVolTransCreate(tempconn, pvolid,
- entry.serverPartition[index],
- ITOffline, &temptid);
- if (!code) {
+ if (flags & RV_NODEL) {
+ VPRINT2
+ ("Not deleting the previous volume %u on server %s, ...",
+ pvolid,
+ hostutil_GetNameByINet(entry.serverNumber[index]));
+ } else {
+ tempconn =
+ UV_Bind(entry.serverNumber[index],
+ AFSCONF_VOLUMEPORT);
+
+ MapPartIdIntoName(entry.serverPartition[index],
+ apartName);
+ VPRINT3
+ ("Deleting the previous volume %u on server %s, partition %s ...",
+ pvolid,
+ hostutil_GetNameByINet(entry.serverNumber[index]),
+ apartName);
code =
- AFSVolSetFlags(tempconn, temptid,
- VTDeleteOnSalvage |
- VTOutOfService);
- if (code) {
- fprintf(STDERR,
- "Could not set flags on volume %lu on the older site\n",
- (unsigned long)pvolid);
- error = code;
- goto refail;
- }
- code = AFSVolDeleteVolume(tempconn, temptid);
- if (code) {
- fprintf(STDERR,
- "Could not delete volume %lu on the older site\n",
- (unsigned long)pvolid);
- error = code;
- goto refail;
- }
- code = AFSVolEndTrans(tempconn, temptid, &rcode);
- temptid = 0;
- if (!code)
- code = rcode;
- if (code) {
- fprintf(STDERR,
- "Could not end transaction on volume %lu on the older site\n",
- (unsigned long)pvolid);
- error = code;
- goto refail;
+ AFSVolTransCreate(tempconn, pvolid,
+ entry.serverPartition[index],
+ ITOffline, &temptid);
+ if (!code) {
+ code =
+ AFSVolSetFlags(tempconn, temptid,
+ VTDeleteOnSalvage |
+ VTOutOfService);
+ if (code) {
+ fprintf(STDERR,
+ "Could not set flags on volume %lu on the older site\n",
+ (unsigned long)pvolid);
+ error = code;
+ goto refail;
+ }
+ code = AFSVolDeleteVolume(tempconn, temptid);
+ if (code) {
+ fprintf(STDERR,
+ "Could not delete volume %lu on the older site\n",
+ (unsigned long)pvolid);
+ error = code;
+ goto refail;
+ }
+ code = AFSVolEndTrans(tempconn, temptid, &rcode);
+ temptid = 0;
+ if (!code)
+ code = rcode;
+ if (code) {
+ fprintf(STDERR,
+ "Could not end transaction on volume %lu on the older site\n",
+ (unsigned long)pvolid);
+ error = code;
+ goto refail;
+ }
+ VDONE;
+ MapPartIdIntoName(entry.serverPartition[index],
+ partName);
}
- VDONE;
- MapPartIdIntoName(entry.serverPartition[index],
- partName);
}
}
entry.serverNumber[index] = toserver;
/*adds <server> and <part> as a readonly replication site for <volid>
*in vldb */
int
-UV_AddSite(afs_int32 server, afs_int32 part, afs_int32 volid)
+UV_AddSite(afs_int32 server, afs_int32 part, afs_int32 volid, afs_int32 valid)
{
int j, nro = 0, islocked = 0;
struct nvldbentry entry, storeEntry;
VPRINT("Adding a new site ...");
entry.serverNumber[entry.nServers] = server;
entry.serverPartition[entry.nServers] = part;
- entry.serverFlags[entry.nServers] = (ITSROVOL | RO_DONTUSE);
+ if (!valid) {
+ entry.serverFlags[entry.nServers] = (ITSROVOL | RO_DONTUSE);
+ } else {
+ entry.serverFlags[entry.nServers] = (ITSROVOL);
+ }
entry.nServers++;
MapNetworkToHost(&entry, &storeEntry);
afs_int32 code, error = 0;
struct nvldbentry entry, storeEntry;
char pname[10];
- int pass = 0, islocked = 0, createentry, addvolume, modified, mod;
+ int pass = 0, islocked = 0, createentry, addvolume, modified, mod, doit = 1;
afs_int32 rwvolid;
- if (modentry)
+ if (modentry) {
+ if (*modentry == 1)
+ doit = 0;
*modentry = 0;
+ }
rwvolid =
((volumeinfo->type ==
RWVOL) ? volumeinfo->volid : volumeinfo->parentID);
(unsigned long)volumeinfo->volid);
}
- Lp_SetRWValue(entry, entry.serverNumber[idx],
+ Lp_SetRWValue(&entry, entry.serverNumber[idx],
entry.serverPartition[idx], 0L, 0L);
entry.nServers--;
modified++;
if (entry.volumeId[RWVOL] > *maxvolid)
*maxvolid = entry.volumeId[RWVOL];
- if (modified) {
+ if (modified && doit) {
MapNetworkToHost(&entry, &storeEntry);
if (createentry) {
}
}
- if (verbose) {
+ if (verbose && doit) {
fprintf(STDOUT, "-- status after --\n");
if (modified)
EnumerateEntry(&entry);
volumeInfo.volEntries_val = (volintInfo *) 0;
volumeInfo.volEntries_len = 0;
- if (!aserver && flags) {
+ if (!aserver && (flags & 1)) {
/* fprintf(STDERR,"Partition option requires a server option\n"); */
ERROR_EXIT(EINVAL);
}
/* Turn verbose logging off and do our own verbose logging */
tverbose = verbose;
+ if (flags & 2)
+ tverbose = 1;
verbose = 0;
/* Read the VLDB entry */
* Equivalent to a syncserv.
*/
if (!vcode) {
+ /* Tell CheckVldb not to update if appropriate */
+ if (flags & 2)
+ mod = 1;
+ else
+ mod = 0;
code = CheckVldb(&vldbentry, &mod);
if (code) {
fprintf(STDERR, "Could not process VLDB entry for volume %s\n",
/* If aserver is given, we will search for the desired volume on it */
if (aserver) {
/* Generate array of partitions on the server that we will check */
- if (!flags) {
+ if (!(flags & 1)) {
code = UV_ListPartitions(aserver, &PartList, &pcnt);
if (code) {
fprintf(STDERR,
ERROR_EXIT(code);
}
} else {
+ if (flags & 2)
+ mod = 1;
+ else
+ mod = 0;
/* Found one, sync it with VLDB entry */
code =
CheckVolume(volumeInfo.volEntries_val, aserver,
ERROR_EXIT(code);
}
} else {
+ if (flags & 2)
+ mod = 1;
+ else
+ mod = 0;
/* Found one, sync it with VLDB entry */
code =
CheckVolume(volumeInfo.volEntries_val, aserver,
/* if (aserver) */
/* If verbose output, print a summary of what changed */
- if (tverbose) {
+ if (tverbose && !(flags & 2)) {
fprintf(STDOUT, "-- status after --\n");
code = VLDB_GetEntryByName(avolname, &vldbentry);
if (code && (code != VL_NOENT)) {
aconn = UV_Bind(aserver, AFSCONF_VOLUMEPORT);
/* Generate array of partitions to check */
- if (!flags) {
+ if (!(flags & 1)) {
code = UV_ListPartitions(aserver, &PartList, &pcnt);
if (code) {
fprintf(STDERR,
fflush(STDOUT);
}
+ if (flags & 2)
+ modified = 1;
+ else
+ modified = 0;
code = CheckVolume(vi, aserver, apart, &modified, &maxvolid);
if (code) {
PrintError("", code);
} /* thru all partitions */
- VPRINT3("Total entries: %u, Failed to process %d, Changed %d\n", tentries,
- failures, modifications);
+ if (flags & 2) {
+ VPRINT3("Total entries: %u, Failed to process %d, Would change %d\n",
+ tentries, failures, modifications);
+ } else {
+ VPRINT3("Total entries: %u, Failed to process %d, Changed %d\n",
+ tentries, failures, modifications);
+ }
error_exit:
/* Now check if the maxvolid is larger than that stored in the VLDB */
afs_int32 code, error = 0;
struct nvldbentry storeEntry;
int islocked = 0, mod, modentry, delentry = 0;
- int pass = 0;
+ int pass = 0, doit=1;
- if (modified)
+ if (modified) {
+ if (*modified == 1)
+ doit = 0;
*modified = 0;
+ }
if (verbose) {
fprintf(STDOUT, "_______________________________\n");
fprintf(STDOUT, "\n-- status before -- \n");
code = CheckVldbRWBK(entry, &mod);
if (code)
ERROR_EXIT(code);
- if (mod && (pass == 1))
+ if (mod && (pass == 1) && doit)
goto retry;
if (mod)
modentry++;
code = CheckVldbRO(entry, &mod);
if (code)
ERROR_EXIT(code);
- if (mod && (pass == 1))
+ if (mod && (pass == 1) && doit)
goto retry;
if (mod)
modentry++;
/* The VLDB entry has been updated. If it as been modified, then
* write the entry back out the the VLDB.
*/
- if (modentry) {
+ if (modentry && doit) {
if (pass == 1)
goto retry;
if (!(entry->flags & RW_EXISTS) && !(entry->flags & BACK_EXISTS)
- && !(entry->flags & RO_EXISTS)) {
+ && !(entry->flags & RO_EXISTS) && doit) {
/* The RW, BK, nor RO volumes do not exist. Delete the VLDB entry */
code =
ubik_VL_DeleteEntry(cstruct, 0, entry->volumeId[RWVOL],
islocked = 0;
}
- if (verbose) {
+ if (verbose && doit) {
fprintf(STDOUT, "-- status after --\n");
if (delentry)
fprintf(STDOUT, "\n**entry deleted**\n");
struct nvldbentry *vlentry;
afs_int32 si, nsi, j;
+ if (flags & 2)
+ verbose = 1;
+
aconn = UV_Bind(aserver, AFSCONF_VOLUMEPORT);
/* Set up attributes to search VLDB */
attributes.server = ntohl(aserver);
attributes.Mask = VLLIST_SERVER;
- if (flags) {
+ if ((flags & 1)) {
attributes.partition = apart;
attributes.Mask |= VLLIST_PARTITION;
}
VPRINT1("Processing VLDB entry %d ...\n", j + 1);
+ /* Tell CheckVldb not to update if appropriate */
+ if (flags & 2)
+ modified = 1;
+ else
+ modified = 0;
code = CheckVldb(vlentry, &modified);
if (code) {
PrintError("", code);
}
}
- VPRINT3("Total entries: %u, Failed to process %d, Changed %d\n", tentries,
- failures, modifications);
+ if (flags & 2) {
+ VPRINT3("Total entries: %u, Failed to process %d, Would change %d\n",
+ tentries, failures, modifications);
+ } else {
+ VPRINT3("Total entries: %u, Failed to process %d, Changed %d\n",
+ tentries, failures, modifications);
+ }
error_exit:
if (aconn)
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/volser/vsutils.c,v 1.16.2.3 2006/07/31 17:07:52 shadow Exp $");
+ ("$Header: /cvs/openafs/src/volser/vsutils.c,v 1.16.2.4 2007/10/30 15:24:13 shadow Exp $");
#include <afs/stds.h>
+#include <string.h>
#ifdef AFS_NT40_ENV
#include <fcntl.h>
#include <winsock2.h>
#include <sys/statfs.h>
#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
#include <errno.h>
#include <lock.h>
#include <rx/xdr.h>
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_cm.c,v 1.9.2.2 2006/06/26 16:19:06 rra Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_cm.c,v 1.9.2.4 2008/03/10 22:35:37 shadow Exp $");
#include "xstat_cm.h" /*Interface for this module */
#include <lwp.h> /*Lightweight process package */
#include <afs/afsutil.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#define LWP_STACK_SIZE (16 * 1024)
* Side Effects:
* As advertised.
*------------------------------------------------------------------------*/
-static void
-xstat_cm_LWP()
+static void *
+xstat_cm_LWP(void *unused)
{
static char rn[] = "xstat_cm_LWP"; /*Routine name */
register afs_int32 code; /*Results of calls */
code);
} /*Continuous execution */
} /*Service loop */
+ return NULL;
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_cm_test.c,v 1.8.2.3 2006/03/09 06:42:30 shadow Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_cm_test.c,v 1.8.2.6 2007/11/26 21:22:00 shadow Exp $");
#include "xstat_cm.h" /*Interface for xstat_cm module */
#include <cmd.h> /*Command line interpreter */
#include <time.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/*
* External routines that don't have explicit include file definitions.
/* Print detailed functional call statistics */
+void
print_cmCallStats()
{
static char rn[] = "print_cmCallStats"; /*Routine name */
*------------------------------------------------------------------------*/
int
-RunTheTest(a_s)
- struct cmd_syndesc *a_s;
-
+RunTheTest(struct cmd_syndesc *a_s, void *arock)
{ /*RunTheTest */
static char rn[] = "RunTheTest"; /*Routine name */
/*
* Set up the commands we understand.
*/
- ts = cmd_CreateSyntax("initcmd", RunTheTest, 0, "initialize the program");
+ ts = cmd_CreateSyntax("initcmd", RunTheTest, NULL, "initialize the program");
cmd_AddParm(ts, "-cmname", CMD_LIST, CMD_REQUIRED,
"Cache Manager name(s) to monitor");
cmd_AddParm(ts, "-collID", CMD_LIST, CMD_REQUIRED,
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_fs.c,v 1.9.2.2 2006/06/26 16:19:06 rra Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_fs.c,v 1.9.2.4 2008/03/10 22:35:37 shadow Exp $");
#include "xstat_fs.h" /*Interface for this module */
#include <lwp.h> /*Lightweight process package */
#include <afs/afsutil.h>
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#define LWP_STACK_SIZE (16 * 1024)
* Nothing interesting.
*------------------------------------------------------------------------*/
-static void
-xstat_fs_LWP()
+static void *
+xstat_fs_LWP(void *unused)
{
static char rn[] = "xstat_fs_LWP"; /*Routine name */
register afs_int32 code; /*Results of calls */
code);
} /*Continuous execution */
} /*Service loop */
+ return NULL;
}
/*------------------------------------------------------------------------
#endif
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_fs_callback.c,v 1.13.2.1 2006/03/06 03:16:41 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_fs_callback.c,v 1.13.2.2 2007/10/30 15:24:16 shadow Exp $");
#include <errno.h>
#include <stdio.h> /*Standard I/O stuff */
-
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
#include <afs/afscbint.h> /*Callback interface defs */
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/xstat/xstat_fs_test.c,v 1.8.2.6 2006/04/10 15:46:46 shadow Exp $");
+ ("$Header: /cvs/openafs/src/xstat/xstat_fs_test.c,v 1.8.2.7 2007/10/30 15:24:16 shadow Exp $");
#include "xstat_fs.h" /*Interface for xstat_fs module */
#include <cmd.h> /*Command line interpreter */
#include <time.h>
-#ifdef HAVE_STRING_H
#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
/*
* External routines that don't have explicit include file definitions.