LINUX_EXPORTS_SYS_CLOSE
LINUX_EXPORTS_SYS_OPEN
LINUX_EXPORTS_SYS_WAIT4
+ LINUX_EXPORTS_RCU_READ_LOCK
LINUX_WHICH_MODULES
if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
am__tar
am__untar
MACOS_VERSION
-LINUX_VERSION
+LINUX_PKGVER
+LINUX_PKGREL
CC
CFLAGS
LDFLAGS
LINUX_KERNEL_PATH
BSD_KERNEL_PATH
BSD_KERNEL_BUILD
+LINUX_VERSION
MKAFS_OSTYPE
TOP_OBJDIR
TOP_SRCDIR
# Define the identity of the package.
PACKAGE=openafs
- VERSION=1.4.7pre3
+ VERSION=1.4.7
cat >>confdefs.h <<_ACEOF
ac_config_headers="$ac_config_headers src/config/afsconfig.h"
-MACOS_VERSION=1.4.7fc3
-LINUX_VERSION=0.pre3
+MACOS_VERSION=1.4.7
+LINUX_PKGVER=1.4.7
+#LINUX_PKGREL=0.pre0
+LINUX_PKGREL=1.1
+
{ echo "$as_me:$LINENO: result: $ac_cv_linux_exports_sys_wait4" >&5
echo "${ECHO_T}$ac_cv_linux_exports_sys_wait4" >&6; }
+ { echo "$as_me:$LINENO: checking if rcu_read_lock is usable" >&5
+echo $ECHO_N "checking if rcu_read_lock is usable... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_exports_rcu_read_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_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/rcupdate.h>
+
+void conftest(void)
+{
+rcu_read_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 &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_rcu_read_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_exports_rcu_read_lock=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/rcupdate.h>
+int
+main ()
+{
+rcu_read_lock();
+ ;
+ 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_exports_rcu_read_lock=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_exports_rcu_read_lock=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_exports_rcu_read_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_exports_rcu_read_lock" >&6; }
+ if test "x$ac_cv_linux_exports_rcu_read_lock" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define EXPORTED_RCU_READ_LOCK 1
+_ACEOF
+
+ fi
+
if test "x$enable_redhat_buildsys" = "xyes"; then
MPS=Default
else
-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
+
+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 krb5_get_prompt_types
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
{ echo "$as_me:$LINENO: result: $ac_cv_krb5_creds_session_exists" >&5
echo "${ECHO_T}$ac_cv_krb5_creds_session_exists" >&6; }
+{ echo "$as_me:$LINENO: checking for krb5_prompt.type existence" >&5
+echo $ECHO_N "checking for krb5_prompt.type existence... $ECHO_C" >&6; }
+if test "${ac_cv_krb5_prompt_type_exists+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 <krb5.h>
+int
+main ()
+{
+krb5_prompt _p;
+printf("%x\n", _p.type);
+ ;
+ 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_krb5_prompt_type_exists=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_krb5_prompt_type_exists=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_cv_krb5_prompt_type_exists" >&5
+echo "${ECHO_T}$ac_cv_krb5_prompt_type_exists" >&6; }
+
if test "x$ac_cv_krb5_creds_keyblock_exists" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_KRB5_CREDS_SESSION 1
_ACEOF
+fi
+if test "x$ac_cv_krb5_prompt_type_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KRB5_PROMPT_TYPE 1
+_ACEOF
+
fi
CPPFLAGS="$save_CPPFLAGS"
am__tar!$am__tar$ac_delim
am__untar!$am__untar$ac_delim
MACOS_VERSION!$MACOS_VERSION$ac_delim
-LINUX_VERSION!$LINUX_VERSION$ac_delim
+LINUX_PKGVER!$LINUX_PKGVER$ac_delim
+LINUX_PKGREL!$LINUX_PKGREL$ac_delim
CC!$CC$ac_delim
CFLAGS!$CFLAGS$ac_delim
LDFLAGS!$LDFLAGS$ac_delim
LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim
HEADER_RT!$HEADER_RT$ac_delim
P5PLUS_KOPTS!$P5PLUS_KOPTS$ac_delim
-LINUX_GCC_KOPTS!$LINUX_GCC_KOPTS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+LINUX_GCC_KOPTS!$LINUX_GCC_KOPTS$ac_delim
RHCONFIG_SP!$RHCONFIG_SP$ac_delim
RHCONFIG_MP!$RHCONFIG_MP$ac_delim
MPS!$MPS$ac_delim
LINUX_KERNEL_PATH!$LINUX_KERNEL_PATH$ac_delim
BSD_KERNEL_PATH!$BSD_KERNEL_PATH$ac_delim
BSD_KERNEL_BUILD!$BSD_KERNEL_BUILD$ac_delim
+LINUX_VERSION!$LINUX_VERSION$ac_delim
MKAFS_OSTYPE!$MKAFS_OSTYPE$ac_delim
TOP_OBJDIR!$TOP_OBJDIR$ac_delim
TOP_SRCDIR!$TOP_SRCDIR$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 95; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
am__tar
am__untar
MACOS_VERSION
-LINUX_VERSION
+LINUX_PKGVER
+LINUX_PKGREL
CC
CFLAGS
LDFLAGS
LINUX_KERNEL_PATH
BSD_KERNEL_PATH
BSD_KERNEL_BUILD
+LINUX_VERSION
MKAFS_OSTYPE
TOP_OBJDIR
TOP_SRCDIR
# Define the identity of the package.
PACKAGE=openafs-libafs
- VERSION=1.4.7pre3
+ VERSION=1.4.7
cat >>confdefs.h <<_ACEOF
ac_config_headers="$ac_config_headers src/config/afsconfig.h"
-MACOS_VERSION=1.4.7fc3
-LINUX_VERSION=0.pre3
+MACOS_VERSION=1.4.7
+LINUX_PKGVER=1.4.7
+#LINUX_PKGREL=0.pre0
+LINUX_PKGREL=1.1
+
{ echo "$as_me:$LINENO: result: $ac_cv_linux_exports_sys_wait4" >&5
echo "${ECHO_T}$ac_cv_linux_exports_sys_wait4" >&6; }
+ { echo "$as_me:$LINENO: checking if rcu_read_lock is usable" >&5
+echo $ECHO_N "checking if rcu_read_lock is usable... $ECHO_C" >&6; }
+ if test "${ac_cv_linux_exports_rcu_read_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_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/rcupdate.h>
+
+void conftest(void)
+{
+rcu_read_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 &&
+ ! grep -i "^WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_rcu_read_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_exports_rcu_read_lock=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/rcupdate.h>
+int
+main ()
+{
+rcu_read_lock();
+ ;
+ 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_exports_rcu_read_lock=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_linux_exports_rcu_read_lock=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_exports_rcu_read_lock" >&5
+echo "${ECHO_T}$ac_cv_linux_exports_rcu_read_lock" >&6; }
+ if test "x$ac_cv_linux_exports_rcu_read_lock" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define EXPORTED_RCU_READ_LOCK 1
+_ACEOF
+
+ fi
+
if test "x$enable_redhat_buildsys" = "xyes"; then
MPS=Default
else
-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
+
+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 krb5_get_prompt_types
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
{ echo "$as_me:$LINENO: result: $ac_cv_krb5_creds_session_exists" >&5
echo "${ECHO_T}$ac_cv_krb5_creds_session_exists" >&6; }
+{ echo "$as_me:$LINENO: checking for krb5_prompt.type existence" >&5
+echo $ECHO_N "checking for krb5_prompt.type existence... $ECHO_C" >&6; }
+if test "${ac_cv_krb5_prompt_type_exists+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 <krb5.h>
+int
+main ()
+{
+krb5_prompt _p;
+printf("%x\n", _p.type);
+ ;
+ 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_krb5_prompt_type_exists=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_krb5_prompt_type_exists=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_cv_krb5_prompt_type_exists" >&5
+echo "${ECHO_T}$ac_cv_krb5_prompt_type_exists" >&6; }
+
if test "x$ac_cv_krb5_creds_keyblock_exists" = "xyes"; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_KRB5_CREDS_SESSION 1
_ACEOF
+fi
+if test "x$ac_cv_krb5_prompt_type_exists" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KRB5_PROMPT_TYPE 1
+_ACEOF
+
fi
CPPFLAGS="$save_CPPFLAGS"
am__tar!$am__tar$ac_delim
am__untar!$am__untar$ac_delim
MACOS_VERSION!$MACOS_VERSION$ac_delim
-LINUX_VERSION!$LINUX_VERSION$ac_delim
+LINUX_PKGVER!$LINUX_PKGVER$ac_delim
+LINUX_PKGREL!$LINUX_PKGREL$ac_delim
CC!$CC$ac_delim
CFLAGS!$CFLAGS$ac_delim
LDFLAGS!$LDFLAGS$ac_delim
LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim
HEADER_RT!$HEADER_RT$ac_delim
P5PLUS_KOPTS!$P5PLUS_KOPTS$ac_delim
-LINUX_GCC_KOPTS!$LINUX_GCC_KOPTS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+LINUX_GCC_KOPTS!$LINUX_GCC_KOPTS$ac_delim
RHCONFIG_SP!$RHCONFIG_SP$ac_delim
RHCONFIG_MP!$RHCONFIG_MP$ac_delim
MPS!$MPS$ac_delim
LINUX_KERNEL_PATH!$LINUX_KERNEL_PATH$ac_delim
BSD_KERNEL_PATH!$BSD_KERNEL_PATH$ac_delim
BSD_KERNEL_BUILD!$BSD_KERNEL_BUILD$ac_delim
+LINUX_VERSION!$LINUX_VERSION$ac_delim
MKAFS_OSTYPE!$MKAFS_OSTYPE$ac_delim
TOP_OBJDIR!$TOP_OBJDIR$ac_delim
TOP_SRCDIR!$TOP_SRCDIR$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 93; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 95; 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.7pre3)
+AM_INIT_AUTOMAKE(openafs-libafs,1.4.7)
AC_CONFIG_HEADER(src/config/afsconfig.h)
-MACOS_VERSION=1.4.7fc3
-LINUX_VERSION=0.pre3
+MACOS_VERSION=1.4.7
+LINUX_PKGVER=1.4.7
+#LINUX_PKGREL=0.pre0
+LINUX_PKGREL=1.1
AC_SUBST(MACOS_VERSION)
-AC_SUBST(LINUX_VERSION)
+AC_SUBST(LINUX_PKGVER)
+AC_SUBST(LINUX_PKGREL)
define(OPENAFS_CONFIGURE_LIBAFS)
AC_PROG_CC
AC_INIT(src/config/stds.h)
-AM_INIT_AUTOMAKE(openafs,1.4.7pre3)
+AM_INIT_AUTOMAKE(openafs,1.4.7)
AC_CONFIG_HEADER(src/config/afsconfig.h)
-MACOS_VERSION=1.4.7fc3
-LINUX_VERSION=0.pre3
+MACOS_VERSION=1.4.7
+LINUX_PKGVER=1.4.7
+#LINUX_PKGREL=0.pre0
+LINUX_PKGREL=1.1
AC_SUBST(MACOS_VERSION)
-AC_SUBST(LINUX_VERSION)
+AC_SUBST(LINUX_PKGVER)
+AC_SUBST(LINUX_PKGREL)
AC_PROG_CC
AC_CHECK_PROGS(CPP,[/lib/cpp /usr/bin/cpp /usr/ccs/lib/cpp cpp],,[$PATH:/])
#endif
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.14 2008/03/10 16:48:56 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.15 2008/04/19 21:56:11 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
crset(*cr);
+#ifdef STRUCT_TASK_STRUCT_HAS_PARENT
if (change_parent) {
old_info = current->parent->group_info;
get_group_info(group_info);
current->parent->group_info = group_info;
put_group_info(old_info);
}
+#endif
return (0);
}
void osi_keyring_init(void)
{
struct task_struct *p;
+
+ /* If we can't lock the tasklist, either with its explicit lock,
+ * or by using the RCU lock, then we can't safely work out the
+ * type of a keyring. So, we have to rely on the weak reference.
+ * If that's not available, then keyring based PAGs won't work.
+ */
+#if defined(EXPORTED_TASKLIST_LOCK) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK))
if (__key_type_keyring == NULL) {
-#ifdef EXPORTED_TASKLIST_LOCK
+# 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
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK))
+# ifdef EXPORTED_TASKLIST_LOCK
+ else
+# endif
rcu_read_lock();
-#endif
+# endif
p = find_task_by_pid(1);
if (p && p->user->session_keyring)
__key_type_keyring = p->user->session_keyring->type;
-#ifdef EXPORTED_TASKLIST_LOCK
+# 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
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) && defined(EXPORTED_RCU_READ_LOCK))
+# ifdef EXPORTED_TASKLIST_LOCK
+ else
+# endif
rcu_read_unlock();
-#endif
+# endif
}
+#endif
register_key_type(&key_type_afs_pag);
}
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.63 2008/04/02 18:27:13 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.64 2008/04/15 12:29:54 shadow Exp $");
#include "afs/sysincludes.h"
#include "afsincludes.h"
if (vcp == afs_globalVp)
goto good_dentry;
- if (*dp->d_name.name != '/' && vcp->mvstat == 2) /* root vnode */
- check_bad_parent(dp); /* check and correct mvid */
+ if (vcp->mvstat == 1) { /* mount point */
+ if (vcp->mvid && (vcp->states & CMValid)) {
+ /* a mount point, not yet replaced by its directory */
+ goto bad_dentry;
+ }
+ } else
+ if (*dp->d_name.name != '/' && vcp->mvstat == 2) /* root vnode */
+ check_bad_parent(dp); /* check and correct mvid */
#ifdef notdef
/* If the last looker changes, we should make sure the current
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50.2.20 2008/03/07 17:34:08 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50.2.21 2008/04/15 12:29:56 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
register afs_int32 code;
register afs_int32 bulkcode = 0;
int pass = 0, hit = 0;
+ int force_eval = afs_fakestat_enable ? 0 : 1;
long dirCookie;
extern afs_int32 afs_mariner; /*Writing activity to log? */
afs_hyper_t versionNo;
} /* sub-block just to reduce stack usage */
if (tvc) {
- int force_eval = afs_fakestat_enable ? 0 : 1;
-
if (adp->states & CForeign)
tvc->states |= CForeign;
tvc->parentVnode = adp->fid.Fid.Vnode;
force_eval = 1;
ReleaseReadLock(&tvc->lock);
}
+ if (tvc->mvstat == 1 && (tvc->states & CMValid) && tvc->mvid != NULL)
+ force_eval = 1; /* This is now almost for free, get it correct */
+
#if defined(UKERNEL) && defined(AFS_WEB_ENHANCEMENTS)
if (!(flags & AFS_LOOKUP_NOEVAL))
/* don't eval mount points */
* rather than the vc of the mount point itself. we can still find the
* mount point's vc in the vcache by its fid. */
#endif /* UKERNEL && AFS_WEB_ENHANCEMENTS */
- if (!hit) {
+ if (!hit && force_eval) {
osi_dnlc_enter(adp, aname, tvc, &versionNo);
} else {
#ifdef AFS_LINUX20_ENV
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_read.c,v 1.26.2.5 2007/11/29 18:36:12 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_read.c,v 1.26.2.6 2008/04/27 03:54:27 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
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);
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.26 2008/01/30 21:18:29 shadow Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.30 2008/04/18 14:06:50 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
if (current->thread.flags & THREAD_IA32)
#elif defined(AFS_PPC64_LINUX26_ENV)
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
if (current->thread_info->flags & _TIF_32BIT)
+#else
+ if (task_thread_info(current)->flags & _TIF_32BIT)
+#endif
#elif defined(AFS_PPC64_LINUX20_ENV)
if (current->thread.flags & PPC_FLAG_32BIT)
#endif
afs_warn("\n");
- /* Close file only after daemons which can write to it are stopped. */
- if (afs_cacheInodep) { /* memcache won't set this */
- osi_UFSClose(afs_cacheInodep); /* Since we always leave it open */
- afs_cacheInodep = 0;
- }
- return; /* Just kill daemons for now */
+#ifdef AFS_AIX51_ENV
+ shutdown_daemons();
+#endif
+
#ifdef notdef
shutdown_CB();
shutdown_AFS();
shutdown_rxevent();
shutdown_rx();
afs_shutdown_BKG();
- shutdown_bufferpackage();
-#endif
-#ifdef AFS_AIX51_ENV
- shutdown_daemons();
#endif
-#ifdef notdef
+ shutdown_bufferpackage();
shutdown_cache();
shutdown_osi();
shutdown_osinet();
shutdown_osifile();
shutdown_vnodeops();
- shutdown_vfsops();
- shutdown_exporter();
shutdown_memcache();
#if (!defined(AFS_NONFSTRANS) || defined(AFS_AIX_IAUTH_ENV)) && !defined(AFS_OSF_ENV)
+ shutdown_exporter();
shutdown_nfsclnt();
#endif
shutdown_afstest();
memset(&afs_stats_cmfullperf, 0, sizeof(struct afs_stats_CMFullPerf));
*/
afs_warn(" ALL allocated tables\n");
+
+ /* Close file only after daemons which can write to it are stopped. */
+ if (afs_cacheInodep) { /* memcache won't set this */
+ osi_UFSClose(afs_cacheInodep); /* Since we always leave it open */
+ afs_cacheInodep = 0;
+ }
+
afs_shuttingdown = 0;
-#endif
+
+ return; /* Just kill daemons for now */
}
void
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.32 2008/03/22 04:17:33 jaltman Exp $");
+ ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.33 2008/04/18 20:13:32 shadow Exp $");
#include "afs/sysincludes.h" /* Standard vendor system headers */
#ifdef AFS_OBSD_ENV
if (current->thread.flags & THREAD_IA32)
#elif defined(AFS_PPC64_LINUX26_ENV)
- if (current->thread_info->flags & _TIF_32BIT)
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
+ if (current->thread_info->flags & _TIF_32BIT)
+#else
+ if (task_thread_info(current)->flags & _TIF_32BIT)
+#endif
#elif defined(AFS_PPC64_LINUX20_ENV)
if (current->thread.flags & PPC_FLAG_32BIT)
extern void osi_FreeSmallSpace(void *adata);
extern void *osi_AllocLargeSpace(size_t size);
extern void *osi_AllocSmallSpace(size_t size);
+extern void shutdown_osinet(void);
/* afs_osi_uio.c */
extern int afsio_copy(struct uio *ainuio, struct uio *aoutuio,
{
krb5_error_code code;
int i, type;
-#ifndef USING_HEIMDAL
+#if !defined(USING_HEIMDAL) && defined(HAVE_KRB5_GET_PROMPT_TYPES)
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 !defined(USING_HEIMDAL) && defined(HAVE_KRB5_GET_PROMPT_TYPES)
if ((types = krb5_get_prompt_types(context)))
#endif
for (i = 0; i < num_prompts; ++i) {
-#ifdef USING_HEIMDAL
+#if !defined(USING_HEIMDAL)
+#if defined(HAVE_KRB5_GET_PROMPT_TYPES)
+ type = types[i];
+#elif defined(HAVE_KRB5_PROMPT_TYPE)
type = prompts[i].type;
#else
- type = types[i];
+ /* AIX 5.3 krb5_get_prompt_types is missing. Um... */
+ type = ((i == 1)&&(num_prompts == 2)) ?
+ KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN : KRB5_PROMPT_TYPE_PASSWORD;
+#endif
+#else
+ type = prompts[i].type;
#endif
#if 0
- printf ("i%d t%d <%.*s>\n", i,
-type,
-prompts[i].reply->length,
-prompts[i].reply->data);
+ 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:
Silent = (as->parms[aSILENT].items ? 1 : 0);
if (Silent) {
- set_com_err_hook(silent_errors);
+ afs_set_com_err_hook(silent_errors);
}
if ((code = krb5_init_context(&k5context))) {
- com_err(rn, code, "while initializing Kerberos 5 library");
+ afs_com_err(rn, code, "while initializing Kerberos 5 library");
KLOGEXIT(code);
}
if ((code = rx_Init(0))) {
- com_err(rn, code, "while initializing rx");
+ afs_com_err(rn, code, "while initializing rx");
KLOGEXIT(code);
}
initialize_U_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))",
+ afs_com_err(rn, 0, "can't get afs configuration (afsconf_Open(%s))",
rn, AFSDIR_CLIENT_ETC_DIRPATH);
KLOGEXIT(1);
}
cell = as->parms[aCELL].items ? 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);
+ afs_com_err(rn, code, "Can't get cell information for '%s'", cell);
else
- com_err(rn, code, "Can't get determine local cell!");
+ afs_com_err(rn, code, "Can't get determine local cell!");
KLOGEXIT(code);
}
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",
+ afs_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",
+ afs_com_err(rn, code, "Can't get realm for host <%s> in cell <%s>\n",
cellconfig->hostName[0], cellconfig->name);
KLOGEXIT(code);
} else {
code = krb5_set_default_realm(k5context,
*hrealms);
if (code) {
- com_err(rn, code, "Can't make <%s> the default realm",
+ afs_com_err(rn, code, "Can't make <%s> the default realm",
*hrealms);
KLOGEXIT(code);
}
struct passwd *pw;
pw = getpwuid(id);
if (pw == 0) {
- com_err(rn, 0,
+ afs_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);
}
code = krb5_parse_name(k5context, pname, &princ);
if (code) {
- com_err(rn, code, "Can't parse principal <%s>", pname);
+ afs_com_err(rn, code, "Can't parse principal <%s>", pname);
KLOGEXIT(code);
}
if (krb5_get_default_realm(k5context, &r))
r = 0;
if (service)
- com_err(rn, code, "Unable to authenticate to use %s", service);
+ afs_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);
+ afs_com_err(rn, code, "Unable to authenticate in realm %s", r);
else
- com_err(rn, code, "Unable to authenticate to use cell %s",
+ afs_com_err(rn, code, "Unable to authenticate to use cell %s",
cellconfig->name);
if (r) free(r);
KLOGEXIT(code);
break;
Failed:
if (code)
- com_err(rn, code, what);
+ afs_com_err(rn, code, what);
if (writeTicketFile) {
if (cc) {
krb5_cc_close(k5context, cc);
mcred->client = princ;
code = krb5_parse_name(k5context, service, &mcred->server);
if (code) {
- com_err(rn, code, "Unable to parse service <%s>\n", service);
+ afs_com_err(rn, code, "Unable to parse service <%s>\n", service);
KLOGEXIT(code);
}
if (tofree) { free(tofree); tofree = 0; }
afscred = outcred;
}
if (code) {
- com_err(rn, code, "Unable to get credentials to use %s", outname);
+ afs_com_err(rn, code, "Unable to get credentials to use %s", outname);
KLOGEXIT(code);
}
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",
+ afs_com_err(rn, code, "Unable to store tokens for cell %s\n",
cellconfig->name);
KLOGEXIT(1);
}
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",
+ afs_com_err(rn, 0, "Can't unwrap %s AFS credential",
cellconfig->name);
KLOGEXIT(1);
}
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);
+ afs_com_err(rn, code, "Can't get your viceid", cellconfig->name);
*aclient->name = 0;
} else
snprintf(aclient->name, MAXKTCNAMELEN-1, "AFS ID %d", viceid);
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",
+ afs_com_err(rn, code, "Unable to store tokens for cell %s\n",
cellconfig->name);
KLOGEXIT(1);
}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/bucoord/dump.c,v 1.12.2.5 2008/03/10 22:35:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/bucoord/dump.c,v 1.12.2.6 2008/04/09 16:40:16 shadow Exp $");
#include <sys/types.h>
#include <afs/cmd.h>
free(tdump->portOffset);
tdump->flags &= ~BC_DI_INUSE;
- return code;
+ return (void *)code;
}
/* bc_StartDmpRst
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/lwps.c,v 1.12.2.6 2008/03/10 22:35:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/lwps.c,v 1.12.2.7 2008/04/09 16:40:17 shadow Exp $");
#include <sys/types.h>
#include <string.h>
FreeNode(taskId);
LeaveDeviceQueue(deviceLatch);
- return (code);
+ return (void *)(code);
}
/* this is just scaffolding, creates new tape label with name <tapeName> */
free(labelIfPtr);
LeaveDeviceQueue(deviceLatch);
- return (code);
+ return (void *)(code);
}
/* PrintTapeLabel
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/butc/tcudbprocs.c,v 1.14.2.5 2008/03/10 22:35:34 shadow Exp $");
+ ("$Header: /cvs/openafs/src/butc/tcudbprocs.c,v 1.14.2.7 2008/04/18 13:57:31 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
free(saveDbIfPtr);
LeaveDeviceQueue(deviceLatch);
- return (code);
+ return (void *)(code);
}
struct rstTapeInfo {
void *
restoreDbFromTape(void *param)
{
- afs_uint32 taskId = (void *)param;
+ afs_uint32 taskId = (afs_uint32) param;
afs_int32 code = 0;
afs_int32 i;
struct butm_tapeInfo tapeInfo;
dnl
-dnl $Id: kerberos.m4,v 1.1.2.14 2008/01/05 04:48:41 shadow Exp $
+dnl $Id: kerberos.m4,v 1.1.2.16 2008/04/18 20:50:28 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 krb5_c_encrypt krb5_c_encrypt_length krb5_cc_register krb5_decode_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 krb5_get_prompt_types])
AC_CHECK_FUNCS([krb5_524_convert_creds], ,
[AC_CHECK_FUNCS([krb524_convert_creds_kdc], ,
[AC_CHECK_LIB([krb524], [krb524_convert_creds_kdc],
ac_cv_krb5_creds_session_exists=no)])
AC_MSG_RESULT($ac_cv_krb5_creds_session_exists)
+AC_MSG_CHECKING(for krb5_prompt.type existence)
+AC_CACHE_VAL(ac_cv_krb5_prompt_type_exists,
+[
+AC_TRY_COMPILE(
+[#include <krb5.h>],
+[krb5_prompt _p;
+printf("%x\n", _p.type);],
+ac_cv_krb5_prompt_type_exists=yes,
+ac_cv_krb5_prompt_type_exists=no)])
+AC_MSG_RESULT($ac_cv_krb5_prompt_type_exists)
+
if test "x$ac_cv_krb5_creds_keyblock_exists" = "xyes"; then
AC_DEFINE(HAVE_KRB5_CREDS_KEYBLOCK, 1, [define if krb5_creds has keyblock])
fi
if test "x$ac_cv_krb5_creds_session_exists" = "xyes"; then
AC_DEFINE(HAVE_KRB5_CREDS_SESSION, 1, [define if krb5_creds has session])
fi
+if test "x$ac_cv_krb5_prompt_type_exists" = "xyes"; then
+ AC_DEFINE(HAVE_KRB5_PROMPT_TYPE, 1, [define if krb5_prompt has type])
+fi
dnl AC_CHECK_MEMBERS([krb5_creds.keyblock, krb5_creds.session],,, [#include <krb5.h>])
CPPFLAGS="$save_CPPFLAGS"
ac_cv_linux_struct_nameidata_has_path=no)])
AC_MSG_RESULT($ac_cv_linux_struct_nameidata_has_path)])
+AC_DEFUN([LINUX_EXPORTS_RCU_READ_LOCK], [
+ AC_MSG_CHECKING([if rcu_read_lock is usable])
+ AC_CACHE_VAL([ac_cv_linux_exports_rcu_read_lock], [
+ AC_TRY_KBUILD(
+[#include <linux/rcupdate.h>],
+[rcu_read_lock();],
+ ac_cv_linux_exports_rcu_read_lock=yes,
+ ac_cv_linux_exports_rcu_read_lock=no)])
+ AC_MSG_RESULT($ac_cv_linux_exports_rcu_read_lock)
+ if test "x$ac_cv_linux_exports_rcu_read_lock" = "xyes"; then
+ AC_DEFINE([EXPORTED_RCU_READ_LOCK], 1, [define if rcu_read_lock() is usable])
+ fi])
+
/* define if your kernel exports init_mm */
#undef EXPORTED_INIT_MM
+/* define if rcu_read_lock() is usable */
+#undef EXPORTED_RCU_READ_LOCK
+
/* define if your linux kernel exports sys_chdir */
#undef EXPORTED_SYS_CHDIR
/* Define to 1 if you have the `krb5_decode_ticket' function. */
#undef HAVE_KRB5_DECODE_TICKET
+/* Define to 1 if you have the `krb5_get_prompt_types' function. */
+#undef HAVE_KRB5_GET_PROMPT_TYPES
+
/* 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 `krb5_princ_size' function. */
#undef HAVE_KRB5_PRINC_SIZE
+/* define if krb5_prompt has type */
+#undef HAVE_KRB5_PROMPT_TYPE
+
/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
my $cellservdb = shift;
if (!$srcball && !$docball) {
- printf "Usage: <version> <src.tar.gz> <doc.tar.gz> [<relnotes> [<changelog> [<cellservdb>]]]\n";
+ printf "Usage: makesrpm <src.tar.gz> <doc.tar.gz> [<relnotes> [<changelog> [<cellservdb>]]]\n";
exit(1);
}
my $srcdir = $tmpdir."/".$vdir;
# Work out which version we're dealing with from the configure.in file
-my $version;
+my $afsversion;
+my $linuxver;
+my $linuxrel;
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;
+ $afsversion = $1;
+ next;
+ }
+ if (/LINUX_PKGVER=(.*)/) {
+ $linuxver = $1;
+ next;
+ }
+ if (/LINUX_PKGREL=(.*)/) {
+ $linuxrel = $1;
+ next;
}
}
undef $fh;
# Build the RPM root
-print "Building version $version\n";
+print "Building version $afsversion\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")
+ $tmpdir."/rpmdir/SOURCES/openafs-$afsversion-src.tar.bz2")
or die "Unable to copy $srcball into position\n";
File::Copy::copy($docball,
- $tmpdir."/rpmdir/SOURCES/openafs-$version-doc.tar.bz2")
+ $tmpdir."/rpmdir/SOURCES/openafs-$afsversion-doc.tar.bz2")
or die "Unable to copy $docball into position\n";
# Populate it with all the stuff in the packaging directory, except the
# 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' > ".
+ "sed -e 's/\@VERSION\@/$afsversion/g' ".
+ " -e 's/\@LINUX_PKGVER\@/$linuxver/g' ".
+ " -e 's/\@LINUX_PKGREL\@/$linuxrel/g' ".
+ " -e 's/\%define afsvers.*/%define afsvers $afsversion/g' ".
+ " -e 's/\%define pkgvers.*/%define pkgvers $linuxver/g' > ".
$tmpdir."/rpmdir/SPECS/openafs.spec") == 0
or die "sed failed : $!\n";
if ($relnotes) {
File::Copy::copy($relnotes,
- $tmpdir."/rpmdir/SOURCES/RELNOTES-$version")
+ $tmpdir."/rpmdir/SOURCES/RELNOTES-$afsversion")
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");
+ system("touch $tmpdir/rpmdir/SOURCES/RELNOTES-$afsversion");
}
if ($changelog) {
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")
+File::Copy::copy("$tmpdir/rpmdir/SRPMS/openafs-$linuxver-1.$linuxrel.src.rpm",
+ "openafs-$linuxver-1.$linuxrel.src.rpm")
or die "Unable to copy output RPM : $!\n";
-print "SRPM is openafs-$version-1.1.src.rpm\n";
+print "SRPM is openafs-$linuxver-1.$linuxrel.src.rpm\n";
my $stashbase="/disk/scratch/repository/";
my $mockcommand = "/usr/bin/mock";
my $buildall = 0;
-
+my $ignorerelease = 1;
my @newrpms;
+# Words cannot describe how gross this is. Yum no longer provides usable
+# output, so we need to call the python interface. At some point this
+# probably means this script should be entirely rewritten in python,
+# but this is not that point.
+
+sub findKernelModules {
+ my ($root, $uname, @modules) = @_;
+
+ my $modlist = join(",",map { "'".$_."'" } @modules);
+ my $python = <<EOS;
+import yum;
+import sys;
+base = yum.YumBase();
+base.doConfigSetup('$root/etc/yum.conf', '$root');
+base.doRepoSetup();
+base.doSackSetup();
+EOS
+
+ if ($uname) {
+ $python.= <<EOS;
+
+for pkg, values in base.searchPackageProvides(['kernel-devel-uname-r']).items():
+ if values[0].find('kernel-devel-uname-r = ') != -1:
+ print '%s.%s %s' % (pkg.name, pkg.arch, values[0].replace('kernel-devel-uname-r = ',''));
+
+EOS
+ } else {
+ $python.= <<EOS;
+
+print '\\n'.join(['%s.%s %s' % (x.name, x.arch, x.printVer()) for x in base.searchPackageProvides([$modlist]).keys()]);
+
+EOS
+ }
+
+# my $output = `$suser -c "python -c \\\"$python\\\"" `;
+ my $output = `python -c "$python"`;
+
+ die "Python script to figure out available kernels failed : $output"
+ if $?;
+
+ return $output;
+}
+
+
my %platconf = ( "fedora-5-i386" => { osver => "fc5",
kmod => '1',
basearch => 'i386',
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'}
+ "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
+ "2.6.21-2950.fc8" => { "xen" => 1}, # Missing build ID
);
+my $help;
+my $ok = GetOptions("resultdir=s" => \$resultbase,
+ "help" => \$help);
+
my @platforms = @ARGV;
my $srpm = pop @platforms;
-if (!$srpm || $#platforms==-1) {
- print "Usage: $0 <platform> [<platform> [<platform> ...] ] <srpm>\n";
+if (!$ok || $help || !$srpm || $#platforms==-1) {
+ print "Usage: $0 [options] <platform> [<platform> [...]] <srpm>\n";
+ print " Options are : \n";
+ print " --resultdir <dir> Location to place output RPMS\n";
+ print "\n";
print " Platform may be:\n";
foreach ("all", sort(keys(%platconf))) { print " ".$_."\n"; };
exit(1);
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'`;
+
+ my $modules;
+ if ($platform=~/fedora-development/) {
+ $modules = findKernelModules($root, 0, "kernel-devel");
+ } elsif ($platform=~/centos-4/) {
+ $modules = findKernelModules($root, 0, "kernel-devel", "kernel-smp-devel",
+ "kernel-hugemem-devel", "kernel-xenU-devel");
+ } else {
+ $modules = findKernelModules($root, 0, 'kernel-devel');
}
+
foreach my $module (split(/\n/, $modules)) {
+ chomp $module;
my ($package, $version, $repo)=split(/\s+/, $module);
my ($arch) = ($package=~/\.(.*)$/);
my ($variant) = ($package=~/kernel-(.*)-devel/);
next if ($variant eq "xen0"); # Fedora 5 has some bad xen0 kernel-devels
next if ($variant eq "smp");
}
+ if ($platform=~/fedora-8/ || $platform=~/fedora-9/ || $platform=~/fedora-development/) {
+ next if ($variant =~/debug$/); # Fedora 8 debug kernels are bad
+ }
print "$arch : $variant : $version\n";
$modulelist{$arch} ={} if !$modulelist{$arch};
$modulelist{$arch}{$version} = {} if !$modulelist{$arch}{$version};
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";
+ my @done = glob ($resultdir."/kmod-openafs-".$dvariant.
+ $oafsversion."-*.".$kversion.".".$arch.".rpm");
+
+ if ($ignorerelease && $#done>=0) {
+ print "Kernel module for $kversion already exists for an".
+ "older release. Skipping building it this time.\n";
+ } else {
+ push @tobuild, $variant;
+ print $resultdir."/kmod-openafs-".$dvariant.
+ $oafsversion."-".$oafsrelease.".".$kversion.".".
+ $arch.".rpm is missing\n";
+ }
}
}
}
if (defined($dirh)) {
my $file;
while (defined($file = $dirh->read)) {
- if ( $file=~/^kernel-devel/ &&
+ if ( $file=~/^kernel.*devel/ &&
-f $yumcachedir.$file && ! -f $rpmstashdir.$file) {
print "Stashing $file for later use\n";
system("cp ".$yumcachedir.$file." ".$rpmstashdir.$file) == 0
*.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
*) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
esac
+ case "$verrel" in
+ *.fc9*) kname="${verrel}.%{_target_cpu}${variant:+.${variant}}" ;;
+ *) kname="${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: kernel-modules = ${kname}
Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: openafs-kernel = %{PACKAGE_VERSION}
Requires: ${kdep}
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.
+kernel ${kname} 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 || :
+/sbin/depmod -aeF /boot/System.map-${kname} ${kname} > /dev/null || :
%postun -n kmod-${kmod_name}${dashvariant}
-/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || :
+/sbin/depmod -aF /boot/System.map-${kname} ${kname} &> /dev/null || :
%files -n kmod-${kmod_name}${dashvariant}
%defattr(644,root,root,755)
-/lib/modules/${verrel}${variant}/extra/${kmod_name}/
+/lib/modules/${kname}/extra/${kmod_name}/
EOF
}
-# Openafs Spec $Revision: 1.1.2.19 $
+# Openafs Spec $Revision: 1.1.2.22 $
%define afsvers @VERSION@
-%define pkgvers @VERSION@
+%define pkgvers @LINUX_PKGVER@
# 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 pkgrel @LINUX_VERSION@
+%define pkgrel @LINUX_PKGREL@
%if %{?osvers:0}%{!?osvers:1}
%define osvers 1
%define upvar ""
%{!?kvariants: %define kvariants %{?upvar}}
-%{!?ksrcdir: %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
+%if %{?ksrcdir:1}%{!?ksrcdir:0}
+ if ( -d %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}) ; then
+ %define ksrcdir %{_usrsrc}/kernels/%{kverrel}-%{_target_cpu}}
+ else
+ %define ksrcdir %{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}}
+ fi
+%endif
%else # Legacy kernel build stuff
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
+Source20: http://dl.central.org/dl/cellservdb/CellServDB.2008-04-23
Source30: openafs-kernel-version.sh
Source996: openafs-kvers-is.sh
%if %{fedorakmod}
for kvariant in %{kvariants} ; do
if [ -z "${kvariant}" -o -z "$ksrc" ] ; then
- ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+ if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
+ ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+ else
+ ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
+ fi
fi
done
%endif
%if %{fedorakmod} && %{build_modules}
for kvariant in %{kvariants} ; do
if [ -n "${kvariant}" ] ; then
+ if [ -d %{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} ] ; then
+ ksrc=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
+ else
+ ksrc=%{_usrsrc}/kernels/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}
+ fi
+
cp -R libafs_tree _kmod_build_${kvariant}
pushd _kmod_build_${kvariant}
./configure --with-afs-sysname=${sysname} \
--libdir=%{_libdir} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
- --with-linux-kernel-headers=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu} \
+ --with-linux-kernel-headers=${ksrc} \
%if %{krb5support}
--with-krb5-conf=/usr/kerberos/bin/krb5-config \
%endif
for kvariant in %{kvariants}
do
if [ -n "$kvariant" ] ; then
- srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
+ if [ -d _kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP ] ; then
+ srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}${kvariant}-SP
+ else
+ srcdir=_kmod_build_$kvariant/src/libafs/MODLOAD-%{kverrel}.%{_target_cpu}.${kvariant}-SP
+ fi
else
srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
fi
- dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
+ if [ -f ${srcdir}/libafs-%{kverrel}${kvariant}.ko ] ; then
+ srcmod=${srcdir}/libafs-%{kverrel}${kvariant}.ko
+ dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}${kvariant}/extra/openafs
+ else
+ srcmod=${srcdir}/libafs-%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}.ko
+ dstdir=$RPM_BUILD_ROOT/lib/modules/%{kverrel}.%{_target_cpu}${kvariant:+.$kvariant}/extra/openafs
+ fi
+
mkdir -p ${dstdir}
- install -m 755 ${srcdir}/libafs-%{kverrel}${kvariant}.ko $dstdir/openafs.ko
+ install -m 755 ${srcmod} ${dstdir}/openafs.ko
done
%else
# Install the kernel modules
#include "afs/param.h"
RCSID
- ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.18 2008/03/10 22:35:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.19 2008/04/09 16:40:19 shadow Exp $");
#include "rx/rx_kcommon.h"
#ifdef RX_ENABLE_LOCKS
AFS_GLOCK();
#endif /* RX_ENABLE_LOCKS */
+
+ return NULL;
}
#endif /* !UKERNEL */
BUCOORDOBJS=ubik_db_if.o ../bucoord/volstub.o ../bucoord/dlq.o \
status.o ../bucoord/bucoord_errs.o
-VOLSEROBJS=vsprocs.o vsutils.o
+VOLSEROBJS=vsprocs.o vsutils.o lockprocs.o
VOLSERLIBS=${TOP_LIBDIR}/libvosadmin.a ${TOP_LIBDIR}/libafsadminutil.a
LWPOBJS =lock.o
vsprocs.o: ${VOLSER}/vsprocs.c
${CC} ${CFLAGS} -c ${VOLSER}/vsprocs.c
+lockprocs.o: ${VOLSER}/lockprocs.c
+ ${CC} ${CFLAGS} -c ${VOLSER}/lockprocs.c
+
lock.o: ${LWP}/lock.c
${CC} ${CFLAGS} -c ${LWP}/lock.c
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19.2.6 2008/03/10 22:35:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19.2.7 2008/04/09 16:40:20 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
}
} /* while loop */
+ return NULL;
}
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/phys.c,v 1.8.2.3 2007/12/10 22:46:07 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/phys.c,v 1.8.2.4 2008/04/28 21:48:25 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
return EBADF;
tfd = fdcache;
for (i = 0; i < MAXFDCACHE; i++, tfd++) {
- if (tfd->fd == afd) {
+ if (tfd->fd == afd && tfd->fileID != -10000) {
tfd->refCount--;
return 0;
}
uphys_close(fd);
return code;
}
+
+void
+uphys_invalidate(register struct ubik_dbase *adbase, afs_int32 afid)
+{
+ register int i;
+ register struct fdcache *tfd;
+
+ /* scan file descr cache */
+ for (tfd = fdcache, i = 0; i < MAXFDCACHE; i++, tfd++) {
+ if (afid == tfd->fileID) {
+ tfd->fileID = -10000;
+ if (tfd->fd >= 0 && tfd->refCount == 0)
+ close(tfd->fd);
+ return;
+ }
+ }
+}
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/recovery.c,v 1.13.2.4 2008/03/10 22:35:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/recovery.c,v 1.13.2.6 2008/04/28 21:48:25 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
if (!code)
code = rename(pbuffer, tbuffer);
+ if (!code)
+ code = (*ubik_dbase->open) (ubik_dbase, 0);
if (!code)
#endif
/* after data is good, sync disk with correct label */
urecovery_state |= UBIK_RECSENTDB;
}
}
+ return NULL;
}
/*
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12.2.6 2008/02/20 20:10:39 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12.2.7 2008/04/28 21:48:25 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
#endif
if (!code)
code = rename(pbuffer, tbuffer);
+ if (!code)
+ code = (*ubik_dbase->open) (ubik_dbase, 0);
if (!code)
#endif
code = (*ubik_dbase->setlabel) (dbase, file, avers);
#include <afs/param.h>
RCSID
- ("$Header: /cvs/openafs/src/ubik/ubik.c,v 1.15.2.3 2008/03/10 22:35:36 shadow Exp $");
+ ("$Header: /cvs/openafs/src/ubik/ubik.c,v 1.15.2.4 2008/04/28 21:48:25 shadow Exp $");
#include <sys/types.h>
#ifdef AFS_NT40_ENV
tdb->read = uphys_read;
tdb->write = uphys_write;
tdb->truncate = uphys_truncate;
- tdb->open = 0; /* this function isn't used any more */
+ tdb->open = uphys_invalidate; /* this function isn't used any more */
tdb->sync = uphys_sync;
tdb->stat = uphys_stat;
tdb->getlabel = uphys_getlabel;
extern int uphys_setlabel(register struct ubik_dbase *adbase, afs_int32 afile,
struct ubik_version *aversion);
extern int uphys_sync(register struct ubik_dbase *adbase, afs_int32 afile);
-
+extern void uphys_invalidate(register struct ubik_dbase *adbase,
+ afs_int32 afid);
/* recovery.c */
extern int urecovery_ResetState(void);
${INSTALL} -f ${srcdir}/kdump ${DEST}/etc/kdump32;; \
*alpha_linux* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.linux ${DEST}/etc/kdump; \
- ${INSTALL} kdump-alpha_linux-${LINUX_VERSION} $@ ;; \
+ ${INSTALL} kdump-alpha_linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
*linux* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.linux ${DEST}/etc/kdump; \
${INSTALL} kdump-linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
hp_ux11* ) \
${INSTALLex} -f ${srcdir}/kdump.sh.hp_ux11 ${DEST}/etc/kdump; \
- ${INSTALL} -f $? $@;; \
+ ${INSTALL} -f $? ${DEST}/etc/kdump32;; \
*bsd*) \
;; \
*) \
do ${INSTALL} $$f ${DESTDIR}${sbindir}/$$f || exit $$? ; \
done ;; \
sun*_5[789] | sun*_510 ) \
- ${INSTALLex} -f kdump.sh.solaris7 ${DESTDIR}${sbindir}/kdump32; \
- ${INSTALL} -f $? $@;; \
+ ${INSTALLex} -f kdump.sh.solaris7 ${DESTDIR}${sbindir}/kdump; \
+ ${INSTALL} -f kdump ${DESTDIR}${sbindir}/kdump32;; \
+ *alpha_linux* ) \
+ ${INSTALLex} -f kdump.sh.linux ${DESTDIR}${sbindir}/kdump; \
+ ${INSTALL} kdump-alpha_linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
*linux* ) \
${INSTALLex} -f kdump.sh.linux ${DESTDIR}${sbindir}/kdump; \
- ${INSTALL} $? $@ ;; \
+ ${INSTALL} kdump-linux-${LINUX_VERSION} $@-${LINUX_VERSION} ;; \
hp_ux11* ) \
${INSTALLex} -f kdump.sh.hp_ux11 ${DESTDIR}${sbindir}/kdump; \
- ${INSTALL} -f $? $@;; \
+ ${INSTALL} -f kdump ${DESTDIR}${sbindir}/kdump32;; \
*) \
- ${INSTALL} $? $@ ;; \
+ ${INSTALL} kdump $@ ;; \
esac
${DESTDIR}${sbindir}/kdump64: kdump-build
#define DONTPANIC 0
#define PANIC 1
-#define MAX_FILESERVER_THREAD 128 /* max number of threads in fileserver, subject to system limits */
+#define MAX_FILESERVER_THREAD 128 /* max number of threads in fileserver, subject to system limits. match to FD_HANDLE_SETASIDE */
#define FILESERVER_HELPER_THREADS 7 /* Listner, IOMGR, FiveMinute,
* HostCheck, Signal, min 2 for RXSTATS */
#define STREAM_HANDLE_MALLOCSIZE 1
/* Number of file descriptors needed for non-cached I/O */
-#define FD_HANDLE_SETASIDE 64
+#define FD_HANDLE_SETASIDE 128 /* Match to MAX_FILESERVER_THREAD */
/* Don't try to have more than 256 files open at once if you are planning
* to use fopen or fdopen. The FILE structure has an eight bit field for