]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Merge upstream 1.4.7pre1 release.
authorRuss Allbery <rra@debian.org>
Wed, 26 Mar 2008 22:42:24 +0000 (22:42 +0000)
committerRuss Allbery <rra@debian.org>
Wed, 26 Mar 2008 22:42:24 +0000 (22:42 +0000)
900 files changed:
Makefile.in
README
acinclude.m4
configure
configure-libafs
configure-libafs.in
configure.in
debian/changelog
debian/rules
doc/LICENSE
doc/man-pages/README
doc/man-pages/man1/cmdebug.1
doc/man-pages/man1/fs.1
doc/man-pages/man1/fs_apropos.1
doc/man-pages/man1/fs_checkservers.1
doc/man-pages/man1/fs_checkvolumes.1
doc/man-pages/man1/fs_cleanacl.1
doc/man-pages/man1/fs_copyacl.1
doc/man-pages/man1/fs_diskfree.1
doc/man-pages/man1/fs_examine.1
doc/man-pages/man1/fs_exportafs.1
doc/man-pages/man1/fs_flush.1
doc/man-pages/man1/fs_flushall.1
doc/man-pages/man1/fs_flushmount.1
doc/man-pages/man1/fs_flushvolume.1
doc/man-pages/man1/fs_getcacheparms.1
doc/man-pages/man1/fs_getcalleraccess.1
doc/man-pages/man1/fs_getcellstatus.1
doc/man-pages/man1/fs_getclientaddrs.1
doc/man-pages/man1/fs_getcrypt.1
doc/man-pages/man1/fs_getserverprefs.1
doc/man-pages/man1/fs_help.1
doc/man-pages/man1/fs_listacl.1
doc/man-pages/man1/fs_listaliases.1
doc/man-pages/man1/fs_listcells.1
doc/man-pages/man1/fs_listquota.1
doc/man-pages/man1/fs_lsmount.1
doc/man-pages/man1/fs_messages.1
doc/man-pages/man1/fs_minidump.1 [new file with mode: 0644]
doc/man-pages/man1/fs_mkmount.1
doc/man-pages/man1/fs_newalias.1
doc/man-pages/man1/fs_newcell.1
doc/man-pages/man1/fs_quota.1
doc/man-pages/man1/fs_rmmount.1
doc/man-pages/man1/fs_rxstatpeer.1 [new file with mode: 0644]
doc/man-pages/man1/fs_setacl.1
doc/man-pages/man1/fs_setcachesize.1
doc/man-pages/man1/fs_setcell.1
doc/man-pages/man1/fs_setclientaddrs.1
doc/man-pages/man1/fs_setcrypt.1
doc/man-pages/man1/fs_setquota.1
doc/man-pages/man1/fs_setserverprefs.1
doc/man-pages/man1/fs_setvol.1
doc/man-pages/man1/fs_storebehind.1
doc/man-pages/man1/fs_sysname.1
doc/man-pages/man1/fs_uuid.1
doc/man-pages/man1/fs_whereis.1
doc/man-pages/man1/fs_whichcell.1
doc/man-pages/man1/fs_wscell.1
doc/man-pages/man1/pts.1
doc/man-pages/man1/pts_adduser.1
doc/man-pages/man1/pts_apropos.1
doc/man-pages/man1/pts_chown.1
doc/man-pages/man1/pts_creategroup.1
doc/man-pages/man1/pts_createuser.1
doc/man-pages/man1/pts_delete.1
doc/man-pages/man1/pts_examine.1
doc/man-pages/man1/pts_help.1
doc/man-pages/man1/pts_interactive.1
doc/man-pages/man1/pts_listentries.1
doc/man-pages/man1/pts_listmax.1
doc/man-pages/man1/pts_listowned.1
doc/man-pages/man1/pts_membership.1
doc/man-pages/man1/pts_quit.1
doc/man-pages/man1/pts_removeuser.1
doc/man-pages/man1/pts_rename.1
doc/man-pages/man1/pts_setfields.1
doc/man-pages/man1/pts_setmax.1
doc/man-pages/man1/pts_sleep.1
doc/man-pages/man1/pts_source.1
doc/man-pages/man1/rxdebug.1
doc/man-pages/man1/symlink.1 [new file with mode: 0644]
doc/man-pages/man1/symlink_list.1 [new file with mode: 0644]
doc/man-pages/man1/symlink_make.1 [new file with mode: 0644]
doc/man-pages/man1/symlink_remove.1 [new file with mode: 0644]
doc/man-pages/man1/sys.1
doc/man-pages/man1/vos.1
doc/man-pages/man1/vos_addsite.1
doc/man-pages/man1/vos_apropos.1
doc/man-pages/man1/vos_backup.1
doc/man-pages/man1/vos_backupsys.1
doc/man-pages/man1/vos_changeaddr.1
doc/man-pages/man1/vos_changeloc.1
doc/man-pages/man1/vos_convertROtoRW.1 [new file with mode: 0644]
doc/man-pages/man1/vos_copy.1 [new file with mode: 0644]
doc/man-pages/man1/vos_create.1
doc/man-pages/man1/vos_delentry.1
doc/man-pages/man1/vos_dump.1
doc/man-pages/man1/vos_examine.1
doc/man-pages/man1/vos_help.1
doc/man-pages/man1/vos_listaddrs.1
doc/man-pages/man1/vos_listpart.1
doc/man-pages/man1/vos_listvldb.1
doc/man-pages/man1/vos_listvol.1
doc/man-pages/man1/vos_lock.1
doc/man-pages/man1/vos_move.1
doc/man-pages/man1/vos_offline.1
doc/man-pages/man1/vos_online.1
doc/man-pages/man1/vos_partinfo.1
doc/man-pages/man1/vos_release.1
doc/man-pages/man1/vos_remove.1
doc/man-pages/man1/vos_remsite.1
doc/man-pages/man1/vos_rename.1
doc/man-pages/man1/vos_restore.1
doc/man-pages/man1/vos_size.1
doc/man-pages/man1/vos_status.1
doc/man-pages/man1/vos_syncserv.1
doc/man-pages/man1/vos_syncvldb.1
doc/man-pages/man1/vos_unlock.1
doc/man-pages/man1/vos_unlockvldb.1
doc/man-pages/man1/vos_zap.1
doc/man-pages/man5/CellAlias.5
doc/man-pages/man8/afsd.8
doc/man-pages/man8/backup_adddump.8
doc/man-pages/man8/backup_addhost.8
doc/man-pages/man8/backup_addvolentry.8
doc/man-pages/man8/backup_addvolset.8
doc/man-pages/man8/backup_apropos.8
doc/man-pages/man8/backup_dbverify.8
doc/man-pages/man8/backup_deldump.8
doc/man-pages/man8/backup_deletedump.8
doc/man-pages/man8/backup_delhost.8
doc/man-pages/man8/backup_delvolentry.8
doc/man-pages/man8/backup_delvolset.8
doc/man-pages/man8/backup_diskrestore.8
doc/man-pages/man8/backup_dump.8
doc/man-pages/man8/backup_dumpinfo.8
doc/man-pages/man8/backup_help.8
doc/man-pages/man8/backup_interactive.8
doc/man-pages/man8/backup_jobs.8
doc/man-pages/man8/backup_kill.8
doc/man-pages/man8/backup_labeltape.8
doc/man-pages/man8/backup_listdumps.8
doc/man-pages/man8/backup_listhosts.8
doc/man-pages/man8/backup_listvolsets.8
doc/man-pages/man8/backup_quit.8
doc/man-pages/man8/backup_readlabel.8
doc/man-pages/man8/backup_restoredb.8
doc/man-pages/man8/backup_savedb.8
doc/man-pages/man8/backup_scantape.8
doc/man-pages/man8/backup_setexp.8
doc/man-pages/man8/backup_status.8
doc/man-pages/man8/backup_volinfo.8
doc/man-pages/man8/backup_volrestore.8
doc/man-pages/man8/backup_volsetrestore.8
doc/man-pages/man8/bos_addhost.8
doc/man-pages/man8/bos_addkey.8
doc/man-pages/man8/bos_adduser.8
doc/man-pages/man8/bos_apropos.8
doc/man-pages/man8/bos_create.8
doc/man-pages/man8/bos_delete.8
doc/man-pages/man8/bos_exec.8
doc/man-pages/man8/bos_getdate.8
doc/man-pages/man8/bos_getlog.8
doc/man-pages/man8/bos_getrestart.8
doc/man-pages/man8/bos_help.8
doc/man-pages/man8/bos_install.8
doc/man-pages/man8/bos_listhosts.8
doc/man-pages/man8/bos_listkeys.8
doc/man-pages/man8/bos_listusers.8
doc/man-pages/man8/bos_prune.8
doc/man-pages/man8/bos_removehost.8
doc/man-pages/man8/bos_removekey.8
doc/man-pages/man8/bos_removeuser.8
doc/man-pages/man8/bos_restart.8
doc/man-pages/man8/bos_salvage.8
doc/man-pages/man8/bos_setauth.8
doc/man-pages/man8/bos_setcellname.8
doc/man-pages/man8/bos_setrestart.8
doc/man-pages/man8/bos_shutdown.8
doc/man-pages/man8/bos_start.8
doc/man-pages/man8/bos_startup.8
doc/man-pages/man8/bos_status.8
doc/man-pages/man8/bos_stop.8
doc/man-pages/man8/bos_uninstall.8
doc/man-pages/man8/bos_util.8
doc/man-pages/man8/bosserver.8
doc/man-pages/man8/fileserver.8
doc/man-pages/man8/fstrace_apropos.8
doc/man-pages/man8/fstrace_clear.8
doc/man-pages/man8/fstrace_dump.8
doc/man-pages/man8/fstrace_help.8
doc/man-pages/man8/fstrace_lslog.8
doc/man-pages/man8/fstrace_lsset.8
doc/man-pages/man8/fstrace_setlog.8
doc/man-pages/man8/fstrace_setset.8
doc/man-pages/man8/kas_apropos.8
doc/man-pages/man8/kas_create.8
doc/man-pages/man8/kas_delete.8
doc/man-pages/man8/kas_examine.8
doc/man-pages/man8/kas_forgetticket.8
doc/man-pages/man8/kas_help.8
doc/man-pages/man8/kas_interactive.8
doc/man-pages/man8/kas_list.8
doc/man-pages/man8/kas_listtickets.8
doc/man-pages/man8/kas_noauthentication.8
doc/man-pages/man8/kas_quit.8
doc/man-pages/man8/kas_setfields.8
doc/man-pages/man8/kas_setpassword.8
doc/man-pages/man8/kas_statistics.8
doc/man-pages/man8/kas_stringtokey.8
doc/man-pages/man8/kas_unlock.8
doc/man-pages/man8/ptserver.8
doc/man-pages/man8/read_tape.8 [new file with mode: 0644]
doc/man-pages/man8/uss_add.8
doc/man-pages/man8/uss_apropos.8
doc/man-pages/man8/uss_bulk.8
doc/man-pages/man8/uss_delete.8
doc/man-pages/man8/uss_help.8
doc/man-pages/man8/vlserver.8
doc/man-pages/man8/volserver.8
doc/man-pages/pod1/cmdebug.pod
doc/man-pages/pod1/fs.pod
doc/man-pages/pod1/fs_apropos.pod
doc/man-pages/pod1/fs_checkservers.pod
doc/man-pages/pod1/fs_checkvolumes.pod
doc/man-pages/pod1/fs_cleanacl.pod
doc/man-pages/pod1/fs_copyacl.pod
doc/man-pages/pod1/fs_diskfree.pod
doc/man-pages/pod1/fs_examine.pod
doc/man-pages/pod1/fs_exportafs.pod
doc/man-pages/pod1/fs_flush.pod
doc/man-pages/pod1/fs_flushall.pod
doc/man-pages/pod1/fs_flushmount.pod
doc/man-pages/pod1/fs_flushvolume.pod
doc/man-pages/pod1/fs_getcacheparms.pod
doc/man-pages/pod1/fs_getcalleraccess.pod
doc/man-pages/pod1/fs_getcellstatus.pod
doc/man-pages/pod1/fs_getclientaddrs.pod
doc/man-pages/pod1/fs_getcrypt.pod
doc/man-pages/pod1/fs_getserverprefs.pod
doc/man-pages/pod1/fs_help.pod
doc/man-pages/pod1/fs_listacl.pod
doc/man-pages/pod1/fs_listaliases.pod
doc/man-pages/pod1/fs_listcells.pod
doc/man-pages/pod1/fs_listquota.pod
doc/man-pages/pod1/fs_lsmount.pod
doc/man-pages/pod1/fs_messages.pod
doc/man-pages/pod1/fs_minidump.pod [new file with mode: 0644]
doc/man-pages/pod1/fs_mkmount.pod
doc/man-pages/pod1/fs_newalias.pod
doc/man-pages/pod1/fs_newcell.pod
doc/man-pages/pod1/fs_quota.pod
doc/man-pages/pod1/fs_rmmount.pod
doc/man-pages/pod1/fs_rxstatpeer.pod [new file with mode: 0644]
doc/man-pages/pod1/fs_setacl.pod
doc/man-pages/pod1/fs_setcachesize.pod
doc/man-pages/pod1/fs_setcell.pod
doc/man-pages/pod1/fs_setclientaddrs.pod
doc/man-pages/pod1/fs_setcrypt.pod
doc/man-pages/pod1/fs_setquota.pod
doc/man-pages/pod1/fs_setserverprefs.pod
doc/man-pages/pod1/fs_setvol.pod
doc/man-pages/pod1/fs_storebehind.pod
doc/man-pages/pod1/fs_sysname.pod
doc/man-pages/pod1/fs_uuid.pod
doc/man-pages/pod1/fs_whereis.pod
doc/man-pages/pod1/fs_whichcell.pod
doc/man-pages/pod1/fs_wscell.pod
doc/man-pages/pod1/pts.pod
doc/man-pages/pod1/pts_adduser.pod
doc/man-pages/pod1/pts_apropos.pod
doc/man-pages/pod1/pts_chown.pod
doc/man-pages/pod1/pts_creategroup.pod
doc/man-pages/pod1/pts_createuser.pod
doc/man-pages/pod1/pts_delete.pod
doc/man-pages/pod1/pts_examine.pod
doc/man-pages/pod1/pts_help.pod
doc/man-pages/pod1/pts_interactive.pod
doc/man-pages/pod1/pts_listentries.pod
doc/man-pages/pod1/pts_listmax.pod
doc/man-pages/pod1/pts_listowned.pod
doc/man-pages/pod1/pts_membership.pod
doc/man-pages/pod1/pts_quit.pod
doc/man-pages/pod1/pts_removeuser.pod
doc/man-pages/pod1/pts_rename.pod
doc/man-pages/pod1/pts_setfields.pod
doc/man-pages/pod1/pts_setmax.pod
doc/man-pages/pod1/pts_sleep.pod
doc/man-pages/pod1/pts_source.pod
doc/man-pages/pod1/rxdebug.pod
doc/man-pages/pod1/symlink.pod [new file with mode: 0644]
doc/man-pages/pod1/symlink_list.pod [new file with mode: 0644]
doc/man-pages/pod1/symlink_make.pod [new file with mode: 0644]
doc/man-pages/pod1/symlink_remove.pod [new file with mode: 0644]
doc/man-pages/pod1/sys.pod
doc/man-pages/pod1/vos.pod
doc/man-pages/pod1/vos_addsite.pod
doc/man-pages/pod1/vos_apropos.pod
doc/man-pages/pod1/vos_backup.pod
doc/man-pages/pod1/vos_backupsys.pod
doc/man-pages/pod1/vos_changeaddr.pod
doc/man-pages/pod1/vos_changeloc.pod
doc/man-pages/pod1/vos_convertROtoRW.pod [new file with mode: 0644]
doc/man-pages/pod1/vos_copy.pod [new file with mode: 0644]
doc/man-pages/pod1/vos_create.pod
doc/man-pages/pod1/vos_delentry.pod
doc/man-pages/pod1/vos_dump.pod
doc/man-pages/pod1/vos_examine.pod
doc/man-pages/pod1/vos_help.pod
doc/man-pages/pod1/vos_listaddrs.pod
doc/man-pages/pod1/vos_listpart.pod
doc/man-pages/pod1/vos_listvldb.pod
doc/man-pages/pod1/vos_listvol.pod
doc/man-pages/pod1/vos_lock.pod
doc/man-pages/pod1/vos_move.pod
doc/man-pages/pod1/vos_offline.pod
doc/man-pages/pod1/vos_online.pod
doc/man-pages/pod1/vos_partinfo.pod
doc/man-pages/pod1/vos_release.pod
doc/man-pages/pod1/vos_remove.pod
doc/man-pages/pod1/vos_remsite.pod
doc/man-pages/pod1/vos_rename.pod
doc/man-pages/pod1/vos_restore.pod
doc/man-pages/pod1/vos_size.pod
doc/man-pages/pod1/vos_status.pod
doc/man-pages/pod1/vos_syncserv.pod
doc/man-pages/pod1/vos_syncvldb.pod
doc/man-pages/pod1/vos_unlock.pod
doc/man-pages/pod1/vos_unlockvldb.pod
doc/man-pages/pod1/vos_zap.pod
doc/man-pages/pod5/CellAlias.pod
doc/man-pages/pod8/afsd.pod
doc/man-pages/pod8/backup_adddump.pod
doc/man-pages/pod8/backup_addhost.pod
doc/man-pages/pod8/backup_addvolentry.pod
doc/man-pages/pod8/backup_addvolset.pod
doc/man-pages/pod8/backup_apropos.pod
doc/man-pages/pod8/backup_dbverify.pod
doc/man-pages/pod8/backup_deldump.pod
doc/man-pages/pod8/backup_deletedump.pod
doc/man-pages/pod8/backup_delhost.pod
doc/man-pages/pod8/backup_delvolentry.pod
doc/man-pages/pod8/backup_delvolset.pod
doc/man-pages/pod8/backup_diskrestore.pod
doc/man-pages/pod8/backup_dump.pod
doc/man-pages/pod8/backup_dumpinfo.pod
doc/man-pages/pod8/backup_help.pod
doc/man-pages/pod8/backup_interactive.pod
doc/man-pages/pod8/backup_jobs.pod
doc/man-pages/pod8/backup_kill.pod
doc/man-pages/pod8/backup_labeltape.pod
doc/man-pages/pod8/backup_listdumps.pod
doc/man-pages/pod8/backup_listhosts.pod
doc/man-pages/pod8/backup_listvolsets.pod
doc/man-pages/pod8/backup_quit.pod
doc/man-pages/pod8/backup_readlabel.pod
doc/man-pages/pod8/backup_restoredb.pod
doc/man-pages/pod8/backup_savedb.pod
doc/man-pages/pod8/backup_scantape.pod
doc/man-pages/pod8/backup_setexp.pod
doc/man-pages/pod8/backup_status.pod
doc/man-pages/pod8/backup_volinfo.pod
doc/man-pages/pod8/backup_volrestore.pod
doc/man-pages/pod8/backup_volsetrestore.pod
doc/man-pages/pod8/bos_addhost.pod
doc/man-pages/pod8/bos_addkey.pod
doc/man-pages/pod8/bos_adduser.pod
doc/man-pages/pod8/bos_apropos.pod
doc/man-pages/pod8/bos_create.pod
doc/man-pages/pod8/bos_delete.pod
doc/man-pages/pod8/bos_exec.pod
doc/man-pages/pod8/bos_getdate.pod
doc/man-pages/pod8/bos_getlog.pod
doc/man-pages/pod8/bos_getrestart.pod
doc/man-pages/pod8/bos_help.pod
doc/man-pages/pod8/bos_install.pod
doc/man-pages/pod8/bos_listhosts.pod
doc/man-pages/pod8/bos_listkeys.pod
doc/man-pages/pod8/bos_listusers.pod
doc/man-pages/pod8/bos_prune.pod
doc/man-pages/pod8/bos_removehost.pod
doc/man-pages/pod8/bos_removekey.pod
doc/man-pages/pod8/bos_removeuser.pod
doc/man-pages/pod8/bos_restart.pod
doc/man-pages/pod8/bos_salvage.pod
doc/man-pages/pod8/bos_setauth.pod
doc/man-pages/pod8/bos_setcellname.pod
doc/man-pages/pod8/bos_setrestart.pod
doc/man-pages/pod8/bos_shutdown.pod
doc/man-pages/pod8/bos_start.pod
doc/man-pages/pod8/bos_startup.pod
doc/man-pages/pod8/bos_status.pod
doc/man-pages/pod8/bos_stop.pod
doc/man-pages/pod8/bos_uninstall.pod
doc/man-pages/pod8/bos_util.pod
doc/man-pages/pod8/bosserver.pod
doc/man-pages/pod8/fileserver.pod
doc/man-pages/pod8/fstrace_apropos.pod
doc/man-pages/pod8/fstrace_clear.pod
doc/man-pages/pod8/fstrace_dump.pod
doc/man-pages/pod8/fstrace_help.pod
doc/man-pages/pod8/fstrace_lslog.pod
doc/man-pages/pod8/fstrace_lsset.pod
doc/man-pages/pod8/fstrace_setlog.pod
doc/man-pages/pod8/fstrace_setset.pod
doc/man-pages/pod8/kas_apropos.pod
doc/man-pages/pod8/kas_create.pod
doc/man-pages/pod8/kas_delete.pod
doc/man-pages/pod8/kas_examine.pod
doc/man-pages/pod8/kas_forgetticket.pod
doc/man-pages/pod8/kas_help.pod
doc/man-pages/pod8/kas_interactive.pod
doc/man-pages/pod8/kas_list.pod
doc/man-pages/pod8/kas_listtickets.pod
doc/man-pages/pod8/kas_noauthentication.pod
doc/man-pages/pod8/kas_quit.pod
doc/man-pages/pod8/kas_setfields.pod
doc/man-pages/pod8/kas_setpassword.pod
doc/man-pages/pod8/kas_statistics.pod
doc/man-pages/pod8/kas_stringtokey.pod
doc/man-pages/pod8/kas_unlock.pod
doc/man-pages/pod8/ptserver.pod
doc/man-pages/pod8/read_tape.pod [new file with mode: 0644]
doc/man-pages/pod8/uss_add.pod
doc/man-pages/pod8/uss_apropos.pod
doc/man-pages/pod8/uss_bulk.pod
doc/man-pages/pod8/uss_delete.pod
doc/man-pages/pod8/uss_help.pod
doc/man-pages/pod8/vlserver.pod
doc/man-pages/pod8/volserver.pod
src/JAVA/classes/org/openafs/jafs/Token.java
src/JAVA/libjafs/AdminToken.c
src/JAVA/libjafs/Makefile.in
src/afs/AIX/osi_file.c
src/afs/AIX/osi_vfsops.c
src/afs/DARWIN/osi_file.c
src/afs/DARWIN/osi_vnodeops.c
src/afs/DUX/osi_file.c
src/afs/FBSD/osi_file.c
src/afs/HPUX/osi_file.c
src/afs/IRIX/osi_file.c
src/afs/IRIX/osi_vfsops.c
src/afs/LINUX/osi_file.c
src/afs/LINUX/osi_groups.c
src/afs/LINUX/osi_machdep.h
src/afs/LINUX/osi_misc.c
src/afs/LINUX/osi_sysctl.c
src/afs/LINUX/osi_vfsops.c
src/afs/LINUX/osi_vnodeops.c
src/afs/NBSD/osi_file.c
src/afs/OBSD/osi_file.c
src/afs/OBSD/osi_machdep.h
src/afs/OBSD/osi_sleep.c
src/afs/OBSD/osi_vm.c
src/afs/OBSD/osi_vnodeops.c
src/afs/SOLARIS/osi_file.c
src/afs/SOLARIS/osi_vfsops.c
src/afs/SOLARIS/osi_vnodeops.c
src/afs/UKERNEL/afs_usrops.c
src/afs/UKERNEL/osi_groups.c
src/afs/VNOPS/afs_vnop_access.c
src/afs/VNOPS/afs_vnop_create.c
src/afs/VNOPS/afs_vnop_dirops.c
src/afs/VNOPS/afs_vnop_link.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/VNOPS/afs_vnop_read.c
src/afs/VNOPS/afs_vnop_remove.c
src/afs/VNOPS/afs_vnop_rename.c
src/afs/VNOPS/afs_vnop_symlink.c
src/afs/afs.h
src/afs/afs_buffer.c
src/afs/afs_call.c
src/afs/afs_callback.c
src/afs/afs_cell.c
src/afs/afs_dcache.c
src/afs/afs_osi.c
src/afs/afs_osi_alloc.c
src/afs/afs_osi_pag.c
src/afs/afs_pioctl.c
src/afs/afs_prototypes.h
src/afs/afs_segments.c
src/afs/afs_server.c
src/afs/afs_stats.h
src/afs/afs_trace.et
src/afs/afs_vcache.c
src/afs/lock.h
src/afs/sysincludes.h
src/afsd/afs.rc.darwin
src/afsd/afs.rc.linux
src/afsd/afsd.c
src/afsd/vsys.c
src/afsmonitor/afsmon-output.c
src/afsmonitor/afsmon-win.c
src/afsmonitor/afsmonitor.c
src/afsweb/weblog.c
src/aklog/.cvsignore [new file with mode: 0644]
src/aklog/Makefile.in
src/aklog/aklog_main.c
src/aklog/asetkey.c
src/aklog/klog.c [new file with mode: 0644]
src/aklog/skipwrap.c [new file with mode: 0644]
src/auth/authcon.c
src/auth/cellconfig.c
src/auth/cellconfig.p.h
src/auth/copyauth.c
src/auth/ktc.c
src/auth/setkey.c
src/auth/test/testcellconf.c
src/auth/userok.c
src/auth/writeconfig.c
src/bozo/Makefile.in
src/bozo/bnode.c
src/bozo/bos.c
src/bozo/bos_util.c
src/bozo/bosoprocs.c
src/bozo/bosprototypes.h [new file with mode: 0644]
src/bozo/bosserver.c
src/bozo/cronbnodeops.c
src/bozo/ezbnodeops.c
src/bozo/fsbnodeops.c
src/bu_utils/fms.c
src/bubasics/Makefile.in
src/bucoord/bc.p.h
src/bucoord/bc_status.c
src/bucoord/bucoord_prototypes.h [new file with mode: 0644]
src/bucoord/commands.c
src/bucoord/dlq.c
src/bucoord/dsstub.c
src/bucoord/dsvs.c
src/bucoord/dump.c
src/bucoord/dump_sched.c
src/bucoord/main.c
src/bucoord/regex.c
src/bucoord/restore.c
src/bucoord/status.c
src/bucoord/tape_hosts.c
src/bucoord/vol_sets.c
src/budb/Makefile.in
src/budb/database.c
src/budb/db_alloc.c
src/budb/db_dump.c
src/budb/db_hash.c
src/budb/db_text.c
src/budb/dbs_dump.c
src/budb/ol_verify.c
src/budb/procs.c
src/budb/server.c
src/budb/struct_ops.c
src/butc/butc_prototypes.h [new file with mode: 0644]
src/butc/dbentries.c
src/butc/dump.c
src/butc/lwps.c
src/butc/read_tape.c
src/butc/recoverDb.c
src/butc/tcmain.c
src/butc/tcprocs.c
src/butc/tcstatus.c
src/butc/tcudbprocs.c
src/butc/test.c
src/butm/file_tm.c
src/cf/kerberos.m4
src/cf/linux-test1.m4
src/cf/linux-test4.m4
src/cf/osconf.m4
src/cmd/cmd.c
src/cmd/cmd.p.h
src/cmd/test/ctest.c
src/cmd/test/dtest.c
src/cmd/test/itest.c
src/config/.cvsignore
src/config/Makefile.config.in
src/config/afs_args.h
src/config/afs_sysnames.h
src/config/afsconfig.h.in
src/config/mc.c
src/config/param.amd64_nbsd30.h [new file with mode: 0644]
src/config/param.amd64_nbsd40.h [new file with mode: 0644]
src/config/param.arm_linux24.h [new file with mode: 0644]
src/config/param.arm_linux26.h [new file with mode: 0644]
src/config/param.hp_ux110.h
src/config/param.hp_ux1123.h
src/config/param.hp_ux11i.h
src/config/param.i386_linux26.h
src/config/param.nbsd30.h
src/config/param.nbsd40.h [new file with mode: 0644]
src/dauth/dpass.c
src/des/andrew-conf.h
src/des/conf-arm-linux.h [new file with mode: 0644]
src/dir/dir.c
src/dir/salvage.c
src/fsint/Makefile.in
src/fsint/afsint.xg
src/fsprobe/fsprobe.c
src/fsprobe/fsprobe_test.c
src/gtx/curseswindows.c
src/gtx/frame.c
src/gtx/gtxtest.c
src/gtx/input.c
src/gtx/keymap.c
src/gtx/lightobject.c
src/gtx/object_test.c
src/gtx/objects.c
src/gtx/screen_test.c
src/gtx/textcb.c
src/gtx/textobject.c
src/kauth/Makefile.in
src/kauth/admin_tools.c
src/kauth/authclient.c
src/kauth/client.c
src/kauth/kaauxdb.c
src/kauth/kadatabase.c
src/kauth/kalocalcell.c
src/kauth/kalog.c
src/kauth/kas.c
src/kauth/kaserver.c
src/kauth/kautils.c
src/kauth/kdb.c
src/kauth/kkids.c
src/kauth/klog.c
src/kauth/knfs.c
src/kauth/kpasswd.c
src/kauth/kpwvalid.c
src/kauth/krb_tf.c
src/kauth/krb_udp.c
src/kauth/manyklog.c
src/kauth/read_passwd.c
src/kauth/rebuild.c
src/kauth/test/multiklog.c
src/kauth/test/test_getticket.c
src/kauth/test/test_rxkad_free.c
src/kauth/token.c
src/kauth/user.c
src/libacl/aclprocs.c
src/libadmin/bos/Makefile.in
src/libadmin/bos/afs_bosAdmin.c
src/libadmin/cfg/cfgclient.c
src/libadmin/cfg/cfginternal.c
src/libadmin/cfg/test/cfgtest.c
src/libadmin/kas/Makefile.in
src/libadmin/kas/afs_kasAdmin.c
src/libadmin/pts/Makefile.in
src/libadmin/pts/afs_ptsAdmin.c
src/libadmin/samples/rxdebug_conns.c
src/libadmin/samples/rxdebug_rx_stats.c
src/libadmin/samples/rxstat_get_peer.c
src/libadmin/samples/rxstat_get_process.c
src/libadmin/test/afscp.c
src/libadmin/test/bos.c
src/libadmin/test/client.c
src/libadmin/test/kas.c
src/libadmin/test/pts.c
src/libadmin/test/util.c
src/libadmin/test/util.h
src/libadmin/test/vos.c
src/libadmin/vos/Makefile.in
src/libadmin/vos/afs_vosAdmin.c
src/libadmin/vos/lockprocs.c
src/libadmin/vos/vosutils.c
src/libadmin/vos/vsprocs.c
src/libafs/MakefileProto.LINUX.in
src/libafsrpc/Makefile.in
src/libuafs/Makefile.common.in
src/log/Makefile.in
src/log/kseal.c
src/log/tokens.c
src/log/unlog.c
src/lwp/Makefile.in
src/lwp/iomgr.c
src/lwp/lock.c
src/lwp/lock.h
src/lwp/lwp.c
src/lwp/lwp.h
src/lwp/preempt.c
src/lwp/process.c
src/lwp/process.s
src/lwp/threadname.c
src/lwp/timer.h
src/lwp/waitkey.c
src/null/null.c
src/packaging/OpenBSD/buildpkg.sh
src/packaging/RedHat/.cvsignore [new file with mode: 0644]
src/packaging/RedHat/RPM-build-notes [new file with mode: 0644]
src/packaging/RedHat/afs-krb5-2.0-com_err.patch [deleted file]
src/packaging/RedHat/afs-krb5-2.0-krb524.patch [deleted file]
src/packaging/RedHat/afs-krb5-2.0-libsocket.patch [deleted file]
src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch [deleted file]
src/packaging/RedHat/afs-krb5-2.0-res_search.patch [deleted file]
src/packaging/RedHat/kmodtool [deleted file]
src/packaging/RedHat/makesrpm.pl [new file with mode: 0755]
src/packaging/RedHat/mockbuild.pl [new file with mode: 0755]
src/packaging/RedHat/openafs-buildall.sh
src/packaging/RedHat/openafs-buildfedora.pl [new file with mode: 0755]
src/packaging/RedHat/openafs-client.init
src/packaging/RedHat/openafs-kmodtool [new file with mode: 0644]
src/packaging/RedHat/openafs-krb5-2.0.tar.gz [deleted file]
src/packaging/RedHat/openafs.spec.in
src/pam/afs_pam_msg.c
src/pam/afs_setcred.c
src/pam/afs_util.c
src/ptserver/Makefile.in
src/ptserver/db_verify.c
src/ptserver/display.c
src/ptserver/pt_util.c
src/ptserver/ptprocs.c
src/ptserver/pts.c
src/ptserver/ptserver.c
src/ptserver/ptuser.c
src/ptserver/ptutils.c
src/ptserver/readgroup.c
src/ptserver/readpwd.c
src/ptserver/testpt.c
src/ptserver/ubik.c
src/ptserver/utils.c
src/rx/LINUX/rx_knet.c
src/rx/SOLARIS/rx_knet.c
src/rx/UKERNEL/rx_knet.c
src/rx/rx.c
src/rx/rx.h
src/rx/rx_event.c
src/rx/rx_kcommon.c
src/rx/rx_lwp.c
src/rx/rx_misc.c
src/rx/rx_multi.c
src/rx/rx_packet.c
src/rx/rx_prototypes.h
src/rx/rx_pthread.c
src/rx/rx_rdwr.c
src/rx/rx_trace.c
src/rx/rx_user.c
src/rx/test/generator.c
src/rx/xdr.c
src/rx/xdr_array.c
src/rx/xdr_rec.c
src/rx/xdr_refernce.c
src/rxdebug/rxdebug.c
src/rxgen/Makefile.in
src/rxgen/rpc_cout.c
src/rxgen/rpc_hout.c
src/rxgen/rpc_main.c
src/rxgen/rpc_parse.c
src/rxgen/rpc_scan.c
src/rxgen/rpc_svcout.c
src/rxgen/rpc_util.c
src/rxgen/rpc_util.h
src/rxkad/crc.c
src/rxkad/domestic/crypt_conn.c
src/rxkad/domestic/fcrypt.c
src/rxkad/md4.c
src/rxkad/md5.c
src/rxkad/private_data.h
src/rxkad/rxkad_client.c
src/rxkad/rxkad_common.c
src/rxkad/rxkad_prototypes.h
src/rxkad/rxkad_server.c
src/rxkad/test/stress.c
src/rxkad/ticket.c
src/rxkad/ticket5.c
src/rxstat/Makefile.in
src/scout/scout.c
src/shlibafsrpc/Makefile.in
src/shlibafsrpc/mapfile
src/shlibafsrpc/mapfile.afs_xdr
src/sys/Makefile.in
src/sys/pagsh.c
src/sys/rmtsysc.c
src/sys/rmtsysd.c
src/sys/rmtsysnet.c
src/sys/rmtsyss.c
src/tests/Makefile.in
src/tests/OpenAFS/Auth.pm [new file with mode: 0644]
src/tests/OpenAFS/ConfigUtils.pm
src/tests/OpenAFS/OS.pm [new file with mode: 0644]
src/tests/OpenAFS/config.pm
src/tests/afs-newcell.pl
src/tests/afs-rmcell.pl [new file with mode: 0644]
src/tests/baduniq.pl
src/tests/bosexec.pl
src/tests/bosinstall.pl
src/tests/extcopyin
src/tests/extcopyout
src/tests/hardlink5
src/tests/reauth.pl
src/tests/run-tests.in
src/tests/vosdump.pl
src/tests/vosrestore.pl
src/tsm41/aix_aklog.c
src/ubik/Makefile.in
src/ubik/beacon.c
src/ubik/disk.c
src/ubik/phys.c
src/ubik/recovery.c
src/ubik/remote.c
src/ubik/ubik.c
src/ubik/ubik.p.h
src/ubik/ubikcmd.c
src/ubik/udebug.c
src/ubik/uinit.c
src/ubik/utst_client.c
src/ubik/utst_server.c
src/ubik/vote.c
src/update/Makefile.in
src/update/client.c
src/update/server.c
src/update/utils.c
src/usd/usd_file.c
src/uss/grammar.y
src/uss/lex.l
src/uss/uss.c
src/uss/uss_acl.c
src/uss/uss_common.c
src/uss/uss_common.h
src/uss/uss_fs.c
src/uss/uss_kauth.c
src/uss/uss_procs.c
src/uss/uss_vol.c
src/util/afsutil.h
src/util/afsutil_prototypes.h
src/util/assert.c
src/util/casestrcpy.c
src/util/fileutil.c
src/util/get_krbrlm.c
src/util/hostparse.c
src/util/kreltime.c
src/util/ktime.c
src/util/netutils.c
src/util/serverLog.c
src/util/snprintf.c
src/util/softsig.c
src/util/strlcat.c
src/util/sys.c
src/util/uuid.c
src/util/volparse.c
src/venus/Makefile.in
src/venus/cacheout.c
src/venus/cmdebug.c
src/venus/fs.c
src/venus/fstrace.c
src/venus/kdump.c
src/venus/livesys.c
src/venus/test/fulltest.c
src/venus/test/getinitparams.c
src/venus/test/idtest.c
src/venus/test/owntest.c
src/venus/twiddle.c
src/venus/up.c
src/venus/whatfid.c
src/vfsck/dirutils.c
src/vfsck/setup.c
src/vfsck/utilities.c
src/viced/afsfileprocs.c
src/viced/callback.c
src/viced/check_sysid.c
src/viced/fsprobe.c
src/viced/host.c
src/viced/host.h
src/viced/physio.c
src/viced/viced.c
src/vlserver/Makefile.in
src/vlserver/cnvldb.c
src/vlserver/sascnvldb.c
src/vlserver/vlclient.c
src/vlserver/vldb_check.c
src/vlserver/vldbint.xg
src/vlserver/vlprocs.c
src/vlserver/vlserver.c
src/vlserver/vlutils.c
src/vol/Makefile.in
src/vol/clone.c
src/vol/devname.c
src/vol/fssync.c
src/vol/ihandle.c
src/vol/listinodes.c
src/vol/namei_ops.c
src/vol/partition.c
src/vol/physio.c
src/vol/purge.c
src/vol/vnode.c
src/vol/vol-bless.c
src/vol/vol-info.c
src/vol/vol-salvage.c
src/volser/Makefile.in
src/volser/dumpstuff.c
src/volser/lockprocs.c
src/volser/physio.c
src/volser/restorevol.c
src/volser/vol-dump.c
src/volser/volmain.c
src/volser/volprocs.c
src/volser/volser.p.h
src/volser/volser_prototypes.h
src/volser/voltrans.c
src/volser/vos.c
src/volser/vsprocs.c
src/volser/vsutils.c
src/xstat/xstat_cm.c
src/xstat/xstat_cm_test.c
src/xstat/xstat_fs.c
src/xstat/xstat_fs_callback.c
src/xstat/xstat_fs_test.c

index 7f2f42c42c9e588066c86a989af78ecb66e72f43..2ace1eb89d65d5aa5bc18251c2fc8ae046b8be3c 100644 (file)
@@ -118,7 +118,7 @@ pinstall: config
 procmgmt: pinstall
        ${COMPILE_PART1} procmgmt ${COMPILE_PART2}
 
-util: procmgmt des
+util: procmgmt des lwp_depinstall
        ${COMPILE_PART1} util ${COMPILE_PART2}
 
 audit: util rx rxkad
@@ -395,9 +395,6 @@ kauth_depinstall: pinstall rxgen comerr
 ptserver_depinstall: pinstall rxgen comerr
        ${COMPILE_PART1} ptserver ${COMPILE_DEPINSTALL}
 
-${DEST}/bin/dedebug: dedebug
-       ${INSTALL} -s $? $@
-
 
 #
 # libafs build targets
@@ -673,6 +670,7 @@ clean2:
        -${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}
@@ -798,7 +796,6 @@ distclean: 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 \
diff --git a/README b/README
index c7fdff82df21973f0e01ccd244189389aef1a00b..5c263db1d205b66fdf68d87c9e1eae8c8c7a962e 100644 (file)
--- a/README
+++ b/README
@@ -68,6 +68,30 @@ A. Creating the proper directory structure.
       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
index c4d07d7c50a3c3918d7ef7ef4a8e9609eed7ace1..aed68b06667beefb78dbcdbb8ffacef7fb893d04 100644 (file)
@@ -70,6 +70,9 @@ AC_ARG_ENABLE(optimize-kernel,
 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"
 )
@@ -79,6 +82,9 @@ AC_ARG_ENABLE(debug-lwp,
 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"
 
@@ -286,6 +292,14 @@ else
                        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"
@@ -332,6 +346,9 @@ else
                hppa*-hp-hpux11.11)
                        AFS_SYSNAME="hp_ux11i"
                        ;;
+               hppa*-hp-hpux11.23)
+                       AFS_SYSNAME="hp_ux1123"
+                       ;;
                ia64-hp-hpux11.22)
                        AFS_SYSNAME="ia64_hpux1122"
                        ;;
@@ -581,7 +598,10 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                   [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
@@ -614,12 +634,14 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 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
@@ -647,6 +669,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 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
@@ -720,6 +745,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 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
@@ -861,15 +889,33 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 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
@@ -1126,7 +1172,7 @@ AC_HEADER_DIRENT
 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)
 
@@ -1146,7 +1192,7 @@ AC_SUBST(BUILD_LOGIN)
 
 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])
index 917e0a0872ac4b8c3bbe9a2e2ee41e066e674d3d..9c3a64688dbd7f75d1c817507f804306ef8b4f3d 100755 (executable)
--- a/configure
+++ b/configure
@@ -673,6 +673,7 @@ AMDEPBACKSLASH
 CCDEPMODE
 am__fastdepCC_TRUE
 am__fastdepCC_FALSE
+CPP
 build
 build_cpu
 build_vendor
@@ -681,7 +682,6 @@ host
 host_cpu
 host_vendor
 host_os
-CPP
 GREP
 EGREP
 LN_S
@@ -760,6 +760,8 @@ LWP_OPTMZ
 MT_CC
 MT_CFLAGS
 MT_LIBS
+NO_STRIP_BIN
+NO_STRIP_KRB
 OPTMZ
 PAM_CFLAGS
 PAM_LIBS
@@ -1395,9 +1397,11 @@ Optional Features:
   --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
 
@@ -2170,7 +2174,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=openafs
- VERSION=1.4.6
+ VERSION=1.4.7pre1
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2318,7 +2322,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 ac_config_headers="$ac_config_headers src/config/afsconfig.h"
 
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
 
 
 
@@ -3496,6 +3500,49 @@ else
 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
@@ -4794,6 +4841,14 @@ else
 
 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;
@@ -4818,6 +4873,14 @@ else
 
 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"
 
@@ -6347,6 +6410,14 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; }
                        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"
@@ -6393,6 +6464,9 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; }
                hppa*-hp-hpux11.11)
                        AFS_SYSNAME="hp_ux11i"
                        ;;
+               hppa*-hp-hpux11.23)
+                       AFS_SYSNAME="hp_ux1123"
+                       ;;
                ia64-hp-hpux11.22)
                        AFS_SYSNAME="ia64_hpux1122"
                        ;;
@@ -7089,14 +7163,19 @@ echo "${ECHO_T}yes" >&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; }
+  { 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
@@ -7117,33 +7196,30 @@ void conftest(void)
 
 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
@@ -7188,38 +7264,32 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7230,41 +7300,52 @@ _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;
 }
@@ -7303,34 +7384,41 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7341,41 +7429,44 @@ _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;
 }
@@ -7414,12 +7505,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7427,21 +7518,24 @@ 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
@@ -7452,40 +7546,49 @@ _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;
@@ -7525,12 +7628,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7538,28 +7641,24 @@ 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
@@ -7570,49 +7669,44 @@ _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;
 }
@@ -7651,12 +7745,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7664,21 +7758,24 @@ 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
@@ -7689,45 +7786,44 @@ _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;
 }
@@ -7766,12 +7862,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7779,21 +7875,24 @@ 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
@@ -7804,45 +7903,44 @@ _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;
 }
@@ -7881,12 +7979,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7894,21 +7992,31 @@ 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
@@ -7919,43 +8027,52 @@ _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;
 }
@@ -7994,12 +8111,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8007,21 +8124,24 @@ 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
@@ -8032,43 +8152,48 @@ _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;
 }
@@ -8107,12 +8232,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8120,21 +8245,24 @@ 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
@@ -8145,43 +8273,48 @@ _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;
 }
@@ -8220,12 +8353,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8233,21 +8366,24 @@ 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
@@ -8262,39 +8398,42 @@ _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;
 }
@@ -8333,12 +8472,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8346,21 +8485,24 @@ 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
@@ -8375,39 +8517,42 @@ _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;
 }
@@ -8446,12 +8591,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8459,28 +8604,24 @@ 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
@@ -8495,39 +8636,42 @@ _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;
 }
@@ -8566,12 +8710,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8579,21 +8723,24 @@ 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
@@ -8609,38 +8756,41 @@ _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;
 }
@@ -8679,12 +8829,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8692,21 +8842,24 @@ 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
@@ -8722,38 +8875,41 @@ _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;
 }
@@ -8792,12 +8948,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8805,21 +8961,31 @@ 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
@@ -8835,38 +9001,41 @@ _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;
 }
@@ -8905,12 +9074,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8918,21 +9087,24 @@ 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
@@ -8947,39 +9119,42 @@ _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;
 }
@@ -9018,12 +9193,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9031,21 +9206,24 @@ 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
@@ -9061,38 +9239,41 @@ _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;
 }
@@ -9131,12 +9312,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9144,21 +9325,24 @@ 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
@@ -9174,38 +9358,41 @@ _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;
 }
@@ -9244,12 +9431,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9257,21 +9444,24 @@ 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
@@ -9287,38 +9477,41 @@ _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;
 }
@@ -9357,12 +9550,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9370,21 +9563,24 @@ 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
@@ -9400,38 +9596,41 @@ _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;
 }
@@ -9470,12 +9669,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9483,21 +9682,24 @@ 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
@@ -9513,38 +9715,41 @@ _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;
 }
@@ -9583,12 +9788,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9596,21 +9801,24 @@ 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
@@ -9626,42 +9834,41 @@ _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;
 }
@@ -9700,12 +9907,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9713,21 +9920,24 @@ 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
@@ -9743,42 +9953,41 @@ _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;
 }
@@ -9817,12 +10026,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9830,21 +10039,24 @@ 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
@@ -9856,48 +10068,45 @@ _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;
 }
@@ -9936,12 +10145,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9949,21 +10158,24 @@ 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
@@ -9975,48 +10187,49 @@ _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;
 }
@@ -10055,12 +10268,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10068,21 +10281,24 @@ 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
@@ -10094,48 +10310,49 @@ _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;
 }
@@ -10174,12 +10391,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10187,21 +10404,24 @@ 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
@@ -10220,33 +10440,35 @@ void conftest(void)
 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
@@ -10255,8 +10477,7 @@ main ()
 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;
 }
@@ -10295,12 +10516,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10308,21 +10529,24 @@ 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
@@ -10338,42 +10562,47 @@ _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;
 }
@@ -10412,12 +10641,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10425,21 +10654,24 @@ 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
@@ -10451,46 +10683,51 @@ _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;
 }
@@ -10529,12 +10766,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10542,21 +10779,24 @@ 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
@@ -10568,50 +10808,53 @@ _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;
 }
@@ -10650,12 +10893,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10663,21 +10906,24 @@ 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
@@ -10689,44 +10935,51 @@ _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
@@ -10763,12 +11016,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10776,21 +11029,24 @@ 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
@@ -10805,39 +11061,46 @@ _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;
 }
@@ -10876,12 +11139,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10889,47 +11152,24 @@ 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
@@ -10941,40 +11181,53 @@ _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;
 }
@@ -11013,12 +11266,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11026,30 +11279,74 @@ 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;
 }
@@ -11088,33 +11385,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11125,41 +11426,46 @@ _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;
 }
@@ -11198,12 +11504,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11211,23 +11517,24 @@ 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
@@ -11242,37 +11549,44 @@ _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;
 }
@@ -11311,63 +11625,63 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11378,41 +11692,44 @@ _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;
 }
@@ -11451,12 +11768,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11464,68 +11781,30 @@ 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;
 }
@@ -11564,34 +11843,36 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11602,43 +11883,44 @@ _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;
 }
@@ -11677,12 +11959,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11690,21 +11972,26 @@ 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
@@ -11715,43 +12002,44 @@ _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;
 }
@@ -11790,34 +12078,38 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11828,43 +12120,44 @@ _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;
 }
@@ -11903,12 +12196,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11916,21 +12209,59 @@ 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
@@ -11945,39 +12276,40 @@ _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;
 }
@@ -12016,12 +12348,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12029,21 +12361,24 @@ 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
@@ -12059,38 +12394,41 @@ _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;
 }
@@ -12129,12 +12467,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12142,21 +12480,24 @@ 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
@@ -12172,38 +12513,41 @@ _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;
 }
@@ -12242,12 +12586,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12255,21 +12599,24 @@ 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
@@ -12285,38 +12632,41 @@ _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;
 }
@@ -12355,12 +12705,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12368,21 +12718,24 @@ 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
@@ -12398,38 +12751,41 @@ _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;
 }
@@ -12468,12 +12824,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12481,21 +12837,24 @@ 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
@@ -12511,38 +12870,41 @@ _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;
 }
@@ -12581,12 +12943,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12594,21 +12956,24 @@ 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
@@ -12624,38 +12989,41 @@ _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;
 }
@@ -12694,12 +13062,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12707,21 +13075,24 @@ 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
@@ -12732,34 +13103,32 @@ _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
@@ -12767,14 +13136,13 @@ cat confdefs.h >>conftest.$ac_ext
 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;
 }
@@ -12813,12 +13181,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12826,21 +13194,24 @@ 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
@@ -12851,41 +13222,46 @@ _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;
 }
@@ -12924,12 +13300,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12937,21 +13313,24 @@ 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
@@ -12962,47 +13341,46 @@ _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;
 }
@@ -13041,12 +13419,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13054,21 +13432,24 @@ 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
@@ -13079,41 +13460,46 @@ _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;
 }
@@ -13152,12 +13538,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13165,35 +13551,24 @@ 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
@@ -13205,46 +13580,45 @@ _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;
 }
@@ -13283,12 +13657,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13296,21 +13670,24 @@ 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
@@ -13321,59 +13698,52 @@ _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;
 }
@@ -13412,12 +13782,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13425,28 +13795,24 @@ 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
@@ -13457,45 +13823,44 @@ _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;
 }
@@ -13534,12 +13899,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13547,30 +13912,1058 @@ 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
@@ -13581,41 +14974,46 @@ _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;
 }
@@ -13654,44 +15052,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13702,41 +15093,46 @@ _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;
 }
@@ -13775,42 +15171,39 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13821,51 +15214,44 @@ _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;
 }
@@ -13904,34 +15290,38 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13942,43 +15332,46 @@ _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;
 }
@@ -14017,12 +15410,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -14030,8 +15423,8 @@ 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; }
@@ -14042,9 +15435,12 @@ 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
@@ -14065,8 +15461,9 @@ printk("%p\n", address);
 
 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
@@ -14079,13 +15476,15 @@ _ACEOF
   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 ()
@@ -14155,9 +15554,12 @@ 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
@@ -14178,8 +15580,9 @@ printk("%p\n", address);
 
 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
@@ -14192,13 +15595,15 @@ _ACEOF
   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 ()
@@ -14268,9 +15673,12 @@ 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
@@ -14291,8 +15699,9 @@ printk("%p\n", address);
 
 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
@@ -14305,13 +15714,15 @@ _ACEOF
   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 ()
@@ -14381,9 +15792,12 @@ 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
@@ -14404,8 +15818,9 @@ printk("%p\n", address);
 
 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
@@ -14418,13 +15833,15 @@ _ACEOF
   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 ()
@@ -14505,9 +15922,12 @@ 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
@@ -14533,8 +15953,9 @@ lose;
 
 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
@@ -14547,13 +15968,15 @@ _ACEOF
   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
@@ -14646,9 +16069,12 @@ 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
@@ -14670,8 +16096,9 @@ void conftest(void)
 
 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
@@ -14684,13 +16111,15 @@ _ACEOF
   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 ()
@@ -14761,9 +16190,12 @@ 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
@@ -14785,8 +16217,9 @@ void conftest(void)
 
 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
@@ -14799,13 +16232,15 @@ _ACEOF
   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 ()
@@ -14876,9 +16311,12 @@ 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
@@ -14900,8 +16338,9 @@ void conftest(void)
 
 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
@@ -14914,13 +16353,15 @@ _ACEOF
   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 ()
@@ -14991,9 +16432,12 @@ 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
@@ -15015,8 +16459,9 @@ void conftest(void)
 
 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
@@ -15029,13 +16474,15 @@ _ACEOF
   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 ()
@@ -15106,9 +16553,12 @@ 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
@@ -15130,8 +16580,9 @@ void conftest(void)
 
 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
@@ -15144,13 +16595,15 @@ _ACEOF
   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 ()
@@ -15313,6 +16766,13 @@ _ACEOF
 
 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
@@ -15638,6 +17098,13 @@ _ACEOF
 
 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
@@ -15645,6 +17112,27 @@ _ACEOF
 
 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
@@ -15659,6 +17147,20 @@ _ACEOF
 
 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
@@ -18392,7 +19894,8 @@ done
 
 
 
-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
@@ -19143,7 +20646,8 @@ fi
 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
@@ -20528,6 +22032,8 @@ DBG=-g
 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.
@@ -21050,6 +22556,38 @@ case $AFS_SYSNAME in
                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"
@@ -21183,6 +22721,7 @@ case $AFS_SYSNAME in
                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"
@@ -21209,6 +22748,7 @@ case $AFS_SYSNAME in
                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"
@@ -21238,6 +22778,7 @@ case $AFS_SYSNAME in
                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"
@@ -21259,6 +22800,7 @@ case $AFS_SYSNAME in
                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"
@@ -21279,6 +22821,7 @@ case $AFS_SYSNAME in
                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"
@@ -21299,6 +22842,7 @@ case $AFS_SYSNAME in
                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"
@@ -21306,6 +22850,8 @@ case $AFS_SYSNAME in
                ;;
 
        *_obsd*)
+               KRB5CFLAGS="-I/usr/include/kerberosV"
+               KRB5LIBS="-lkrb5 -lcrypto"
                LEX="flex -l"
                MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
                MT_LIBS="-pthread"
@@ -21324,6 +22870,7 @@ case $AFS_SYSNAME in
                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"
@@ -21427,6 +22974,7 @@ case $AFS_SYSNAME in
                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"
@@ -21505,6 +23053,7 @@ case $AFS_SYSNAME in
                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"
@@ -21522,6 +23071,7 @@ case $AFS_SYSNAME in
                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"
@@ -21539,6 +23089,7 @@ case $AFS_SYSNAME in
                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__"
@@ -21614,6 +23165,7 @@ case $AFS_SYSNAME in
                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"
@@ -21629,6 +23181,7 @@ case $AFS_SYSNAME in
                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"
@@ -21790,7 +23343,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=v9'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -21896,7 +23449,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=amd64'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -22033,6 +23586,8 @@ fi
 
 if test "x$enable_debug" = "xno"; then
   DBG=
+  NO_STRIP_BIN=
+  NO_STRIP_KRB=-s
 fi
 
 if test "x$enable_optimize" = "xno"; then
@@ -22047,6 +23602,27 @@ if test "x$enable_optimize_lwp" = "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
+
+
+
 
 
 
@@ -22211,7 +23787,11 @@ echo "${ECHO_T}Configuring support for Kerberos 5 utilities" >&6; }
 
 
 
-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
+
 
 
 
@@ -23154,7 +24742,7 @@ else
     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
@@ -23790,6 +25378,7 @@ do
     "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" ;;
@@ -23819,7 +25408,6 @@ do
     "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" ;;
@@ -23978,6 +25566,7 @@ AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
 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
@@ -23986,7 +25575,6 @@ host!$host$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
@@ -24106,6 +25694,8 @@ LWP_OPTMZ!$LWP_OPTMZ$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
@@ -24134,7 +25724,7 @@ LIBOBJS!$LIBOBJS$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
index e65bc9a6b8ebeef9f8ab7807984f0a59502bb863..0575b1c91c4e476aba70e92c31c8402340aebfe0 100755 (executable)
@@ -760,6 +760,8 @@ LWP_OPTMZ
 MT_CC
 MT_CFLAGS
 MT_LIBS
+NO_STRIP_BIN
+NO_STRIP_KRB
 OPTMZ
 PAM_CFLAGS
 PAM_LIBS
@@ -1395,9 +1397,11 @@ Optional Features:
   --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
 
@@ -2170,7 +2174,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=openafs-libafs
- VERSION=1.4.6
+ VERSION=1.4.7pre1
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2318,7 +2322,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 ac_config_headers="$ac_config_headers src/config/afsconfig.h"
 
-MACOS_VERSION=1.4.6
+MACOS_VERSION=1.4.7fc1
 
 
 
@@ -4795,6 +4799,14 @@ else
 
 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;
@@ -4819,6 +4831,14 @@ else
 
 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"
 
@@ -6348,6 +6368,14 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; }
                        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"
@@ -6394,6 +6422,9 @@ echo $ECHO_N "checking your AFS sysname... $ECHO_C" >&6; }
                hppa*-hp-hpux11.11)
                        AFS_SYSNAME="hp_ux11i"
                        ;;
+               hppa*-hp-hpux11.23)
+                       AFS_SYSNAME="hp_ux1123"
+                       ;;
                ia64-hp-hpux11.22)
                        AFS_SYSNAME="ia64_hpux1122"
                        ;;
@@ -7089,14 +7120,19 @@ echo "${ECHO_T}yes" >&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; }
+  { 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
@@ -7117,33 +7153,30 @@ void conftest(void)
 
 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
@@ -7188,38 +7221,32 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7230,41 +7257,52 @@ _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;
 }
@@ -7303,34 +7341,41 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7341,41 +7386,44 @@ _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;
 }
@@ -7414,12 +7462,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7427,21 +7475,24 @@ 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
@@ -7452,40 +7503,49 @@ _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;
@@ -7525,12 +7585,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7538,28 +7598,24 @@ 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
@@ -7570,49 +7626,44 @@ _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;
 }
@@ -7651,12 +7702,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7664,21 +7715,24 @@ 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
@@ -7689,45 +7743,44 @@ _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;
 }
@@ -7766,12 +7819,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7779,21 +7832,24 @@ 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
@@ -7804,45 +7860,44 @@ _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;
 }
@@ -7881,12 +7936,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -7894,21 +7949,31 @@ 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
@@ -7919,43 +7984,52 @@ _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;
 }
@@ -7994,12 +8068,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8007,21 +8081,24 @@ 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
@@ -8032,43 +8109,48 @@ _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;
 }
@@ -8107,12 +8189,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8120,21 +8202,24 @@ 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
@@ -8145,43 +8230,48 @@ _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;
 }
@@ -8220,12 +8310,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8233,21 +8323,24 @@ 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
@@ -8262,39 +8355,42 @@ _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;
 }
@@ -8333,12 +8429,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8346,21 +8442,24 @@ 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
@@ -8375,39 +8474,42 @@ _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;
 }
@@ -8446,12 +8548,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8459,28 +8561,24 @@ 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
@@ -8495,39 +8593,42 @@ _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;
 }
@@ -8566,12 +8667,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8579,21 +8680,24 @@ 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
@@ -8609,38 +8713,41 @@ _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;
 }
@@ -8679,12 +8786,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8692,21 +8799,24 @@ 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
@@ -8722,38 +8832,41 @@ _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;
 }
@@ -8792,12 +8905,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8805,21 +8918,31 @@ 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
@@ -8835,38 +8958,41 @@ _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;
 }
@@ -8905,12 +9031,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -8918,21 +9044,24 @@ 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
@@ -8947,39 +9076,42 @@ _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;
 }
@@ -9018,12 +9150,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9031,21 +9163,24 @@ 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
@@ -9061,38 +9196,41 @@ _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;
 }
@@ -9131,12 +9269,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9144,21 +9282,24 @@ 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
@@ -9174,38 +9315,41 @@ _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;
 }
@@ -9244,12 +9388,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9257,21 +9401,24 @@ 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
@@ -9287,38 +9434,41 @@ _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;
 }
@@ -9357,12 +9507,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9370,21 +9520,24 @@ 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
@@ -9400,38 +9553,41 @@ _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;
 }
@@ -9470,12 +9626,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9483,21 +9639,24 @@ 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
@@ -9513,38 +9672,41 @@ _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;
 }
@@ -9583,12 +9745,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9596,21 +9758,24 @@ 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
@@ -9626,42 +9791,41 @@ _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;
 }
@@ -9700,12 +9864,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9713,21 +9877,24 @@ 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
@@ -9743,42 +9910,41 @@ _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;
 }
@@ -9817,12 +9983,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9830,21 +9996,24 @@ 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
@@ -9856,48 +10025,45 @@ _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;
 }
@@ -9936,12 +10102,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -9949,21 +10115,24 @@ 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
@@ -9975,48 +10144,49 @@ _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;
 }
@@ -10055,12 +10225,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10068,21 +10238,24 @@ 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
@@ -10094,48 +10267,49 @@ _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;
 }
@@ -10174,12 +10348,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10187,21 +10361,24 @@ 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
@@ -10220,33 +10397,35 @@ void conftest(void)
 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
@@ -10255,8 +10434,7 @@ main ()
 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;
 }
@@ -10295,12 +10473,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10308,21 +10486,24 @@ 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
@@ -10338,42 +10519,47 @@ _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;
 }
@@ -10412,12 +10598,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10425,21 +10611,24 @@ 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
@@ -10451,46 +10640,51 @@ _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;
 }
@@ -10529,12 +10723,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10542,21 +10736,24 @@ 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
@@ -10568,50 +10765,53 @@ _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;
 }
@@ -10650,12 +10850,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10663,21 +10863,24 @@ 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
@@ -10689,42 +10892,49 @@ _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;
 }
@@ -10763,12 +10973,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10776,21 +10986,24 @@ 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
@@ -10805,39 +11018,46 @@ _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;
 }
@@ -10876,12 +11096,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -10889,47 +11109,151 @@ 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
@@ -10944,37 +11268,42 @@ _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;
 }
@@ -11013,12 +11342,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11026,30 +11355,918 @@ 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;
 }
@@ -11088,33 +12305,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11125,41 +12346,46 @@ _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;
 }
@@ -11198,12 +12424,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11211,23 +12437,24 @@ 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
@@ -11238,41 +12465,46 @@ _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;
 }
@@ -11311,63 +12543,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11382,37 +12588,42 @@ _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;
 }
@@ -11451,12 +12662,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11464,21 +12675,24 @@ 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
@@ -11494,38 +12708,41 @@ _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;
 }
@@ -11564,12 +12781,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11577,21 +12794,24 @@ 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
@@ -11607,38 +12827,41 @@ _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;
 }
@@ -11677,12 +12900,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11690,21 +12913,24 @@ 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
@@ -11720,38 +12946,41 @@ _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;
 }
@@ -11790,12 +13019,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11803,21 +13032,24 @@ 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
@@ -11833,38 +13065,41 @@ _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;
 }
@@ -11903,12 +13138,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -11916,21 +13151,24 @@ 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
@@ -11946,38 +13184,41 @@ _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;
 }
@@ -12016,12 +13257,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12029,21 +13270,24 @@ 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
@@ -12059,38 +13303,41 @@ _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;
 }
@@ -12129,12 +13376,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12142,21 +13389,24 @@ 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
@@ -12172,38 +13422,41 @@ _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;
 }
@@ -12242,12 +13495,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12255,21 +13508,24 @@ 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
@@ -12285,38 +13541,41 @@ _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;
 }
@@ -12355,12 +13614,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12368,21 +13627,24 @@ 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
@@ -12393,43 +13655,52 @@ _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;
 }
@@ -12468,12 +13739,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12481,21 +13752,24 @@ 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
@@ -12506,43 +13780,44 @@ _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;
 }
@@ -12581,12 +13856,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12594,21 +13869,24 @@ 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
@@ -12619,43 +13897,50 @@ _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;
 }
@@ -12694,12 +13979,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12707,21 +13992,24 @@ 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
@@ -12732,34 +14020,31 @@ _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
@@ -12767,14 +14052,12 @@ cat confdefs.h >>conftest.$ac_ext
 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;
 }
@@ -12813,12 +14096,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12826,21 +14109,38 @@ 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
@@ -12851,41 +14151,50 @@ _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;
 }
@@ -12924,12 +14233,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -12937,21 +14246,24 @@ 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
@@ -12962,47 +14274,68 @@ _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;
 }
@@ -13041,12 +14374,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13054,21 +14387,31 @@ 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
@@ -13079,41 +14422,48 @@ _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;
 }
@@ -13152,12 +14502,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13165,35 +14515,33 @@ 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
@@ -13204,47 +14552,44 @@ _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;
 }
@@ -13283,34 +14628,47 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13321,59 +14679,44 @@ _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;
 }
@@ -13412,41 +14755,45 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13457,45 +14804,54 @@ _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;
 }
@@ -13534,12 +14890,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13547,30 +14903,24 @@ 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
@@ -13581,41 +14931,46 @@ _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;
 }
@@ -13654,44 +15009,37 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13702,41 +15050,46 @@ _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;
 }
@@ -13775,42 +15128,39 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13821,51 +15171,44 @@ _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;
 }
@@ -13904,34 +15247,38 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -13942,43 +15289,46 @@ _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;
 }
@@ -14017,12 +15367,12 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   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
@@ -14030,8 +15380,8 @@ 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; }
@@ -14042,9 +15392,12 @@ 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
@@ -14065,8 +15418,9 @@ printk("%p\n", address);
 
 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
@@ -14079,13 +15433,15 @@ _ACEOF
   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 ()
@@ -14155,9 +15511,12 @@ 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
@@ -14178,8 +15537,9 @@ printk("%p\n", address);
 
 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
@@ -14192,13 +15552,15 @@ _ACEOF
   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 ()
@@ -14268,9 +15630,12 @@ 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
@@ -14291,8 +15656,9 @@ printk("%p\n", address);
 
 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
@@ -14305,13 +15671,15 @@ _ACEOF
   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 ()
@@ -14381,9 +15749,12 @@ 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
@@ -14404,8 +15775,9 @@ printk("%p\n", address);
 
 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
@@ -14418,13 +15790,15 @@ _ACEOF
   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 ()
@@ -14505,9 +15879,12 @@ 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
@@ -14533,8 +15910,9 @@ lose;
 
 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
@@ -14547,13 +15925,15 @@ _ACEOF
   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
@@ -14646,9 +16026,12 @@ 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
@@ -14670,8 +16053,9 @@ void conftest(void)
 
 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
@@ -14684,13 +16068,15 @@ _ACEOF
   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 ()
@@ -14761,9 +16147,12 @@ 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
@@ -14785,8 +16174,9 @@ void conftest(void)
 
 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
@@ -14799,13 +16189,15 @@ _ACEOF
   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 ()
@@ -14876,9 +16268,12 @@ 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
@@ -14900,8 +16295,9 @@ void conftest(void)
 
 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
@@ -14914,13 +16310,15 @@ _ACEOF
   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 ()
@@ -14991,9 +16389,12 @@ 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
@@ -15015,8 +16416,9 @@ void conftest(void)
 
 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
@@ -15029,13 +16431,15 @@ _ACEOF
   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 ()
@@ -15106,9 +16510,12 @@ 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
@@ -15130,8 +16537,9 @@ void conftest(void)
 
 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
@@ -15144,13 +16552,15 @@ _ACEOF
   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 ()
@@ -15313,6 +16723,13 @@ _ACEOF
 
 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
@@ -15638,6 +17055,13 @@ _ACEOF
 
 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
@@ -15645,6 +17069,27 @@ _ACEOF
 
 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
@@ -15659,6 +17104,20 @@ _ACEOF
 
 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
@@ -18392,7 +19851,8 @@ done
 
 
 
-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
@@ -19143,7 +20603,8 @@ fi
 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
@@ -20528,6 +21989,8 @@ DBG=-g
 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.
@@ -21050,6 +22513,38 @@ case $AFS_SYSNAME in
                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"
@@ -21183,6 +22678,7 @@ case $AFS_SYSNAME in
                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"
@@ -21209,6 +22705,7 @@ case $AFS_SYSNAME in
                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"
@@ -21238,6 +22735,7 @@ case $AFS_SYSNAME in
                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"
@@ -21259,6 +22757,7 @@ case $AFS_SYSNAME in
                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"
@@ -21279,6 +22778,7 @@ case $AFS_SYSNAME in
                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"
@@ -21299,6 +22799,7 @@ case $AFS_SYSNAME in
                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"
@@ -21306,6 +22807,8 @@ case $AFS_SYSNAME in
                ;;
 
        *_obsd*)
+               KRB5CFLAGS="-I/usr/include/kerberosV"
+               KRB5LIBS="-lkrb5 -lcrypto"
                LEX="flex -l"
                MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
                MT_LIBS="-pthread"
@@ -21324,6 +22827,7 @@ case $AFS_SYSNAME in
                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"
@@ -21427,6 +22931,7 @@ case $AFS_SYSNAME in
                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"
@@ -21505,6 +23010,7 @@ case $AFS_SYSNAME in
                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"
@@ -21522,6 +23028,7 @@ case $AFS_SYSNAME in
                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"
@@ -21539,6 +23046,7 @@ case $AFS_SYSNAME in
                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__"
@@ -21614,6 +23122,7 @@ case $AFS_SYSNAME in
                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"
@@ -21629,6 +23138,7 @@ case $AFS_SYSNAME in
                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"
@@ -21790,7 +23300,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=v9'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -21896,7 +23406,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=amd64'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -22033,6 +23543,8 @@ fi
 
 if test "x$enable_debug" = "xno"; then
   DBG=
+  NO_STRIP_BIN=
+  NO_STRIP_KRB=-s
 fi
 
 if test "x$enable_optimize" = "xno"; then
@@ -22047,6 +23559,27 @@ if test "x$enable_optimize_lwp" = "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
+
+
+
 
 
 
@@ -22211,7 +23744,11 @@ echo "${ECHO_T}Configuring support for Kerberos 5 utilities" >&6; }
 
 
 
-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
+
 
 
 
@@ -23985,6 +25530,8 @@ LWP_OPTMZ!$LWP_OPTMZ$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
@@ -24013,7 +25560,7 @@ LIBOBJS!$LIBOBJS$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
index 7c24361aa0221fa15b7845c372735322df332b76..a606297c9ef924e81741165bca86870a25a4a79d 100644 (file)
@@ -1,7 +1,7 @@
 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)
 
index ba72e0a37d570fe0dde4132640d1f7d55d92d286..a9e7e35d9b09f5d76a1a869c17a3d6be2c6ce1dc 100644 (file)
@@ -1,11 +1,12 @@
 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
@@ -84,6 +85,7 @@ 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 \
@@ -113,7 +115,6 @@ 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 \
index e9d671bb02c114ec52db2274cf4d0a27ec7e72ad..c421005a84d02c640ba04aed6a1a0cceb44f4889 100644 (file)
@@ -1,5 +1,6 @@
-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
index 2f0beace2b01f6d4b27aa5953b4c224f688e03a5..48a9fda661eaa5f9b53d0c646f621951b6f1129d 100755 (executable)
@@ -46,9 +46,9 @@ DOC_PACKAGES = libpam-openafs-kaserver openafs-dbserver openafs-fileserver \
 
 # 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
index ce8ad3f00c36424962263c1d8a105c2cf9246635..e5a55fea987292ab2bfac2147fbbddb35353cd1f 100644 (file)
@@ -692,3 +692,46 @@ Some portions of Rx are subject to the following license:
  */
 
 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
index 7c8c5b209c60ad5d16a56ffb2962a0aa2dc5101b..022cc2fc5e3b8be29246899eaf3c75d445c86d8f 100644 (file)
@@ -78,7 +78,10 @@ Formatting Standards
   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,
@@ -199,17 +202,17 @@ Known Problems
    * 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
 
@@ -221,9 +224,6 @@ Known Problems
    * 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.
 
index bf8744f67c63335d905d8046a43208809bd36f15..b73a472c8f2fb8dcbd1a12e1b6f53a1f7ff30498 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -233,6 +247,13 @@ Rather than showing any cache entries, displays the cache configuration
 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.
@@ -242,20 +263,22 @@ Displays all of the locked cache entries on \f(CWclient1\fR:
 .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
@@ -272,6 +295,8 @@ man page was written by Russ Allbery for OpenAFS.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-servers\fR <\fImachine\fR>"
@@ -284,10 +309,14 @@ man page was written by Russ Allbery for OpenAFS.
 
 .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"
index 213510a0d2f91139eacf3559222acfb86e5d8a09..9fc1f5590f73255d0ac4517585b488954c18f5fd 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -209,6 +209,7 @@ machines:
 \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):
index 1bc39ab7c146c56053c2132034421565321a736b..415f9a30f5aed137f27a8b1b70e5f665b12bc473 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -237,7 +237,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2cf4d0430533d66675091cced22565793e21a01f..b15d427ee919bde8070fa712585866f949c63f6f 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -365,7 +365,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 652c49cda13f7d552f24bba5513595ce90b1dc62..5ae78baf5533b87c30c2c02adfadc42a3dc6e657 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -227,7 +227,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3cf98528c2e82a1b8bcb5789c6ea34eb9841131c..649b3bb26949ff886c915f9c4a91bc32cee843a1 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -271,7 +271,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0dac9d19c82c2ce09b2d4248f28587baecacd5b2..bff0fe4f2ad1b0490c0817fd1100d275b2b32cb5 100644 (file)
@@ -93,7 +93,7 @@
 .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+ >>>
@@ -322,7 +322,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 1ea8a6c4f50e6a261ccc4027652c4684fd9ae586..951333b515522edd3c0f532c96b284f66063d628 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -270,7 +270,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 37d1e6d498be79b1cfdf2cb9d65f56608732697b..68e2ed3956f44905c7934413266fec4af898ecd2 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -280,7 +280,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c49cac6e2115195202a6a5129518e4692e802b10..7eed8cb246d2d66c3672aee2a92f7da59174afc3 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -358,7 +358,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 252912f51d9cba3613c0cbcfbd154d63fc15cf13..8b6e6bca201116e5c48803e2f697b2562203bfb8 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -243,7 +243,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 252d1aba82319ab697c2769125e0582eb569f631..ac929e7542bee2eddba5bc8fa2b55bd9dded82e2 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -219,12 +219,13 @@ the \fIfs_flushvolume(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 "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"
 
index 0cedb5b3cbce4f6971753846c598029b87210e67..94023b41ee3693f836eb90af817a0d09f0386c71 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -243,7 +243,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c5dda5b3ded02f52a82e93d4d2628f1a55612410..cd1a466d2013224d05a525cbf1f2d710d3c4eac0 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -242,7 +242,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 87990ae7fb350d18428f1c3693e52e9b4840d356..e8aaebff0bc36f8c5cf922202c77193ed2c87e9a 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -234,7 +234,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 5912f277acdba3c8aa69fc2fad291527eebdb281..7f149306d6c73112fe776ff52dd7b6182ea196b7 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -231,12 +231,13 @@ the \fIfs_setacl(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 "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"
 
index 37f669b6800fc669789034bc4db6adaf627ad10c..23c1e38afb14c501c3bf841d98122255f224b95d 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -235,7 +235,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 561d08ca311331ee8e34c1ca68806d0ffa94f12e..4e435e4a6473093f7d67a0965038191ff1105a57 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -271,7 +271,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b1ea6b5caae98552f36e45dc4da95abbb9cef2ee..558f29f4d0c5e9b9592e66ec44782596abc4a769 100644 (file)
@@ -93,7 +93,7 @@
 .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"
@@ -237,12 +237,13 @@ the section on \fI/surfvi.com/~ota/fcrypt-paper.txt\fR in the \fIhttp:\fR manpag
 .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"
 
index a4383a0e70f457ab0bae4dec451e6834703ec1e1..42a1298e4c66c7015e9cef1f3f675ac0ae1920fc 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -336,7 +336,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 1f41e5d789eba411b027d3f068a8cce76bce7ecb..0b04f3e95f7e3f07921dffdb92d1d1c62cc8603d 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -247,7 +247,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c77fa720a07f2cd54be2650895275a9e689f928a..1fc320b5e0996f0f15c4599b48668cb274fef447 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -335,7 +335,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "FS_LISTACL 1"
-.IX Name "fs listacl - Displays ACLs"
+.IX Name "fs_listacl - Displays ACLs"
 
 .IX Header "NAME"
 
index 7aa4610839eb127f5acfd4a53e2c8eea0575105d..ab15bafd0562fb9d8454255f07e76885543929a2 100644 (file)
@@ -93,7 +93,7 @@
 .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"
@@ -222,12 +222,13 @@ the \fIfs_newalias(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 "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"
 
index e6d2c767985945618b3afc4f6f374d74e18f15da..d5499612779a0d1b99d72d7ef8f6d4a5b338d7bf 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -248,7 +248,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a8ed6d601418c54ed70deb9522144f68c3b3a848..328ee179b299d2287bb03e7b06f78db8442b8b19 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -205,6 +205,15 @@ To display more information about the host partition, use the \fBfs
 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
@@ -261,7 +270,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -269,6 +278,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-path\fR <\fIdir/file path\fR>+"
index e4045c3daeb043694563e5d23e5c2cdfe6125067..59b3e8ef5e3806a357c257e275998d2f11504845 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -288,7 +288,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2ba416cf9a212aa1e6c072ccb1ef7b75f31a367c..a709b5f0f0601ad3105e567c0cffa8c83b86477b 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -244,7 +244,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
diff --git a/doc/man-pages/man1/fs_minidump.1 b/doc/man-pages/man1/fs_minidump.1
new file mode 100644 (file)
index 0000000..899cc68
--- /dev/null
@@ -0,0 +1,233 @@
+.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"
+
index d7120fc1d9588625e1ca00efdb5eee960b82a3e0..a34b9f3bffb939d7b1244f38756a70b7c8152212 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -382,7 +382,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c8af3796f8d2fe1b9137f0b2dd044fbda99a02c8..a69ecd1e85741365036ce85908c8c4acc8bd8e5e 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -250,12 +250,13 @@ the \fIfs_listaliases(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 "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"
 
index f60f985abfdf720df24dbcbfa33ad38e62c2bd95..cef33fa1df943a2a2a491da78a5f1f7008d43c51 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -278,7 +278,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7a9b4d881bbe1683517db6fb301ec000eac23a85..627c853f57475d5aff276db5350faf1d0a75c373 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -201,6 +201,15 @@ To display more detailed information about the volume and the partition it
 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
@@ -253,7 +262,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -261,6 +270,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-path\fR <\fIdir/file path\fR>"
index af71a36ece3f7c267f403954104c9c1e308ebea0..60b68530de87ec43ea390895c1ca86eaa962032a 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -236,7 +236,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
diff --git a/doc/man-pages/man1/fs_rxstatpeer.1 b/doc/man-pages/man1/fs_rxstatpeer.1
new file mode 100644 (file)
index 0000000..6352d5a
--- /dev/null
@@ -0,0 +1,256 @@
+.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"
+
index 411e06bf7d1e26866677b18d65b3ec0327f1a9f7..0be99e41157dead992c2afa737831faeaf45d5cd 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -413,7 +413,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b0e6d2c7ccdbc3825eb93823e29ac74087738309..8f7dada428f5287107880d8758079dc020358e79 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -269,7 +269,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index d2b0f22156ae35bc100e5e7ffd3366d4ae40320e..1cd3afdbc6b418e4983bf5e125cf639be86db96d 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -264,7 +264,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index d82602963a3466cde260f499b99b9bb359ea689f..bb489ec1be36149ef88ba7d954e85fa5eda5177f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -284,7 +284,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index e69d30b7bc4fb468657b63a34a7e8fee9bfb4d5c..79f243eeab9eddf5b338eb8af6b19654b3fe3f26 100644 (file)
@@ -93,7 +93,7 @@
 .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"
@@ -253,12 +253,13 @@ the section on \fI/surfvi.com/~ota/fcrypt-paper.txt\fR in the \fIhttp:\fR manpag
 .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"
 
index b4283b371af9fbb8c054d654a0fc541fa095e19a..daa7b53cfa3cbebbdfad41594b522d0e89150598 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -206,6 +206,15 @@ setvol\fR command.
 .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
@@ -255,7 +264,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -263,6 +272,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-path\fR <\fIdir/file path\fR>"
index 39806fcdf3cfd9baf1041ddfb4c010132ce98ddb..c53c6295c60a00ae37b31cc2432d6c1c2d41ee35 100644 (file)
@@ -93,7 +93,7 @@
 .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+] >>>
@@ -440,7 +440,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 5de08ca81a0dbc37c08fc5c742efb588acbf85a1..a89db79156f18538420b0f7ea244974e5ef4db19 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -213,6 +213,15 @@ examine\fR command. The \fBfs listquota\fR command reports a fileset's quota,
 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
@@ -269,7 +278,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -277,6 +286,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-path\fR <\fIdir/file path\fR>+"
index 104ff5829e743d46f5551354b7b197083b7ede5f..f676c12f92f12c06ada240f34347b11e144b4272 100644 (file)
@@ -93,7 +93,7 @@
 .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+] >>>
@@ -382,7 +382,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 63788ca303a034e05c839fd35f68295aea7eae61..a60ffe63d57ac7a781048e831e197ce32e29d60d 100644 (file)
@@ -93,7 +93,7 @@
 .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.
@@ -215,10 +215,14 @@ the NFS client -- perhaps by using the UNIX \fBsu\fR command -- he or she
 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.
@@ -229,6 +233,11 @@ system type in the following format:
 .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:
@@ -243,6 +252,18 @@ The following command defines a machine to be a IBM RS/6000 running AIX
 .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
@@ -251,9 +272,14 @@ as the local superuser \f(CWroot\fR.
 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
@@ -263,7 +289,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index f8cb093dfba0ca6871f16683dbd0b7595f9c7109..b455a7f8c6cf45f44340697c3c5960655c5c205a 100644 (file)
@@ -93,7 +93,7 @@
 .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:
@@ -238,12 +238,13 @@ the \fIfs(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 "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"
 
index 6ffb179d619849160304c3f8993f09073512d638..35b1140429129b4d898a13d0af7684057956da8f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -238,7 +238,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3631cd818a68fd5c49ea58cccef8f8b1ceaf54b5..098d12cdde48f649dd3569190099d559919c1c23 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -234,7 +234,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 357ffbb7f421b5bc0423f72aab23e95797f39e6f..a441102d84eef90d760506df7153b0121703b588 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -229,7 +229,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6a8714568e6c1f8b672cc3b740fb65e1b34823b2..ad869624eb7d5e7cc6b3851263e3aab5203632ab 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -246,6 +246,12 @@ name of the local cell by reading the following in order:
 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.
@@ -270,6 +276,27 @@ circumstances). In normal circumstances, the Protection Server allows only
 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.
@@ -342,6 +369,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Header "PRIVILEGE REQUIRED"
 
 .IX Header "SEE ALSO"
index 5e57f4f53fdb32862a9b7bdb77235e11eb52bedb..3a6aeffc645c8a59940fa89a008c40f120990f52 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -224,6 +224,12 @@ 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.
+.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.
@@ -279,7 +285,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -299,6 +305,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index c4abf111bf4cdabbbac7b1cdc3ba7ef379aa6bc0..e16c35e69a693f5376405743c149843ede586b5f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -235,7 +235,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6290a6fa64b69bce6846cbe94ee64caae9b4c529..0e4c8a04bb4724d598abb67fe4105f8c0f2913f0 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -226,6 +226,10 @@ 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.
+.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.
@@ -262,7 +266,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -282,6 +286,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 89e7048142d5dd6f12eb6cf9269bf77cc53da6a5..0cb61e2ef864d84b3820012cb0a507b1be4f3306 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -299,6 +299,10 @@ 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.
+.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.
@@ -351,7 +355,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -385,6 +389,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 2857eda87c8d5165fe272056aea148aa943a0f4b..323f2b8acef8562262c718d3e70cdc1181b0bbde 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -281,6 +282,10 @@ 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.
+.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.
@@ -323,7 +328,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -355,6 +360,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index ddad270a60f0a189aa15a65abc5ffaecde78728b..d767a9a77fed47cd774ce6d18338ff5aa05ef32b 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -229,6 +230,10 @@ 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.
+.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.
@@ -264,7 +269,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -286,6 +291,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 4faa1b0e8a768908a6467afe22804f8433556bbd..cbed8240c31ea81c3def5d01522280fda1d81dbc 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -219,6 +220,10 @@ 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.
+.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.
@@ -369,7 +374,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -385,6 +390,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 6b7920ce391beb3fcc968ba01eb2cf5571b86354..15558ba9fd6aa7c7092c7fb05d1fe8c3a13127b9 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -248,7 +248,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index cb357c1ba759be30fb26c9069e3526ed30b3ac7f..77f00fd6738821160e46240eebf610777c44efcf 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -221,6 +227,10 @@ if one of many operations fails.
 .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.
@@ -271,12 +281,13 @@ the \fIptserver(8)\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_INTERACTIVE 1"
-.IX Name "pts interactive - Enters interactive mode"
+.IX Name "pts_interactive - Enters interactive mode"
 
 .IX Header "NAME"
 
@@ -294,6 +305,8 @@ man page was written by Jason Edgecombe for OpenAFS.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Header "OUTPUT"
 
 .IX Header "EXAMPLES"
index 9ba99f4db64531ec649600985d8589d86afc6591..f4fdcf2a93a90cc0766ea4277496e32d75a9c356 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -213,6 +214,10 @@ 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.
+.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.
@@ -268,7 +273,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -286,6 +291,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 82a76166e0d4b959e7e12090fb7f1ea902141f31..db9bdc8974d1b051fc144033699a837ea94f078f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -214,6 +215,10 @@ 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.
+.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.
@@ -247,7 +252,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -261,6 +266,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index be83bc0f9e8138cea101b7fd66d981517ea9939b..2989a362655be48abcbdcac00bf630fb39cea747 100644 (file)
@@ -93,7 +93,7 @@
 .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.
@@ -219,6 +219,10 @@ 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.
+.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.
@@ -288,7 +292,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -304,6 +308,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 13b0881045def04ff4825d7ce4724933e055bd49..331a9b0eb4144a071f568b614385ea710dc9a5f6 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -227,6 +228,10 @@ 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.
+.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.
@@ -307,7 +312,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -323,6 +328,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 892f641ddffc71cbd04c601f6c421e4a6086cb20..735786755f52050db7d2767b8f2275c4acccd1d7 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -211,6 +212,10 @@ 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.
+.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.
@@ -230,12 +235,13 @@ the \fIpts_interactive(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"
 
@@ -251,6 +257,8 @@ man page was written by Jason Edgecombe for OpenAFS.
 
 .IX Item "\fB\-force\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-noauth\fR"
 
 .IX Header "OUTPUT"
index 26f2ce789ac711978e4ccf82f1be44035c07eae2..3e677f0231e7c856c3e5b1ccd542f1c5d76e2642 100644 (file)
@@ -93,7 +93,7 @@
 .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.
@@ -220,6 +221,10 @@ 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.
+.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.
@@ -267,7 +272,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -287,6 +292,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index adbc0aae62d8b04647437a9bfdeadfee59af0a9e..daee6382c479d1f2ab93b62a1111f01ace117653 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -233,6 +234,10 @@ 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.
+.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.
@@ -273,7 +278,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -293,6 +298,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 8137d9830354ec9d8ad81c61c38db6a0b5fd50d0..05bf3997598aa8348cb100fd0f49e925d8673b09 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -307,6 +308,10 @@ 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.
+.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.
@@ -352,7 +357,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -408,6 +413,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 2e1bfea030ee27cf06a290dd36bbb1a39b829484..e45d330a6e47b36beeff522e700d27f0d71ae831 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -222,6 +222,10 @@ 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.
+.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.
@@ -251,7 +255,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -269,6 +273,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Item "\fB\-force\fR"
 
 .IX Item "\fB\-help\fR"
index 05db0ac84164a83232d63bd888d3d7b85ef2a1a6..4cbc232161b2264cc9e1f3e795348923696b2d96 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -207,7 +207,7 @@ only available on Unix or Linux and when OpenAFS was compiled with the
 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
@@ -218,6 +218,10 @@ or other problems occur, rather than halting execution at the first error.
 .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"
@@ -235,12 +239,13 @@ the \fIpts_interactive(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_SLEEP 1"
-.IX Name "pts sleep - Pauses for a few seconds"
+.IX Name "pts_sleep - Pauses for a few seconds"
 
 .IX Header "NAME"
 
@@ -258,6 +263,8 @@ man page was written by Jason Edgecombe for OpenAFS.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Header "OUTPUT"
 
 .IX Header "EXAMPLES"
index ba3247ae63855d976e0a4f4f240f481af24da3b9..76391ba3f10bdafb4d010be3b435a02fefab7037 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -219,6 +219,10 @@ if one of many operations fails.
 .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.
@@ -242,12 +246,13 @@ the \fIpts_sleep(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_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"
 
@@ -267,6 +272,8 @@ man page was written by Jason Edgecombe for OpenAFS.
 
 .IX Item "\fB\-noauth\fR"
 
+.IX Item "\fB\-localauth\fR"
+
 .IX Header "OUTPUT"
 
 .IX Header "EXAMPLES"
index 61a4e06e78e3b9f26e5b27d897ea3a3dd7398291..62a4ba18b58522aa6c7588bc6c79e2ac182e5eaa 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -299,6 +299,26 @@ provided by the \fB\-noconns\fR flag). Adding other options produces
 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"
@@ -390,6 +410,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "OUTPUT"
 
+.IX Header "EXAMPLES"
+
 .IX Header "PRIVILEGE REQUIRED"
 
 .IX Header "SEE ALSO"
diff --git a/doc/man-pages/man1/symlink.1 b/doc/man-pages/man1/symlink.1
new file mode 100644 (file)
index 0000000..4ee4999
--- /dev/null
@@ -0,0 +1,233 @@
+.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"
+
diff --git a/doc/man-pages/man1/symlink_list.1 b/doc/man-pages/man1/symlink_list.1
new file mode 100644 (file)
index 0000000..8289671
--- /dev/null
@@ -0,0 +1,271 @@
+.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"
+
diff --git a/doc/man-pages/man1/symlink_make.1 b/doc/man-pages/man1/symlink_make.1
new file mode 100644 (file)
index 0000000..b4ccc48
--- /dev/null
@@ -0,0 +1,265 @@
+.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"
+
diff --git a/doc/man-pages/man1/symlink_remove.1 b/doc/man-pages/man1/symlink_remove.1
new file mode 100644 (file)
index 0000000..a8b9140
--- /dev/null
@@ -0,0 +1,259 @@
+.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"
+
index ab63fabb0a82c4247facc54c3954dc68a566efd7..ee809b065b7a5dd3ef9ea09b06fe2ef86c5df9b1 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -232,9 +232,9 @@ None
 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
index 7a8cfdccede165bd85a2540de0beb28bdb942420..e3f06dc0ea7e5081e26c71ff33ecd64c6d587d66 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -253,6 +253,15 @@ Commands to lock and unlock \s-1VLDB\s0 entries: \fBvos lock\fR, \fBvos unlock\f
 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
@@ -368,7 +377,8 @@ the \fIvos_apropos(1)\fR manpage,
 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,
@@ -430,6 +440,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\(bu"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-cell\fR <\fIcell name\fR>"
index 4b9a4c22fbf7af2b7c9980b816ad51aff4e1a55e..ba1ef35d0820a67c5778bdc52a46368235c463c3 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -234,6 +235,13 @@ the \fIvos(1)\fR manpage.
 .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.
@@ -278,7 +286,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -296,6 +304,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
index 653b06714b34f053c80ba89bc492ef6cdf8b6a5f..15fb3dbcb5b5ec21b9349c9b4df973032de2bf2a 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -236,7 +236,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 43181a0a33b8151133a16c5a82178f2a34c41ad8..648d9b9de3210f67559749d5b3e56b323bc5ed96 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -260,7 +260,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6acbc5585b60f4f846156f1f92c0be073d5c66dc..7769e26186c8c8bfe20d353d57884aae81bc9085 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -437,7 +437,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7354aaf94294a88c0e987c1e179a68048ab6d127..4493fdc3984b33c7381465d2858185b44c37380a 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -291,7 +291,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 76f917ad98101be007dfc4ab0ef672dfeaca43ac..76c68f6d53091fd228d760bd3cddb900af6da3f0 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -293,12 +293,13 @@ the \fIvos_syncvldb(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 "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"
 
diff --git a/doc/man-pages/man1/vos_convertROtoRW.1 b/doc/man-pages/man1/vos_convertROtoRW.1
new file mode 100644 (file)
index 0000000..d61abe2
--- /dev/null
@@ -0,0 +1,311 @@
+.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"
+
diff --git a/doc/man-pages/man1/vos_copy.1 b/doc/man-pages/man1/vos_copy.1
new file mode 100644 (file)
index 0000000..7afb470
--- /dev/null
@@ -0,0 +1,358 @@
+.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"
+
index 1119e9ab37f4fc6a8e614010bd5a2b5c3d20db05..09c19710ce34557622146d4aee25604d3d86874f 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -227,6 +227,15 @@ with the \fBfs mkmount\fR command.
 .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
@@ -303,7 +312,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -317,6 +326,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\(bu"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-server\fR <\fIserver name\fR>"
index db29deacb3341858d36a6d962f9b919bc357454e..a94573e340b6d486dbf2b0dca981b84b25b35bb2 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -330,7 +330,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 1639b041fea7347320e4d5bfefbde38cce2deca9..f4f590676fa798147bedad0fce015f4c8990b7ba 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -338,7 +338,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index f66419c366ec635ab6fa7a4331d9b8bd33a12ee7..dec7dac9bf0a3ab9a76944f06a9682b6a598cdbf 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -209,6 +209,15 @@ specified by the \fB\-id\fR argument.
 .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,
@@ -444,7 +453,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -452,6 +461,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-id\fR <\fIvolume name or \s-1ID\s0\fR>"
index 75b4553b1b8688da7d071436f8de95f8d55c5f2f..d943f9cdebe4525a390258b894408fd9059c9793 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -248,7 +248,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b86a7f201880ed0a7bc0ea7ea36b9d5be8d75599..c602be146eb9ed88cd1fb433d0ed70ccd7b56d54 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -262,7 +262,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 686bae5adf5a693926cd5e27d816e245e3b16604..028f3c33fa5a8fb2c763f8249dad06746c5d6203 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -255,7 +255,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b187b924f03b4eb7449a9af0a8940c8b3da2610f..89cfe7479fbc3a7207b0998aea71a7b32825269b 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -374,7 +374,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 5c6e81282f336e097ea4e84cdd9489db047d3a6f..67be0ca2efb23b417a01216f1db5832d3feb7b4a 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -444,7 +444,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 124886afd028d9a0fd78cf4ac6cfa89bb6d8f923..9f9a2be82d6eb4ce15eab3c7e37d893aab186d3e 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -257,7 +257,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3ef12acf9b346b5be78ef3a8518f6d4e567f7c37..4075c662caa217404302c72e7894918ef519c52f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -254,6 +254,15 @@ confirmation of the kill signal:
 .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
@@ -275,6 +284,12 @@ an unambiguous abbreviation). For details, see the \fIvos(1)\fR manpage.
 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.
@@ -314,6 +329,7 @@ superuser \f(CWroot\fR.
 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
@@ -326,7 +342,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -354,6 +370,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
index 2c41bea9457c0f62d6bc9266b20f2345a6ad59f0..2654edbc848bf9e07b9442effa070342aefe8fc6 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>> 
@@ -271,7 +271,7 @@ This man page was created by Steven Jenkins.
 
 .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"
 
index e073182bfe876a0917a57db2768021c1e851d6cb..5c9534c52fda51746bcfff0c5b262b8d14619167 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>> 
@@ -267,7 +267,7 @@ This man page was created by Steven Jenkins.
 
 .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"
 
index 0dc589793bd0c56f8d129831deac049f82eda68d..3a65475b563f7cf43e93173b6fafdfc5075a702c 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -202,6 +202,15 @@ size on either all of the partitions on the indicated file server machine
 (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
@@ -270,7 +279,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
@@ -278,6 +287,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Header "DESCRIPTION"
 
+.IX Header "CAUTIONS"
+
 .IX Header "OPTIONS"
 
 .IX Item "\fB\-server\fR <\fIserver name\fR>"
index 55d49c6a8ed0d5d1c595225c683cf5c6cab7426c..af08ee992ba377e95c0d741b92ffb15127b4938e 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -334,7 +334,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 57fd4029e9c3f63810876ec13c9ff62b7e864eee..59d2b0e06c99618963a5e34cf5bfcba77e2eed8a 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -320,7 +320,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index bfec43ae4c4efe91d04d7144e52381da16412bd4..4f94dcebeff8718b3bb8311183e96671c305a1ce 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -277,7 +277,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 9f5e60591cf6d3f07488a97722f797b60645edde..f7e5aace4f869a3dd87879457f4c6cd35f89bcba 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -263,7 +263,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "VOS_RENAME 1"
-.IX Name "vos rename - Renames a volume"
+.IX Name "vos_rename - Renames a volume"
 
 .IX Header "NAME"
 
index 3ccfab2fef0c4346864b0c6f13df28f343958e25..28d9fbc6bac28f9bf24cf69ac8328ddcfdfea5d1 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -350,7 +350,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 838b7dac9600480f24c7e14e78927737c90237fd..a458c5dc0f5502c99b51f2581bb6c790c6b36b1d 100644 (file)
@@ -93,7 +93,7 @@
 .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>
@@ -289,12 +289,13 @@ the \fIvos_examine(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 "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"
 
index d63de79293585656888d46aa0092df4f753613b1..120673e35b59ac849541ce4ed367278ec849b85e 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -310,7 +310,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 94e86f7ea8a0bac4c65f3191849355e7d44f459b..3134e5c4f2b647a41a1108644851ddf361cc9e08 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -269,7 +269,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index dd01a2dbba67ab0cfc6a08132482fe1de57e47cb..31c7e90993739e4fbaccc069533dacd5db3fbf59 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -291,7 +291,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 32d91a47c157dcbb9ca2d8e01a0a60d5c294d0ff..1e609b70842b2ed95ecde99052d1ee89f6e16b60 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -257,7 +257,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3e2687c7ed72ab7d5acb6d94b0ac1c0f9efda856..3e664fa63aacb589d2811c4666c4049395375cce 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -293,7 +293,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 802dac1ec34f0c76118d5b461e8c0582a1747a14..89716198cb378cee7df668ed46aaa1ff14416da1 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -308,7 +308,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a5f276b2e323e2df791e35c14502e33613f9abd9..276f408a4dbac28d7b029e8adf9c32f4d76f7e7e 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -234,8 +234,9 @@ the \fIafsd(8)\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 "CellAlias 5"
index 0d5fc461b9defe5851e517452f4b481e9c991876..2c3de8581e3bbeccb638521b910c08f2b1115ed3 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -476,12 +476,14 @@ Be sure to set the UDP timeouts on the firewall to be at least twenty
 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
@@ -654,7 +656,11 @@ overrides the default of the \f(CWroot.afs\fR volume. This option is ignored if
 .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.
@@ -709,6 +715,8 @@ the \fIfs_newcell(1)\fR manpage,
 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
index d0050621c987f2765fa1afb8385c9eb2373c1ddf..98f5a4e268872b6ba2d0e44944f4297a669267a3 100644 (file)
@@ -93,7 +93,7 @@
 .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+] >>>
@@ -339,7 +339,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a4fab0bf6bd31e071b7ddad835602582a85bc782..92583775fd04dc1b02cdc3ab55fb2eed6e0bfe68 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -271,7 +271,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0d2a7531acc5d786af9edec480598b09a42c7f08..5a4d714b430e28daa2917060d8bda566a5d4e7c5 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -329,7 +329,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 860e788b1734018a76c76861759f3c75be899d62..6b2808153c152f3285e981d3045462401718ff63 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -268,7 +268,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2a9e8144e4a51400652b278ecc3bf7e149c99dc2..a199087be28058ef1db83570ff7c68461aa13469 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -237,7 +237,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 93c3b3381817270a9ead30de964bc85f5bd127f1..80cbceea7a39b22dbd3b0f834d6ff71e5d03c3a6 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -287,7 +287,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7271cc4164a4ed10579f5714eb649cc1e831bfb0..42ec539470cc41deed27fb48551421e310a78950 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -239,7 +239,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 396613b51097e71e0ffb41b6bb5ac49e64ce892b..a850b99d474922623aa7c9aa193bd9771a8cefb0 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -342,7 +342,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a91c4311539428229f8424c394671cb6b36db344..a6cd05bab0fa645ada0c4d942d8ea92c29eea0fc 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -255,7 +255,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 1ad5e3c34e69fb6f7ec9153bcf6e5b396caeeb57..71dd42015aeedd060b34adcc659ac1e707d82a50 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -254,7 +254,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index f5fe56ab1310e54e328a98cd52c50fbc95ac5e67..dca085e63d47589d222a041b3c3a05aa8ddca6c7 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -246,7 +246,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7d98a80425b27fd5fda8c036b6c74c7f4f9a3d2c..c41d17448f82a6d38ae27d651928cc4153207070 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -421,7 +421,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 8e94f3b2a45edc738c9f1efd127cc12a9068692a..fc3242b4727c4a0613e2296d7733785e0621cb92 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>> 
@@ -644,7 +644,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 844d2448741fbf9abe74c8ba44e4bdb332057dfa..19c3a7acc918478ef2335c2aa3921a4536d664cd 100644 (file)
@@ -93,7 +93,7 @@
 .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] 
@@ -489,7 +489,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index dbefa120f0650f0e11b4452a4c91cae766e51964..22b6b4b03da24237e6003a70d8dde3c37320d61f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -247,7 +247,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 4f8bcdcbada0f47e59b21adf15d806478d754e61..c800707972daaff1cab865b57cc001ddc1107e47 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -271,7 +271,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "backup_interactive 8"
-.IX Name "backup interactive - Enters interactive mode"
+.IX Name "backup_interactive - Enters interactive mode"
 
 .IX Header "NAME"
 
index 76a30cabcff537d95c283bba3f8bfa5e7ef715e2..b9c83c30ff8f08cf65c00f0b8104c434160ba374 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -337,7 +337,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7151e8071ead7c2e94dcb41dc5776a7ca62a11f4..b8a9f313ead4304bb2ffc1fa5a75c03f6a7483f0 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -305,7 +305,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c906384564e151dfd1ef79c6409cb2576f3b629a..bbca4158947b03dfb5f0225e9c4d7e5aa8bdd17e 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -377,7 +377,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 5101a89187a5355dd4f8a084571f81322246e256..067b2d4d0405fe697298efefe9001c03aaffaf96 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -299,7 +299,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0aa793369c8f303bb2a4fd92d0bbe9d7c71fd02e..a43083e733d6bf19a7b77f7dafede1a3366d6067 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -258,7 +258,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 747776e5c64523f389b1f0327d50d4f8e8e7d6d6..47b3511db6031381bbcbe67af067a4f1d54e5951 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -262,7 +262,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0c7ea947c5485d4c5a892f4a7ed659d34a15f622..dab398183faddb6e03889d7e26d8189f44ac33f9 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -230,7 +230,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "backup_quit 8"
-.IX Name "backup quit - Leaves interactive mode"
+.IX Name "backup_quit - Leaves interactive mode"
 
 .IX Header "NAME"
 
index 9624e3fb8d7eba9c5ab0a878e23b408efab55817..d9086ab9069534f7edecb74fb60923ff3bae3864 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -375,7 +375,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 27d42c46bf46a22b2a5cd4003b329596a2e366b8..8a0a1d4d9bb02c3dbc392dc6865e3becf85fd9a5 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -284,7 +284,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2c44ad3b20e19c6777bd723b95907f2f649c63d9..c293c8a9fb056b210fb3bcfdb496134905ccac03 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -311,7 +311,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index d310de1b147859c3527ce60fec71c185e8bcbf1e..eaff40aef5a5b4e01432ae3d72a6354ee0bb90df 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -454,7 +454,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index cec879735b128f9eb3eef32ce78107489404a0dd..6bbfc47dd9329b28f61932e4cc68dee74dd05774 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -316,7 +316,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index cab94f7809032fd1f06a8f478a3f13477d31bf91..601968a522843accb6c68e008e0ecc9b45076ce1 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -309,7 +309,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 80ffdc52654a385233c79b85e80cb3d7ce971d11..6036d269887d1d384aa4be0d222c2bff4effe6df 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -277,7 +277,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index da964e6cbe791c8142612ff67b0b262d7d776942..71f277e412385d505bba572d164a6acd691399b0 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -446,7 +446,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2175d45d479eb8663eca5d2fbadba65b610ff820..aee34a2db2372a68290eb124c7817315c256d932 100644 (file)
@@ -93,7 +93,7 @@
 .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+] >>>
@@ -513,7 +513,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 8c665cc1d3a4856949de81dc15260e8d15915002..7bbffd9b9589cd28ecea978cdc4a029df0ca32cf 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -277,7 +277,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6a6c3ffed04eaf67ae36e7561ed3ab187c3a79e6..3b6b3c19aadeb03e9cb4c4b2143a08518ffe54fe 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -295,7 +295,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index c71192897a68c2bf7f9f58d23aca587af058e4c2..aa3b8a424e3c232f469198d7084261a22a2c4f0b 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -258,7 +258,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 9362711233bf20efcb55ca5721d9201144e28c82..eebc970e36f45fd362e3b3238e7f6f2cc3af74bb 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -236,7 +236,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7003dbb10a639f53e1775928fd170296841a90c5..91cc6b4887344727055a57b9d6e50bb8805d789e 100644 (file)
@@ -93,7 +93,7 @@
 .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 >>>
@@ -496,7 +496,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 89f17134677254f8661682127dfd4d98b845499b..3473e86210de02758ad6d0c94eb811c7377ae1f3 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -261,7 +261,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6fcadfaf69587b0eae69e87c6511691db175603b..a651ca34272a0435757b3207ac7ed1a4a14994e6 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -248,7 +248,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 97e804f6a0a2cafc8c8c5ddd881d3899a6eedabc..8f60bc5617b2f359cca7aa2ef1366faa8c27208c 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -272,7 +272,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index dd1b2ba70ba8cda9d5b84337373478868a6a42ed..bdcb14464e8cfe0464a1387633b9dfc680a11c6d 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -289,7 +289,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 529c5a06be1976667e92398057b3352fc6598f4e..dd297dba023ec0678c7f485854351479a2981455 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -289,7 +289,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0a5dc6e31c018c718af01317a41db4a581f9dba8..af7a8b99f4855e36ed9331dba792a954d2c2c91f 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -248,7 +248,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 38ecee7a02a7af49973c92a900d0ad63f54ae260..4078eb06d146f3cc06202e1ec8e3c0bd91ef9519 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -292,7 +292,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 2bc2b7a62ca622d55f527b9f4a495dd2308256e6..28eb01b7f139d56c51c434d52ca5848bc53d7aff 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -271,7 +271,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index ff1c2a6ac1be378dd3eea736cc2203336a68dc79..17b18a185552fe8dc4161f1f644f5070382f7db9 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -297,7 +297,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index f25bab797910f9e58f61e81f2d8faa43dd20dce3..60cad8d8f37d7399562d9679500940fdd869fb2f 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -256,7 +256,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 752a99b78a08e6416732dfc19d524c61b1c7730e..d6e9a4b31d26e9d4cbabc15b4684b702a942283a 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -284,7 +284,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index fdb9ab48ff41c5e086e4ccf958d141697a7bf87b..f2b0a2bc90c7ee2c93ff37ad667d85ab95d96271 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -268,7 +268,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a5659ab07ef96d590d64100f633f02b3d3f4064a..7f0f73e00a2bddc6cf1448727a60d21c7d201c01 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -264,7 +264,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index cb4feccce0759aaf26a13c9e5e7e24e573dccd2d..012071bed168945c967c0d11c3d1e496daf46801 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -256,7 +256,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 4e5c8799d6f560db6ce7f60d16434f1794795f9b..97ca3c5108abd986c55a925c221264ccf69481e3 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -296,7 +296,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index d075652534f53173ea03e9d78574ee08849fc1f4..0265869c7148e1cef2930bd3833abbb76b33208a 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -452,7 +452,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 1ce9c0931ea0f5195da971ded8e53e6135822cdc..be35e0add156bbc8ead1473bcfeabe0e329cc6cb 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -266,7 +266,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 50dc56c9e2b9097c3791ac39ef100bdf93aa6abe..10b668cac783d53fd046ab04bb291a8ce179f24f 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -280,7 +280,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index ed264492ddd04c5bf4b1e6abecaa8a2236a1b2df..fffaff3089691d2e85159c8e23815d84fac738ef 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -316,7 +316,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 53e9838e4ef0c75a38359b83e9ef836e3e9ee61e..03d1d40528dc4936e6050fb13eb3ce713e14b6ad 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -280,7 +280,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0e8ca9567fdb4b75d9b7b0975db7465f7771ea41..a347072c56354645ebeb866958d71f5bdb3a65ed 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -261,7 +261,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index accaaa61824adaf5d340dcb6cd7c13d681674cbf..940a82d9821a8d6f9bcdebba1bbe31d0846faaaf 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -270,7 +270,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 6b8e265af12798071e8f1b71406aca3dce2f0ed5..63bda2be2d93b9f6cbe051e21b339fa7c9f1d179 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -376,7 +376,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 15e2d932d4739800501a771e064683badbee06a6..2cd82953d0bdc59f94230ea452e1ca34cafb1512 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -262,7 +262,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index e709b5a3096041e2664dcbb0b07bddb84f2f6035..f46a78f15165770f98b68d09e8d3ae45716f8f92 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -275,7 +275,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 864f6282f76e1b07ca41b5b8fa5b430c2fb57a28..3ee15f0655ed5033548a544bfc1426cba3546778 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -270,8 +270,9 @@ the \fIbos_removekey(8)\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 "bos_util 8"
index 25eaaf545464f7e0a3969b38cf3f8554eb36b2c7..df6a389a91d22d2025d0ec94929fa3e8204d6f4b 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -263,6 +263,13 @@ storage. A separate record is kept for each type of \s-1RPC\s0 (FetchFile,
 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.
@@ -325,6 +332,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-enable_process_stats\fR"
 
+.IX Item "\fB\-allow-dotted-principal\fR"
+
 .IX Item "\fB\-help\fR"
 
 .IX Header "EXAMPLES"
index bf6f115f3bc476f1292925071680eaf3c3ee2074..0343ee9acf743286bac1152953f96147e0ffc60c 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -211,7 +212,6 @@ fileserver \- Initializes the File Server component of the fs process
     <<\ [\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
@@ -226,9 +226,9 @@ file server machine as the local superuser \f(CWroot\fR.
 .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
@@ -242,7 +242,7 @@ machine sizes.
 .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)
@@ -321,6 +321,16 @@ the Protection Server every two hours to recompute host CPSs, implying
 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
@@ -330,12 +340,12 @@ full:
 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
@@ -344,6 +354,27 @@ 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.
@@ -433,6 +464,13 @@ Writes a trace of the File Server's operations on Rx packets to the file
 .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
@@ -474,6 +512,22 @@ storage. A separate record is kept for each type of \s-1RPC\s0 (FetchFile,
 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.
@@ -488,9 +542,176 @@ line:
 \&                -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"
@@ -500,7 +721,8 @@ the \fIbos_create(8)\fR manpage,
 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
@@ -578,6 +800,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
@@ -596,10 +820,14 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
index b474b2a0df3cf40512d1c9d824eb8a842286e7f8..b873cef005bf1d704a161dcfd72634f1521758f1 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -237,7 +237,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 671c0683dc65a5e1ef70f0f9c9685bde54124ce7..696e8dd63dd0add5e0c5024b944a06c14dfa96a0 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -231,7 +231,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 529d2ed754d9676973cb3a6461ec8ec78fe37975..41255cafd3fbdc11be94883c6ee6b4f37cf756d4 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -374,7 +374,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 59ed5e29b8131d1fb406fff4fb26b86009ce67ed..947e2dfdff3de9d5090280c22eeccce358784ce2 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -247,7 +247,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3375957c980555fa89c0106c395a8aee79f1c692..3972e0d89a7fff9769fb516a584f8128d4bd81a8 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -274,7 +274,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index daabb624c298a3f0a529ccdadda2f11dcff08117..ee85fa2bf1d18c45e73092ca24c27a6af7f90d56 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -245,7 +245,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 8ea9a45494e584a1b5b88a0106bbd7bd7e59579a..27ad209b2f2fccb46d59a25a6f63294063665f38 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -241,7 +241,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b4491cb603ed07f3691f58aea3b291cf2fd1b200..1f38d17f888f961fb2335673508a042faf6f6fcd 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -238,7 +238,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 7ef8f6caf8bd0de93f37a17d4f90c00f1fbf5e70..3ba5486b6c742636acb811b69b7996dac3e49cc5 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -235,7 +235,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index e2282f177b625472a7d253c8cccec658386abb39..3f9233025c965945662fe6d3c5e55ca024e683ca 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -277,7 +277,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b4181bccebe2af61a3db0aeffd9cc35460069fe7..3739596bbcbe4b0fcb06efc8bbb851268f134caa 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -260,7 +260,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 3ac078df2a8423b606a58775cb4b18b7e605d9b4..58599f5de27b448ac3130ead2023f516635b7e45 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -403,7 +403,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 32d7d84e017794c2b85f31b3212335a3265b3a8e..0386d784ed2f49b4163bb75421947687499034c6 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -225,7 +225,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 615c780cf29c790547cff0a9946f41bc6d6fba51..10916133f9f4ccb6c55ca5fcfa33c60ec9cb8892 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -251,7 +251,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index f7a88a16f15cfb43058ee4b5aafbeb882b8117e7..0f0bc4e6be2e53e59f692ae37ffc5060d7e631fa 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -298,7 +298,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "kas_interactive 8"
-.IX Name "kas interactive - Enters interactive mode"
+.IX Name "kas_interactive - Enters interactive mode"
 
 .IX Header "NAME"
 
index 7dce651641bd4d37f9e22c93e606f83b7ab3080e..317166f6eccd6d697a54f977a73937f798291b34 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -281,7 +281,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a5e9c939d094bf4d61fb01d62a2d05b030e230c4..fee175278486c8f38f3701e0939a1528ba1eeeb7 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -267,7 +267,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index cb200a1f188bc5f1b0cad49a4aa13754acf43725..9ba0dd22e89296bbac6849c5eb19b0b1ce1e3524 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -233,7 +233,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 4569f94e25d4394debe936bc84cf6db48a713a41..12cd68e8d42de0b5dd6e9e8186b15fc8a6402378 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -226,7 +226,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .rn }` ''
 .IX Title "kas_quit 8"
-.IX Name "kas quit - Leaves interactive mode"
+.IX Name "kas_quit - Leaves interactive mode"
 
 .IX Header "NAME"
 
index 6c5671a4ec3d4e537afa822f70499b0ab24efd76..145ff0a120a25cddd2a6b5cd59685ad513bd8cdd 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -496,7 +496,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0b56ce447bdbafcd12023869318e6785fa55d201..22fc926f8d1df3a405c4e41fe4864b41ba6f9aef 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -317,7 +317,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index ef1dc60fb77b509452d242a66ffd92ef5a9db9f5..66b4a3d128f25f69ddccc43048e7386adb603ca5 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -286,7 +286,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 546e88b65df3b935e4f3b12c14997e7eb44bb25b..75559aa2c4177323f07b31b3bc8b2dfafd622ac4 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -253,7 +253,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index a0f95f7db03395230a4619dc7c2c7b5cbe317939..cfe6f8154a29cd7cbf71e3b307e529247c2f953a 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -260,7 +260,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 959b3b5ee6c50101460e82bdb529c2a3d47b23fb..546f75aee9eab2a6da5b5e2705d6bc385205e645 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -192,7 +192,7 @@ ptserver \- Initializes the Protection Server
 .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
@@ -244,6 +244,13 @@ storage. A separate record is kept for each type of \s-1RPC\s0 (FetchFile,
 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.
@@ -302,6 +309,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-enable_process_stats\fR"
 
+.IX Item "\fB\-allow-dotted-principal\fR"
+
 .IX Item "\fB\-help\fR"
 
 .IX Header "EXAMPLES"
diff --git a/doc/man-pages/man8/read_tape.8 b/doc/man-pages/man8/read_tape.8
new file mode 100644 (file)
index 0000000..f476e32
--- /dev/null
@@ -0,0 +1,295 @@
+.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"
+
index f150cb801559e3609c8abebf1b5b6b2aa1441937..76e5529826e2fea3f43bd15784a55721f57c1858 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -450,7 +450,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 148d0ccde35e50ffc596c1130b00d2503e194838..42c913fbb5926bd5c42cfabbcbffeca2a91278da 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -234,7 +234,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index d7bd9665be12c506d781cd621d59d4bdb88656f2..ca60cb3c13a35e27ad940c2648424c81c67abc7c 100644 (file)
@@ -93,7 +93,7 @@
 .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]
@@ -297,7 +297,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index b4afbd622391c2e95f5c43003af4a3e1008525cd..00f9ea610a01c2b4b0a989406377239eea12a833 100644 (file)
@@ -93,7 +93,7 @@
 .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] >>>
@@ -287,7 +287,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index 0f50b323737c2b970b5442966bf365ee1a71ae80..b5fcb53be7c5c48c99fdff5e9f6dc28aebe688e0 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -249,7 +249,7 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .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"
 
index be8bbc74eb51d7a58b0524db1016a7654703a149..7d8ef7a9034652b7d612034e4ed49ef21f791dc8 100644 (file)
@@ -93,7 +93,7 @@
 .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,
@@ -249,6 +250,13 @@ storage. A separate record is kept for each type of \s-1RPC\s0 (FetchFile,
 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.
@@ -299,6 +307,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-enable_process_stats\fR"
 
+.IX Item "\fB\-allow-dotted-principal\fR"
+
 .IX Item "\fB\-help\fR"
 
 .IX Header "EXAMPLES"
index de4fe12756239d0d986db37f120ed894ba6006da..ed387ff15cc5b567ee7cb643f28cc59ee95270f2 100644 (file)
@@ -93,7 +93,7 @@
 .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
@@ -192,7 +192,8 @@ volserver \- Initializes the Volume Server component of the fs process
 .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
@@ -241,6 +242,13 @@ storage. A separate record is kept for each type of \s-1RPC\s0 (FetchFile,
 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.
@@ -292,6 +300,8 @@ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
 
 .IX Item "\fB\-enable_process_stats\fR"
 
+.IX Item "\fB\-allow-dotted-principal\fR"
+
 .IX Item "\fB\-help\fR"
 
 .IX Header "EXAMPLES"
index d315c8f2632ea0d9db546a6508ac1334024a8067..c01cb312ddab6898f6d3bad3f39d7fc677aaa229 100644 (file)
@@ -8,20 +8,33 @@ cmdebug - Reports the status of a host Cache Manager
 <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
 
@@ -31,11 +44,11 @@ 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>>
 
@@ -46,7 +59,7 @@ the standard port 7001 is used, so this option is very rarely needed.
 
 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>
 
@@ -58,6 +71,11 @@ use this option with B<-long>, B<-callbacks>, B<-addrs>, or B<-cache>.
 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
@@ -73,6 +91,15 @@ for the client machine.  The information displayed is essentially the
 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
@@ -86,13 +113,13 @@ Displays all of the locked cache entries on C<client1>:
 
     % 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
 
@@ -100,7 +127,9 @@ None
 
 =head1 SEE ALSO
 
-L<afsd(8)>
+L<afsd(8)>,
+L<CellServDB(5)>,
+L<fs_newcell(1)>
 
 =head1 COPYRIGHT
 
index 75dce00cbe4062c898771ad10373afa0fca791e9..77376243453ea97bd066b203e62d457b2d703cbe 100644 (file)
@@ -27,6 +27,7 @@ L<B<fs setcell>|fs_setcell(1)>,
 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 *
index ba0b3d42b8f023c562fba5a3d4c7a80c433fe8df..b626d4c1ce702de82949da1d4b4cdac4c05a68cc 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs apropos - Displays each help entry containing a keyword string
+fs_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index 71fb179ed6845b2cef4fa2309d2b4ab9bba2829f..9f6996f642618b91fa159893c27c2454c66cb1c2 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs checkservers - Displays the status of server machines
+fs_checkservers - Displays the status of server machines
 
 =head1 SYNOPSIS
 
index 3e41e1eb2b0c374bea67c9a5849cdf8a6b90aa7b..e822b36ca6f58f551373b32e5b148eb73078e4fd 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs checkvolumes - Forces the Cache Manager to update volume information
+fs_checkvolumes - Forces the Cache Manager to update volume information
 
 =head1 SYNOPSIS
 
index 50bf48139d119b6c461d71324c7f5c8903758a6e..538076b4711ac34a2970bae514f5575db88c27dd 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs cleanacl - Remove obsolete entries from an ACL
+fs_cleanacl - Remove obsolete entries from an ACL
 
 =head1 SYNOPSIS
 
index d11549d5e5c5c178dfd9eb75ee6743df209f9a30..6228ec2ffbdb3f3b2c9e74fbdbe78b7414cc4ae1 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 6dc8ad3112dbb9606e76aed97e78410a79065dc1..bb8fbdecd390b59da1c8856f6468552884fdf33e 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 5db1e970d77ea9a8df707bd490cd986e427fbd8d..26219a47dd75105aa0452f3913c47a2f694cd4c3 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index b4d1f31b5f126411d946c33f7bc675633e259f72..ecc3d568b032b53207f7d54f796213f49e76182d 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 3caaecdd571de3b8b24f6ffd255e7a1c90e50744..61ee4dab2e04bbd03ea509682ab9336e193eed9b 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 3fac90f51089b1dc0fc67bd8417b28820144f649..92a621ebc10a59bd9c9f7051524e4bd2c1179bb5 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -58,5 +58,6 @@ L<fs_flushvolume(1)>
 
 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.
index 061c85d08fb5d65bc8ef9a11860966a785aa6818..b7709695a5895ce6a2891d1538ac500cafa6ea8e 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index be98d162c9cbf99d9f38f121b5276d92f3703a9e..c8ac98175ccaef692c360b6d06136ec7dee25bdb 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index dde57a3d79ba1fce776fa0f8d3731fc24d89ee2b..f65be0f0512102854857089806f41e5aaa815557 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 56a14f89235d64a95138b3679b6aa9f3fbbff9f0..9c7cc9c9904e4d65a845e8481daaa64e8615b720 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -69,5 +69,6 @@ L<fs_setacl(1)>
 
 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.
index 1d835d6de542033aec7027720bd1bf29b9207055..f3fb9a0d5ddd58e731fb887daf922ad7f1db8c60 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 692aa57c0d8417f7afa247ed755e21124feebdb5..6dc9abca849e57249af39be2eb1a79a7ec6fd7e5 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs getclientaddrs - Displays the client interfaces to register
+fs_getclientaddrs - Displays the client interfaces to register
 
 =head1 SYNOPSIS
 
index a1402f5aa1f8303ce0e83ee82097a13172ea1a05..a0bf89112c440c545cf53a2b6c1bb30807d452e8 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -73,5 +73,6 @@ L<http://surfvi.com/~ota/fcrypt-paper.txt>.
 
 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.
index e59ef3e15dea5b7329280996e88010b0bab744e6..0bb00c4ef3a7e70e8b6f70deb3a5598265fce5d9 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index a0d73a30bdc4c9d980b077ccf16e698bf1aa73e5..98ae7ba6d7bc5ac100dfbd3aa38d056fa4b026c1 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs help - Displays help for fs commands
+fs_help - Displays help for fs commands
 
 =head1 SYNOPSIS
 
index 35098cc89c291405ce3eb2ee6c34b78e85e1f5a5..8537fa161a27eaf58fe9caa8497e25bc109d7ade 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs listacl - Displays ACLs
+fs_listacl - Displays ACLs
 
 =head1 SYNOPSIS
 
index 225aa42bfed6046587fedcc9db2f3dd81eef3cf8..420c7da8a48b2a331bd740bab4d5776cfb342f3c 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -57,5 +57,6 @@ L<fs_newalias(1)>
 
 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.
index 513cc0867dc08e3a76022d0d811cbb5210a511d7..4725a8ef7916a717b8427ee5a23cfbaf8e6f8763 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 41f9ec9e734f672df17fdb264623fbc822ef985b..117ad5f6cd963e33facfce2d54216a157eb7d179 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs listquota - Displays quota information for a volume
+fs_listquota - Displays quota information for a volume
 
 =head1 SYNOPSIS
 
@@ -28,6 +28,17 @@ examine> command.
 
 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
index 9b238da527cbbb4aa253d0619c331763be90e4df..d79e6e7ede13cc14cf1f6039d57eb77136c8cb8c 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index ee1921d3e39c77ddfd55c632daed8b7d3abd1925..2a47345fe4ed3e8668028ccc8d625b9b858dfcde 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs messages - Sets whether the Cache Manager writes log messages
+fs_messages - Sets whether the Cache Manager writes log messages
 
 =head1 SYNOPSIS
 
diff --git a/doc/man-pages/pod1/fs_minidump.pod b/doc/man-pages/pod1/fs_minidump.pod
new file mode 100644 (file)
index 0000000..9be46e7
--- /dev/null
@@ -0,0 +1,47 @@
+=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.
index 4ec5949f933c0967773cafbbdba5fa013cb1cea3..fd74d9b50fded10b78e139f7be12c112cd156c40 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs mkmount - Creates a mount point for a volume
+fs_mkmount - Creates a mount point for a volume
 
 =head1 SYNOPSIS
 
index 2c56c83ce85f71f7046a266da9fa3f04c4bc4290..d69aa1aec9384e7546f9ec0c5046c5bcaf3eac0f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs newalias - Creates a new alias for a cell
+fs_newalias - Creates a new alias for a cell
 
 =head1 SYNOPSIS
 
@@ -92,5 +92,6 @@ L<fs_listaliases(1)>
 
 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.
index 6e337b48f0620ab15252da0d00aaa4b91e4d6b05..3c56f56824ce62881d88c741400e432f501778a6 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 40b715ff5915f682b2ba03c15a5a9feb2d3d5c93..f6528772c30738e136c58ef8a919f02f4b5db1fa 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -24,6 +24,17 @@ resides on, use the B<fs examine> and B<fs listquota> commands.
 
 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
index 306a22b5dbe6a1ecf6f20bc71b78ede013f98ac0..9a68aa5ff91a53388f6ec9d3f0bd0da3dfd28ee4 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs rmmount - Removes a mount point
+fs_rmmount - Removes a mount point
 
 =head1 SYNOPSIS
 
diff --git a/doc/man-pages/pod1/fs_rxstatpeer.pod b/doc/man-pages/pod1/fs_rxstatpeer.pod
new file mode 100644 (file)
index 0000000..ed9aab0
--- /dev/null
@@ -0,0 +1,68 @@
+=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.
index ec437023eebb606ce9304b2f9c4b92dd186fc14f..fa0562e1ed9c54d750b555569de90e1cc4a4a323 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs setacl - Sets the ACL for a directory
+fs_setacl - Sets the ACL for a directory
 
 =head1 SYNOPSIS
 
index 5c53b5fafec766179631c8f7f0d7c02597845f45..b0aafd7fc9a12da45fae9ea5d415fcf5ac701c83 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs setcachesize - Sets the size of the disk cache
+fs_setcachesize - Sets the size of the disk cache
 
 =head1 SYNOPSIS
 
index 0a0963f60fbbf10980f349557212a8a9ec2f9736..fb4971fae472bca8794d2b3b489de9a94d3a9bc8 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs setcell - Configures permissions for setuid programs from specified cells
+fs_setcell - Configures permissions for setuid programs from specified cells
 
 =head1 SYNOPSIS
 
index e76a05d5a07c1080d5c668951157096a808b1d3f..213d45160aafe6972428aaef9f595dc0eae19d5b 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 76676f167d173b708f538c011ca3d0a29c3bae62..495b415d44e6eefa0ce8e211c59d3d7432510b59 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -94,5 +94,6 @@ L<http://surfvi.com/~ota/fcrypt-paper.txt>.
 
 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.
index 19a0fded0200220175b06146f01e827ade56e49e..f0cd853a759bc935d19cd3a53fa844ddd7e03102 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -29,6 +29,17 @@ setvol> command.
 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
index 2a709147f54af4ab39e877a31d7116d20732a876..9b4c0c3ffd1935365a64b83547dd206bd5fcd643 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 104faa5ef2d726a9b68f22e8298e0011fa4b746d..8540f7b00a6e117a35af5aa32d4252dad7ad3cc1 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -36,6 +36,17 @@ and the B<fs quota> command the percent of quota used.
 
 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
index 82f1682d8673cdb87e533d9115971714c68f38d7..70e804166d29e393dad76a34ee9365f45fa4e020 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fs storebehind - Enables asynchronous writes to the file server
+fs_storebehind - Enables asynchronous writes to the file server
 
 =head1 SYNOPSIS
 
index de6c9abd6f70f11fa97698460e4e0e4cfcef3113..b3026a646ccb6ee669026f11ddd9cb783104e84c 100644 (file)
@@ -1,15 +1,15 @@
 =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>
@@ -19,7 +19,7 @@ B<fs sy> S<<< [B<-n> <I<new sysname>>] >>> [B<-h>]
 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.
@@ -42,10 +42,14 @@ must verify that the correct string is set for the new identity also.
 
 =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>
 
@@ -61,6 +65,10 @@ system type in the following format:
 
    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
@@ -74,6 +82,18 @@ The following command defines a machine to be a IBM RS/6000 running AIX
 
    % 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
@@ -85,9 +105,14 @@ as the local superuser C<root>.
 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
 
index 244f5aa2f7008eed9ed84ba5d120c23756b576e2..308eebc16a783c85f4ea388f09662459d57cf4b4 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -14,18 +14,18 @@ B<fs uuid> [B<-generate>] [B<-help>]
 
 =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
 
@@ -33,21 +33,21 @@ and later will print the uuid.
 
 =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
@@ -65,7 +65,6 @@ Here is the only way to invoke B<fs uuid> under OpenAFS 1.4.5 and later:
    % fs uuid -generate
    New uuid generated.
 
-
 =head1 PRIVILEGE REQUIRED
 
 The issuer must be logged on as the local superuser C<root>.
@@ -78,5 +77,6 @@ L<fs(1)>
 
 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.
index 1665c60ca30d69bdbdbf371d4bdb0e168a26a974..23dfc75bdb36ee3d10ef1310a12c3ee140b2ff56 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 101c111b086af932bea5074df90fde12be596ad4..56fdfb9b33cfab27da374fa46142b6ca5d7b87e1 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index cfd6898275fb11eaa4e2b7827d054a9372d6acc4..a71fa2677bd291ff35a9ed41eebbdf2db195310d 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 47611748532e1843cad8397b1d8013afeb38da90..913a9ff18f9131aec907fbfcd11f199100467a9d 100644 (file)
@@ -91,6 +91,12 @@ The value of the AFSCELL environment variable.
 
 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>
@@ -123,6 +129,29 @@ privileged users to issue commands that change the Protection Database,
 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
index 671c76e6b0816ce645b447c847aae8f4fde5caa0..cefc97099e327b4046db6e8c7edd94ac62c7b48e 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,10 +8,10 @@ pts adduser - Adds a user or machine to a Protection Database group
 <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>
@@ -60,6 +60,14 @@ L<pts(1)>.
 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
index 89653617e62f8c1a3900a7c64c7b1ff3ca5582ef..9e213710e9b90be0e4428c01c6f440934ec06acd 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts apropos - Displays each help entry containing a keyword string
+pts_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index 397ed0c5e3fd81e099363d3f919d1db1c6614e4a..c3de2c398ea5815e699f30b9f0e40745aa74fc28 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts chown - Changes the owner of a Protection Database entry
+pts_chown - Changes the owner of a Protection Database entry
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,10 @@ pts chown - Changes the owner of a Protection Database entry
 <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>
@@ -62,6 +62,12 @@ L<pts(1)>.
 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
index 861efe3593e5c6e3c348fbdb08ded878f268bf20..ed78053b87d53541a89868d2500c240c9db145be 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts creategroup - Creates an (empty) Protection Database group entry
+pts_creategroup - Creates an (empty) Protection Database group entry
 
 =head1 SYNOPSIS
 
@@ -10,15 +10,15 @@ pts creategroup - Creates an (empty) Protection Database group entry
 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>
@@ -154,6 +154,12 @@ L<pts(1)>.
 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
index 1b706daa783fb79026ab83e9f48476311f854f4a..75c8bff147aa62f3fdc7acb6dc8bc3cee05b4036 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,13 +8,14 @@ pts createuser - Creates a user or machine entry in the Protection Database
 <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>
@@ -137,6 +138,12 @@ L<pts(1)>.
 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
index b88274be56f9093c3e25caabe8d82297c7c8bcd5..b06b35b0a9f3d54419ec8e6c3479fb8bd7c21a9b 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts delete - Deletes a Protection Database entry
+pts_delete - Deletes a Protection Database entry
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,11 @@ pts delete - Deletes a Protection Database entry
 <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>
@@ -71,6 +72,12 @@ L<pts(1)>.
 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
index 0a7572756a227a9afc67010b512e6d5a833cd249..6921d979b5dec4eac9924747d891694b56517fc4 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts examine - Displays a Protection Database entry
+pts_examine - Displays a Protection Database entry
 
 =head1 SYNOPSIS
 
@@ -8,16 +8,17 @@ pts examine - Displays a Protection Database entry
 <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>
@@ -51,6 +52,12 @@ L<pts(1)>.
 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
index 970c22f093d08955bb640b418b3c9ea3d5eccdc2..6a26098fa9a765c55b5699726059ecf923ebd1ee 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts help - Displays help for pts commands
+pts_help - Displays help for pts commands
 
 =head1 SYNOPSIS
 
index 9d6257246470069c63ac6bb8ae6890584a6bbf7a..6c8a641275b5e1da7ab65922f33eb4991bfa8a82 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts interactive - Enters interactive mode
+pts_interactive - Enters interactive mode
 
 =head1 SYNOPSIS
 
@@ -8,7 +8,7 @@ pts interactive - Enters interactive mode
 <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>]
 
@@ -20,6 +20,12 @@ 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
@@ -56,6 +62,12 @@ if one of many operations fails.
 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
@@ -115,5 +127,6 @@ L<ptserver(8)>
 
 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.
index 10c8b69039af9e3521e6bee93299bebb88ade79c..79d53c13a210df5d2e84379db5dd1f9447cfed89 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,9 +8,10 @@ pts listentries - Displays all users or groups in the Protection Database
 <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>
@@ -47,6 +48,12 @@ L<pts(1)>.
 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
index 110dc200c1c4d782efc1389bb46cb8cd7ed8f227..4fec04e46a8435f71636f991e681367bf14314bf 100644 (file)
@@ -1,15 +1,16 @@
 =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>
@@ -44,6 +45,12 @@ L<pts(1)>.
 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
index 2d3de80c8b2793dcb28ddfdca5ef5d3e20e7eee0..5baf3a618e8461c7cfa189d1e524dbf75420b469 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,10 +8,10 @@ pts listowned - Show the Protection Database groups owned by a user or group
 <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>
@@ -51,6 +51,12 @@ L<pts(1)>.
 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
index 36455ebefe7b13cd91997d5e6b69a50c48bf4941..e5cbdc48e662c5448d8eb6c28910e0bdc6069757 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,16 +8,17 @@ pts membership - Displays the membership list for a user or group
 <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>
@@ -59,6 +60,12 @@ L<pts(1)>.
 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
index 4f8abfa2ea8a75155ccf59217297af75995fef86..a7a25107eaefb1ce433131621075d2c7c332751b 100644 (file)
@@ -1,15 +1,16 @@
 =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>
@@ -44,6 +45,12 @@ L<pts(1)>.
 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
@@ -72,5 +79,6 @@ L<pts_interactive(1)>
 
 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.
index 7012d6066d04627b2a6c1edc4955234a226ce162..f60a66400cf2a4216356fa4c05fcdfa7974b777b 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts removeuser - Removes a user from a Protection Database group
+pts_removeuser - Removes a user from a Protection Database group
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,11 @@ pts removeuser - Removes a user from a Protection Database group
 <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>
@@ -56,6 +57,12 @@ L<pts(1)>.
 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
index 72c8ffb938c896451fe193b2d928ec3e378601c8..3d461e8181919abf3ba93dc25ebc1558ebba1492 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts rename - Changes the name of a Protection Database entry
+pts_rename - Changes the name of a Protection Database entry
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,11 @@ pts rename - Changes the name of a Protection Database entry
 <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>
@@ -69,6 +70,12 @@ L<pts(1)>.
 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
index 76050c9cef3245622bf6569c395f5a182af094cd..ac7bf0edd01f5880bf4ab71e03ac75aa3e2994db 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -10,12 +10,13 @@ pts setfields - Sets privacy flags or quota for a Protection Database entry
 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>
@@ -203,6 +204,12 @@ L<pts(1)>.
 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
index 9a5bce5c51c38463cf94533cb8287269c9f680c0..97498480b113dbebc23f7b4975cc25ef17f9bfd5 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -8,10 +8,10 @@ pts setmax - Sets the value of the max group id or max user id counter
 <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>
@@ -56,6 +56,12 @@ L<pts(1)>.
 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
index 23db3b547afa645c0dd4a6625a291fb1f0bc90bb..4c009081eb8a472d62df0013ad8eaefc981e4013 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts sleep - Pauses for a few seconds
+pts_sleep - Pauses for a few seconds
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,10 @@ pts sleep - Pauses for a few seconds
 <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>
@@ -33,7 +33,7 @@ it is always available.
 
 =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
@@ -53,6 +53,12 @@ or other problems occur, rather than halting execution at the first error.
 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
@@ -77,5 +83,6 @@ L<pts_interactive(1)>
 
 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.
index 0992690ad2b4e9ceb16d2a83f574c1753890a577..ccaffd69f135911ae11dacc9c683c8b06f2afb44 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-pts source - Read pts commands from a file
+pts_source - Read pts commands from a file
 
 =head1 SYNOPSIS
 
@@ -8,10 +8,10 @@ pts source - Read pts commands from a file
 <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>
@@ -56,6 +56,12 @@ if one of many operations fails.
 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
@@ -86,5 +92,6 @@ L<pts_sleep(1)>
 
 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.
index 9370448a242a218e0a9207510bc1040ae64dec59..3a023cee6319437bc6e75218b9f066a3f4bba329 100644 (file)
@@ -183,6 +183,25 @@ additional information as described in L<OPTIONS>. The output is intended
 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.
diff --git a/doc/man-pages/pod1/symlink.pod b/doc/man-pages/pod1/symlink.pod
new file mode 100644 (file)
index 0000000..a024edb
--- /dev/null
@@ -0,0 +1,41 @@
+=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.
diff --git a/doc/man-pages/pod1/symlink_list.pod b/doc/man-pages/pod1/symlink_list.pod
new file mode 100644 (file)
index 0000000..8b21fc8
--- /dev/null
@@ -0,0 +1,80 @@
+=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.
diff --git a/doc/man-pages/pod1/symlink_make.pod b/doc/man-pages/pod1/symlink_make.pod
new file mode 100644 (file)
index 0000000..f04a708
--- /dev/null
@@ -0,0 +1,77 @@
+=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.
diff --git a/doc/man-pages/pod1/symlink_remove.pod b/doc/man-pages/pod1/symlink_remove.pod
new file mode 100644 (file)
index 0000000..bec9a92
--- /dev/null
@@ -0,0 +1,71 @@
+=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.
index 70e41dcbd004556c0f0b93e5d77d109811488dd6..7a094dbf1dc932fc23f10fa8f9514d79d29693c7 100644 (file)
@@ -60,9 +60,9 @@ None
 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
 
index d81af1031b8bf337a463202f8e3f732ccede38de..d09c7bf8e9234a5bd92867f05fb0cf5fe87b7d82 100644 (file)
@@ -94,6 +94,17 @@ Commands to obtain help: B<vos apropos> and B<vos help>.
 
 =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
@@ -237,7 +248,8 @@ L<vos_apropos(1)>,
 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)>,
index ac36e8fa5c554f683f5f71f423e6cd0804c5cb43..ab10c1aaea60193f126a1d3d7f057ffa1288663f 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -9,13 +9,14 @@ vos addsite - Adds a read-only site definition to a volume's VLDB entry
 
 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>
@@ -68,6 +69,15 @@ L<vos(1)>.
 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
index dce7bf25b534280c90062ed573794dedce708ede..a0cce8fce0c568e44c1de4f943ee5fb29ca38fd1 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos apropos - Displays each help entry containing a keyword string
+vos_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index 7de3df8d94438b6ac578ca2da933c2248a09e3fc..19312dbe7bd74bf276f3da2512e1dab0fd79ca2f 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index e430f6d2633a5dd181d011e1c84cd61123817b87..8a12c5a61b2d5dfe46b26defac4c8b7c10f45eea 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 81a703fde3b79d9340d6863a464dd5629b30a487..02d9fb816f69c28a89dd47aa2037fbc0db9e57c4 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index ff40f92ff64a5c14be8f26deae47fe14f962045e..a4b02860b200634fcc5f6482da1606c66fb5c0b8 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos changeloc - Change a volume's entry in the VLDB
+vos_changeloc - Change a volume's entry in the VLDB
 
 =head1 SYNOPSIS
 
@@ -146,5 +146,6 @@ L<vos_syncvldb(1)>
 
 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.
diff --git a/doc/man-pages/pod1/vos_convertROtoRW.pod b/doc/man-pages/pod1/vos_convertROtoRW.pod
new file mode 100644 (file)
index 0000000..1754781
--- /dev/null
@@ -0,0 +1,123 @@
+=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.
diff --git a/doc/man-pages/pod1/vos_copy.pod b/doc/man-pages/pod1/vos_copy.pod
new file mode 100644 (file)
index 0000000..a9cbfe6
--- /dev/null
@@ -0,0 +1,170 @@
+=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.
index 7c2b5ed46275b693f8b76df95dad3fdc7739ac82..2906205637b00e302ef831526eea3777b9987eae 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -60,6 +60,17 @@ with the B<fs mkmount> command.
 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
index 854a22a208b5a9505cf3e4009dca4a7a7140bdba..b28bb8c3c12c15a3ae8533a750cbeee6e8816dda 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos delentry - Removes a volume entry from the VLDB.
+vos_delentry - Removes a volume entry from the VLDB.
 
 =head1 SYNOPSIS
 
index 0686f732c11622dd56c5f9950513780c3b697aae..8fdbc7110cef2a7b1fc97710ac3a7ab12e86a9dc 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index bfc0ae5be861705f5ce6eac50287edeba96059cf..d1cebcae55e7ef50cc45390625961b947ea0457b 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -32,6 +32,17 @@ specified by the B<-id> argument.
 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
index 9eda9c52b4fb565523577914531672f24aef6d76..cb51b2dd5aca814c7fee9ff689197496354e1b67 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos help - Displays help for vos commands
+vos_help - Displays help for vos commands
 
 =head1 SYNOPSIS
 
index 57ea78bdf99860368d46994810cf91e746807449..3e4fbae61cb9ab72e0f49dacce78a03cfa66d280 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos listaddrs - Displays all VLDB server entries
+vos_listaddrs - Displays all VLDB server entries
 
 =head1 SYNOPSIS
 
index 1498e9727b15d2cf5a185f2c941ebfd216f5840b..e924bd55ffef8db5a0166f171c75d79c53771773 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 968437666404d065fc010447d4f3ae911c210a92..f9947c62b2a2683f349be9da1180f7b2f74cb006 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos listvldb - Displays a volume's VLDB entry
+vos_listvldb - Displays a volume's VLDB entry
 
 =head1 SYNOPSIS
 
index 619c9d2ed09d45e659699e91655e1b73ff235f3e..32d57d57d3147119e3a8502aed2ec2ce66cb0694 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos listvol - Displays information from a volume header
+vos_listvol - Displays information from a volume header
 
 =head1 SYNOPSIS
 
index efcaa15654aa3ccf402dbdb60dc95f9a2cf9d2b3..ef84a5ff193ff579f0d91a86feb65deb2e731212 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos lock - Locks a VLDB volume entry
+vos_lock - Locks a VLDB volume entry
 
 =head1 SYNOPSIS
 
index 4043481e9c6a08efe467e1894a39091983cf527a..3acb3545ab33698469aa72bf469369a748635eee 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos move - Moves a read/write volume to another site
+vos_move - Moves a read/write volume to another site
 
 =head1 SYNOPSIS
 
@@ -12,14 +12,14 @@ B<vos move> S<<< B<-id> <I<volume name or ID>> >>>
     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
@@ -86,6 +86,15 @@ confirmation of the kill signal:
 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
@@ -120,6 +129,14 @@ Names the partition to which to move the volume. Provide the full
 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
@@ -174,6 +191,7 @@ superuser C<root>.
 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)>
index fd134e81bfb36ce60c223d2c215d3cdb018f3b0c..b00a039a6f5024e7d0040accd78d06f325d79c3e 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos offline - Takes a volume offline
+vos_offline - Takes a volume offline
 
 =head1 SYNOPSIS
 
index 409af7dcd70076adc483a61a0ead6018661182b0..e430a188dfcd8fa1c8127af2cb667007c29baa33 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos online - Brings a volume online
+vos_online - Brings a volume online
 
 =head1 SYNOPSIS
 
index 2f4959dc6f6bc36e619086b84f40ca2f98765a13..d3b436c456a4a01790e0be360e0b5c61bf8ee7ef 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
@@ -25,6 +25,17 @@ size on either all of the partitions on the indicated file server machine
 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
index 54b5d7057478a69f45cc1098b6574b455858e670..37a4345ff9782d60980a7cd657fb102882ed6ced 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index a776219b88288eadffcc530e0ff0cfb4fca19390..820006eddaea150387b30008a67bcef8ad5fb325 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos remove - Removes a volume from a site
+vos_remove - Removes a volume from a site
 
 =head1 SYNOPSIS
 
index a2829bd440c62bff5190457b81913ec6a89c344d..e455f8eed1bc2048bfa8b9d7cf3483ca4a0a6b28 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 0939facf490f87e60506cd385940bd14098f099c..5480acaf06df3396303d33792b2ea268edbb5513 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos rename - Renames a volume
+vos_rename - Renames a volume
 
 =head1 SYNOPSIS
 
index 98162e3ed0eb382ae1d809705c68191a61fb43fd..e067b460c428685b65f30b599915d906e2593a15 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 8465d9ff9651994f6dbc3cd8d1fcb008c9ed5b57..9bcf6f0f9e386db2e755628fd08552568651296f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos size - Computes the size of a volume dump
+vos_size - Computes the size of a volume dump
 
 =head1 SYNOPSIS
 
@@ -143,5 +143,6 @@ L<vos_examine(1)>
 
 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.
index 8902bf1db0cc20eaccae279a3687e7c65aa84ee1..61bacef3a94f98fea7b72ebb95043e87c93bdf05 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos status - Reports a Volume Server's status
+vos_status - Reports a Volume Server's status
 
 =head1 SYNOPSIS
 
index e6c26b7b93a08dd5c396ed4e937b6c77f484d9f1..1367c3482332af4b39c23093a28b1cd29e7a4772 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos syncserv - Verifies VLDB entries that mention a specified site
+vos_syncserv - Verifies VLDB entries that mention a specified site
 
 =head1 SYNOPSIS
 
index 6b2024aa3584fe175692ffc70ef9de6d35178c7b..ae3b4a4539a8e63569e085d7dc55a23dd6b50b5d 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 91d86fd080df63d31c60981a696a83fac61fb3fa..47b856f7a3116aef90d8aa57eba8be84b1f9de6f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos unlock - Unlocks a single VLDB entry
+vos_unlock - Unlocks a single VLDB entry
 
 =head1 SYNOPSIS
 
index f58249ef8c9a54db44498e94a8de779209032a95..5c9f8763f7c9db3918984d57bcc96cecac86aa2a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-vos unlockvldb - Unlocks several locked VLDB entries
+vos_unlockvldb - Unlocks several locked VLDB entries
 
 =head1 SYNOPSIS
 
index 3ee6ea86a3eafc4cb59d323bf8e0af13b93b3d1f..7a2ed431f763bc85704fb4c213234e277254a99f 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 5fb3eb05106d900ee4b4863f4da7f5c90ca0d844..d75ad4a900ff1b55fe583676bb1308555eacc8e5 100644 (file)
@@ -51,5 +51,6 @@ L<afsd(8)>
 
 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.
index 4c92513e27d54294a4624e4210f868c6b13eae96..8d0f54ebb8232a616798e91c1ddd97989688f334 100644 (file)
@@ -393,12 +393,14 @@ minutes for the best callback performance.
 
 =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>
 
@@ -627,7 +629,11 @@ Bind the Rx socket (one interface only).
 
 =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>
 
@@ -701,6 +707,8 @@ L<afs_cache(5)>,
 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.
index d694b8c194495c8d35f61f1064e1a1c66b26b9fd..e9a522a5ef6944c94fc4d212bdcb54460092ddfb 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup adddump - Defines a dump level in the dump hierarchy
+backup_adddump - Defines a dump level in the dump hierarchy
 
 =head1 SYNOPSIS
 
index f48bab8c48fd375f09ddf1365658e8cce9402617..aa3e26a2f817b257d6c1e1937e4a62c95b889c82 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 9bbb7553856391dafdb6bc3594bf2666552446ba..ccf1d6f3cad2c3ab122dc9afadde0e1ab38fd429 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup addvolentry - Defines a volume entry in a volume set
+backup_addvolentry - Defines a volume entry in a volume set
 
 =head1 SYNOPSIS
 
index 1ff05cf5f87ce9544e30cff4ebaada925629ee15..000aaf201a127ab9d08a92a0f444eb5fca44074b 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup addvolset - Creates a new (empty) volume set
+backup_addvolset - Creates a new (empty) volume set
 
 =head1 SYNOPSIS
 
index f13dd9ce3d33fd015310d63cb3d4988183ddffb4..060731449a2270aa6c244e1b5b3d448d7331347a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup apropos - Displays each help entry containing a keyword string
+backup_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index 53359b911e961a1ccf0956434554e9a8b58b1bdf..0ec5db3c92e6a0322d6f7bcea6807fb879c02523 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup dbverify - Checks the integrity of the Backup Database
+backup_dbverify - Checks the integrity of the Backup Database
 
 =head1 SYNOPSIS
 
index d9de9ee9df06663eb821674c710803805da235fe..2c9643a65eaa4f7e00f0d8b22b467b3522d1dfe8 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup deldump - Deletes a dump level from the Backup Database
+backup_deldump - Deletes a dump level from the Backup Database
 
 =head1 SYNOPSIS
 
index a8688b9c08d0fed6f2a85c79a320bafe32fad334..adc78e8205769f61c47e7f71500ca1ab99598fb6 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 55be623be20821180fc7b495dc72796813128285..fac5dbec86618b0ed3eb3860ada5b436784a9b3b 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index c95b691fb9a22027e33d2f81b81671744f7fe311..cb50628027353c0456321e938cf1aeea48eb47e1 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup delvolentry - Deletes a volume entry from a volume set
+backup_delvolentry - Deletes a volume entry from a volume set
 
 =head1 SYNOPSIS
 
index ba273e6e63418f193b2b2b9d3e8505dda6059a91..50939ff04fc72a215bfa7eb7b534aa79f3840b40 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 205493d35aa25c0784ad7b8987b546b93847f1e5..30f641301167ffee2bb0d0c4a920a3cd8188d078 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup diskrestore - Restores the entire contents of a partition
+backup_diskrestore - Restores the entire contents of a partition
 
 =head1 SYNOPSIS
 
index b761f29e156055787325fc879bd44a312fb6328a..aa1c95261c20f7dbf0dfa19b49106cb45ee6dc08 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 36aba68a0e5b0903f1864bb5959227c5f9df3b10..ee12d16c568c39124b433bdfd2e5b65b063028d0 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup dumpinfo - Displays a dump record from the Backup Database
+backup_dumpinfo - Displays a dump record from the Backup Database
 
 =head1 SYNOPSIS
 
index 081a29da23275589b08d17f7d4610dbd698fcee0..58e18de6870f95d77e1d192cbcbd98343d887b6a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup help - Displays help for backup commands
+backup_help - Displays help for backup commands
 
 =head1 SYNOPSIS
 
index 44b4db5ea4ec35dac8167db4159d218c7c1d60e9..16ee3c0216ae2db58ebb020751a2350c9a7bf85c 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup interactive - Enters interactive mode
+backup_interactive - Enters interactive mode
 
 =head1 SYNOPSIS
 
index 77adb3d2a8571bf47f320ad53ebf9f149d11046b..89e5a17f74146ae46a1ffbf16ce65f620d48d563 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup jobs - Lists pending and running operations in interactive mode
+backup_jobs - Lists pending and running operations in interactive mode
 
 =head1 SYNOPSIS
 
index 08ae8f3a42b0ca4f4c081fa253dc013ae208f8ea..8cc1effc6a370a2cdeed53088543bdd60d5e475d 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup kill - Terminates a pending or running operation
+backup_kill - Terminates a pending or running operation
 
 =head1 SYNOPSIS
 
index bf06ffe94637f626967796be03a5ac93e46e5e1e..8e9655d6bec073bd6fb0e6ec381cc722d9ea7ee6 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup labeltape - Creates the magnetic label on a tape
+backup_labeltape - Creates the magnetic label on a tape
 
 =head1 SYNOPSIS
 
index c7f7aa867da1f1a69bfd5154c98dfcb3ef5210a9..508b04327bf18d45ea27ab647feeefa9d9d95401 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup listdumps - Displays the dump hierarchy from the Backup Database
+backup_listdumps - Displays the dump hierarchy from the Backup Database
 
 =head1 SYNOPSIS
 
index c1213af2be5964a2d7070e13d3015e49f945d290..103b2885216009002d7041e856f9cbaf04b4a1ee 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup listhosts - Lists Tape Coordinators registered in the Backup Database
+backup_listhosts - Lists Tape Coordinators registered in the Backup Database
 
 =head1 SYNOPSIS
 
index 92ae5fc940cad1e32118796408ae3632c9af55c5..ffbd288a469db178750c125285bc39b14f2b36ed 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup listvolsets - Lists volume set entries from the Backup Database
+backup_listvolsets - Lists volume set entries from the Backup Database
 
 =head1 SYNOPSIS
 
index e0149426b50ba262b04bd8e19366ca44c86d4976..1c356f902ab133dfe8f258bf1d69348eb538add5 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup quit - Leaves interactive mode
+backup_quit - Leaves interactive mode
 
 =head1 SYNOPSIS
 
index 55ba261fe1fecfc8ebedf610f6aff58aa754c42c..a317c6b7d668c844c209a26508c3e1f06a00c4cc 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup readlabel - Reads and displays a tape's label
+backup_readlabel - Reads and displays a tape's label
 
 =head1 SYNOPSIS
 
index ba941c6f1505f2b1e32d9e7fddeff3d9ff482e41..68a2fa2e4f32abdb750b708467f6d30088f9b43b 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup restoredb - Restores a saved copy of the Backup Database
+backup_restoredb - Restores a saved copy of the Backup Database
 
 =head1 SYNOPSIS
 
index 6c3d3e03bbd8a495b2dc31b32c22658500466c0b..15ee2215f14d7a40e47b51c778363ef3aa1db55c 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup savedb - Creates a saved copy of the Backup Database
+backup_savedb - Creates a saved copy of the Backup Database
 
 =head1 SYNOPSIS
 
index ee99d1bb8d393d3fc32bdf9e1fc17a687c13e747..a5e1e54edb165cfe507262b2f2ea47b103952f87 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup scantape - Extracts dump information from a tape
+backup_scantape - Extracts dump information from a tape
 
 =head1 SYNOPSIS
 
index fc06956015d2db9d3ffc86678f22c836b9bd7644..7f741419e673bd81d99b30e5abd8a7ce270f2521 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup setexp - Sets the expiration date for existing dump levels.
+backup_setexp - Sets the expiration date for existing dump levels.
 
 =head1 SYNOPSIS
 
index 9ae180eba3d4676d15a5c30ca64bd7489703288a..ba8a5ee5e0f13af75a5c06ac6b0d68ef0aaf8971 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup status - Reports a Tape Coordinator's status
+backup_status - Reports a Tape Coordinator's status
 
 =head1 SYNOPSIS
 
index c3ac9d3921781019b45d0f34bf09cf2572fd3f3c..d1a55e8dfc1a9f9d379209a0a07a25792100b53b 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 4e27a8533617a911d7ed80619e44a76450986301..e52896b3baaa3b6e4e48575caf6836f90c7bffe4 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup volrestore - Restores one or more volumes
+backup_volrestore - Restores one or more volumes
 
 =head1 SYNOPSIS
 
index f4afd266a2cdce222ddbf7f80096f2b7003d8b37..fcac3474010fd2fcd9917e7dd151cb960b110e2a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-backup volsetrestore - Restores all volumes in a volume set
+backup_volsetrestore - Restores all volumes in a volume set
 
 =head1 SYNOPSIS
 
index f5888f52c1014ea3a9729444e3472aa2eca2713e..00c540ce94e0ac65b7df36bdda99bd82dd819dc8 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 180618796070d3822df751782442bf7ec9dd671f..5f51b2e2312a26f8f8e6bb07d0d797e72cf85071 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 4ccaab01fbfadf148d0306a3a283d7a8b2e4ae42..148ee8d3200a346429063bf24221063a25ee68c9 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos adduser - Adds a privileged user to the UserList file
+bos_adduser - Adds a privileged user to the UserList file
 
 =head1 SYNOPSIS
 
index 916a3749de2b94ea47bb090ea7b61619e5085e61..cea38e355e1d3d7f3b8738d56e5af06b6b66f807 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos apropos - Displays each help entry containing a keyword string
+bos_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index ae5c33d5b050dbb88bd349d026ca3124476170dd..d4ec886d7cee3bf4c8edc7f54c7f1b8c7a65412a 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index b73bcb1e3ad08be133140fd5e48ee14e6786ea6c..9b4d558182fdb73644d1daf59f3cceb69a062416 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos delete - Deletes a server process from the BosConfig file
+bos_delete - Deletes a server process from the BosConfig file
 
 =head1 SYNOPSIS
 
index 0cb71941c365c91948e39469f8b27b9310f092d4..4cdbe4e63b22bf3d33bf561edb0a718ab4f7ece2 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos exec - Executes a command on a remote server machine
+bos_exec - Executes a command on a remote server machine
 
 =head1 SYNOPSIS
 
index d33398e0377f596cded22edcf51a54d1b1b0f7d7..f451778c81662eee16d46356c5042f999a0bc934 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index bc986e9b63dafc38fadb103f2cb0840555e93437..75d52eb3ae27ccddf49233ebc3f8e752b81b7a73 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos getlog - Prints a server process's log file
+bos_getlog - Prints a server process's log file
 
 =head1 SYNOPSIS
 
index 51ff8115ac3f0390b0fdbd3ea8a51e68abc1a6f1..11de5daa60ad881bfe37e2b096a5d6d7f3def1ce 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos getrestart - Displays the automatic restart times for server processes
+bos_getrestart - Displays the automatic restart times for server processes
 
 =head1 SYNOPSIS
 
index 74478c253a30d0e83e38bb9c6921b8bb3546a703..a338c2b44747cb866f8fd909c99cb37164a0839e 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos help - Displays help for bos commands
+bos_help - Displays help for bos commands
 
 =head1 SYNOPSIS
 
index 08c16d52ad5cf1fecef443fdab7fe73d18874aab..3b1307b00160b6cba193e8b8cc663241b06397e5 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos install - Installs a new version of a binary file
+bos_install - Installs a new version of a binary file
 
 =head1 SYNOPSIS
 
index f4d3f06bddb0aa3bc557784efbf73b26e4938d11..98617074252249334cfd2ff5a58d12b68744039a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos listhosts - Displays the contents of the CellServDB file
+bos_listhosts - Displays the contents of the CellServDB file
 
 =head1 SYNOPSIS
 
index eac34fcac0c8f5cbd10035ede48ac467d199bd50..772f59b0c6b84994444bf46d0ecac643d7e27644 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 6b0c1f9f8fa0fc585f2abc5a2dcbde834c009912..8f3796851a566e14bd2d544f3c0308a3f800417d 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos listusers - Lists the privileged users from the UserList file
+bos_listusers - Lists the privileged users from the UserList file
 
 =head1 SYNOPSIS
 
index 0f59596244cf6ac3f1ce0aa0f113f2061ec2dc2d..b85f96f06c4478fe3dbb59785838e3fa3d734fcb 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 1cde17983062a6637845b61731719dcc2d0b95be..eb1410d539d2f9c72eff31a59a067f96fd76a152 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index db81c4f0a9abec0bb852cdabffa0b2bf7c3021df..7369fadbccacfae20b38ef13c5c40cd5abcaaaa3 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index b3f94414d80496536a0e9da70808345007988de8..08d9bb277ce35f612209a1e449cb7a45d23a8fee 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos removeuser - Removes a privileged user from the UserList file
+bos_removeuser - Removes a privileged user from the UserList file
 
 =head1 SYNOPSIS
 
index 4dc17b16672ef8774ddf939f77ae76cf2fa03d03..24e66a9d7a70f250f90eb808915b1754e456bef2 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos restart - Restarts a server process
+bos_restart - Restarts a server process
 
 =head1 SYNOPSIS
 
index c8fc4b32d69e9b3157e7b2b25260976b1b843e32..8d497b1655cde192e2f543abf2537f550c44616e 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 6f89b7859efead47533d90223ea1bad01b3c4a5e..4ccd9623bca7fcddcc3a08125523788c3b9b433f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos setauth - Sets authorization checking requirements for all server processes
+bos_setauth - Sets authorization checking requirements for all server processes
 
 =head1 SYNOPSIS
 
index 6f727dafa9cc28bb906a84aa283f6b4038a66899..6d1faefdda34101f143b440693510520404052df 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 6110fe8f554d42688abcd280d804caadb3d8b4df..27c18e9e3e8043d1cb705c44cf2e6239883917bb 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos setrestart - Sets when the BOS Server restarts processes
+bos_setrestart - Sets when the BOS Server restarts processes
 
 =head1 SYNOPSIS
 
index 9f30af9ef26bdb92927e5b79a8a84d6e3466b7f9..7ccfd6faebdaf5bfa7a7f19b3ff38cfe6437616f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos shutdown - Stops a process without changing its status flag
+bos_shutdown - Stops a process without changing its status flag
 
 =head1 SYNOPSIS
 
index fce2944d8314104d3787fc9bfd7e4a9d6842898f..4be521b52f798bfd8fade71f6376304025a76799 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos start - Starts a process after setting its status flag
+bos_start - Starts a process after setting its status flag
 
 =head1 SYNOPSIS
 
index ac10c75b7059404ed3948f2d48d36d8bb57dcb40..7e7a16cf00ef5a1a252ef96e7457cc43b6c4730f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos startup - Starts a process without changing its status flag
+bos_startup - Starts a process without changing its status flag
 
 =head1 SYNOPSIS
 
index 018d58939b2ff5454ddaa8f69d8f515f7b3f7fc7..da9088d26eb8ccd9cae51eba6b58fcb73e125b0d 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos status - Displays the status of server processes
+bos_status - Displays the status of server processes
 
 =head1 SYNOPSIS
 
index da196f22eb00e30a883ff056f8ad1243b342feac..354603c52afad3c118302715f6b9e85a1bd0728d 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-bos stop - Stops a process after changing its status flag
+bos_stop - Stops a process after changing its status flag
 
 =head1 SYNOPSIS
 
index 58ed8502dd533a7a0aee359a1513f7154579bfdd..fe20ba500311bc7034cf80213bd24a6bed5974e5 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index a26fcccede875190c64103a89ef3ed37a26ec1d9..35884561cb827ae2d12a016bf54e5f9a6755825d 100644 (file)
@@ -114,5 +114,6 @@ ktutil(8)
 
 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.
index 3433495c8284a77bce854bc2c05a2367ee416fb9..3ff4345f34aa56370c22ec654e064086b9148046 100644 (file)
@@ -8,7 +8,7 @@ bosserver - Initializes the BOS Server
 <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>
@@ -108,6 +108,15 @@ 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 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
index 5b82544a6785841ed26e93f7641369ff240cfcf6..9a1309aea31705f44a98b2b8745b87d5cb45cdcc 100644 (file)
@@ -7,19 +7,20 @@ fileserver - Initializes the File Server component of the fs process
 =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>>] >>>
@@ -28,7 +29,6 @@ B<fileserver> S<<< [B<-auditlog> <I<log path>>] >>>
     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
@@ -48,9 +48,9 @@ file server machine as the local superuser C<root>.
 
 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
@@ -68,7 +68,7 @@ machine sizes.
 
 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 *
 
@@ -168,6 +168,16 @@ the Protection Server every two hours to recompute host CPSs, implying
 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:
 
@@ -178,12 +188,12 @@ suites. Provide the command name and all option names in 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
@@ -193,6 +203,27 @@ Options that are available only on some system types, such as the B<-m>
 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
@@ -321,6 +352,15 @@ F</usr/afs/logs/rx_dbg>.
 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
@@ -380,6 +420,24 @@ 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 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
@@ -398,10 +456,160 @@ line:
                 -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.
 
@@ -413,7 +621,8 @@ L<bos_create(8)>,
 L<bos_getlog(8)>,
 L<fs_setacl(1)>,
 L<salvager(8)>,
-L<volserver(8)>
+L<volserver(8)>,
+L<vos_examine(1)>
 
 =head1 COPYRIGHT
 
index 777d94b464bf8c437a0cb9f38a9262743b7323e3..f24c8c3785ebaa23b4d82fc66fd3ac5f627c5522 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace apropos - Displays each help entry containing a keyword string
+fstrace_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index b265d39f20786e7d212c6b198734273aaadbe72b..7de9e6bac27ed53d60190c458d9b8430f59a2546 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace clear - Clears the trace log
+fstrace_clear - Clears the trace log
 
 =head1 SYNOPSIS
 
index 59da7a3873103884a2eb9588ebd83b4b142ae33a..81d659d8b8188c3d254fbb868c0e3515ca751dbc 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace dump - Dumps a trace log
+fstrace_dump - Dumps a trace log
 
 =head1 SYNOPSIS
 
index 7c3732fcae9c1092682e904d14b4a77d74d5cbce..4a5912a3732992886560c6f4445f3d51c21234b9 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace help - Displays help for fstrace commands
+fstrace_help - Displays help for fstrace commands
 
 =head1 SYNOPSIS
 
index 108e01974d43c7ac386d055bc0374e43b041c2e0..41289cff899ecef266d163919d528c8635319726 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace lslog - Displays information about a log
+fstrace_lslog - Displays information about a log
 
 =head1 SYNOPSIS
 
index 34ed0be1a5be4d53320385487c00ff7fafec726e..4d822acd147d656bbb2c22451b34f8047baa1ad7 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace lsset - Reports the status of an event set
+fstrace_lsset - Reports the status of an event set
 
 =head1 SYNOPSIS
 
index ccf9dce6d7b515875d9406600ac1a0fefaf8253e..c82962d61fc76e27ccc87921b9066d6391a492ed 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace setlog - Sets the size of a trace log
+fstrace_setlog - Sets the size of a trace log
 
 =head1 SYNOPSIS
 
index dcb47df495e734837a0170211d0dac14f5f3559e..808e76693d020ede15951c36a7fedbcb72560ca9 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-fstrace setset - Sets the status of an event set
+fstrace_setset - Sets the status of an event set
 
 =head1 SYNOPSIS
 
index 27ced0fe272304442db759103aeee20b74807652..3a3a1600e881c32785356e0d0d6db74874945783 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas apropos - Displays each help entry containing a keyword string
+kas_apropos - Displays each help entry containing a keyword string
 
 =head1 SYNOPSIS
 
index e567eb35d559a91320581503ba6c1e52dbc126c1..4f7491d515569d52da08d360ef05e3dad851b584 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas create - Creates an entry in the Authentication Database
+kas_create - Creates an entry in the Authentication Database
 
 =head1 SYNOPSIS
 
index f4288005cf19777a77eba03241cdabd397489257..9596d386051ce3484b317e57bb1f0c9c3b143efb 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas delete - Deletes an entry from the Authentication Database
+kas_delete - Deletes an entry from the Authentication Database
 
 =head1 SYNOPSIS
 
index 1f09c7491bc7f3261d1d2cbc961e3dcee6126125..ea62738c4b4ac704706d912d4573e4da4cf3e2e2 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas examine - Displays information from an Authentication Database entry
+kas_examine - Displays information from an Authentication Database entry
 
 =head1 SYNOPSIS
 
index 6fe84065ecee42228f27754e3c5fead8eb919b2c..d9851290fb9bc1a4e5f6fa2fad6705afc1b18769 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas forgetticket - Discards all tickets for the issuer
+kas_forgetticket - Discards all tickets for the issuer
 
 =head1 SYNOPSIS
 
index 9e4f0cf0cad479c901afffa0a3b875387209c5e2..a65a6694eaecc27c3db431dfd286a123346b90be 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas help - Displays help for kas commands
+kas_help - Displays help for kas commands
 
 =head1 SYNOPSIS
 
index 8ea203142688c245283c345960f2ae5c2f44af64..bf7371564f7174e8005a31f32a6552b758b6d5d1 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas interactive - Enters interactive mode
+kas_interactive - Enters interactive mode
 
 =head1 SYNOPSIS
 
index 088993eb7ea74dcbe9a0795ea48ed32e6f823061..59d21ff5bd0893c504e647c258a2436d2fb672a6 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas list - Displays all entries in the Authentication Database
+kas_list - Displays all entries in the Authentication Database
 
 =head1 SYNOPSIS
 
index 126b3d309e202f1f7df93c01e782517a2e2868fa..8661c188f82b6ef9d7b28e5ba3f53304fabda6df 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas listtickets - Displays all of the issuer's tickets (tokens)
+kas_listtickets - Displays all of the issuer's tickets (tokens)
 
 =head1 SYNOPSIS
 
index f55f5f84b0a18cc8b011b8c5aaf5649845577fe4..5b34d53b0d1a0ef3c9a47be5fc4c915f871c1bbd 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas noauthentication - Discards an authenticated identity in interactive mode
+kas_noauthentication - Discards an authenticated identity in interactive mode
 
 =head1 SYNOPSIS
 
index 3ecd0cedff4f9961817c1093809f9bb4b1fec7fb..ee8eec11378c204b8b1071e0ddd66b31021a2614 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas quit - Leaves interactive mode
+kas_quit - Leaves interactive mode
 
 =head1 SYNOPSIS
 
index cb45b8c7b0bc21d5a3cdf183bf31b9eaaa3e10fa..2171a7b569aa661aa78c853875b87ffcc3bdb553 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas setfields - Sets fields in an Authentication Database entry
+kas_setfields - Sets fields in an Authentication Database entry
 
 =head1 SYNOPSIS
 
index 897424dba18ee2fdf2fbc1d468223f706aa9ac76..62839d1127701452fd1e4bd1d090e11d07ccbb81 100644 (file)
@@ -1,6 +1,6 @@
 =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
 
index 389429c31f6f188a1ac4d79852ddf672f2cc8ba5..fff0a6da632d59a85c90063a36fa00d1a14f0e78 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas statistics - Displays statistics from an Authentication Server process
+kas_statistics - Displays statistics from an Authentication Server process
 
 =head1 SYNOPSIS
 
index 0f5d00bbae1456300eb353aa04acd46eb102223c..f9bb7fe2f16911fcffc74250bc1f625b277c5a40 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas stringtokey - Converts a character string into an octal key
+kas_stringtokey - Converts a character string into an octal key
 
 =head1 SYNOPSIS
 
index df37e613c39815e8369eaa11190fe4987ba41f47..e7c22f54db90d391759a7dd44b44d93423166ca7 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-kas unlock - Unlocks a locked user account
+kas_unlock - Unlocks a locked user account
 
 =head1 SYNOPSIS
 
index f14fd21ef1e6a9b8164a2743c66d29c5aacbbd7e..ef17e454666f9ac39aa7941e10ff9d14f74c4057 100644 (file)
@@ -9,7 +9,7 @@ ptserver - Initializes the Protection Server
 
 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>
@@ -90,6 +90,15 @@ 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 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
diff --git a/doc/man-pages/pod8/read_tape.pod b/doc/man-pages/pod8/read_tape.pod
new file mode 100644 (file)
index 0000000..d2990a8
--- /dev/null
@@ -0,0 +1,108 @@
+
+=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.
index 3babd7b351d9f4c275bd7afe18a6c0d5bd6952f2..0724f959181cf41adfb6645d4f95ec13f20dcae8 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-uss add - Creates a user account
+uss_add - Creates a user account
 
 =head1 SYNOPSIS
 
index e0a8f8e9380daeb249e2e49e48f38207b592bbd2..19776694002c1a2b869758a2de17b10953c48b8a 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-uss apropos - Displays each help entry containing a keyword string.
+uss_apropos - Displays each help entry containing a keyword string.
 
 =head1 SYNOPSIS
 
index 9fbcbafc9c56b8929a4ad22512f9db147f6c6bca..6de7bbef4f843b93c07429f98b166129bbbdc1f5 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-uss bulk - Executes multiple uss commands listed in a file
+uss_bulk - Executes multiple uss commands listed in a file
 
 =head1 SYNOPSIS
 
index 0eb549d2c6a622bb5509d81d1e2e645e7fe3a4c5..1828bc71863e6772d02325016a7ac16014ee4c9f 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-uss delete - Deletes a user account
+uss_delete - Deletes a user account
 
 =head1 SYNOPSIS
 
index dc309c1eedf7f48cedebf9cbdf1445cf99ee5cc5..b33792667f151115f726cd57fb112bfec45157ac 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-uss help - Displays help for uss commands
+uss_help - Displays help for uss commands
 
 =head1 SYNOPSIS
 
index 0d22718f24abfe451d2fbe7d318125e0b7b59274..5a03f11978196f790b1f0886b8438a3f64339d67 100644 (file)
@@ -8,7 +8,8 @@ vlserver - Initializes the Volume Location Server
 <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>
@@ -83,6 +84,15 @@ 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 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
index 559ad5b4f25ecb13c82d4f5011ed7056a27d227f..8f13a06ae1a8b0794e536a2d65d239db3f43bfd0 100644 (file)
@@ -9,7 +9,8 @@ volserver - Initializes the Volume Server component of the fs process
 
 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>
@@ -77,6 +78,15 @@ 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 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
index ae7b7dabb02d30ece57cd1ad1de1002e053e958a..d8f7dfa9e30ec69ec1f9ffe9fa25637352027d56 100644 (file)
@@ -143,6 +143,20 @@ public class Token implements Serializable, Comparable
     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 
index 80c85dcb898e6b0f1fc9c338af92df684f9e50c5..a91abade1ec7f692cea2d2680a9e32a33dcc3377 100644 (file)
@@ -30,6 +30,7 @@
 #include <kautils.h>
 #include <cellconfig.h>
 #include <afs_AdminClientErrors.h>
+#include <rx/rxkad.h>
 
 /**
  * Static function used to initialize the client library and the 
@@ -71,6 +72,7 @@ Java_org_openafs_jafs_Token_getToken
   const char *password;
   void *tokenHandle;
   int rc;
+  int err;
 
   // convert java strings
   if( jcellName != NULL ) { 
@@ -101,8 +103,11 @@ Java_org_openafs_jafs_Token_getToken
       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);
index 27a313b393d13fb6436c32754d9ebbb94b3805fc..3a78593adb7e8b41392fc5eb974f05ed6ff8a6ce 100644 (file)
@@ -13,7 +13,7 @@ TOP_SRCDIR=@TOP_SRCDIR@
 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@
@@ -35,10 +35,10 @@ SHARED_FLAGS = -shared -Xlinker -Bsymbolic
 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
 
@@ -50,7 +50,7 @@ PACKAGEDIR = ${ROOTPACKAGEDIR}/${RELPACKAGEDIR}
 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_
@@ -153,6 +153,7 @@ CLIENTADMINLIB = ${TOP_LIBDIR}/libclientadmin.a
 
 LIBJAFS_LIBS =\
        ${TOP_LIBDIR}/libjuafs.a \
+       ${TOP_LIBDIR}/libafsutil.a \
        ${TOP_LIBDIR}/libdes.a \
        -lresolv \
        -lpthread
index ada4319d94739afce85c080d05621c43e9462cd7..8264c03cae29bdae737c8a47aa8c2b32ddf2193a 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -272,8 +272,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 2a0c4fb5a55e30b54c458949f256c7ae361f6372..959f136891df72fbb7325971b08fef79f2cdcd0b 100644 (file)
@@ -14,7 +14,7 @@
 #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 */
@@ -34,8 +34,6 @@ extern struct afs_exporter *afs_nfsexporter;
 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
index 95909a869588dc594d183b4ec1ee254ce83fc0c7..2260ecde35e4b9ac4b7a47e7b6ad2900ae733ee1 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -418,8 +418,6 @@ afs_osi_Write(register struct osi_file *afile, afs_int32 offset, void *aptr,
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 7fad134a727674789e4aeecc8fecd87f1600b8c6..97a200dbae84ef904dbb65fe9f366172f20c7e69 100644 (file)
@@ -5,7 +5,7 @@
 #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 */
@@ -743,6 +743,9 @@ afs_vop_read(ap)
     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
index 4744a96e50a1970984ea6810b031b594432b75e4..f83a90c60c8fb539571bfb8ea3078d06a940044d 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -279,8 +279,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index bd87a486aace72047f8769ce80c93b29a2149f9b..e31db73811f1a7c0c4e9608c9e73e82c2ccb7473 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -244,8 +244,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 88aab1dfce88622b40b205c6f9b82893772e8c0d..e389c55f61f703541814bd309f80d01c1b13a4b3 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -223,8 +223,6 @@ afs_osi_Write(register struct osi_file *afile, afs_int32 offset, void *aptr,
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 1f9ca678859467690630fe620ebc1abc451ba42b..265c86b8fa55847bd7665db57b5a7fd0282a08f3 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -262,8 +262,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 0670623d074c4eeee02458080b312afc59ca9efb..bdf14b4865c373ed16a6983e88dd236ddff28452 100644 (file)
@@ -14,7 +14,7 @@
 #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 */
@@ -207,7 +207,6 @@ afs_unmount(OSI_VFS_ARG(afsp), flags, cr)
      int flags;
      cred_t *cr;
 {
-    extern int afs_afs_cold_shutdown;
     struct vcache *tvc;
     vnode_t *vp, *rootvp = NULL;
     register struct afs_q *tq;
index 05c0d561df88429b8f7665b08f20edc3cb524e24..4162eac3bb67f7a6e115d9d037af2b2ea1013a06 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -20,7 +20,9 @@ RCSID
 #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;
@@ -40,6 +42,9 @@ osi_UFSOpen(afs_int32 ainode)
     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");
@@ -57,14 +62,17 @@ osi_UFSOpen(afs_int32 ainode)
                  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))
@@ -348,8 +356,6 @@ afs_osi_MapStrategy(int (*aproc) (struct buf * bp), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index a34ecb7a00526671f673400af548ae26985b28d4..bd8f2502f4f47ef30d6eddf6c85d9fe3c32dc47d 100644 (file)
@@ -20,7 +20,7 @@
 #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"
@@ -222,7 +222,8 @@ __setpag(cred_t **cr, afs_uint32 pagvalue, afs_uint32 *newpag,
 }
 
 #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)
@@ -624,29 +625,32 @@ extern rwlock_t tasklist_lock __attribute__((weak));
 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);
 }
index 836a98df11a394e0bf662a4e4e79d504534db7fc..d398c7e85991e2973c01a98501be9eba5e55b8d8 100644 (file)
 
 #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 {                                               \
index 41bec5b2a558c1373149b1b6bfdfc4c1ca0bea21..29eb1c0dfebdaf2a08f7b099feee505005d3e51f 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -52,10 +52,17 @@ osi_lookupname_internal(char *aname, int followlink, struct vfsmount **mnt,
 #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;
 }
@@ -348,8 +355,6 @@ osi_linux_free_inode_pages(void)
     }
 }
 
-struct task_struct *rxk_ListenerTask;
-
 void
 osi_linux_mask(void)
 {
@@ -358,9 +363,3 @@ osi_linux_mask(void)
     RECALC_SIGPENDING(current);
     SIG_UNLOCK(current);
 }
-
-void
-osi_linux_rxkreg(void)
-{
-    rxk_ListenerTask = current;
-}
index 56c0bcb8c5c9e1ba8bc6eff05a7a97671704b350..9303083d11917054ec2aed8c0d5f25af02828cec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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)
  */
@@ -28,7 +28,11 @@ static struct ctl_table_header *afs_sysctl = NULL;
 
 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), 
@@ -36,7 +40,11 @@ static ctl_table afs_sysctl_table[] = {
        .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), 
@@ -44,7 +52,11 @@ static ctl_table afs_sysctl_table[] = {
        .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), 
@@ -52,7 +64,11 @@ static ctl_table afs_sysctl_table[] = {
        .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), 
@@ -60,7 +76,11 @@ static ctl_table afs_sysctl_table[] = {
        .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), 
@@ -68,7 +88,11 @@ static ctl_table afs_sysctl_table[] = {
        .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), 
@@ -80,7 +104,11 @@ static ctl_table afs_sysctl_table[] = {
 
 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
index 421637ba2c949fc6a5833bf1c732ab4fd500a6ee..d7fc11911b29c81153e6e9c98aa4e3f04ff47c26 100644 (file)
@@ -16,7 +16,7 @@
 #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 */
@@ -295,8 +295,12 @@ static void
 #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;
 
@@ -531,8 +535,11 @@ vattr2inode(struct inode *ip, struct vattr *vp)
     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;
index 982a3cc179b5b6bafc4bd4b749075e6f774fc2fe..4bf1511dc3a60f6c004fa54cd043b806de027dec 100644 (file)
@@ -22,7 +22,7 @@
 #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"
@@ -642,6 +642,10 @@ struct file_operations afs_file_fops = {
   .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,
@@ -878,6 +882,15 @@ afs_dentry_iput(struct dentry *dp, struct inode *ip)
     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);
 }
@@ -939,6 +952,7 @@ afs_linux_create(struct inode *dip, struct dentry *dp, int mode)
 
        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);
@@ -984,6 +998,8 @@ afs_linux_lookup(struct inode *dip, struct dentry *dp)
        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);
@@ -1095,6 +1111,15 @@ afs_linux_unlink(struct inode *dip, struct dentry *dp)
             }
             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); 
        }
@@ -1822,5 +1847,4 @@ afs_fill_inode(struct inode *ip, struct vattr *vattr)
 #endif
     }
 
-    /* insert_inode_hash(ip);  -- this would make iget() work (if we used it) */
 }
index 4e08edaf9415136ec53704090cb0dcd18139fbdf..99331d05e70df5392510db831f52bca16638b01c 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -224,8 +224,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index 724f03cf89daf91a5bc6d33987816b87f8ffc398..5433633d1d906808d7f6726382be8abcac63169e 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -136,7 +136,7 @@ osi_DisableAtimes(struct vnode *avp)
 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);
@@ -164,8 +164,8 @@ afs_osi_Read(struct osi_file *afile, int offset, void *aptr, afs_int32 asize)
        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;
@@ -176,7 +176,7 @@ int
 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);
index 9b7ac833d9733b27c3b61b107a37ea60f02fd70e..c8c96930d07bf3812b70b65f3e4f53305a6766f0 100644 (file)
@@ -16,7 +16,7 @@
  * 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_
@@ -69,7 +69,7 @@
 /* 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)
index e6a36b5428b67f18f52480f27eb7aefb1366ccbb..a8abf56826f7b3225e4a645b9bd4b9b08bc46ce4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $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 $
  */
 
 /*
@@ -45,7 +45,7 @@ such damages.
 #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 */
@@ -54,6 +54,21 @@ RCSID
 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)
@@ -76,13 +91,14 @@ int
 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;
@@ -90,7 +106,7 @@ afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok)
     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);
@@ -104,7 +120,8 @@ afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok)
            /* we've been signalled */
            break;
        }
-    } while (timercmp(&time, &endTime, <));
+       getmicrotime(&now);
+    } while (timercmp(&now, &endTime, <));
 
     AFS_GLOCK();
     return code;
index 51746e1fb913f18b62921c36cc2ddb4ab56ac272..e6e37f1f10467cdd1a214ddd6a90fd8fc363c72e 100644 (file)
 #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>
 
@@ -50,6 +50,16 @@ RCSID
 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;
 }
 
@@ -57,6 +67,7 @@ osi_VM_FlushVCache(struct vcache *avc, int *slept)
  *
  * Locking:  the vcache entry's lock is held.  It will usually be dropped and
  * re-obtained.
+ *
  */
 void
 osi_VM_StoreAllSegments(struct vcache *avc)
@@ -75,6 +86,9 @@ 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.
@@ -84,6 +98,13 @@ osi_VM_TryToSmush(struct vcache *avc, struct AFS_UCRED *acred, int sync)
 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.
@@ -95,4 +116,5 @@ osi_VM_FlushPages(struct vcache *avc, struct AFS_UCRED *credp)
 void
 osi_VM_Truncate(struct vcache *avc, int alen, struct AFS_UCRED *acred)
 {
+    uvm_vnp_setsize(AFSTOV(avc), alen);
 }
index 3e08bb4b86bcaf7f88959df32952003ce76caa17..c28613e63ea9b435fad564a55977ecca39a761b5 100644 (file)
@@ -3,7 +3,7 @@
  * 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 $
  */
 
 /*
@@ -99,7 +99,7 @@ NONINFRINGEMENT.
 #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 */
@@ -920,6 +920,12 @@ afs_nbsd_reclaim(void *v)
 #endif
 }
 
+#ifdef AFS_OBSD42_ENV
+#define VP_INTERLOCK NULL
+#else
+#define VP_INTERLOCK (&vp->v_interlock)
+#endif
+
 int
 afs_nbsd_lock(void *v)
 {
@@ -933,8 +939,7 @@ 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
@@ -950,8 +955,7 @@ afs_nbsd_unlock(void *v)
 
     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
@@ -968,7 +972,7 @@ afs_nbsd_bmap(void *v)
 
     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;
@@ -994,15 +998,14 @@ afs_nbsd_strategy(void *v)
     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();
index e5b34546390665f3a5309afcb951644dc4f7a3f3..44a4d1432d07c249d516651ce6a5490e04b8ce10 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -86,7 +86,11 @@ VnodeToIno(vnode_t * vp)
     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");
     }
@@ -101,7 +105,11 @@ VnodeToDev(vnode_t * vp)
 
     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");
@@ -122,7 +130,11 @@ VnodeToSize(vnode_t * vp)
     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");
@@ -224,7 +236,11 @@ afs_osi_Stat(register struct osi_file *afile, register struct osi_stat *astat)
     /* 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;
@@ -398,8 +414,6 @@ afs_osi_MapStrategy(int (*aproc) (), register struct buf *bp)
 void
 shutdown_osifile(void)
 {
-    extern int afs_cold_shutdown;
-
     AFS_STATCNT(shutdown_osifile);
     if (afs_cold_shutdown) {
        afs_osicred_initialized = 0;
index df1210e087d68d76c339325cff6e20dfca028cc7..f54432987792238de97f391bc4eb9c7843ec5317 100644 (file)
 #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>
 
 
@@ -100,6 +103,7 @@ afs_root(struct vfs *afsp, struct vnode **avpp)
     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;
@@ -115,6 +119,7 @@ afs_root(struct vfs *afsp, struct vnode **avpp)
 
     AFS_STATCNT(afs_root);
 
+again:
     if (afs_globalVp && (afs_globalVp->states & CStatd)) {
        tvp = afs_globalVp;
     } else {
@@ -125,8 +130,9 @@ afs_root(struct vfs *afsp, struct vnode **avpp)
        }
 
        if (afs_globalVp) {
-           afs_PutVCache(afs_globalVp);
+           gvp = afs_globalVp;
            afs_globalVp = NULL;
+           afs_PutVCache(gvp);
        }
 
        if (!(code = afs_InitReq(&treq, proc->p_cred))
@@ -134,6 +140,12 @@ afs_root(struct vfs *afsp, struct vnode **avpp)
            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;
@@ -245,7 +257,21 @@ afs_swapvp(struct vfs *afsp, struct vnode **avpp, char *nm)
 }
 
 
-#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,
@@ -256,7 +282,7 @@ const fs_operation_def_t afs_vfsops_template[] = {
     VFSNAME_VGET,              afs_vget,
     VFSNAME_MOUNTROOT,         afs_mountroot,
     VFSNAME_FREEVFS,           fs_freevfs,
-    NULL,                     NULL
+    NULL,                      NULL
 };
 struct vfsops *afs_vfsopsp;
 #else
@@ -391,12 +417,22 @@ afsinit(struct vfssw *vfsswp, int fstype)
 }
 
 #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",
index ac9442a6e5a710ff947967715922c8028b902c1a..03be3cb91abb0fb521e4bb897bc50ac278235c9a 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -47,6 +47,9 @@ RCSID
 #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>
@@ -1401,6 +1404,25 @@ afs_dumpctl(vp, i
 }
 
 #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;
@@ -1431,6 +1453,7 @@ afs_getsecattr(vp, vsecattr, flag, creds)
     return fs_fab_acl(vp, vsecattr, flag, creds);
 }
 #endif
+#endif
 
 #ifdef AFS_GLOBAL_SUNLOCK
 extern int gafs_open(), gafs_close(), afs_ioctl(), gafs_access();
@@ -1441,7 +1464,56 @@ extern int gafs_fid(), gafs_readlink(), fs_setfl(), afs_pathconf();
 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,
index 6bb31df19bd493522e075ed71be5c3fa640a1875..aa9a9a6651dbbcc9833d146f9081a5c2e56647b9 100644 (file)
@@ -15,7 +15,7 @@
 #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
@@ -183,6 +183,7 @@ int
 ufs_brelse(struct usr_vnode *vp, struct usr_buf *bp)
 {
     usr_assert(0);
+    return 0;
 }
 
 /*
@@ -192,12 +193,14 @@ int
 iodone(struct usr_buf *bp)
 {
     usr_assert(0);
+    return 0;
 }
 
 struct usr_file *
 getf(int fd)
 {
     usr_assert(0);
+    return 0;
 }
 
 /*
@@ -233,6 +236,7 @@ int
 usr_flock(void)
 {
     usr_assert(0);
+    return 0;
 }
 
 /*
@@ -243,6 +247,7 @@ int
 usr_ioctl(void)
 {
     usr_assert(0);
+    return 0;
 }
 
 /*
@@ -252,24 +257,28 @@ int
 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;
 }
 
 /*
@@ -280,24 +289,28 @@ int
 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;
 }
 
 /*
@@ -374,12 +387,14 @@ usr_crfree(struct usr_ucred *credp)
     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
@@ -517,6 +532,7 @@ afs_osi_Wakeup(void *x)
        waitp = waitp->next;
     }
     usr_mutex_unlock(&osi_waitq_lock);
+    return 0;
 }
 
 int
@@ -608,6 +624,7 @@ afs_osi_CheckTimedWaits(void)
        waitp = waitp->timedNext;
     }
     usr_mutex_unlock(&osi_waitq_lock);
+    return 0;
 }
 
 /*
@@ -988,6 +1005,12 @@ afs_osi_Invisible(void)
     return;
 }
 
+void
+afs_osi_Visible(void)
+{
+    return;
+}
+
 int
 osi_GetTime(struct timeval *tv)
 {
@@ -1390,8 +1413,8 @@ SweepAFSCache(int *vFilesFound)
     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;
@@ -1421,10 +1444,7 @@ ConfigCell(register struct afsconf_cell *aci, char *arock,
 }
 
 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);
@@ -1981,6 +2001,7 @@ syscallThread(void *argp)
                 sysArgsP->param2, sysArgsP->param3, sysArgsP->param4);
 
     afs_osi_Free(argp, -1);
+    return 0;
 }
 
 fork_syscall(syscall, afscall, param1, param2, param3, param4)
@@ -2001,6 +2022,7 @@ 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)
@@ -2187,7 +2209,7 @@ uafs_LookupName(char *path, struct usr_vnode *parentVp,
     struct usr_vnode *linkVp;
     char *tmpPath;
     char *pathP;
-    char *nextPathP;
+    char *nextPathP = NULL;
 
     AFS_ASSERT_GLOCK();
 
index 5a485920f0f737227206edd9113acc2bf6c92fc5..9d901d12ac638fd782c2536f2db6aba8a7c5bc21 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -26,6 +26,7 @@ int
 afs_xsetgroups()
 {
     usr_assert(0);
+    return 0;
 }
 
 static int
index c56bbec47166dfcf8fea679762723f48c5bf506d..1013cec98f17bf7119f197eea59eb416c1ca6206 100644 (file)
@@ -23,7 +23,7 @@
 #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 */
@@ -199,7 +199,16 @@ afs_access(OSI_VC_DECL(avc), register afs_int32 amode,
     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;
index 4640530840b9b1cc2ae1d53f1f3e190160a4e4cb..b9b5cb3924a05b7ca96995676f4f0b5c649f28ab 100644 (file)
@@ -17,7 +17,7 @@
 #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 */
@@ -353,7 +353,9 @@ afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
        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);
index 7a1fcba8031ac2bdc77ad8c700590567f0d62bfc..aa481ecb0c015539e5a19c16b2198843cab47f81 100644 (file)
@@ -21,7 +21,7 @@
 #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 */
@@ -132,7 +132,9 @@ afs_mkdir(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
        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);
index 8a01e0f742e0fe1c3b93ea5af260ac9b345b060e..3dcdbada60a8f2b487aa9670a7515b968f27f0c5 100644 (file)
@@ -17,7 +17,7 @@
 #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 */
@@ -127,7 +127,9 @@ afs_link(avc, OSI_VC_ARG(adp), aname, acred)
        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);
index e1c11a99fb77adcbc345ac2526636203f811ac32..ce295031e815c14ffc96d78c7662249c5b4c4fc3 100644 (file)
@@ -18,7 +18,7 @@
 #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 */
@@ -1140,6 +1140,11 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, struct AFS_UCRED
     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.
index f8e609bfb27451ab6dab945a7faa808c78366784..536ee4a76ea992cac23ad91ffe6a660b463c54c8 100644 (file)
@@ -19,7 +19,7 @@
 #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 */
@@ -117,7 +117,21 @@ afs_MemRead(register struct vcache *avc, struct uio *auio,
      * 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 */
@@ -536,7 +550,22 @@ afs_UFSRead(register struct vcache *avc, struct uio *auio,
     }
 #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 */
index c68a72907b6dce991afe6684b8ac387fed998b42..9bdcedd4fbcb6df26d6024ef5d33548aa0f96a78 100644 (file)
@@ -21,7 +21,7 @@
 #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 */
@@ -415,7 +415,11 @@ afs_remove(OSI_VC_ARG(adp), aname, acred)
        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;
 }
 
index d3162c08c246f0e19b67dec216144fdec4ef6135..b0b48561d39158efed17b2fac77ca5582f643ede 100644 (file)
@@ -18,7 +18,7 @@
 #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 */
@@ -227,7 +227,9 @@ afsrename(struct vcache *aodp, char *aname1, struct vcache *andp,
                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);
index 0041da7888663dc7c2086557b3755a5c3445bfe3..2a7a750afb899f340eb886d883e631c73de56766 100644 (file)
@@ -22,7 +22,7 @@
 #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 */
@@ -173,7 +173,9 @@ int afs_symlink
     /* 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);
index f5f6b5df49afd772ded0cb95238a280616a0bc2b..1eb146af3ff974540336bdba69852a83197b94a7 100644 (file)
@@ -914,6 +914,9 @@ struct afs_fheader {
 #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\
@@ -941,6 +944,7 @@ struct fcache {
     afs_int32 chunkBytes;      /* Num bytes in this chunk */
     char states;               /* Has this chunk been modified? */
 };
+#endif
 
 /* magic numbers to specify the cache type */
 
index c218a06e1239c3d0ec1e69bc4ac6c32b570ba972..d523a2a83f076a7f2dddaf385c3efabddee562b6 100644 (file)
@@ -11,7 +11,7 @@
 #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"
@@ -534,7 +534,6 @@ shutdown_bufferpackage(void)
     register struct buffer *tp;
 #endif
     int i;
-    extern int afs_cold_shutdown;
 
     AFS_STATCNT(shutdown_bufferpackage);
     /* Free all allocated Buffers and associated buffer pages */
index 70a764c7ad1db709c8cd69d81598c4392893edb8..d8e51a2e223bba5f47d00ca2fce169b0bad5e407 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -581,6 +581,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
 #endif /* RXK_LISTENER_ENV */
            afs_osi_Invisible();
            afs_RXCallBackServer();
+           afs_osi_Visible();
        }
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
@@ -609,6 +610,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
            afs_osi_RxkRegister();
 #endif /* !UKERNEL */
            rxk_Listener();
+           afs_osi_Visible();
        }
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
@@ -628,6 +630,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
        afs_osi_Wakeup(&afs_initState);
        afs_osi_Invisible();
        afs_Daemon();
+       afs_osi_Visible();
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
        exit(CLD_EXITED, 0);
@@ -635,6 +638,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
     } else if (parm == AFSOP_START_CS) {
        afs_osi_Invisible();
        afs_CheckServerDaemon();
+       afs_osi_Visible();
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
        exit(CLD_EXITED, 0);
@@ -654,6 +658,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
        else
 #endif /* AFS_AIX32_ENV */
            afs_BackgroundDaemon();
+       afs_osi_Visible();
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
        exit(CLD_EXITED, 0);
@@ -664,6 +669,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
        /* start the bkg daemon */
        afs_osi_Invisible();
        afs_CacheTruncateDaemon();
+       afs_osi_Visible();
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
        exit(CLD_EXITED, 0);
@@ -675,6 +681,7 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
            afs_osi_Sleep(&afs_initState);
        afs_osi_Invisible();
        afs_rxevent_daemon();
+       afs_osi_Visible();
 #ifdef AFS_SGI_ENV
        AFS_GUNLOCK();
        exit(CLD_EXITED, 0);
index 5a109891270f7c68594d89af29b05b0ba675f5fa..dd003f88a16cb3b5dbbc73b443c30082a67e8df5 100644 (file)
@@ -17,7 +17,7 @@
 #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 */
@@ -61,7 +61,11 @@ static struct ltable {
     {
       "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;
@@ -307,11 +311,35 @@ SRXAFSCB_GetLock(struct rx_call *a_call, afs_int32 a_index,
 
     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.
@@ -981,7 +1009,7 @@ afs_RXCallBackServer(void)
     /*
      * Donate this process to Rx.
      */
-    rx_ServerProc();
+    rx_ServerProc(NULL);
     return (0);
 
 }                              /*afs_RXCallBackServer */
index 085cf0594222d7ce03b7563b9be4b97ba016873f..052602b3972aac87077328dc9776f92ed22b3912 100644 (file)
@@ -14,7 +14,7 @@
 #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 */
@@ -35,18 +35,18 @@ afs_rwlock_t afs_xcell;             /* Export for cmdebug peeking at locks */
  */
 
 #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
@@ -63,46 +63,60 @@ afs_StopAFSDB()
 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;
@@ -116,43 +130,38 @@ afs_AFSDBHandler(char *acellName, int acellNameLen, afs_int32 * kernelMsg)
 
     /* 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
@@ -161,24 +170,14 @@ void
 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
 }
 
@@ -819,7 +818,7 @@ afs_CellInit()
     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);
 
index b016dd4a8a2f1b14d92bdf6a1467349847c6d793..b6992db96fafa44eb8dfdb8885009e9dcbbcff74 100644 (file)
@@ -14,7 +14,7 @@
 #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 */
@@ -2860,6 +2860,7 @@ afs_WriteDCache(register struct dcache *adc, int atime)
     if (cacheDiskType == AFS_FCACHE_TYPE_MEM)
        return 0;
     AFS_STATCNT(afs_WriteDCache);
+    osi_Assert(WriteLocked(&afs_xdcache));
     if (atime)
        adc->f.modTime = osi_Time();
     /*
index e290df37132776cdced49f3bb4b3de69ab42e237..fabe9acbb2a790da528f6de6c222ef413b2a23f8 100644 (file)
@@ -11,7 +11,7 @@
 #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 */
@@ -280,9 +280,6 @@ afs_osi_UnmaskUserLoop()
 void
 afs_osi_RxkRegister(void)
 {
-#ifdef AFS_LINUX22_ENV
-    osi_linux_rxkreg();
-#endif
 }
 
 /* procedure for making our processes as invisible as we can */
@@ -308,8 +305,21 @@ afs_osi_Invisible(void)
     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)
index 54116bde5f19a801d3f0e78923007f94b976fba4..cfc1b4f3b11ee620639402ecb50b4fcbaf9a1ae6 100644 (file)
@@ -11,7 +11,7 @@
 #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 $");
 
 
 
@@ -120,7 +120,11 @@ osi_AllocSmallSpace(size_t size)
     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);
@@ -136,29 +140,34 @@ osi_AllocSmallSpace(size_t size)
 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
index 9a11286f877ace87ad1d131d03df707bc20541d5..9494534c76c598035534f2c7fe770cc9206e5b0d 100644 (file)
@@ -23,7 +23,7 @@
 #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 */
@@ -145,6 +145,7 @@ getpag(void)
  */
 
 static int afs_pag_sleepcnt = 0;
+static int afs_pag_timewarn = 0;
 
 static int
 afs_pag_sleep(struct AFS_UCRED **acred)
@@ -155,6 +156,13 @@ 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;
index 454703cf65d7040bb7f0050c1a326253ea8eeb3f..cbd3f5859ccc25ec08ef8291b58b9acc4940fb5b 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -982,8 +982,13 @@ afs_syscall_pioctl(path, com, cmarg, follow)
 #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);
@@ -2773,7 +2778,8 @@ DECL_PIOCTL(PGetVnodeXStatus2)
 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;
@@ -2790,7 +2796,7 @@ DECL_PIOCTL(PSetSysName)
 #endif
     }
     memset(inname, 0, MAXSYSNAME);
-    memcpy((char *)&setsysname, ain, sizeof(afs_int32));
+    memcpy(&setsysname, ain, sizeof(afs_int32));
     ain += sizeof(afs_int32);
     if (setsysname) {
 
index 8874d94e84094a7a62143b09f9bd2e7125707a93..7920b118494008dbbcb5b9a3838c55e2f46e6d2f 100644 (file)
@@ -195,7 +195,12 @@ extern void afs_InitCBQueue(int doLockInit);
 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);
@@ -466,6 +471,7 @@ extern struct afs_exporter *afs_nfsexporter;
 /* 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);
@@ -554,7 +560,6 @@ extern void osi_linux_free_inode_pages(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
index ac5b6b85baf2bfea025e547b29bef586555453eb..951bed0091179cade3623a4a3a8461ec78b9f06f 100644 (file)
@@ -14,7 +14,7 @@
 #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 */
@@ -92,6 +92,10 @@ afs_StoreMini(register struct vcache *avc, struct vrequest *areq)
                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,
index acb376f6b8cbfe38255cf27aadbdb688b789e25f..f9dc5511ce68aef0ae5a5dc3069cdc7a5f6d2844 100644 (file)
@@ -33,7 +33,7 @@
 #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 */
@@ -1129,6 +1129,7 @@ afsi_SetServerIPRank(struct srvAddr *sa, afs_int32 addr,
            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)
index 0206c4797372f23bcf5ffe0a5c77a2814b8181f3..fa04973c0beb303039372ca406e1014857d407c6 100644 (file)
@@ -35,6 +35,7 @@
 #define AFS_STATS(arg)
 #define XSTATS_DECLS
 #define XSTATS_START_TIME(arg)
+#define XSTATS_START_CMTIME(arg)
 #define XSTATS_END_TIME
 
 #else /* AFS_NOSTATS */
index cf81f078d9ce1ef907959309e864c6683a60987e..1c264057868dcf0e591f2a2a4ed422de893457e2 100644 (file)
@@ -172,5 +172,6 @@ error_table 2 ZCM
        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
 
index 082efa853179e833430d7a77b9050790ed6f186d..aac8ca75b8e70165782a653f23cfa204d75b368f 100644 (file)
@@ -39,7 +39,7 @@
 #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 */
index 852babc38a6655a9b78ab723d942f7152c280d3b..0abe76400e56dcc53cbc8e2ca732d4f81ca2a1a2 100644 (file)
@@ -102,9 +102,15 @@ extern tid_t thread_self();
 #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)
index 55ca2bb077115d5db5e5c68a1351197f8cf9986a..09a87e066c046c444cec8070919ec30d84871a02 100644 (file)
@@ -75,6 +75,9 @@
 #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
index 9634790cbf88ec881029a1c1869251a9fe9a9741..4e3fce37ff6a396df90340ea2e8a3fc946aeb8e8 100644 (file)
@@ -36,19 +36,28 @@ SMALL="-stat 300 -dcache 100 -daemons 2 -volumes 50"
 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
@@ -76,7 +85,7 @@ StartService()
     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
 
@@ -107,7 +116,13 @@ StartService()
     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
@@ -117,6 +132,14 @@ StartService()
        $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
 #
@@ -151,6 +174,12 @@ StopService()
 {
     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
index 9591579d084e402f518dd617d5e12d39befa0e83..b86189ecd14a818ae8bb135eb4c646ce3b024d35 100644 (file)
@@ -58,7 +58,7 @@ runcmd() {
    echo
 }
 
-SYSCNF=/etc/sysconfig/afs
+SYSCNF=${SYSCNF:-/etc/sysconfig/afs}
 KERNEL_VERSION=`uname -r`
 
 # Gather up options and post startup script name, if present
@@ -69,6 +69,10 @@ fi
 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() {
@@ -183,7 +187,7 @@ set_prefix()
        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.
@@ -279,13 +283,13 @@ case "$1" in
 
        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
@@ -293,10 +297,10 @@ case "$1" in
        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
@@ -309,16 +313,16 @@ case "$1" in
        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
 
index 6ff46c3fcaf22677c1725fd12eeda0e381aee933..4e824472dff8ad1d9f81318302b7dc8ff624e55d 100644 (file)
@@ -58,7 +58,7 @@
 #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
 
@@ -1387,8 +1387,8 @@ SweepAFSCache(vFilesFound)
     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;
@@ -1420,7 +1420,7 @@ ConfigCell(struct afsconf_cell *aci, char *arock, struct afsconf_dir *adir)
 
 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);
@@ -1513,7 +1513,7 @@ AfsdbLookupHandler()
 #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() */
index 3ff94e378c3b4a516af187f81a809e7d14ab93d9..c28b605f93ddac6706501af63dc02793d681b684 100644 (file)
 #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>
 
index 68b3d78bcb615558a3c323038c41520fc9c0f1be..5f8824dda05992aa06f39c094644748892b7737d 100644 (file)
 #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>
index 0124b62a3d64741b79bd7ef141263a57559ca452..69d58894c60d4352878449cfe8f3a53134ba299f 100644 (file)
 #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>
 
@@ -567,6 +565,7 @@ afsmonExit_gtx()
     }
 
     afsmon_Exit(0);
+    return 0; /* not reached */
 }
 
 
@@ -1581,7 +1580,7 @@ display_Server_label(a_srcBuf, a_firstObj_o, a_secondObj_o, a_thirdObj_o)
            }
        }
     }
-
+    return 0;
 }                              /* display_Server_label */
 
 
index 5eb3cbc916ff641070ec0363eabf3bf2dc41c689..0e5e46d016555ee927d8d9d0dc0a205e51283274 100644 (file)
@@ -19,7 +19,7 @@
 #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>
@@ -3880,8 +3880,7 @@ afsmon_execute()
  *----------------------------------------------------------------------*/
 
 int
-afsmonInit(as)
-     struct cmd_syndesc *as;
+afsmonInit(struct cmd_syndesc *as, void *arock)
 {                              /* afsmonInit() */
 
     static char rn[] = "afsmonInit";   /* Routine name */
@@ -4185,7 +4184,7 @@ main(argc, argv)
     /*
      * 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,
index 54b5a857494702459fa108801edc486fa5b8492d..9c78c233ce56f493b13a5c28ecceff537d1d897b 100644 (file)
@@ -25,7 +25,7 @@
 #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>
@@ -123,7 +123,7 @@ main(int argc, char **argv)
     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 */
@@ -803,10 +803,8 @@ getDFScreds(char *name, char *realm, char *passwd, afs_uint32 lifetime,
  * 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];
diff --git a/src/aklog/.cvsignore b/src/aklog/.cvsignore
new file mode 100644 (file)
index 0000000..51469b1
--- /dev/null
@@ -0,0 +1,4 @@
+Makefile
+aklog
+asetkey
+klog
index 24994d76be18019300bfcd3a8555cd97d2a253ed..e799373f8a6db797403e7aa3ceeac26135c741f3 100644 (file)
@@ -16,7 +16,7 @@ AFSLIBS = ${TOP_LIBDIR}/libprot.a ${TOP_LIBDIR}/libubik.a \
 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}
@@ -24,6 +24,10 @@ aklog:       ${OBJS} ${AFSLIBS}
 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
 #
@@ -49,7 +53,7 @@ ${DEST}/root.server/usr/afs/bin/asetkey: asetkey
 # Misc. targets
 #
 clean:
-       $(RM) -f *.o ${OBJS} aklog asetkey
+       $(RM) -f *.o ${OBJS} aklog asetkey klog
 
 include ../config/Makefile.version
 
index 0d3c4b4ea290a92bc54c7df0c77c84c3af9f5d08..7776d698b8b0dd5b89e77d454aae967a1381a254 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $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"
@@ -36,7 +36,7 @@
 
 #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>
@@ -199,7 +199,7 @@ static int get_user_realm(krb5_context, char *);
 #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,
@@ -660,6 +660,33 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
        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);
@@ -929,11 +956,14 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
            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, 
@@ -1690,7 +1720,7 @@ static krb5_error_code get_credv5_akimpersonate(krb5_context context,
                                                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];
index 39a3311fbe2e1d219eb66b939e67ef9732bf616c..c12355f554694b3898e4671cf6d0e2e691dd1c5e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $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
  *
@@ -7,31 +7,25 @@
  */
 
 #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>
diff --git a/src/aklog/klog.c b/src/aklog/klog.c
new file mode 100644 (file)
index 0000000..d757906
--- /dev/null
@@ -0,0 +1,740 @@
+/*
+ * 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;
+}
diff --git a/src/aklog/skipwrap.c b/src/aklog/skipwrap.c
new file mode 100644 (file)
index 0000000..d920bd7
--- /dev/null
@@ -0,0 +1,124 @@
+
+/*
+ * 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;
+}
index 16d25e65d72a65eb93997f950057c68d3846df95..364508b0a19017abb2590d41b5f9bece0b9408c4 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -23,6 +23,7 @@ RCSID
 #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"
@@ -41,7 +42,10 @@ RCSID
 #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"
@@ -51,9 +55,7 @@ RCSID
 
 /* 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();
@@ -65,10 +67,9 @@ QuickAuth(astr, aindex)
 #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;
 
@@ -88,11 +89,10 @@ afsconf_ServerAuth(adir, astr, aindex)
 #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;
@@ -159,10 +159,9 @@ afsconf_ClientAuth(struct afsconf_dir * adir, struct rx_securityClass ** astr,
  * 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;
 
index 9645f28d7b934c87399de3b3014e2670b2c8572b..0207acfff3293149b87e50b5acafb2d61df92db5 100644 (file)
 #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
@@ -47,16 +49,12 @@ RCSID
 #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"
@@ -311,7 +309,10 @@ IsClientConfigDirectory(const char *path)
 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;
 
@@ -357,9 +358,11 @@ afsconf_Check(register struct afsconf_dir *adir)
 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 */
@@ -781,8 +784,8 @@ ParseCellLine(register char *aline, register char *aname,
 /* 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;
@@ -804,8 +807,8 @@ afsconf_CellApply(struct afsconf_dir *adir,
 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;
@@ -1282,7 +1285,8 @@ afsconf_GetKeys(struct afsconf_dir *adir, struct afsconf_keys *astr)
 
 /* 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;
@@ -1323,8 +1327,9 @@ afsconf_GetLatestKey(struct afsconf_dir * adir, afs_int32 * avno, char *akey)
 
 /* 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;
index e2ae6ed2d5066a9a7194d9cd531b4360684dceb5..4819510f8edf46f06a42a1e80b57b706c47e4d22 100644 (file)
@@ -101,14 +101,14 @@ struct afsconf_servPair {
 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,
@@ -125,9 +125,10 @@ extern int afsconf_IntGetKeys(struct afsconf_dir *adir);
 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);
index ae650eaa889e19798df65b925e9ef768354268a3..2f8abdc15e287cd5d23198ccb163abf55bb53e3c 100644 (file)
 #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
@@ -35,9 +28,8 @@ RCSID
 
 char whoami[256];
 
-main(argc, argv)
-     int argc;
-     char **argv;
+int
+main(int argc, char **argv)
 {
     char localName[64];
     register afs_int32 code;
index 8230e37e6de04874b70920b0b18a6cea1b52d06b..145f6c04ed8f18bbfcb653fe48ba2939f024b7f0 100644 (file)
@@ -17,7 +17,7 @@
 #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"
@@ -40,6 +40,7 @@ RCSID
 #include <unistd.h>
 #endif
 #include <stdio.h>
+#include <stdlib.h>
 #include <afs/stds.h>
 #include <afs/pthread_glock.h>
 #include <sys/types.h>
@@ -49,16 +50,14 @@ RCSID
 #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>
@@ -128,10 +127,16 @@ static struct flock fileUlock = { F_UNLCK, 0, 0, 0, 0 };
 /* 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
@@ -251,11 +256,10 @@ static struct {
  * 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));
@@ -267,10 +271,8 @@ NewSetToken(aserver, atoken, aclient, flags)
 (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];
@@ -414,12 +416,11 @@ OldSetToken(aserver, atoken, aclient, flags)
     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;
 
@@ -487,10 +488,9 @@ ktc_SetToken(aserver, atoken, aclient, flags)
 /* 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];
@@ -502,7 +502,9 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
     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
@@ -540,8 +542,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
                    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;
            }
        }
@@ -671,8 +673,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
  * NOT IMPLEMENTED YET!
  */
 #ifndef NO_AFS_CLIENT
-ktc_ForgetToken(aserver)
-     struct ktc_principal *aserver;
+int
+ktc_ForgetToken(struct ktc_principal *aserver)
 {
     int rc;
 
@@ -689,9 +691,10 @@ ktc_ForgetToken(aserver)
  * 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];
@@ -841,7 +844,7 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
 /* 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);
@@ -850,7 +853,7 @@ NewForgetAll()
 }
 
 static int
-OldForgetAll()
+OldForgetAll(void)
 {
     struct ViceIoctl iob;
     register afs_int32 code;
@@ -872,7 +875,7 @@ OldForgetAll()
 }
 
 int
-ktc_ForgetAllTokens()
+ktc_ForgetAllTokens(void)
 {
     int ncode, ocode;
 
@@ -900,7 +903,8 @@ ktc_ForgetAllTokens()
 /* 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;
@@ -950,12 +954,13 @@ ktc_OldPioctl()
  *     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.
@@ -1020,8 +1025,8 @@ static tf_gets(), tf_read();
  * 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;
@@ -1114,8 +1119,8 @@ afs_tf_init(tf_name, rw)
  * 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;
@@ -1135,8 +1140,8 @@ afs_tf_get_pname(p)
  * 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;
@@ -1157,9 +1162,8 @@ afs_tf_get_pinst(inst)
  * 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;
@@ -1217,7 +1221,8 @@ afs_tf_get_cred(principal, token)
  * 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)
@@ -1229,6 +1234,7 @@ afs_tf_close()
        fd = -1;                /* see declaration of fd above */
     }
     memset(tfbfr, 0, sizeof(tfbfr));
+    return 0;
 }
 
 /*
@@ -1249,11 +1255,10 @@ afs_tf_close()
  *             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;
@@ -1285,12 +1290,10 @@ tf_gets(s, n)
  * 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)) {
@@ -1305,8 +1308,6 @@ tf_read(s, n)
     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().
@@ -1318,10 +1319,10 @@ char *tkt_string();
  * 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];
@@ -1420,8 +1421,6 @@ afs_tf_save_cred(aserver, atoken, aclient)
  * <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.
@@ -1451,7 +1450,7 @@ ktc_tkt_string_uid(afs_uint32 uid)
 
     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';
@@ -1494,9 +1493,8 @@ ktc_set_tkt_string(char * val)
  * 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;
@@ -1573,7 +1571,8 @@ afs_tf_create(pname, pinst)
  * failure.
  */
 
-afs_tf_dest_tkt()
+int
+afs_tf_dest_tkt(void)
 {
     char *file = ktc_tkt_string();
     int i, fd;
@@ -1613,8 +1612,14 @@ afs_tf_dest_tkt()
 }
 
 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;
@@ -1638,10 +1643,11 @@ curpag()
            return -1;
     }
     return -1;
+#endif
 }
 
-
-ktc_newpag()
+int
+ktc_newpag(void)
 {
     extern char **environ;
 
@@ -1660,7 +1666,7 @@ ktc_newpag()
     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);
 
@@ -1668,7 +1674,7 @@ ktc_newpag()
        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;
     }
@@ -1679,6 +1685,7 @@ ktc_newpag()
     *++denv = 0;
     environ = newenv;
     UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /*
@@ -1686,7 +1693,7 @@ ktc_newpag()
  * find out what the local cell is.
  */
 static void
-ktc_LocalCell()
+ktc_LocalCell(void)
 {
     int code;
     struct afsconf_dir *conf;
index a0dc50f552be9f2a5035b8017bcab8547c836e6e..c75360a5d7f91952dc44509cc30c43a85a312d7e 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -21,19 +21,14 @@ RCSID
 #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>
@@ -43,9 +38,7 @@ static int char2hex(char c);
 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;
index c6e72633f9afb7c66eb9a6912d1986374e6fa8a1..ee00119c10ca04f194606f1eddd426f51a07cb14 100644 (file)
@@ -26,7 +26,7 @@ Creation date:
 #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>
@@ -40,10 +40,8 @@ RCSID
 #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;
@@ -101,7 +99,7 @@ main(argc, argv)
            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)
index f234e4c2ddf169791f65c530a9afa4f8665a077e..7ecb9bad23db1b5b92548eaa507c984859b7d0fc 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -46,23 +46,21 @@ RCSID
 #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 */
@@ -73,8 +71,7 @@ GetNoAuthFlag(adir)
 
 
 int
-afsconf_GetNoAuthFlag(adir)
-     struct afsconf_dir *adir;
+afsconf_GetNoAuthFlag(struct afsconf_dir *adir)
 {
     int rc;
 
@@ -85,9 +82,7 @@ afsconf_GetNoAuthFlag(adir)
 }
 
 void
-afsconf_SetNoAuthFlag(adir, aflag)
-     struct afsconf_dir *adir;
-     int aflag;
+afsconf_SetNoAuthFlag(struct afsconf_dir *adir, int aflag)
 {
     register afs_int32 code;
 
@@ -112,9 +107,7 @@ afsconf_SetNoAuthFlag(adir, aflag)
 
 /* 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];
@@ -204,11 +197,8 @@ afsconf_DeleteUser(adir, auser)
 
 /* 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;
@@ -246,9 +236,7 @@ afsconf_GetNthUser(adir, an, abuffer, abufferLen)
 
 /* 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;
@@ -280,9 +268,7 @@ FindUser(adir, auser)
 
 /* 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;
@@ -316,12 +302,8 @@ afsconf_AddUser(adir, aname)
        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];
 
@@ -360,10 +342,7 @@ CompFindUser(adir, name, sep, inst, realm)
     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;
@@ -429,7 +408,7 @@ afsconf_SuperUser(adir, acall, namep)
        tmp = tcell_l;
        while (*tmp) {
            *tmp = tolower(*tmp);
-           *tmp++;
+           tmp++;
        }
 
        /* determine local cell name. It's static, so will only get
index e6aeb8880b326027236ff230b9180ad5d5c7e6ea..6f7276c47e4ec9eaa56078b0a31995550a7642c7 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -28,19 +28,14 @@ RCSID
 #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"
 
@@ -49,8 +44,7 @@ RCSID
 */
 
 static int
-VerifyEntries(aci)
-     register struct afsconf_cell *aci;
+VerifyEntries(register struct afsconf_cell *aci)
 {
     register int i;
     register struct hostent *th;
@@ -91,10 +85,8 @@ VerifyEntries(aci)
    */
 
 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;
 
@@ -103,11 +95,9 @@ afsconf_SetCellInfo(adir, apath, acellInfo)
 }
 
 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;
index c6c0a916156698ecd321f1c8f9448e7e28ff2dc2..6ceac74ec24f84504b5ab42f812f67d5f5371643 100644 (file)
@@ -48,16 +48,16 @@ bosint.xdr.o: bosint.xdr.c ${RPCINCLS}
 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
index a5e1b3977c83bb152d46509ee790f1da30d61856..20ae5641dbb7645f0152d2c373236a599d0b7183 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -28,14 +28,7 @@ RCSID
 #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>
@@ -43,6 +36,7 @@ RCSID
 #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 */
@@ -497,8 +491,8 @@ DeleteProc(register struct bnode_proc *abproc)
 }
 
 /* bnode lwp executes this code repeatedly */
-static int
-bproc()
+static void *
+bproc(void *unused)
 {
     register afs_int32 code;
     register struct bnode *tb;
@@ -647,6 +641,7 @@ bproc()
            }
        }
     }
+    return NULL;
 }
 
 static afs_int32
@@ -769,9 +764,11 @@ hdl_notifier(struct bnode_proc *tp)
 
 /* 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;
 }
@@ -782,12 +779,10 @@ bnode_SoftInt(int asignal)
 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);
     }
 }
 
index 0121155502c35ad014aea2e02df0a2d6d0644a31..f0ec4c54dfda1baaf906cd277e791f2e32c2c4a6 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -277,9 +277,8 @@ GetConn(as, aencrypt)
     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;
@@ -348,9 +347,8 @@ CopyBytes(afd, acall)
     }
 }
 
-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;
@@ -372,9 +370,8 @@ Prune(as)
     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;
@@ -386,9 +383,8 @@ Exec(as)
     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];
@@ -437,9 +433,8 @@ GetDate(as)
     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];
@@ -496,9 +491,8 @@ GetServerGoal(aconn, aname)
        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;
@@ -554,9 +548,8 @@ Install(as)
     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;
@@ -584,10 +577,8 @@ Shutdown(as)
     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;
@@ -602,10 +593,8 @@ BlockScannerCmd(as, arock)
     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;
@@ -620,10 +609,8 @@ UnBlockScannerCmd(as, arock)
     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;
@@ -665,10 +652,8 @@ GetRestartCmd(as, arock)
     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;
@@ -707,9 +692,8 @@ SetRestartCmd(as, arock)
     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;
@@ -731,9 +715,8 @@ Startup(as)
     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;
@@ -777,9 +760,8 @@ Restart(as)
     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;
@@ -791,9 +773,8 @@ SetCellName(as)
     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;
@@ -819,9 +800,8 @@ AddHost(as)
     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;
@@ -837,9 +817,8 @@ RemoveHost(as)
     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;
@@ -868,9 +847,8 @@ ListHosts(as)
     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;
@@ -938,9 +916,8 @@ AddKey(as)
     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;
@@ -959,9 +936,8 @@ RemoveKey(as)
     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;
@@ -1000,9 +976,8 @@ ListKeys(as)
     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;
@@ -1021,9 +996,8 @@ AddSUser(as)
     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;
@@ -1047,9 +1021,8 @@ RemoveSUser(as)
 }
 
 #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;
@@ -1087,9 +1060,8 @@ ListSUsers(as)
     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;
@@ -1122,9 +1094,8 @@ StatServer(as)
     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;
@@ -1155,9 +1126,8 @@ CreateServer(as)
     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;
@@ -1178,9 +1148,8 @@ DeleteServer(as)
     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;
@@ -1197,9 +1166,8 @@ StartServer(as)
     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;
@@ -1432,9 +1400,8 @@ DoSalvage(aconn, aparm1, aparm2, aoutName, showlog, parallel, atmpDir,
     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;
@@ -1471,9 +1438,8 @@ GetLogCmd(as)
     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;
@@ -1867,9 +1833,8 @@ DoStat(aname, aconn, aint32p, firstTime)
 }
 
 #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;
@@ -1884,9 +1849,8 @@ GetRestrict(as)
     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;
@@ -1959,12 +1923,12 @@ main(argc, argv)
     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);
@@ -1972,7 +1936,7 @@ main(argc, argv)
                "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,
@@ -1980,7 +1944,7 @@ main(argc, argv)
     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);
@@ -1988,12 +1952,12 @@ main(argc, argv)
                "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,
@@ -2003,7 +1967,7 @@ main(argc, argv)
 
 #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");
@@ -2013,105 +1977,105 @@ main(argc, argv)
                "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");
@@ -2119,7 +2083,7 @@ main(argc, argv)
     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,
@@ -2130,12 +2094,12 @@ main(argc, argv)
                "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,
@@ -2191,23 +2155,23 @@ main(argc, argv)
                "(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");
index 4af472f3c00f0fba9975ef1cc66ccab3de8c3ddf..c8cbbd9955b97dd38c4cb9f8a0cecd9fcba311f8 100644 (file)
 #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>
index ce506a70d53f7675e37da7d15d1caf862117cb72..ec9e1e47699833b91794d68af2287f10134f6a98 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -37,18 +37,11 @@ RCSID
 #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;
 
@@ -1662,9 +1655,10 @@ SBOZO_SetRestrictedMode(acall, arestmode)
 }
 #endif
 
-void
-bozo_ShutdownAndExit(int asignal)
+void *
+bozo_ShutdownAndExit(void *param)
 {
+    int asignal = (int) param;
     int code;
 
     bozo_Log
diff --git a/src/bozo/bosprototypes.h b/src/bozo/bosprototypes.h
new file mode 100644 (file)
index 0000000..7275737
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * 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
index ec7258980797311f1587c0b25efcb33346685441..b15cc50523d337b73e0b5aaa0c4a3e17774fa279 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -21,6 +21,7 @@ RCSID
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdarg.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
 #include <direct.h>
@@ -37,6 +38,7 @@ RCSID
 #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>
@@ -47,14 +49,11 @@ RCSID
 #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];
@@ -72,6 +71,7 @@ static afs_int32 nextDay;
 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];
@@ -514,8 +514,8 @@ bdrestart(register struct bnode *abnode, char *arock)
 
 #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;
 
@@ -550,6 +550,7 @@ BozoDaemon()
            bnode_ApplyInstance(bdrestart, 0);
        }
     }
+    return NULL;
 }
 
 #ifdef AFS_AIX32_ENV
@@ -822,6 +823,9 @@ main(int argc, char **argv, char **envp)
        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"); 
@@ -830,7 +834,7 @@ main(int argc, char **argv, char **envp)
            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);
@@ -873,14 +877,14 @@ main(int argc, char **argv, char **envp)
 #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
@@ -1063,6 +1067,11 @@ main(int argc, char **argv, char **envp)
     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,
@@ -1070,17 +1079,21 @@ main(int argc, char **argv, char **envp)
     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);
@@ -1098,13 +1111,13 @@ bozo_Log(char *a, char *b, char *c, char *d, char *e, char *f)
 
        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);
        }
     }
 }
index a6877366a15e8e798a33536e424b4b6966453544..ba017d20ad39a9e29caac81a9a3fae7f9bdbc952 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -23,19 +23,14 @@ RCSID
 #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();
index 72d40de5dfb6bd7d65ec8ff936baeec07230fc99..48ea33f45dfb38d5960cfd4615d154b7400743ce 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -21,18 +21,13 @@ RCSID
 #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();
index 4b2eb32ccf86cbc747b1db7e27c03ce7534e2fe7..010fad4e0a0a7b74cf74c61fa0b9d904b94e8761 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -26,13 +26,7 @@ RCSID
 #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 */
@@ -40,13 +34,14 @@ RCSID
 #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;
@@ -515,7 +510,7 @@ fs_procexit(struct fsbnode *abnode, struct bnode_proc *aproc)
 }
 
 /* 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
index 0c14ba1b5fa38ec19ccec3d313d766378ba4365f..bdf71ae343d40fd4bad423bf4ac1592aaf2f07b1 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -35,7 +35,7 @@ afs_int32 eotEnabled = 1;
 /* 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)                                           \
         {                                                       \
@@ -64,23 +64,24 @@ main(argc, argv)
     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;
 }
 
 
index 77eec29d728697c46af6266070b7e1b637ee3515..21b37680d5d14e276a3858c932dbbd1406cfc4b5 100644 (file)
@@ -18,16 +18,16 @@ libbubasics.a: $(OBJS) AFS_component_version_number.o
        ${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
index 4e385e238d440924c04807a7c473b9ccdb6e52fe..4fbc1bfc6105f9c298ddc1129a41425e2bdb517b 100644 (file)
 #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.
index 13fd67751b0ba6833037a422aaad63cf4048fbc6..a3cd0c5a43f67ea02d335d49e02a93e251facfd2 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -105,8 +105,8 @@ nextItem(linkPtr)
 
 char *cmdLine;
 
-int
-cmdDispatch()
+void *
+cmdDispatch(void *unused)
 {
 #define        MAXV    100
     char **targv[MAXV];                /*Ptr to parsed argv stuff */
@@ -120,7 +120,7 @@ cmdDispatch()
     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);
 
@@ -130,10 +130,11 @@ cmdDispatch()
      */
     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;
@@ -395,6 +396,7 @@ statusWatcher()
            curPollPtr = 0;
        }                       /*done */
     }                          /*w */
+    return NULL;
 }
 
 /* bc_jobNumber
diff --git a/src/bucoord/bucoord_prototypes.h b/src/bucoord/bucoord_prototypes.h
new file mode 100644 (file)
index 0000000..1807505
--- /dev/null
@@ -0,0 +1,17 @@
+/* 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
+
index 42fdba065e6cf60e994e9ed02bf17a554f2bc430..b2ba07ecf44ff840a1b70c804a90e6ccafbb8334 100644 (file)
@@ -11,7 +11,7 @@
 #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)
@@ -765,7 +765,8 @@ concatParams(itemPtr)
 /* printIfStatus
  *     print out an interface status node as received from butc
  */
-
+void
 printIfStatus(statusPtr)
      struct tciStatusS *statusPtr;
 {
@@ -822,10 +823,8 @@ getPortOffset(port)
 /* 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;
@@ -920,10 +919,8 @@ bc_WaitForNoJobs()
  * 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;
@@ -1037,9 +1034,8 @@ bc_JobsCmd(as, arock)
     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;
@@ -1111,9 +1107,8 @@ bc_KillCmd(as, arock)
 }
 
 /* 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
@@ -1266,9 +1261,8 @@ bc_VolRestoreCmd(as, arock)
  *     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 */
@@ -1423,9 +1417,8 @@ bc_DiskRestoreCmd(as, arock)
  *     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;
@@ -1606,9 +1599,7 @@ bc_VolsetRestoreCmd(as, arock)
 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 */
@@ -1986,10 +1977,8 @@ bc_DumpCmd(as, arock)
  * 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;
@@ -2038,10 +2027,8 @@ bc_QuitCmd(as, arock)
  *     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;
@@ -2101,10 +2088,8 @@ bc_LabelTapeCmd(as, arock)
  * 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;
@@ -2131,10 +2116,8 @@ bc_ReadLabelCmd(as, arock)
  *     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;
@@ -2242,10 +2225,8 @@ bc_ParseExpiration(paramPtr, expType, expDate)
  *     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;
@@ -2261,10 +2242,8 @@ bc_dblookupCmd(as, arock)
 
 
 /* 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;
@@ -2420,10 +2399,8 @@ deleteDump(dumpid, port, force)
  * 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;
@@ -2576,9 +2553,8 @@ bc_deleteDumpCmd(as, arock)
     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;
@@ -2646,9 +2622,8 @@ bc_saveDbCmd(as, arock)
     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;
@@ -3151,9 +3126,8 @@ printRecentDumps(ndumps)
  *     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;
index 0ba0344226a27edce6d8a59ecc98483416c2a88a..0f6f1fe8e3b8135ccfa452783ccbdaf5b709be9a 100644 (file)
 #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>
index 490951e6986bfd083d8d333e41e25d9939b6a792..83da89eac11044e5234afc74c5a441c9891640b7 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -26,6 +26,8 @@ RCSID
 #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>
index ce8f6ae8a01fa28313ad012f3212c40b31a73535..44ffb30f5fb746046ab81406fdc76f8550ea7393 100644 (file)
@@ -19,7 +19,7 @@
 #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>
@@ -44,6 +44,8 @@ struct ubik_client *cstructp; /*Ptr to Ubik client structure */
 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:
index 223ccade37fb445ea18814543160c324a1088d45..ecd67421b9097a1446bc211bd3953d7fa7d181ca 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -178,6 +178,7 @@ bc_Dumper(aindex)
  *     free the list of volumes used for dumps
  */
 
+void
 freeDumpTaskVolumeList(vdptr)
      struct bc_volumeDump *vdptr;
 {
@@ -198,9 +199,10 @@ freeDumpTaskVolumeList(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;
 
index 1f3ffb661f18f815e08a28e2ee263c539b75e1f9..07160263a5afefeb11f1b43991e64fac423cc136 100644 (file)
  */
 
 #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>
@@ -43,6 +45,7 @@ extern struct bc_config *bc_globalConfig;
 extern struct udbHandleS udbHandle;
 extern char *whoami;
 
+static ListDumpSchedule();
 
 /* ------------------------------------
  * command level routines
@@ -56,13 +59,11 @@ extern char *whoami;
  *     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;
@@ -146,16 +147,14 @@ bc_AddDumpCmd(as, arock)
  *     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 */
@@ -265,11 +264,11 @@ ListDumpSchedule(register struct bc_dumpSchedule *adump, int alevel)
  *      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 */
@@ -298,17 +297,15 @@ bc_ListDumpScheduleCmd(struct cmd_syndesc *as, char *arock)
  *     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();
 
index 46d69cf919489f770002b6c310a975f49af04b48..b887c1531c5aad93228b173414075782afa386f5 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -45,7 +45,7 @@ RCSID
 #include <afs/budb.h>
 
 #include "bc.h"                        /*Backup Coordinator structs and defs */
-
+#include "bucoord_prototypes.h"
 
 int localauth, interact;
 char tcell[64];
@@ -244,8 +244,6 @@ backupInit()
     PROCESS watcherPid;
     PROCESS pid;               /* LWP process ID */
 
-    extern statusWatcher();
-
     /* Initialization */
     initialize_CMD_error_table();
 
@@ -326,8 +324,7 @@ backupInit()
  */
 
 static int
-MyBeforeProc(as)
-     register struct cmd_syndesc *as;
+MyBeforeProc(register struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
 
@@ -462,9 +459,7 @@ doDispatch(targc, targv, dispatchCount)
 }
 
 int
-bc_interactCmd(as, arock)
-     struct cmd_syndesc *as;
-     char *arock;
+bc_interactCmd(struct cmd_syndesc *as, void *arock)
 {
     interact = 1;
     return 0;
@@ -516,7 +511,7 @@ main(argc, argv)
 
     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");
@@ -530,7 +525,7 @@ main(argc, argv)
     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");
@@ -549,7 +544,7 @@ main(argc, argv)
     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");
@@ -567,9 +562,9 @@ main(argc, argv)
     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");
@@ -580,7 +575,7 @@ main(argc, argv)
     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,
@@ -588,7 +583,7 @@ main(argc, argv)
     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");
@@ -597,29 +592,29 @@ main(argc, argv)
     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,
@@ -627,20 +622,20 @@ main(argc, argv)
     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");
@@ -650,26 +645,26 @@ main(argc, argv)
     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,
@@ -681,14 +676,14 @@ main(argc, argv)
     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");
@@ -697,34 +692,34 @@ main(argc, argv)
     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");
@@ -733,13 +728,13 @@ main(argc, argv)
     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");
@@ -756,7 +751,7 @@ main(argc, argv)
     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);
 
index a65587e2aa5fbfad83c7ae622617774ca3102617..435749f1a75577206b16386d6855f2dcff0c8545 100644 (file)
 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
  */
index 7486cbd817c0ee4261af400701e8e2200d7ec333..d335e50485930de70fea0551d87815fa635efe8d 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -131,6 +131,7 @@ extractTapeSeq(tapename)
     return (atol(sptr));
 }
 
+void
 viceName(value)
      long value;
 {
index 4805db1932d0b15276686080b175aed46eeb9bbb..4150effed2ee811eec4bc25836bec3fab04daa5c 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -38,6 +38,7 @@ extern struct Lock cmdLineLock;       /* lock on the cmdLine */
  * These routines are common the backup coordinator and tape coordinator
  */
 
+void
 initStatus()
 {
     dlqInit(&statusHead);
@@ -47,21 +48,25 @@ initStatus()
 
 /* lock managment */
 
+void
 lock_Status()
 {
     ObtainWriteLock(&statusQueueLock);
 }
 
+void
 unlock_Status()
 {
     ReleaseWriteLock(&statusQueueLock);
 }
 
+void
 lock_cmdLine()
 {
     ObtainWriteLock(&cmdLineLock);
 }
 
+void
 unlock_cmdLine()
 {
     ReleaseWriteLock(&cmdLineLock);
@@ -109,6 +114,7 @@ createStatusNode()
     return (ptr);
 }
 
+void
 deleteStatusNode(ptr)
      statusP ptr;
 {
index 92fb5530f95f10cb2b4820a0f8fd653517ba2020..6aebc33ac93590adba11f70136b93f59531727bb 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -49,10 +49,8 @@ extern char *whoami;
  *     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;
@@ -107,10 +105,8 @@ bc_AddHostCmd(as, arock)
     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;
@@ -174,10 +170,8 @@ bc_DeleteHostCmd(as, arock)
  *     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;
index 26677388e8678a0aa1f23e7bd415f3b776698a0a..f65ecc4e6d137759b00b9acd363ffa4a974b5037 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -41,6 +41,7 @@ extern char *whoami;
 extern struct bc_volumeSet *bc_FindVolumeSet(struct bc_config *cf, char *name);
 extern void FreeVolumeSet(struct bc_volumeSet *avset);
 
+static ListVolSet();
 
 /* ------------------------------------
  * command level routines
@@ -57,11 +58,10 @@ extern void FreeVolumeSet(struct bc_volumeSet *avset);
  *     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;
@@ -129,13 +129,11 @@ bc_AddVolEntryCmd(as, arock)
  *     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;
@@ -190,12 +188,10 @@ bc_AddVolSetCmd(as, arock)
  *     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;
@@ -279,13 +275,11 @@ bc_DeleteVolEntryCmd(as, arock)
  *     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;
@@ -364,13 +358,13 @@ ListVolSet(struct bc_volumeSet *aset)
   *     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) {
index 7d50173aa9557fc26ee87d49aaf6de5622df3aef..4d3cbcf64a69654efa1ec7a074758af35f88b2d1 100644 (file)
@@ -74,16 +74,16 @@ budb_server: $(SERVER_OBJS) ${LIBS}
        ${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
index 63769cc3604c72a1d5ea905bb1c09dd5859890d7..afc413e244f5ce21ba82d01503320734800e672a 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -27,15 +27,7 @@ RCSID
 #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 */
index 23ff7affb1931ae9e0d92c42aa8a7cc2af1deefa..18017b3970dd82e1073a7ee222f48ec7959a81dd 100644 (file)
 #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>
index 5a1111d555c1d842d6c820486baa413a150f1e06..fd2010842ab03826dc9ee7f27ab0c15ba4e55cf9 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -28,14 +28,7 @@ RCSID
 #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"
@@ -100,6 +93,7 @@ canWrite(fid)
  *     no return value
  */
 
+void
 haveWritten(nbytes)
      afs_int32 nbytes;
 {
@@ -121,6 +115,7 @@ haveWritten(nbytes)
  *     done flag.
  */
 
+void
 doneWriting(error)
      afs_int32 error;
 {
index a58a647c41eaa34d03ccb684ca9886350260c395..ba20b31307c8d3729a99c2b04d0482d912baf4d6 100644 (file)
 #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>
index 913f0f0c77005d595a0f5bbaab3d8101b1dfc386..1c2ba165cc9f165047b6211fcfdaef8c10035741 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -22,13 +22,7 @@ RCSID
 #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>
@@ -490,7 +484,7 @@ SaveText(call, lockHandle, textType, offset, flags, charListPtr)
 }
 
 /* debug support */
-
+void
 saveTextToFile(ut, tbPtr)
      struct ubik_trans *ut;
      struct textBlock *tbPtr;
index a4315cf61d901d8c438a970ab4f7c2a620594ba2..7fb1025959dfc51f133f05e33ca231ca15d15236 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -45,6 +45,7 @@ RCSID
 #include "globals.h"
 #include "afs/audit.h"
 
+void *dumpWatcher(void *);
 
 /* dump ubik database - interface routines */
 
@@ -64,9 +65,10 @@ badEntry(dbAddr)
  *     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);
@@ -86,7 +88,7 @@ setupDbDump(writeFid)
   error_exit:
     if (dumpSyncPtr->ut)
        ubik_EndTrans(dumpSyncPtr->ut);
-    return (code);
+    return (void *)(code);
 }
 
 
@@ -117,7 +119,6 @@ DumpDB(call, firstcall, maxLength, charListPtr, done)
     PROCESS dumperPid, watcherPid;
     int readSize;
     afs_int32 code = 0;
-    extern dumpWatcher();
 
     if (callPermitted(call) == 0)
        ERROR(BUDB_NOTPERMITTED);
@@ -289,7 +290,8 @@ RestoreDbHeader(call, header)
  *     transactions can proceed.
  */
 
-dumpWatcher()
+void *
+dumpWatcher(void *unused)
 {
     afs_int32 code;
 
index dfe6095dd7a70094614bb87c343c342d816b4932..11c7dde8b8d7ba5a169570c0f2cbe371f0bf2bf6 100644 (file)
@@ -13,7 +13,7 @@
 #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
@@ -22,13 +22,7 @@ RCSID
 #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>
index 8a01c462a805d4be56ca7a183863b78ac207e3fe..f13c76fa3b9f9e4c3052078def817aeb7e0a7fd2 100644 (file)
@@ -17,7 +17,7 @@
 #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>
@@ -29,14 +29,7 @@ RCSID
 #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>
index dd26cf0f04dd87219ef86d551cda232f535afb8c..8863c62ea6c3b3bd25db53ae59c078bf2132e2f1 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -24,15 +24,7 @@ RCSID
 #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>
@@ -62,6 +54,8 @@ RCSID
 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;
@@ -131,8 +125,7 @@ convert_cell_to_ubik(cellinfo, myHost, serverList)
  *      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;
@@ -142,12 +135,11 @@ MyBeforeProc(as)
  *     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");
@@ -179,9 +171,7 @@ initializeArgHandler()
 }
 
 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 */
@@ -595,14 +585,14 @@ main(argc, argv)
     currentTime = time(0);
     LogError(0, "Ready to process requests at %s\n", ctime(&currentTime));
 
-    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 */
index be43438f38896c8b3c34758bf74ee6fdeccf9511..dc2ab411b72c2353da5f65ea803d5829e6080ac1 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -36,6 +36,7 @@ RCSID
  * ----------------------------------
  */
 
+void
 printDbHeader(ptr)
      struct DbHeader *ptr;
 {
@@ -47,6 +48,7 @@ printDbHeader(ptr)
     printf("lastTapeId = %d\n", ptr->lastTapeId);
 }
 
+void
 printDump(fid, dptr)
      FILE *fid;
      struct dump *dptr;
@@ -67,6 +69,7 @@ printDump(fid, dptr)
 
 }
 
+void
 printDumpEntry(deptr)
      struct budb_dumpEntry *deptr;
 {
@@ -105,6 +108,7 @@ printDumpEntry(deptr)
  *     print the hash table structure, i.e. the header structure.
  */
 
+void
 printHashTable(fid, htptr)
      FILE *fid;
      struct hashTable *htptr;
@@ -308,6 +312,7 @@ printVolInfo(fid, viptr)
  *     currently used for debug only
  */
 
+void
 volFragment_ntoh(netVfPtr, hostVfPtr)
      struct volFragment *netVfPtr, *hostVfPtr;
 {
@@ -324,6 +329,7 @@ volFragment_ntoh(netVfPtr, hostVfPtr)
     hostVfPtr->sequence = ntohs(netVfPtr->sequence);
 }
 
+void
 volInfo_ntoh(netViPtr, hostViPtr)
      struct volInfo *netViPtr, *hostViPtr;
 {
@@ -339,6 +345,7 @@ volInfo_ntoh(netViPtr, hostViPtr)
     hostViPtr->nFrags = ntohl(netViPtr->nFrags);
 }
 
+void
 tape_ntoh(netTapePtr, hostTapePtr)
      struct tape *netTapePtr, *hostTapePtr;
 {
@@ -360,6 +367,7 @@ tape_ntoh(netTapePtr, hostTapePtr)
     hostTapePtr->useCount = ntohl(netTapePtr->useCount);
 }
 
+void
 dump_ntoh(netDumpPtr, hostDumpPtr)
      struct dump *netDumpPtr, *hostDumpPtr;
 {
@@ -382,6 +390,7 @@ dump_ntoh(netDumpPtr, hostDumpPtr)
     principal_ntoh(&netDumpPtr->dumper, &hostDumpPtr->dumper);
 }
 
+void
 DbHeader_ntoh(netptr, hostptr)
      struct DbHeader *netptr, *hostptr;
 {
@@ -393,6 +402,7 @@ DbHeader_ntoh(netptr, hostptr)
     hostptr->lastTapeId = ntohl(netptr->lastTapeId);
 }
 
+void
 dumpEntry_ntoh(netptr, hostptr)
      struct budb_dumpEntry *netptr, *hostptr;
 {
@@ -431,6 +441,7 @@ principal_ntoh(netptr, hostptr)
     return 0;
 }
 
+void
 structDumpHeader_hton(hostPtr, netPtr)
      struct structDumpHeader *hostPtr, *netPtr;
 {
@@ -439,6 +450,7 @@ structDumpHeader_hton(hostPtr, netPtr)
     netPtr->size = htonl(hostPtr->size);
 }
 
+void
 structDumpHeader_ntoh(netPtr, hostPtr)
      struct structDumpHeader *hostPtr, *netPtr;
 {
@@ -447,6 +459,7 @@ structDumpHeader_ntoh(netPtr, hostPtr)
     hostPtr->size = ntohl(netPtr->size);
 }
 
+void
 tapeEntry_ntoh(netptr, hostptr)
      struct budb_tapeEntry *netptr, *hostptr;
 {
@@ -491,6 +504,7 @@ tapeSet_ntoh(netptr, hostptr)
     return 0;
 }
 
+void
 textBlock_hton(hostptr, netptr)
      struct textBlock *hostptr, *netptr;
 {
@@ -501,6 +515,7 @@ textBlock_hton(hostptr, netptr)
     netptr->newTextAddr = htonl(hostptr->newTextAddr);
 }
 
+void
 textBlock_ntoh(netptr, hostptr)
      struct textBlock *netptr, *hostptr;
 {
@@ -511,6 +526,7 @@ textBlock_ntoh(netptr, hostptr)
     hostptr->newTextAddr = ntohl(netptr->newTextAddr);
 }
 
+void
 textLock_hton(hostptr, netptr)
      db_lockP hostptr, netptr;
 {
@@ -522,6 +538,7 @@ textLock_hton(hostptr, netptr)
     netptr->lockHost = htonl(hostptr->lockHost);
 }
 
+void
 textLock_ntoh(netptr, hostptr)
      db_lockP netptr, hostptr;
 {
@@ -533,6 +550,7 @@ textLock_ntoh(netptr, hostptr)
     hostptr->lockHost = ntohl(netptr->lockHost);
 }
 
+void
 volumeEntry_ntoh(netptr, hostptr)
      struct budb_volumeEntry *netptr, *hostptr;
 {
@@ -559,7 +577,7 @@ volumeEntry_ntoh(netptr, hostptr)
  * -------------------------------------
  */
 
-
+void
 copy_ktcPrincipal_to_budbPrincipal(ktcPtr, budbPtr)
      struct ktc_principal *ktcPtr;
      struct budb_principal *budbPtr;
@@ -663,4 +681,5 @@ default_tapeset(tapesetPtr, dumpname)
     tapesetPtr->a = 1;
     tapesetPtr->b = 1;
     tapesetPtr->maxTapes = 0;
+    return 0;
 }
diff --git a/src/butc/butc_prototypes.h b/src/butc/butc_prototypes.h
new file mode 100644 (file)
index 0000000..be97c93
--- /dev/null
@@ -0,0 +1,36 @@
+/* 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
+
index 48dcfb1bfaec9c8994b7674050c8978ed74f0afa..c4a36d0fd6b27b42778c53a7889c9a13ca40da3d 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,6 +24,7 @@ RCSID
 #include <netdb.h>
 #endif
 #include <stdlib.h>
+#include <string.h>
 #include <rx/xdr.h>
 #include <rx/rx.h>
 #include <lwp.h>
@@ -309,13 +310,14 @@ waitDbWatcher()
     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;
@@ -483,4 +485,5 @@ dbWatcher()
        IOMGR_Sleep(2);
 #endif
     }
+    return NULL;
 }
index b1ae143f7c29935a8ecb9b3c098ac4a7a32399b3..42f6f42eb48fee8a0c0294a4465556c00cd0b88e 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,6 +24,7 @@ RCSID
 #include <netdb.h>
 #endif
 #include <stdlib.h>
+#include <string.h>
 #include <rx/xdr.h>
 #include <rx/rx.h>
 #include <lwp.h>
@@ -1116,9 +1117,10 @@ dumpPass(struct dumpRock * dparamsPtr, int passNumber)
     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;
@@ -1368,7 +1370,7 @@ Dumper(struct dumpNode *nodePtr)
 
     FreeNode(taskId);          /* free the dump node */
     LeaveDeviceQueue(deviceLatch);
-    return (code);
+    return (void *)(code);
 }
 
 #define BELLTIME 60            /* 60 seconds before a bell rings */
@@ -2029,9 +2031,11 @@ InitToServer(afs_int32 taskId, struct butx_transactionInfo * butxInfoP,
 /* 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;
index ff08cc708932f6308f1aac98d40b950ddb2d9a15..1b4a1260b439d560262c3cd1e589c8846e3037d1 100644 (file)
 #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>
@@ -546,6 +547,7 @@ callOutRoutine(taskId, tapePath, flag, name, dbDumpId, tapecount)
  *     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;
@@ -1741,9 +1743,10 @@ restoreVolume(taskId, restoreInfo, rparamsPtr)
  *     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;
@@ -1922,6 +1925,7 @@ Restorer(newNode)
 
 /* this is just scaffolding, creates new tape label with name <tapeName> */
 
+void
 GetNewLabel(tapeInfoPtr, pName, AFSName, tapeLabel)
      struct butm_tapeInfo *tapeInfoPtr;
      char *pName, *AFSName;
@@ -2223,9 +2227,11 @@ updateTapeLabel(labelIfPtr, tapeInfoPtr, newLabelPtr)
  *     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;
@@ -2283,6 +2289,7 @@ Labeller(labelIfPtr)
  *     print out the tape label.
  */
 
+void
 PrintTapeLabel(labelptr)
      struct butm_tapeLabel *labelptr;
 {
index b8e5485a182592aa37f7441af577b58206807645..48cf8929c930d9b2f345086fb0df1d9ef36bdbb7 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -21,6 +21,7 @@ RCSID
 #include <netinet/in.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <string.h>
 #include <errno.h>
 
 #include <afs/usd.h>
@@ -81,6 +82,7 @@ readblock(buffer)
     return 0;
 }
 
+void
 printLabel(tapeLabelPtr)
      struct tapeLabel *tapeLabelPtr;
 {
@@ -129,6 +131,7 @@ printLabel(tapeLabelPtr)
     }
 }
 
+void
 printHeader(headerPtr, isvolheader)
      struct volumeHeader *headerPtr;
      afs_int32 *isvolheader;
@@ -381,9 +384,8 @@ writeData(data, size)
     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;
index 90d3cb23b8add9ecd53fa0efc9be49ef382716f4..f580ccee248e6f9a18342e88bf2fb44b2a64ae62 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,6 +24,7 @@ RCSID
 #include <strings.h>
 #endif
 #include <sys/types.h>
+#include <string.h>
 #include <rx/xdr.h>
 #include <rx/rx.h>
 #include <lwp.h>
@@ -51,6 +52,8 @@ struct tapeScanInfo {
 extern struct tapeConfig globalTapeConfig;
 extern struct deviceSyncNode *deviceLatch;
 
+static readDump();
+
 /* PrintDumpLabel
  *     print out the tape (dump) label.
  */
@@ -689,9 +692,11 @@ getScanTape(afs_int32 taskId, struct butm_tapeInfo *tapeInfoPtr, char *tname, af
  *     
  */
 
-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;
@@ -748,7 +753,7 @@ ScanDumps(struct scanTapeIf *ptr)
     free(ptr);
     setStatus(taskId, TASK_DONE);
     LeaveDeviceQueue(deviceLatch);
-    return (code);
+    return (void *)(code);
 }
 
 
index 3183908db6024f6fd68a3766f58e98d9eb5d14c4..a33a0f2dcee08226673302e0ff037ea495dd6931 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -57,6 +57,7 @@ RCSID
 #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 */
@@ -67,7 +68,6 @@ RCSID
 
 struct ubik_client *cstruct;
 extern void TC_ExecuteRequest();
-extern int dbWatcher();
 FILE *logIO, *ErrorlogIO, *centralLogIO, *lastLogIO;
 char lFile[AFSDIR_PATH_MAX];
 char logFile[256];
@@ -830,7 +830,7 @@ GetConfigParams(char *filename, afs_int32 port)
 }
 
 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]);
index f5eb23fd72ac148d0893869791af9fe27e7a1368..6ac8e11819d7a328fc8e5c7d80327b7c6b994751 100644 (file)
@@ -13,7 +13,7 @@
 #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>
@@ -27,6 +27,7 @@ RCSID
 #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>
@@ -41,6 +42,12 @@ RCSID
 #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)
@@ -139,10 +146,9 @@ STC_LabelTape(struct rx_call *acid, struct tc_tapeLabel *label, afs_uint32 *task
     PROCESS pid;
 #endif
     struct labelTapeIf *ptr;
-    statusP statusPtr;
+    statusP statusPtr = NULL;
     afs_int32 code;
 
-    extern int Labeller();
     extern statusP createStatusNode();
     extern afs_int32 allocTaskId();
 
@@ -223,7 +229,6 @@ STC_PerformDump(struct rx_call *rxCallId, struct tc_dumpInterface *tcdiPtr, tc_d
     afs_int32 code = 0;
 
     extern statusP createStatusNode();
-    extern Dumper();
 
     if (callPermitted(rxCallId) == 0)
        return (TC_NOTPERMITTED);
@@ -311,7 +316,7 @@ afs_int32
 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;
@@ -321,7 +326,6 @@ STC_PerformRestore(struct rx_call *acid, char *dumpSetName, tc_restoreArray *are
     PROCESS pid;
 #endif
 
-    extern int Restorer();
     extern statusP createStatusNode();
 
     if (callPermitted(acid) == 0)
@@ -417,10 +421,9 @@ STC_RestoreDb(struct rx_call *rxCall, afs_uint32 *taskId)
 #else
     PROCESS pid;
 #endif
-    statusP statusPtr;
+    statusP statusPtr = 0;
     afs_int32 code = 0;
 
-    extern afs_int32 restoreDbFromTape();
     extern statusP createStatusNode();
     extern afs_int32 allocTaskId();
 
@@ -487,11 +490,10 @@ STC_SaveDb(struct rx_call *rxCall, Date archiveTime, afs_uint32 *taskId)
 #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();
 
@@ -571,10 +573,9 @@ STC_ScanDumps(struct rx_call *acid, afs_int32 addDbFlag, afs_uint32 *taskId)
     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();
 
@@ -666,7 +667,6 @@ STC_DeleteDump(struct rx_call *acid, afs_uint32 dumpID, afs_uint32 *taskId)
     PROCESS pid;
 #endif
 #endif
-    extern afs_int32 DeleteDump();
     extern statusP createStatusNode();
     extern afs_int32 allocTaskId();
 
index 65695741c5a1151d013d54884ced9b3648153b9c..ee12fed730dcb0da3a1faf0d4ae05638e0396a56 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,6 +24,7 @@ RCSID
 #include <strings.h>
 #endif
 #include <stdio.h>
+#include <string.h>
 #include <afs/com_err.h>
 #include <lock.h>
 #include <afs/bubasics.h>
index e996c4f041fb57a7fd515e7ab12acb4f0b8729a1..d6f3d1271d02d56879edd61bc7aa79d82c940f26 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -28,6 +28,7 @@ RCSID
 #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>
@@ -52,6 +53,11 @@ RCSID
 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 
  */
@@ -409,8 +415,6 @@ writeDbDump(tapeInfoPtr, taskId, expires, dumpid)
     extern struct tapeConfig globalTapeConfig;
     extern struct udbHandleS udbHandle;
 
-    extern int KeepAlive();
-
     blockSize = BUTM_BLKSIZE;
     writeBlock = (char *)malloc(BUTM_BLOCKSIZE);
     if (!writeBlock)
@@ -620,10 +624,10 @@ writeDbDump(tapeInfoPtr, taskId, expires, dumpid)
  *     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;
@@ -905,7 +909,7 @@ readDbTape(tapeInfoPtr, rstTapeInfoPtr, query)
 }
 
 static afs_int32 nbytes = 0;   /* # bytes left in buffer */
-static
+static void
 initTapeBuffering()
 {
     nbytes = 0;
@@ -1014,10 +1018,10 @@ restoreDbEntries(tapeInfoPtr, rstTapeInfoPtr)
  *     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;
@@ -1103,7 +1107,7 @@ restoreDbFromTape(taskId)
     LeaveDeviceQueue(deviceLatch);
     setStatus(taskId, TASK_DONE);
 
-    return (code);
+    return (void *)(code);
 }
 
 /* KeepAlive
@@ -1115,8 +1119,8 @@ restoreDbFromTape(taskId)
  *      
  *      Use the same udbHandle as writeDbDump so we go to the same server.
  */
-int
-KeepAlive()
+void *
+KeepAlive(void *unused)
 {
     charListT charList;
     afs_int32 code;
index 23604494765ae7dcb5600f8dd4960b3f30df0611..3c8ef7fd5ed0335cae2889fb6bda52f9f72684ab 100644 (file)
@@ -81,9 +81,8 @@ GetServer(aname)
 }
 
 
-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;
@@ -128,11 +127,12 @@ PerformDump(as)
        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;
@@ -170,11 +170,11 @@ PerformRestore(as)
        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;
@@ -190,11 +190,11 @@ CheckDump(as)
        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;
@@ -210,11 +210,11 @@ AbortDump(as)
        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;
@@ -230,11 +230,11 @@ WaitForDump(as)
        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;
@@ -250,12 +250,11 @@ EndDump(as)
        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;
 
@@ -296,20 +295,20 @@ main(argc, argv)
 #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);
index f977a1fa98362c841a199ef6f44d38653d1af13b..2a18ef37fbb69895a0d9c17b2213839529913d8c 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -24,6 +24,7 @@ RCSID
 #include <limits.h>
 #include <sys/stat.h>
 #include <stdio.h>
+#include <string.h>
 #include <ctype.h>
 #include <lwp.h>
 #include <afs/com_err.h>
@@ -626,6 +627,7 @@ ShutdownAccess(usd_handle_t fid)
  *     dataSize - bytes used on the tape
  */
 
+void
 incSize(info, dataSize)
      struct butm_tapeInfo *info;
      afs_uint32 dataSize;
@@ -647,6 +649,7 @@ incSize(info, dataSize)
  *     dataSize - bytes used on the tape
  */
 
+void
 incPosition(info, fid, dataSize)
      struct butm_tapeInfo *info;
      usd_handle_t fid;
index 51291f7352aada354e9dea8ea81cb987816914c6..da3281ea99d2e19de5750d375b732646888ed061 100644 (file)
@@ -1,5 +1,5 @@
 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
@@ -58,7 +58,7 @@ if test X$conf_krb5 = XYES; then
        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],
@@ -103,6 +103,10 @@ dnl        AC_CHECK_MEMBERS([krb5_creds.keyblock, krb5_creds.session],,, [#include <krb
        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)
index 758e002751ee009309b182f9ed71df582ce8d45f..8c82baa87ade3a8fdc25c3dca7216063d5cb788d 100644 (file)
@@ -2,9 +2,12 @@
 #                 [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
@@ -24,8 +27,9 @@ $2
 
 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
@@ -42,8 +46,10 @@ _ACEOF
 #
 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"])
 
 
@@ -65,3 +71,16 @@ AC_DEFUN([LINUX_KERNEL_COMPILE_WORKS], [
     [],:,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)])
index 3cb0ee0d9e935737b0aaff0fef71c1b0410c7300..d4078cc9a32bea5d31c97a01a6e36278d6ad40c1 100644 (file)
@@ -719,11 +719,28 @@ extern int vfs_statfs(struct dentry *, struct kstatfs *);
       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
@@ -894,3 +911,73 @@ _fop.sendfile(NULL, NULL, 0, 0, NULL);],
       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)])
+
index e0646de436440200c4f02bd8fadb1de867c7f561..b8daa6a2082560b5931b1307dac8890d4785f0d6 100644 (file)
@@ -18,6 +18,8 @@ DBG=-g
 OPTMZ=-O
 LWP_DBG=-g
 LWP_OPTMZ=-O
+NO_STRIP_BIN=-ns
+NO_STRIP_KRB=-ns
 
 dnl standard programs
 AC_PROG_RANLIB
@@ -111,6 +113,38 @@ case $AFS_SYSNAME in
                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"
@@ -244,6 +278,7 @@ case $AFS_SYSNAME in
                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"
@@ -270,6 +305,7 @@ case $AFS_SYSNAME in
                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"
@@ -299,6 +335,7 @@ case $AFS_SYSNAME in
                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"
@@ -320,6 +357,7 @@ case $AFS_SYSNAME in
                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"
@@ -340,6 +378,7 @@ case $AFS_SYSNAME in
                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"
@@ -360,6 +399,7 @@ case $AFS_SYSNAME in
                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"
@@ -367,6 +407,8 @@ case $AFS_SYSNAME in
                ;;
 
        *_obsd*)
+               KRB5CFLAGS="-I/usr/include/kerberosV"
+               KRB5LIBS="-lkrb5 -lcrypto"
                LEX="flex -l"
                MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
                MT_LIBS="-pthread"
@@ -385,6 +427,7 @@ case $AFS_SYSNAME in
                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"
@@ -488,6 +531,7 @@ case $AFS_SYSNAME in
                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"
@@ -566,6 +610,7 @@ case $AFS_SYSNAME in
                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"
@@ -583,6 +628,7 @@ case $AFS_SYSNAME in
                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"
@@ -600,6 +646,7 @@ case $AFS_SYSNAME in
                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__"
@@ -675,6 +722,7 @@ case $AFS_SYSNAME in
                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"
@@ -690,6 +738,7 @@ case $AFS_SYSNAME in
                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"
@@ -851,7 +900,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=v9'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -957,7 +1006,7 @@ case $AFS_SYSNAME in
                SHLIB_CFLAGS="-KPIC"
                SHLIB_LDFLAGS="-G -Bsymbolic"
                TXLIBS="-lcurses"
-               XCFLAGS64='${XCFLAGS} -xarch=amd64'
+               XCFLAGS64='${XCFLAGS} -m64'
                XCFLAGS="-dy -Bdynamic"
                XLIBELFA="-lelf"
                XLIBKVM="-lkvm"
@@ -1013,6 +1062,8 @@ fi
 
 if test "x$enable_debug" = "xno"; then
   DBG=
+  NO_STRIP_BIN=
+  NO_STRIP_KRB=-s
 fi
 
 if test "x$enable_optimize" = "xno"; then
@@ -1027,6 +1078,25 @@ if test "x$enable_optimize_lwp" = "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)
@@ -1047,6 +1117,8 @@ AC_SUBST(MT_CC)
 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)
index ec2c2bb9fd659576d8a4dc42273945100307bb51..9bf491d54672c747a582a78153d85575a619a181 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -30,9 +30,9 @@ struct cmd_token {
 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
@@ -40,13 +40,14 @@ static char initcmd_opcode[] = "initcmd";   /*Name of initcmd opcode */
 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;
     }
 }
 
@@ -168,7 +169,7 @@ PrintParmHelp(register struct cmd_parmdesc *aparm)
 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;
@@ -272,7 +273,7 @@ PrintFlagHelp(register struct cmd_syndesc *as)
 }
 
 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;
@@ -297,7 +298,7 @@ AproposProc(register struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -344,8 +345,8 @@ HelpProc(register struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -353,8 +354,8 @@ cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, char *beforeRock),
 }
 
 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;
@@ -380,8 +381,8 @@ SortSyntax(struct cmd_syndesc *as)
 
 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;
 
@@ -481,7 +482,7 @@ cmd_AddParm(register struct cmd_syndesc *as, char *aname, int atype,
     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);
@@ -556,7 +557,7 @@ ResetSyntax(register struct cmd_syndesc *as)
        default:
            break;
        }
-       tp->items = (struct cmd_item *)0;
+       tp->items = NULL;
     }
 }
 
index d8500321a3d1264dce646f38ff3e6a1af4bc18fe..fc143ff8448ed89ff4a6028a04f1ba5d3dbb40f7 100644 (file)
@@ -51,8 +51,8 @@ struct cmd_syndesc {
     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 */
@@ -60,14 +60,14 @@ struct cmd_syndesc {
 
 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,
index c4f48c2e5b2560d77f256b2ce39463cc9537c2aa..4f1197668b6fbf07d0adebddc1c23bcd278819de 100644 (file)
 #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");
@@ -43,9 +39,8 @@ cproc2(as, arock)
     return 0;
 }
 
-main(argc, argv)
-     int argc;
-     char **argv;
+int
+main(int argc, char **argv)
 {
     register struct cmd_syndesc *ts;
 
index f993c1cee3ca76da60ec1ad9bdfa716a67265dbc..f4bb036c3512225db65674927e66cb639d380b0f 100644 (file)
 #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");
@@ -32,9 +30,8 @@ cproc(as, arock)
     return 0;
 }
 
-main(argc, argv)
-     int argc;
-     char **argv;
+int
+main(int argc, char **argv)
 {
     register struct cmd_syndesc *ts;
 
index 3ffdfa88d6382d910ef495e26375c12906597d6a..d03e42e83a536b7d7bfacfc0a121946fa6e4a527 100644 (file)
 #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");
@@ -44,17 +40,14 @@ cproc2(as, arock)
     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];
index 176458763ca0a4193ed8e447287d6c5a172e3871..7fdc9579fcf6aa16e94b5df2ceb6d400ecbfc877 100644 (file)
@@ -1,18 +1,13 @@
 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
index 13d6e9849e2a45c1a9ae561518f5da928d597516..ebdf35a1b06509013421728df6b66b4587bdc14a 100644 (file)
@@ -32,6 +32,7 @@ AS = @AS@
 AFSD_LIBS = @AFSD_LIBS@
 AFSD_LDFLAGS = @AFSD_LDFLAGS@
 CC = @CC@
+CPP = @CPP@
 CCOBJ = @CCOBJ@
 CCXPG2 = @CCXPG2@
 CFLAGS = @CFLAGS@
@@ -57,6 +58,8 @@ MT_CC = @MT_CC@
 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@
@@ -113,7 +116,7 @@ KERNELDIR = ../libafs
 # 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
index 47ce0db27be7e84df5a12571e94bbddd39dbd573..d124efce78b9b17439be29d2742f458153bdffdb 100644 (file)
 /* #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
index a7bc83d30a189e556d617abb56e5fe7644adca43..4fdeac5e2be90175c0e5837994b319aa1a29c0ab 100644 (file)
 
 #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)
index 521063ffbd48b7211281b13ae88ca2a0efd1904e..699bddcacde0fc47c2519a41838e28a9c9955c72 100644 (file)
@@ -91,6 +91,9 @@
 /* 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
 
index 9a75a2c7123daba886f0ef52689f513aacbdcc76..9e451ba0d166b07dd1c20cff8733143060d3c2fd 100644 (file)
@@ -16,9 +16,7 @@
 #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 {
diff --git a/src/config/param.amd64_nbsd30.h b/src/config/param.amd64_nbsd30.h
new file mode 100644 (file)
index 0000000..7d7e170
--- /dev/null
@@ -0,0 +1,21 @@
+#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 */
diff --git a/src/config/param.amd64_nbsd40.h b/src/config/param.amd64_nbsd40.h
new file mode 100644 (file)
index 0000000..f6f3b13
--- /dev/null
@@ -0,0 +1,21 @@
+#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 */
diff --git a/src/config/param.arm_linux24.h b/src/config/param.arm_linux24.h
new file mode 100644 (file)
index 0000000..83f85a8
--- /dev/null
@@ -0,0 +1,146 @@
+#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) */
diff --git a/src/config/param.arm_linux26.h b/src/config/param.arm_linux26.h
new file mode 100644 (file)
index 0000000..9a8c8c1
--- /dev/null
@@ -0,0 +1,151 @@
+#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) */
index 4c0d6b0121e23dd7ba6eef7eed5b510f1fabe4e6..fbc5b3d39dea1f02681bde244357237c9d7baad1 100644 (file)
@@ -10,8 +10,6 @@
  * 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
 
index 73c0d68d22ce22b5cd11a72f30311980f1874246..ebb6fe75b4fa4466231c9e2844642283098da09c 100644 (file)
@@ -7,8 +7,6 @@
  * 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
 
@@ -57,6 +55,8 @@
                 }                                       \
                 }
 
+#define KERNEL_HAVE_UERROR 1
+
 /* Extra kernel definitions (from kdefs file) */
 #ifdef KERNEL
 #define _KERNEL 1
index ec4e90852842de8a35ed5ed9f046078ad6278f89..62b4881bd190fe2298d7ed0464c06afc5eb506b4 100644 (file)
@@ -10,8 +10,6 @@
  * 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
 
index 8495a9522da36de4ed2553d7e01b10fccbfeb9b3..0f59404ff5f7962880bf702af51d59c55a14c4cb 100644 (file)
@@ -28,6 +28,7 @@
 #define AFS_64BIT_ENV          1
 #define AFS_64BIT_CLIENT       1
 
+
 #if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
 
 #ifdef CONFIG_SMP
index 85c0b5113e460a1293cf466dee1597e028150740..53f344c2d36d53ad75e61046c84573dda3c9d9e9 100644 (file)
@@ -21,6 +21,7 @@
 #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
 
diff --git a/src/config/param.nbsd40.h b/src/config/param.nbsd40.h
new file mode 100644 (file)
index 0000000..6868bd3
--- /dev/null
@@ -0,0 +1,160 @@
+/* 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 */
index 4266d6c279084aead3de26686bac2c76a7584c63..962d56d7b0b2044ffe93cc27306281e0973965ae 100644 (file)
@@ -19,7 +19,7 @@
 #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>
@@ -136,6 +136,7 @@ CommandProc(as, arock)
 #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)
index f9e5bfd15fe7a1c411290ddc1f9eb92bbd1a7bb5..6b64c251b8506ed671e8fd0adf008bf1f6ee7c4a 100644 (file)
 #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 */
diff --git a/src/des/conf-arm-linux.h b/src/des/conf-arm-linux.h
new file mode 100644 (file)
index 0000000..66f80b6
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * 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
index dac0af9fb799fa9e97e6ec5bc452bfd2ef464694..82ffda3141c65a7baa2c9400bd99e74036b6c433 100644 (file)
@@ -11,7 +11,7 @@
 #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)
@@ -100,13 +100,7 @@ extern void *DNew();
 #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;
index c99ac097d942e8db38cb4c987dbeb6e041e39868..35abac9b1410d62258a87b3e0eb6eee262403eb7 100644 (file)
@@ -13,7 +13,7 @@
 #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>
@@ -23,13 +23,7 @@ RCSID
 #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 */
index 40cb7dafc3f9cd327528e1291b697dcbc128f2da..55ac0047d53637486012f42a469a0c6282ff6ccb 100644 (file)
@@ -26,52 +26,52 @@ libafsint.a: ${OBJS} AFS_component_version_number.o
 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
index 7637d22f46c5d051891d99530179274eaed147ce..c50037797d0f0cc68eb26407f5158afc50725f5b 100644 (file)
@@ -693,11 +693,11 @@ StoreData64(
 ) split = 65538;
 
 GiveUpAllCallBacks(
-) = 65539;
+) multi = 65539;
 
 GetCapabilities(
   Capabilities *capabilities
-) = 65540;
+) multi = 65540;
 
 CallBackRxConnAddr(
   IN afs_int32 *addr
index 08ccfb859e0ed89ccb92f91f7dc49cf3db0a6130..7abbd07ac65a7369dff2c5155eef4216daa3f73f 100644 (file)
 #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 */
@@ -237,8 +231,8 @@ fsprobe_Cleanup(a_releaseMem)
  * Side Effects:
  *     As advertised.
  *------------------------------------------------------------------------*/
-static void
-fsprobe_LWP()
+static void *
+fsprobe_LWP(void *unused)
 {                              /*fsprobe_LWP */
 
     static char rn[] = "fsprobe_LWP";  /*Routine name */
@@ -365,6 +359,7 @@ fsprobe_LWP()
            fprintf(stderr, "[%s] IOMGR_Select returned code %d\n", rn, code);
     }                          /*Service loop */
 
+    return NULL;
 }                              /*fsprobe_LWP */
 
 /*list all the partitions on <aserver> */
index e933e100cb079987097cdc0549cc16fec7f24a63..3338254fc1f8c0ab88863659d09443daedaba0a1 100644 (file)
 #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 */
 
 /*
index f439429f9e9092a65e063f31db8202311c6fe5ed..f5eba530007c213f8d03209cba8ef0008fe9cd8f 100644 (file)
  *     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)
@@ -37,16 +37,11 @@ RCSID
 #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"
index 1922c9d9b34afd917c70a8bccd9785f50ed8b85f..448463458b5530c94b878bb65a58e1c3c44c660d 100644 (file)
@@ -7,25 +7,18 @@
  * 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"
@@ -324,6 +317,7 @@ gtxframe_DisplayString(aframe, amsgLine)
     if (aframe->messageLine)
        free(aframe->messageLine);
     aframe->messageLine = gtx_CopyString(amsgLine);
+    return 0;
 }
 
 /* Called by input processor to try to clear the dude */
index 22cd3af66844304d419cf96dd85351b8d5359e9c..e69982405e887d89cf9e87d2952c28b28a9ff7b7 100644 (file)
 #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"
@@ -253,4 +246,5 @@ main()
     keymap_Delete(tmap);
 
     gtx_InputServer(win);
+    return 0;
 }
index 5ef508ce04dcdb2cfd129255fa32b1f5fa988725..f3b92b7fc6c7d79e83ffd3420aca67c64f86494b 100644 (file)
@@ -7,12 +7,11 @@
  * 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>
@@ -29,9 +28,11 @@ RCSID
 
 
 /* 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;
@@ -61,6 +62,7 @@ gtx_InputServer(awin)
        tframe->flags &= ~GTXFRAME_RECURSIVEEND;
        WOP_DISPLAY(awin);      /* eventually calls gtxframe_Display */
     }
+    return 0;
 }
 
 struct gwin *
index cc2140035b5f19cc31076f11dc89d5679a28dd21..462c8f1d4a60be43edb24290477cf3391f29d39f 100644 (file)
 #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"
index 583810a2e5c8d1db407af838611f0156fe4e88e6..582582ed7becc8dfa0c9dfe24c39860a41658ace 100644 (file)
 #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,
index 2e035596fdedd7aaccfdcba116126be546c075ee..badb3e435e39cb41df0174829a987c275c35639c 100644 (file)
@@ -15,7 +15,7 @@
 #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 */
@@ -386,10 +386,7 @@ test_objects(pkg)
  *------------------------------------------------------------------------*/
 
 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 */
@@ -442,7 +439,7 @@ main(argc, argv)
     /*
      * 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");
index 5700d6f72297ed5c67d8f7165a72a43fa7b9053a..8851b3f358da8a10fe6d1e5320cc0ecd6dd1c14a 100644 (file)
@@ -17,7 +17,7 @@
 #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 */
@@ -26,14 +26,7 @@ RCSID
 #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>
 
 /*
index 03dd8d36c50b1065e20e2b955fef0b8dddee8767..42abe56083c4023cf20c6e8fb829d005ffb0557f 100644 (file)
@@ -15,7 +15,7 @@
 #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 */
@@ -224,10 +224,7 @@ test_this_package(pkg)
  *--------------------------------------------------------------------------------*/
 
 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 */
@@ -280,7 +277,7 @@ main(argc, argv)
      * 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");
index ce1b7bc7463c28ec48ca394c64276246a2eea18c..86af2939e9f31067cd75a4359e4bd7e5eb634f32 100644 (file)
 #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? */
index fec1fbadf387e50243c58e329cf1f1fa1c76f794..160b081ff7c4226be29c91aed3efbd24bf9e13e4 100644 (file)
@@ -16,7 +16,7 @@
 #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 */
@@ -25,14 +25,7 @@ RCSID
 #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*/
@@ -370,7 +363,7 @@ gator_text_Scroll(onp, nlines, direction)
      * 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");
 
@@ -461,7 +454,7 @@ gator_text_Write(onp, strToWrite, numChars, highlight, skip)
     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");
index a588e74293c7c2e57cc0953eec09a14718804aa2..773251fdd3ec5836194a4688ce688a9f10bfe963 100644 (file)
@@ -96,29 +96,29 @@ kauth.xdr.o: kauth.xdr.c kauth.h
 $(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 $@
@@ -249,37 +249,37 @@ install: \
        ${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} $? $@
@@ -294,7 +294,7 @@ ${DESTDIR}${afssrvsbindir}/kadb_check: rebuild
        ${INSTALL} -f $? $@
 
 ${DESTDIR}${afssrvsbindir}/kdb: kdb
-       ${INSTALL} -s $? $@
+       ${INSTALL} $? $@
 
 ${DESTDIR}${afssrvsbindir}/ka-forwarder: ka-forwarder
        ${INSTALL} $? $@
@@ -331,25 +331,25 @@ dest: \
        ${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} $? $@
@@ -361,7 +361,7 @@ ${DEST}/etc/kadb_check: rebuild
        ${INSTALL} -f $? $@
 
 ${DEST}/etc/kdb: kdb 
-       ${INSTALL} -s $? $@
+       ${INSTALL} $? $@
 
 ${DEST}/root.server/usr/afs/bin/ka-forwarder: ka-forwarder
        ${INSTALL} $? $@
index 302bf94f4ae7767b6b15fefeb5e44294f6970618..71918b5b832b9f49e7949fb2a790247f22a23f6e 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -234,7 +234,7 @@ DumpUser(char *user, char *arock, int showadmin, int showkey, char *inst)
 }
 
 int
-ListUsers(struct cmd_syndesc *as, char *arock)
+ListUsers(struct cmd_syndesc *as, void *arock)
 {
     struct kaident name;
     afs_int32 index;
@@ -273,7 +273,7 @@ ListUsers(struct cmd_syndesc *as, char *arock)
 
 
 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);
@@ -318,7 +318,7 @@ handle_errors(int code,             /* error code to handle */
 }
 
 int
-CreateUser(struct cmd_syndesc *as, char *arock)
+CreateUser(struct cmd_syndesc *as, void *arock)
 {
     int code;
     char name[MAXKTCNAMELEN];
@@ -348,7 +348,7 @@ CreateUser(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DeleteUser(struct cmd_syndesc *as, char *arock)
+DeleteUser(struct cmd_syndesc *as, void *arock)
 {
     int code;
     char name[MAXKTCNAMELEN];
@@ -532,7 +532,7 @@ ka_islocked(char *name, char *instance, afs_uint32 * when)
 }
 
 int
-Unlock(struct cmd_syndesc *as, char *arock)
+Unlock(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code, rcode = 0;
     afs_int32 count;
@@ -573,7 +573,7 @@ Unlock(struct cmd_syndesc *as, char *arock)
 }
 
 int
-SetFields(struct cmd_syndesc *as, char *arock)
+SetFields(struct cmd_syndesc *as, void *arock)
 {
     int code;
     char name[MAXKTCNAMELEN];
@@ -735,7 +735,7 @@ SetFields(struct cmd_syndesc *as, char *arock)
 }
 
 int
-StringToKey(struct cmd_syndesc *as, char *arock)
+StringToKey(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     char realm[MAXKTCREALMLEN];
@@ -772,7 +772,7 @@ StringToKey(struct cmd_syndesc *as, char *arock)
 }
 
 int
-SetPassword(struct cmd_syndesc *as, char *arock)
+SetPassword(struct cmd_syndesc *as, void *arock)
 {
     int code;
     char name[MAXKTCNAMELEN];
@@ -964,7 +964,7 @@ ListTicket(struct ktc_principal *server, int verbose)
 }
 
 static
-GetTicket(struct cmd_syndesc *as, char *arock)
+GetTicket(struct cmd_syndesc *as, void *arock)
 {
     int code;
     struct ktc_principal server;
@@ -1010,7 +1010,7 @@ GetTicket(struct cmd_syndesc *as, char *arock)
 }
 
 static
-GetPassword(struct cmd_syndesc *as, char *arock)
+GetPassword(struct cmd_syndesc *as, void *arock)
 {
     int code;
     char name[MAXKTCNAMELEN];
@@ -1062,7 +1062,7 @@ GetPassword(struct cmd_syndesc *as, char *arock)
 }
 
 int
-GetRandomKey(struct cmd_syndesc *as, char *arock)
+GetRandomKey(struct cmd_syndesc *as, void *arock)
 {
     int code;
     struct ktc_encryptionKey key;
@@ -1088,7 +1088,7 @@ GetRandomKey(struct cmd_syndesc *as, char *arock)
 }
 
 int
-Statistics(struct cmd_syndesc *as, char *arock)
+Statistics(struct cmd_syndesc *as, void *arock)
 {
     int code;
     kasstats statics;
@@ -1141,7 +1141,7 @@ Statistics(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DebugInfo(struct cmd_syndesc *as, char *arock)
+DebugInfo(struct cmd_syndesc *as, void *arock)
 {
     int code;
     struct ka_debugInfo info;
@@ -1237,21 +1237,21 @@ DebugInfo(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1274,14 +1274,14 @@ char newCell[MAXKTCREALMLEN];
 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;
@@ -1539,7 +1539,7 @@ MyBeforeProc(struct cmd_syndesc *as, char *arock)
 /* 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;
 
@@ -1593,7 +1593,7 @@ ForgetTicket(struct cmd_syndesc *as, char *arock)
 }
 
 static
-ListTickets(struct cmd_syndesc *as, char *arock)
+ListTickets(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code = 0;
     int index, newIndex;
@@ -1666,14 +1666,15 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
     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,
@@ -1683,26 +1684,26 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
     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,
@@ -1727,18 +1728,18 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
     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,
@@ -1752,7 +1753,7 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
 #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");
@@ -1761,7 +1762,7 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
     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); */
@@ -1770,27 +1771,27 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
 #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),
@@ -1798,13 +1799,13 @@ ka_AdminInteractive(int cmd_argc, char *cmd_argv[])
 #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 */
index ec5e2d636ab5ac1fa782abb9f3029b2b2b08d8db..d3a44fb1bd918490ff378c718d0d95262eb35624 100644 (file)
@@ -17,7 +17,7 @@
 #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"
@@ -46,13 +46,7 @@ RCSID
 #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>
@@ -559,15 +553,15 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
 
     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);
index a3ff4e778d7e092c81e93bc693f0e38280944b8c..bd017d4e9b66f8c4cc031ae58b4d17d793eca222 100644 (file)
@@ -15,7 +15,7 @@
 #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
@@ -41,13 +41,7 @@ RCSID
 #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>
index 23efd84ae033db7438fc91ec641e3ec2302484c4..3cf67524e48de3402893520837e99de08baa4df0 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -25,13 +25,7 @@ RCSID
 #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"
index d1350f9478a3ea66dabbfb04962255190b78cb69..bbb4c250d9573b2621b95460c01ca834de589e4d 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -19,14 +19,7 @@ RCSID
 #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>
@@ -114,6 +107,7 @@ static afs_int32 keyCacheVersion = 0;
 static afs_int32 maxKeyLifetime;
 static int dbfixup = 0;
 
+void
 init_kadatabase(initFlags)
      int initFlags;            /* same as init_kaprocs (see which) */
 {
index 6a3bc61ddc4c41bff2ccfd64729c46c556f73026..23461746f2fe077def478dabcc230e9ce0e101b9 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -37,13 +37,7 @@ RCSID
 #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>
index 443ea61ceecd09a168698025c60379b23bf1c0cf..bebdd977191ef9522631c32abef6750f4cc34c71 100644 (file)
 #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
index a4567211b8ad1d346deb00dd500ec0113052a25b..505af02e8a79a437eb94e16719bb5187a119bfff 100644 (file)
@@ -12,7 +12,7 @@
 #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
@@ -29,13 +29,7 @@ RCSID
 #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>
 
index b4a7864bda6a76fd3ea419186686853e566c7945..e28630818e71f8f0b6748f2157f9103a6c831255 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -26,13 +26,7 @@ RCSID
 #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
@@ -497,6 +491,6 @@ main(argc, argv)
     }
 
     ViceLog(0, ("Starting to process AuthServer requests\n"));
-    rx_ServerProc();           /* donate this LWP */
+    rx_ServerProc(NULL);               /* donate this LWP */
     return 0;
 }
index b354967fcef446e3ef86692cfa807f0d70961481..44c69a9f03c9f207cd5e3023b999e43cc306d2ec 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -22,13 +22,7 @@ RCSID
 #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>
index 9d7df4be72b741ac5e12694e6cd9c3c814d383f0..c2a5e1a2988025916e317bfda09587785b4cdd07 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -29,8 +29,8 @@ RCSID
 
 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;
@@ -96,6 +96,7 @@ cmdproc(register struct cmd_syndesc *as, afs_int32 arock)
        }
     }
     dbm_close(kdb);
+    return 0;
 }
 
 
@@ -111,7 +112,7 @@ main(int argc, char **argv)
     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");
@@ -128,5 +129,6 @@ int
 main(void)
 {
     printf("kdb not supported\n");
+    return 1;
 }
 #endif
index e3f02f79aa642281120e3d9010890b4d4847b33d..4a286f24130bde38bc7f00e7338a320ba1a2f624 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -422,6 +422,7 @@ init_child(char *myname)
        argv[1] = NULL;
        argv[0] = dirpath;
        execv(dirpath, argv);
+       return 0;
     } else {
        using_child = pid;      /* save it for later */
        childin = fdopen(pipe1[1], "w");
index 7a624bc75bfc311bd9e228b0173dfc1337b46943..733c53c2c96177b14308e5f9a23aec058bee5a47 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -19,14 +19,7 @@ RCSID
 #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>
 
@@ -71,7 +64,7 @@ RCSID
 #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;
@@ -105,7 +98,7 @@ main(int argc, char *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
@@ -158,7 +151,7 @@ getpipepass(void)
 }
 
 int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
 {
     char name[MAXKTCNAMELEN];
     char instance[MAXKTCNAMELEN];
index f1c2a493c1b076033367ae1f4ef8cf59d9bb570a..8b87ec52a50e27ea634d93964b6f00a7c6ca4e76 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -27,21 +27,12 @@ RCSID
 #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:
 
@@ -358,10 +349,8 @@ NFSCopyToken(ahost, auid)
     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;
@@ -469,7 +458,7 @@ main(argc, argv)
     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,
index 4a49f31823d885d090e9b8c4b4c497ffd4add20e..2165db1c8d64f230ee593e26bcb09265badf2603 100644 (file)
@@ -12,7 +12,7 @@
 #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>
@@ -29,13 +29,7 @@ RCSID
 #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>
@@ -79,7 +73,7 @@ RCSID
 
 /* 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;
@@ -207,9 +201,7 @@ timedout()
 #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] = "";
index 02a98807c7acd0140184344690938f8bc9e53971..d86f9c246d8277ca3f0feee736d34413b9cb9bff 100644 (file)
 #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
@@ -49,4 +43,5 @@ main(int argc, char *argv[])
                fflush(stdout);
            }
        }
+    return rc;
 }
index 39c4dc805bcf54705defe6297c0d2597939769a9..76ecab4ce74ae37b14ae93098f1646a5f831f8ac 100644 (file)
@@ -48,7 +48,7 @@
 #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>
@@ -58,13 +58,7 @@ RCSID
 #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>
index ddbfad83ce301320b3ecadf5b66616b4ce787098..782df22f4754cbd112bc74da696ab16bd2e393f5 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -30,13 +30,7 @@ RCSID
 #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>
@@ -66,6 +60,9 @@ RCSID
 #define        KDC_GEN_ERR     20
 #endif
 
+#ifndef AFS_NT40_ENV
+#define closesocket close
+#endif
 
 int krb_udp_debug = 0;
 
@@ -107,8 +104,8 @@ char udptgsServerPrincipal[256];
 
 int fiveminutes = 300;
 
-static
-FiveMinuteCheckLWP()
+static void *
+FiveMinuteCheckLWP(void *unused)
 {
 
     printf("start 5 min check lwp\n");
@@ -118,6 +115,7 @@ FiveMinuteCheckLWP()
        /* close the log so it can be removed */
        ReOpenLog(AFSDIR_SERVER_KALOG_FILEPATH);        /* no trunc, just append */
     }
+    return NULL;
 }
 
 
@@ -823,8 +821,8 @@ process_udp_request(ksoc, pkt)
     return;
 }
 
-static
-SocketListener()
+static void *
+SocketListener(void *unused)
 {
     fd_set rfds;
     struct timeval tv;
@@ -898,14 +896,16 @@ SocketListener()
        }
     }
     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
index b70532b2b663fe5b8b5fc0112c1afcbe2ff6fbdb..1c0240ef88f6b0ca251863f5c664e100404fd553 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -63,7 +63,7 @@ RCSID
 #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;
@@ -97,7 +97,7 @@ main(argc, 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
@@ -152,9 +152,8 @@ getpipepass()
     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];
index ffabede3a1ee0ebbafc963a6ec038a0037a2c170..4efaaed4c4409f038f1d4d9c030eb6fb38b9c0b6 100644 (file)
@@ -14,7 +14,7 @@
 #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>
@@ -35,14 +35,7 @@ int strcmp();
 #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 */
index ef3971f857be08f2bc7c3baaa8df187b7f833bbf..a88f1f78f391a27096a58a3c48698c1983bd8304 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -23,13 +23,7 @@ RCSID
 #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>
@@ -220,6 +214,7 @@ PrintEntry(index, entry)
 }
 
 /* ntohEntry - convert back to host-order */
+void
 ntohEntry(struct kaentry *entryp)
 {
     entryp->flags = ntohl(entryp->flags);
@@ -399,13 +394,13 @@ readDB(offset, buffer, size)
        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;
index 3b082490bc6371eeaa9ae7fde61ca202b12827eb..bc55a2218e72b2185fc855fa41040cf5bbf852dc 100644 (file)
@@ -18,7 +18,7 @@
 #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>
@@ -53,7 +53,7 @@ RCSID
        -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;
@@ -76,7 +76,7 @@ main(argc, 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
@@ -129,9 +129,8 @@ getpipepass()
     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];
index 59a03c9277908c588775044a5a7f2905e6cfa09f..c3d07c1682ce8ebc0554e3f4b5478bf81dc05dc5 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -207,12 +207,10 @@ GetTokenLife(name, passwd, expectedLife, match)
     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];
@@ -510,7 +508,7 @@ main(argc, argv)
     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);
index 25dd7f8b99ff1ab08fb644b4c9e97314bd8fe292..9961d998afad9d090ca12058c8d2163e0c10d3b5 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -52,12 +52,10 @@ PrintRxkadStats()
           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];
@@ -373,7 +371,7 @@ main(argc, argv)
     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,
index 305d55fe0aeb99eb15c15d693fb9158988695b6d..23eb6dcdd680faac36101250c686a87ec87d6c8f 100644 (file)
@@ -19,7 +19,7 @@
 #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"
@@ -44,13 +44,7 @@ RCSID
 #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 */
index e7be9dfd7fd129b9e90b55774b2689cf8fbe4dd4..4bb207af6a89d567904f9e84f85881c97fa42656 100644 (file)
@@ -18,7 +18,7 @@
 #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"
@@ -45,13 +45,7 @@ RCSID
 #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>
index 0b5b2dfd8728f86d6c5262ebf210d69a8c75565c..3063bd4459ebfe9a72055a1dd39c918a711d2287 100644 (file)
@@ -17,7 +17,7 @@
 #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
@@ -25,9 +25,7 @@ RCSID
 #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>
index e163eff78c6f70a562fa783bff525be99fc14979..0e73897873411af4ffe4ca1d9d8a6bf450c2ee12 100644 (file)
@@ -12,7 +12,7 @@ CC = ${MT_CC}
 CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS}
 CCRULE = ${CC} ${CFLAGS} -c $?
 
-BOZO = ../../bozo/
+BOZO = ../../bozo
 
 ADMINOBJS = afs_bosAdmin.o
 
index 246d3eaa26414831bc419bf258a36ba148764827..a4976c20ba0b2426ea1ee0047083192edeb3a140 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -32,14 +32,7 @@ RCSID
 #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;
index 5813e62cf8ad1766a8bcd8323d8964deee78309c..5bc382400b3ec99a797c90dd5144f7ff6e4d2ea7 100644 (file)
@@ -15,7 +15,7 @@
 #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>
 
@@ -23,15 +23,7 @@ RCSID
 #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>
@@ -104,7 +96,7 @@ cfg_ClientQueryStatus(const char *hostName,  /* name of host */
     afs_status_t clientSt = 0;
     char *clientCellName = NULL;
     short cmInstalled = 0;
-    unsigned cmVersion;
+    unsigned cmVersion = 0;
 
     /* validate parameters */
 
index a37c889170f67b3a3cdfb4d8db85f903895aa51c..67176c44eef815980585821e2238a6e8350f0f4e 100644 (file)
@@ -11,7 +11,7 @@
 #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>
 
@@ -480,8 +480,8 @@ cfgutil_HostAddressFetchAll(const char *hostName, int *addrCount,
 {
     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 */
index f9c7fc1108f60e1b621880645f8b1acee651cd1b..f1b3b0e6354033db46061a073e8e06c7c52e2d9f 100644 (file)
@@ -13,7 +13,7 @@
 #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>
 
@@ -90,7 +90,7 @@ CellServDbCallBack(void *callBackId, cfg_cellServDbStatus_t * statusItemP,
 
 
 static int
-DoCellServDbAddHost(struct cmd_syndesc *as, char *arock)
+DoCellServDbAddHost(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     int maxUpdates;
@@ -135,7 +135,7 @@ DoCellServDbAddHost(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoCellServDbRemoveHost(struct cmd_syndesc *as, char *arock)
+DoCellServDbRemoveHost(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     int maxUpdates;
@@ -181,7 +181,7 @@ DoCellServDbRemoveHost(struct cmd_syndesc *as, char *arock)
 
 
 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;
@@ -216,21 +216,21 @@ SetupCellServDbCmd(void)
 {
     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");
 
@@ -245,7 +245,7 @@ SetupCellServDbCmd(void)
 
 
 static int
-DoDbServersWaitForQuorum(struct cmd_syndesc *as, char *arock)
+DoDbServersWaitForQuorum(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -273,7 +273,7 @@ DoDbServersWaitForQuorum(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoFileServerStop(struct cmd_syndesc *as, char *arock)
+DoFileServerStop(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -294,7 +294,7 @@ DoFileServerStop(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-DoFileServerStart(struct cmd_syndesc *as, char *arock)
+DoFileServerStart(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -321,18 +321,18 @@ SetupServerCmd(void)
     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");
@@ -344,7 +344,7 @@ SetupServerCmd(void)
 
 
 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;
@@ -385,7 +385,7 @@ SetupHostCmd(void)
     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");
@@ -398,7 +398,7 @@ SetupHostCmd(void)
 
 
 static int
-DoClientCellServDbAdd(struct cmd_syndesc *as, char *arock)
+DoClientCellServDbAdd(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -422,7 +422,7 @@ DoClientCellServDbAdd(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoClientCellServDbRemove(struct cmd_syndesc *as, char *arock)
+DoClientCellServDbRemove(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -447,7 +447,7 @@ DoClientCellServDbRemove(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoClientStart(struct cmd_syndesc *as, char *arock)
+DoClientStart(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -474,7 +474,7 @@ DoClientStart(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoClientStop(struct cmd_syndesc *as, char *arock)
+DoClientStop(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -501,7 +501,7 @@ DoClientStop(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DoClientSetCell(struct cmd_syndesc *as, char *arock)
+DoClientSetCell(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *hostHandle;
@@ -544,7 +544,7 @@ DoClientSetCell(struct cmd_syndesc *as, char *arock)
 
 
 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;
@@ -578,7 +578,7 @@ DoClientQueryStatus(struct cmd_syndesc *as, char *arock)
 
 
 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;
@@ -610,7 +610,7 @@ SetupClientCmd(void)
 {
     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");
@@ -618,38 +618,38 @@ SetupClientCmd(void)
     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");
index b83da47c192e8dd384fff0fbb575e0bc2400d1f4..86893bb737d4ec953cb9c0b95095f0cb8d40dfb5 100644 (file)
@@ -12,7 +12,7 @@ CC = ${MT_CC}
 CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS} -I../../kauth -I${srcdir}/../../kauth
 CCRULE = ${CC} ${CFLAGS} -c $?
 
-KAUTH= ${srcdir}/../../kauth/
+KAUTH= ${srcdir}/../../kauth
 
 ADMINOBJS = afs_kasAdmin.o
 
index ee97760ce082c2711e0f81695ad7f25f81f5718a..f8913e2a699d78680c411d76255bc7ae0dddf403 100644 (file)
 #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"
index fd28e1e1410dc284f837615a784c3cfbe9db6f05..177c1cf86c241feee94db03e8c3ee088efaa36e7 100644 (file)
@@ -12,7 +12,7 @@ CC = ${MT_CC}
 CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS}
 CCRULE = ${CC} ${CFLAGS} -c $?
 
-PTSERVER = ../../ptserver/
+PTSERVER = ../../ptserver
 
 ADMINOBJS = \
        afs_ptsAdmin.o
index 724edf6d4ee8830a4ad274e136e5c26507b74ef3..80c3c56fa9bb5f627bb5ad33cac1ef3935978ca4 100644 (file)
 #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"
index fe74e28db47325661b11e54d9e181cb4a6b6fab3..30b2565ab14c31119c9fb72ef67b3fd7c4eda160 100644 (file)
@@ -17,7 +17,7 @@
 #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>
@@ -69,7 +69,7 @@ main(int argc, char *argv[])
     struct rx_debugConn conn;
     afs_uint32 supportedStats;
     afs_uint32 supportedValues;
-    int allconns;
+    int allconns = 1;
     int i;
 
     ParseArgs(argc, argv, &srvrName, &srvrPort);
index f94628ad10e4d5a95ca0faa25675dfcac05a3b9d..a3c6f5952ba3302b7d9aa1dfd27aada7d8ddf4b3 100644 (file)
 #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>
index 0410a609ef6afe223f0b722034fff73d0e6eb598..a78b6dce2c584f18f238526f97aa157e867f8d17 100644 (file)
 #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>
index 9de4516635089c51465364708a2e2d96852d4246..df67ac4e09aa0520baa69f934e0eb68b4acdc265 100644 (file)
 #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>
index d0247ff7dd305ddd05d572da7bdd5b0976986aef..648a9d454b8ac0f2a6c36ac549a8f1a05446bf01 100644 (file)
@@ -15,7 +15,7 @@
 #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>
 
@@ -59,7 +59,7 @@ pthread_mutex_t rxkad_random_mutex = PTHREAD_MUTEX_INITIALIZER;
  */
 
 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;
@@ -149,7 +149,7 @@ MyBeforeProc(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-MyAfterProc(struct cmd_syndesc *as)
+MyAfterProc(struct cmd_syndesc *as,void *arock)
 {
 
     afsclient_CellClose(cellHandle, (afs_status_p) 0);
index 1d043ee254772a52ef481975515e1c0e41feffac..fdc331b58dec56ae3c3b6f17c4872815bd9ef471 100644 (file)
@@ -15,7 +15,7 @@
 #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"
 
@@ -268,7 +268,7 @@ ktime_ParsePeriodic(char *adate, bos_RestartTime_p ak)
 }
 
 int
-DoBosProcessCreate(struct cmd_syndesc *as, char *arock)
+DoBosProcessCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS, BINARY, CRON, CRONTIME,
        NOTIFIER
@@ -334,7 +334,7 @@ DoBosProcessCreate(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoBosFSProcessCreate(struct cmd_syndesc *as, char *arock)
+DoBosFSProcessCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS, FILESERVER, VOLSERVER, SALVAGER,
        NOTIFIER
@@ -386,7 +386,7 @@ DoBosFSProcessCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -435,7 +435,7 @@ Print_bos_ProcessExecutionState_p(bos_ProcessExecutionState_p state,
 }
 
 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;
@@ -471,7 +471,7 @@ DoBosProcessExecutionStateGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoBosProcessExecutionStateSet(struct cmd_syndesc *as, char *arock)
+DoBosProcessExecutionStateSet(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS, STOPPED,
        RUNNING
@@ -522,7 +522,7 @@ DoBosProcessExecutionStateSet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoBosProcessExecutionStateSetTemporary(struct cmd_syndesc *as, char *arock)
+DoBosProcessExecutionStateSetTemporary(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS, STOPPED,
        RUNNING
@@ -574,7 +574,7 @@ DoBosProcessExecutionStateSetTemporary(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -663,7 +663,7 @@ Print_bos_ProcessInfo_p(bos_ProcessInfo_p info, const char *prefix)
 }
 
 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;
@@ -694,7 +694,7 @@ DoBosProcessInfoGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -738,7 +738,7 @@ DoBosProcessParameterList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -773,7 +773,7 @@ DoBosProcessNotifierGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -801,7 +801,7 @@ DoBosProcessRestart(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -824,7 +824,7 @@ DoBosProcessAllStop(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -847,7 +847,7 @@ DoBosProcessAllStart(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -870,7 +870,7 @@ DoBosProcessAllWaitStop(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -893,7 +893,7 @@ DoBosProcessAllWaitTransition(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -921,7 +921,7 @@ DoBosProcessAllStopAndRestart(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -949,7 +949,7 @@ DoBosAdminCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -977,7 +977,7 @@ DoBosAdminDelete(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1016,7 +1016,7 @@ DoBosAdminList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1058,7 +1058,7 @@ DoBosKeyCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1106,7 +1106,7 @@ Print_bos_KeyInfo_p(bos_KeyInfo_p key, const char *prefix)
 }
 
 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;
@@ -1145,7 +1145,7 @@ DoBosKeyList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1173,7 +1173,7 @@ DoBosCellSet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1199,7 +1199,7 @@ DoBosCellGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1227,7 +1227,7 @@ DoBosHostCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1255,7 +1255,7 @@ DoBosHostDelete(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1294,7 +1294,7 @@ DoBosHostList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1327,7 +1327,7 @@ DoBosExecutableCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1355,7 +1355,7 @@ DoBosExecutableRevert(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1387,7 +1387,7 @@ DoBosExecutableTimestampGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoBosExecutablePrune(struct cmd_syndesc *as, char *arock)
+DoBosExecutablePrune(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, OLDFILES, BAKFILES,
        COREFILES
@@ -1428,7 +1428,7 @@ DoBosExecutablePrune(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoBosExecutableRestartTimeSet(struct cmd_syndesc *as, char *arock)
+DoBosExecutableRestartTimeSet(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, DAILY, WEEKLY,
        TIME
@@ -1527,7 +1527,7 @@ Print_bos_RestartTime_p(bos_RestartTime_p restart, const char *prefix)
 }
 
 int
-DoBosExecutableRestartTimeGet(struct cmd_syndesc *as, char *arock)
+DoBosExecutableRestartTimeGet(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, DAILY,
        WEEKLY
@@ -1578,7 +1578,7 @@ DoBosExecutableRestartTimeGet(struct cmd_syndesc *as, char *arock)
 #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;
@@ -1626,7 +1626,7 @@ DoBosLogGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1670,7 +1670,7 @@ DoBosAuthSet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1698,7 +1698,7 @@ DoBosCommandExecute(struct cmd_syndesc *as, char *arock)
 }
 
 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
@@ -1802,7 +1802,7 @@ SetupBosAdminCmd(void)
 {
     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");
@@ -1818,7 +1818,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1834,7 +1834,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1843,7 +1843,7 @@ SetupBosAdminCmd(void)
     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");
@@ -1852,7 +1852,7 @@ SetupBosAdminCmd(void)
     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");
@@ -1865,7 +1865,7 @@ SetupBosAdminCmd(void)
     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,
@@ -1878,12 +1878,12 @@ SetupBosAdminCmd(void)
                "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");
@@ -1892,7 +1892,7 @@ SetupBosAdminCmd(void)
     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");
@@ -1900,7 +1900,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1908,7 +1908,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1916,13 +1916,13 @@ SetupBosAdminCmd(void)
                "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,
@@ -1930,7 +1930,7 @@ SetupBosAdminCmd(void)
     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,
@@ -1938,7 +1938,7 @@ SetupBosAdminCmd(void)
     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,
@@ -1947,7 +1947,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1955,7 +1955,7 @@ SetupBosAdminCmd(void)
                "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");
@@ -1963,13 +1963,13 @@ SetupBosAdminCmd(void)
                "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");
@@ -1978,7 +1978,7 @@ SetupBosAdminCmd(void)
     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");
@@ -1986,41 +1986,41 @@ SetupBosAdminCmd(void)
                "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,
@@ -2029,7 +2029,7 @@ SetupBosAdminCmd(void)
                "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,
@@ -2037,14 +2037,14 @@ SetupBosAdminCmd(void)
     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");
@@ -2053,7 +2053,7 @@ SetupBosAdminCmd(void)
     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,
@@ -2065,7 +2065,7 @@ SetupBosAdminCmd(void)
     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,
@@ -2074,14 +2074,14 @@ SetupBosAdminCmd(void)
                "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,
@@ -2098,7 +2098,7 @@ SetupBosAdminCmd(void)
                "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");
index 41fa3d2efca88579737283537fb33324397a11bf..2cce9685e273f3dc33863a7ac4f06bf36aa4bf4c 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -262,7 +262,7 @@ interface_t int_list[] = {
  */
 
 int
-DoClientLocalCellGet(struct cmd_syndesc *as, char *arock)
+DoClientLocalCellGet(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     char cellName[MAXCELLCHARS];
@@ -277,7 +277,7 @@ DoClientLocalCellGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoClientMountPointCreate(struct cmd_syndesc *as, char *arock)
+DoClientMountPointCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { DIRECTORY, VOLUME, READWRITE,
        CHECK
@@ -331,7 +331,7 @@ Print_afs_serverEntry_p(afs_serverEntry_p serv, const char *prefix)
 }
 
 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;
@@ -352,7 +352,7 @@ DoClientAFSServerGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoClientAFSServerList(struct cmd_syndesc *as, char *arock)
+DoClientAFSServerList(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     afs_serverEntry_t entry;
@@ -476,7 +476,7 @@ GetStatTypeFromString(const char *type)
 }
 
 int
-DoClientRPCStatsStateGet(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsStateGet(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS,
        STAT_TYPE
@@ -536,7 +536,7 @@ DoClientRPCStatsStateGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -590,7 +590,7 @@ DoClientRPCStatsStateEnable(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoClientRPCStatsStateDisable(struct cmd_syndesc *as, char *arock)
+DoClientRPCStatsStateDisable(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PROCESS,
        STAT_TYPE
@@ -694,7 +694,7 @@ Print_afs_RPCStats_p(afs_RPCStats_p stat, interface_function_list_p f_list,
 }
 
 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;
@@ -819,7 +819,7 @@ DoClientRPCStatsList(struct cmd_syndesc *as, char *arock)
 }
 
 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,
@@ -991,7 +991,7 @@ DoClientRPCStatsClear(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1047,7 +1047,7 @@ Print_afs_CMServerPref_p(afs_CMServerPref_p pref)
 }
 
 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;
@@ -1117,7 +1117,7 @@ Print_afs_CMListCell_p(afs_CMListCell_p cellInfo)
 }
 
 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;
@@ -1172,7 +1172,7 @@ DoClientCMListCells(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1231,7 +1231,7 @@ Print_afs_ClientConfig_p(afs_ClientConfig_p config)
 }
 
 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;
@@ -1280,12 +1280,12 @@ SetupClientAdminCmd(void)
 {
     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,
@@ -1296,12 +1296,12 @@ SetupClientAdminCmd(void)
                "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,
@@ -1314,7 +1314,7 @@ SetupClientAdminCmd(void)
     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,
@@ -1325,7 +1325,7 @@ SetupClientAdminCmd(void)
     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");
@@ -1337,7 +1337,7 @@ SetupClientAdminCmd(void)
     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");
@@ -1348,7 +1348,7 @@ SetupClientAdminCmd(void)
                "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");
@@ -1359,7 +1359,7 @@ SetupClientAdminCmd(void)
                "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");
@@ -1395,7 +1395,7 @@ SetupClientAdminCmd(void)
     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");
@@ -1405,27 +1405,27 @@ SetupClientAdminCmd(void)
     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");
index 115586a646117f2c609f37252dbc17441c5732f1..e60a0a77d07d0a8dbbf908425bfe6fbdfd396b6e 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -45,7 +45,7 @@ GetIntFromString(const char *int_str, const char *error_msg)
 }
 
 int
-DoKasPrincipalCreate(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { PRINCIPAL, INSTANCE,
        PASSWORD
@@ -73,7 +73,7 @@ DoKasPrincipalCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -160,7 +160,7 @@ Print_kas_principalEntry_p(kas_principalEntry_p principal, const char *prefix)
 }
 
 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;
@@ -186,7 +186,7 @@ DoKasPrincipalGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoKasPrincipalList(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalList(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *iter;
@@ -218,7 +218,7 @@ DoKasPrincipalList(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoKasPrincipalKeySet(struct cmd_syndesc *as, char *arock)
+DoKasPrincipalKeySet(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { PRINCIPAL, INSTANCE, PASSWORD,
        KEYVERSION
@@ -258,7 +258,7 @@ DoKasPrincipalKeySet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -284,7 +284,7 @@ DoKasPrincipalLockStatusGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -307,7 +307,7 @@ DoKasPrincipalUnlock(struct cmd_syndesc *as, char *arock)
 }
 
 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,
@@ -549,7 +549,7 @@ Print_kas_serverStats_p(kas_serverStats_p stats, const char *prefix)
 }
 
 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;
@@ -634,7 +634,7 @@ Print_kas_serverDebugInfo_p(kas_serverDebugInfo_p debug, const char *prefix)
 }
 
 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;
@@ -662,7 +662,7 @@ DoKasServerDebugGet(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoKasServerRandomKeyGet(struct cmd_syndesc *as, char *arock)
+DoKasServerRandomKeyGet(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     kas_encryptionKey_t key;
@@ -686,7 +686,7 @@ SetupKasAdminCmd(void)
 {
     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");
@@ -696,7 +696,7 @@ SetupKasAdminCmd(void)
                "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");
@@ -704,7 +704,7 @@ SetupKasAdminCmd(void)
                "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");
@@ -712,11 +712,11 @@ SetupKasAdminCmd(void)
                "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");
@@ -729,7 +729,7 @@ SetupKasAdminCmd(void)
     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");
@@ -737,7 +737,7 @@ SetupKasAdminCmd(void)
                "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");
@@ -745,7 +745,7 @@ SetupKasAdminCmd(void)
                "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");
@@ -785,17 +785,17 @@ SetupKasAdminCmd(void)
                "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);
 
index 9d69f4e9e1ad8a8ad8e6b21a24965493e4d0245f..ae5452b4ae9b75b5edfce676566bf9e1d566143d 100644 (file)
@@ -15,7 +15,7 @@
 #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"
 
@@ -90,7 +90,7 @@ GetUserAccessFromString(const char *in_str, const char *error_msg)
 }
 
 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;
@@ -105,7 +105,7 @@ DoPtsGroupMemberAdd(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -120,7 +120,7 @@ DoPtsGroupOwnerChange(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -170,7 +170,7 @@ Print_pts_GroupEntry_p(pts_GroupEntry_p entry, const char *prefix)
 }
 
 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;
@@ -187,7 +187,7 @@ DoPtsGroupGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -201,7 +201,7 @@ DoPtsGroupDelete(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoPtsGroupMaxGet(struct cmd_syndesc *as, char *arock)
+DoPtsGroupMaxGet(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     int max_group_id;
@@ -214,7 +214,7 @@ DoPtsGroupMaxGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -231,7 +231,7 @@ DoPtsGroupMaxSet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -260,7 +260,7 @@ DoPtsGroupMemberList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -275,7 +275,7 @@ DoPtsGroupMemberRemove(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -290,7 +290,7 @@ DoPtsGroupRename(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoPtsGroupModify(struct cmd_syndesc *as, char *arock)
+DoPtsGroupModify(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { GROUP, LISTSTATUS, LISTGROUPSOWNED, LISTMEMBERSHIP,
        LISTADD, LISTDELTE
@@ -323,7 +323,7 @@ DoPtsGroupModify(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -340,7 +340,7 @@ DoPtsUserCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -383,7 +383,7 @@ Print_pts_UserEntry_p(pts_UserEntry_p entry, const char *prefix)
 }
 
 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;
@@ -400,7 +400,7 @@ DoPtsUserGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -415,7 +415,7 @@ DoPtsUserRename(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoPtsUserModify(struct cmd_syndesc *as, char *arock)
+DoPtsUserModify(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { USER, GROUPQUOTA, LISTSTATUS, LISTGROUPSOWNED,
        LISTMEMBERSHIP
@@ -481,7 +481,7 @@ DoPtsUserModify(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoPtsUserMaxGet(struct cmd_syndesc *as, char *arock)
+DoPtsUserMaxGet(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     int max_user_id;
@@ -494,7 +494,7 @@ DoPtsUserMaxGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -511,7 +511,7 @@ DoPtsUserMaxSet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -541,7 +541,7 @@ DoPtsUserMemberList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -575,61 +575,61 @@ SetupPtsAdminCmd(void)
 {
     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,
@@ -644,28 +644,28 @@ SetupPtsAdminCmd(void)
                "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,
@@ -678,21 +678,21 @@ SetupPtsAdminCmd(void)
                "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);
index d86bd036d3904840b7444d35400988b036e61685..b3304b7d1d5bf5b98a18cbc1d4833b75f408dbc1 100644 (file)
 #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;
@@ -37,7 +37,7 @@ DoUtilErrorTranslate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -66,7 +66,7 @@ DoUtilDatabaseServerList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -88,17 +88,17 @@ SetupUtilAdminCmd(void)
 {
     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);
index ca524597d04e9a0c4afaaae9cca6ee16ed14a08a..98f22f6b42a3935623756ea112023176f3160685 100644 (file)
 #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);
index 2d229b9eaaee51562f79ce69a9ac557af116c416..d96e402e5fc0995897ec08a5bac657a4b283c58a 100644 (file)
@@ -15,7 +15,7 @@
 #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"
 
@@ -141,7 +141,7 @@ PrintMessage(vos_messageType_t type, char *message)
 }
 
 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;
@@ -159,7 +159,7 @@ DoVosBackupVolumeCreate(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosBackupVolumeCreateMultiple(struct cmd_syndesc *as, char *arock)
+DoVosBackupVolumeCreateMultiple(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, PREFIX,
        EXCLUDE
@@ -211,7 +211,7 @@ Print_vos_partitionEntry_p(vos_partitionEntry_p part, const char *prefix)
 }
 
 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;
@@ -242,7 +242,7 @@ DoVosPartitionGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -278,7 +278,7 @@ DoVosPartitionList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -306,7 +306,7 @@ DoVosServerSync(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosFileServerAddressChange(struct cmd_syndesc *as, char *arock)
+DoVosFileServerAddressChange(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { OLDADDRESS,
        NEWADDRESS
@@ -331,7 +331,7 @@ DoVosFileServerAddressChange(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -360,7 +360,7 @@ Print_vos_fileServerEntry_p(vos_fileServerEntry_p serv, const char *prefix)
 }
 
 int
-DoVosFileServerList(struct cmd_syndesc *as, char *arock)
+DoVosFileServerList(struct cmd_syndesc *as, void *arock)
 {
     afs_status_t st = 0;
     void *iter;
@@ -411,7 +411,7 @@ Print_vos_serverTransactionStatus_p(vos_serverTransactionStatus_p tran,
 }
 
 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;
@@ -519,7 +519,7 @@ Print_vos_vldbEntry_p(vos_vldbEntry_p entry, const char *prefix)
 }
 
 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;
@@ -543,7 +543,7 @@ DoVosVLDBGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -591,7 +591,7 @@ DoVosVLDBList(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -634,7 +634,7 @@ DoVosVLDBEntryRemove(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -668,7 +668,7 @@ DoVosVLDBUnlock(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -687,7 +687,7 @@ DoVosVLDBEntryLock(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -706,7 +706,7 @@ DoVosVLDBEntryUnlock(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVLDBReadOnlySiteCreate(struct cmd_syndesc *as, char *arock)
+DoVosVLDBReadOnlySiteCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION,
        VOLUME
@@ -741,7 +741,7 @@ DoVosVLDBReadOnlySiteCreate(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVLDBReadOnlySiteDelete(struct cmd_syndesc *as, char *arock)
+DoVosVLDBReadOnlySiteDelete(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION,
        VOLUME
@@ -777,7 +777,7 @@ DoVosVLDBReadOnlySiteDelete(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -816,7 +816,7 @@ DoVosVLDBSync(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeCreate(struct cmd_syndesc *as, char *arock)
+DoVosVolumeCreate(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, VOLUME,
        QUOTA
@@ -861,7 +861,7 @@ DoVosVolumeCreate(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -895,7 +895,7 @@ DoVosVolumeDelete(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -919,7 +919,7 @@ DoVosVolumeRename(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeDump(struct cmd_syndesc *as, char *arock)
+DoVosVolumeDump(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, VOLUME, STARTTIME,
        DUMPFILE
@@ -975,7 +975,7 @@ DoVosVolumeDump(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeRestore(struct cmd_syndesc *as, char *arock)
+DoVosVolumeRestore(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, ID, VOLUME, DUMPFILE,
        FULL
@@ -1029,7 +1029,7 @@ DoVosVolumeRestore(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeOnline(struct cmd_syndesc *as, char *arock)
+DoVosVolumeOnline(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, VOLUME, SLEEP,
        BUSY
@@ -1077,7 +1077,7 @@ DoVosVolumeOnline(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1334,7 +1334,7 @@ Print_vos_volumeEntry_p(vos_volumeEntry_p entry, const char *prefix)
 }
 
 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;
@@ -1371,7 +1371,7 @@ DoVosVolumeGet(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1417,7 +1417,7 @@ DoVosVolumeList(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeMove(struct cmd_syndesc *as, char *arock)
+DoVosVolumeMove(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { VOLUME, FROMSERVER, FROMPARTITION, TOSERVER,
        TOPARTITION
@@ -1469,7 +1469,7 @@ DoVosVolumeMove(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1492,7 +1492,7 @@ DoVosVolumeRelease(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1531,7 +1531,7 @@ DoVosVolumeZap(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1549,7 +1549,7 @@ DoVosPartitionNameToId(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -1572,7 +1572,7 @@ DoVosPartitionIdToName(struct cmd_syndesc *as, char *arock)
 }
 
 int
-DoVosVolumeQuotaChange(struct cmd_syndesc *as, char *arock)
+DoVosVolumeQuotaChange(struct cmd_syndesc *as, void *arock)
 {
     typedef enum { SERVER, PARTITION, VOLUME,
        QUOTA
@@ -1618,13 +1618,13 @@ SetupVosAdminCmd(void)
 {
     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");
@@ -1636,7 +1636,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1644,13 +1644,13 @@ SetupVosAdminCmd(void)
                "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,
@@ -1658,7 +1658,7 @@ SetupVosAdminCmd(void)
     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");
@@ -1666,29 +1666,29 @@ SetupVosAdminCmd(void)
     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");
@@ -1696,7 +1696,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1705,7 +1705,7 @@ SetupVosAdminCmd(void)
     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");
@@ -1713,18 +1713,18 @@ SetupVosAdminCmd(void)
                "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");
@@ -1735,7 +1735,7 @@ SetupVosAdminCmd(void)
     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");
@@ -1744,7 +1744,7 @@ SetupVosAdminCmd(void)
     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,
@@ -1752,7 +1752,7 @@ SetupVosAdminCmd(void)
     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");
@@ -1764,7 +1764,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1773,13 +1773,13 @@ SetupVosAdminCmd(void)
     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");
@@ -1792,7 +1792,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1807,7 +1807,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1819,7 +1819,7 @@ SetupVosAdminCmd(void)
     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");
@@ -1829,7 +1829,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1839,7 +1839,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1847,7 +1847,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1859,7 +1859,7 @@ SetupVosAdminCmd(void)
                "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");
@@ -1867,7 +1867,7 @@ SetupVosAdminCmd(void)
                "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,
@@ -1876,18 +1876,18 @@ SetupVosAdminCmd(void)
     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");
index ac23bf5af2e625bb850c562d1f41820ceefb36af..b0940c3d464a490c04b0ac8791bb93f4c7dabef5 100644 (file)
@@ -12,9 +12,9 @@ CC = ${MT_CC}
 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 \
index c774059b3aaf15265bce83cd196336f8c63be3be..08fd8a1ddb662f4c60e5bed5b6b1c1dbc03e5cad 100644 (file)
 #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>
index 84646664b5e5cb884d5954baebf3c578b9316d9f..e404d190b66c7f3c7b277772873eecfcae2063f4 100644 (file)
 #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).
index 17e953a47dd98bb6e02060b63b0c60ae71ef6395..de8f541c5fc8341a5ac259e9ab7800b654730570 100644 (file)
 #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.
index 65d269671998498bc736967e45f6847d5d45b7b9..2da3b678bf8467f0b282c7c8d9e83adf697c614f 100644 (file)
@@ -22,7 +22,7 @@
 #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"
@@ -30,13 +30,7 @@ RCSID
 #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
index 6b7895d6f3e324455829ce6ff617ee49db0cba29..14ef621295555074a68efefcb915afc8d110786c 100644 (file)
@@ -169,7 +169,7 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
        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
index f4e2659e3329a2aa0637c65f834b4c33f3d5e816..1808a7b447d3bb94f6c1898822b9702cad30dbf0 100644 (file)
@@ -272,7 +272,7 @@ xdr_afsuuid.o: ${RX}/xdr_afsuuid.c
 #
 #   $ 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.
@@ -354,7 +354,7 @@ fasttime.o: ${LWP}/fasttime.c
 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_* ) \
@@ -366,7 +366,7 @@ syscall.o: ${SYS}/syscall.s
         *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
@@ -380,8 +380,8 @@ rxstat.cs.o: ${TOP_OBJDIR}/src/rxstat/rxstat.cs.c
 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
index cef7299c41fe0dff42d5df1f98f33273af1695a8..803361531cae250c49a85b483dba8bd8deabf47b 100644 (file)
@@ -815,9 +815,9 @@ $(UOBJ)/Krxstat.xdr.o: $(TOP_OBJ_RXSTAT)/Krxstat.xdr.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)
@@ -1070,7 +1070,7 @@ $(WEBOBJ)/Krxstat.xdr.o: $(TOP_OBJ_RXSTAT)/Krxstat.xdr.c
 
 $(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)
index f649caf6e3fb15f1fa7ba00323131e229d9d9f12..92b6692d74ddb7f24e4ab54a077824824919e324 100644 (file)
@@ -76,13 +76,13 @@ ${DEST}/bin/tokens: tokens
        ${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} $? $@
@@ -105,13 +105,13 @@ ${DESTDIR}${bindir}/tokens: tokens
        ${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} $? $@
index 9cc3f0663f115f044c3f5c3d04f9bdeaa2c2887e..1cdf3f93a3537d5f0aefdbe249dbfd7651fb4c8d 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -19,13 +19,7 @@ RCSID
 #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>
index b9a4ccff9480f7c1ae396ae472def90d366c1640..36c0e3d6eb34db602ae8afe7ed6d7650464826c3 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -25,14 +25,7 @@ RCSID
 #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
index 3c5dcb00a576c9a6b2767a57fc03563f3d0a27f5..d7759bfa491e567d98c3644e9aab2ff7567f114c 100644 (file)
@@ -30,7 +30,7 @@
 #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>
@@ -38,14 +38,7 @@ RCSID
 #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>
@@ -71,7 +64,7 @@ struct tokenInfo {
 
 
 int 
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
 {
 #define        MAXCELLS 20             /* XXX */
     struct cmd_item *itp;
@@ -122,7 +115,7 @@ main(int argc, char *argv[])
     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");
 
@@ -266,6 +259,7 @@ unlog_NormalizeCellNames(char **list, int size)
        *list = newCellName;
     }
     afsconf_Close(conf);
+    return 0;
 }
 
 /*
@@ -290,4 +284,5 @@ unlog_VerifyUnlog(char **cellList, int cellListSize, struct tokenInfo *tokenList
            fprintf(stderr, "unlog: Warning - no tokens held for cell %s\n",
                    cellList[index]);
     }
+    return 0;
 }
index b70a67823488537c135a5badd2bd7790f4f406a8..87db1392f9547f4e663dcc1631e0baf7cc9e6773 100644 (file)
@@ -36,8 +36,8 @@ process.o     : process.s process.i386.s process.c
        @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* ) \
@@ -45,11 +45,11 @@ process.o   : process.s process.i386.s process.c
        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* ) \
@@ -88,11 +88,11 @@ process.o   : process.s process.i386.s process.c
                ${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 ) \
@@ -103,11 +103,11 @@ process.o : process.s process.i386.s process.c
        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
index 78740bc99202fb9c132615f53ca89b86eea49157..c77368e96e246e8ca007ee970b76b8ffe94a1b39 100644 (file)
@@ -36,7 +36,7 @@
 #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>
@@ -107,7 +107,7 @@ typedef unsigned char bool;
 #define NSIG 8*sizeof(sigset_t)
 #endif
 
-static int SignalSignals();
+static int SignalSignals(void);
 \f
 /********************************\
 *                               *
@@ -161,8 +161,8 @@ static int sigDelivered[NSIG];              /* True for signals delivered so far.
                                           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;
@@ -230,7 +230,7 @@ fd_set *IOMGR_AllocFDSet(void)
 
 #define FreeRequest(x) ((x)->result = (long) iorFreeList, iorFreeList = (x))
 
-static struct IoRequest *NewRequest()
+static struct IoRequest *NewRequest(void)
 {
     struct IoRequest *request;
 
@@ -410,7 +410,7 @@ static int FDSetEmpty(int nfds, fd_set *fds)
 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;
@@ -664,7 +664,7 @@ static int IOMGR(void *dummy)
        }
        LWP_DispatchProcess();
     }
-    return -1; /* keeps compilers happy. */
+    return (void *)-1; /* keeps compilers happy. */
 }
 \f
 /************************\
@@ -721,8 +721,7 @@ static void SignalTimeout(int code, struct timeval *timeout)
 *  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. */
@@ -739,7 +738,7 @@ static int SignalSignals (void)
 {
     bool gotone = FALSE;
     register int i;
-    register int (*p)();
+    register void *(*p)(void *);
     afs_int32 stackSize;
 
     anySigsDelivered = FALSE;
@@ -748,9 +747,9 @@ static int SignalSignals (void)
     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;
     }
 
@@ -774,9 +773,8 @@ static int SignalSignals (void)
 /* 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) {
@@ -797,7 +795,6 @@ unsigned char allOnes[100];
 
 int IOMGR_Initialize(void)
 {
-    extern int TM_Init();
     PROCESS pid;
 
     /* If lready initialized, just return */
@@ -824,7 +821,7 @@ int IOMGR_Initialize(void)
                             "IO MANAGER", &IOMGR_Id);
 }
 
-int IOMGR_Finalize()
+int IOMGR_Finalize(void)
 {
     int status;
 
@@ -912,10 +909,8 @@ int IOMGR_Poll(void) {
     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;
@@ -936,7 +931,9 @@ int IOMGR_Select(fds, readfds, writefds, exceptfds, timeout)
 #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)
            /*
index 47356426575b2d378f407cb640941d8425c5862f..fa3d0f0d760b59683cf788c82f6d4f83d6a4756a 100644 (file)
@@ -26,7 +26,7 @@
 #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>
@@ -197,9 +197,7 @@ Afs_Lock_ReleaseW(struct Lock *lock)
 
 /* 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);
@@ -207,9 +205,7 @@ LWP_WaitProcessR(addr, alock)
 
 /* 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);
@@ -217,9 +213,7 @@ LWP_WaitProcessW(addr, alock)
 
 /* 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);
index 8655c85b46a7f1a1b03b14a94f5ec613719c7058..3e79789e5c33ef82113a1215065d8383726b96c1 100644 (file)
@@ -68,6 +68,7 @@ struct Lock {
 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);
 
index 11b8ee3f0469d7ba15291a0b00f0cc8e07e2052a..024cef9db22db8da508aac6cc19401ffa5cba6ef 100644 (file)
@@ -17,7 +17,7 @@
 #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>
@@ -39,13 +39,7 @@ int setlim(int limcon, uchar_t hard, int limit);
 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)
 
@@ -53,11 +47,13 @@ extern char *getenv();
 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
@@ -104,20 +100,23 @@ extern char PRE_Block;            /* from preempt.c */
 } 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)
 
@@ -125,7 +124,9 @@ struct QUEUE {
     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;
@@ -266,7 +267,7 @@ reserveFromStack(register afs_int32 size)
 #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;
@@ -373,11 +374,13 @@ LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
        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,
@@ -421,7 +424,7 @@ LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
 
 #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;
@@ -466,11 +469,13 @@ LWP_CreateProcess2(int (*ep) (), int stacksize, int priority, void *parm,
        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 *));
@@ -650,7 +655,7 @@ LWP_InitializeProcessSupport(int priority, PROCESS * pid)
 }
 
 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) {
@@ -689,9 +694,9 @@ LWP_TerminateProcessSupport(void)
 }
 
 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)
@@ -702,7 +707,7 @@ LWP_WaitProcess(char *event)
 }
 
 int
-LWP_MwaitProcess(int wcount, char *evlist[])
+LWP_MwaitProcess(int wcount, void *evlist[])
 {                              /* wait on m of n events */
     register int ecount, i;
 
@@ -730,8 +735,8 @@ LWP_MwaitProcess(int wcount, char *evlist[])
        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++)
@@ -787,7 +792,7 @@ Abort_LWP(char *msg)
     return;
 }
 
-static int
+static void
 Create_Process_Part2(void)
 {                              /* creates a context for the new process */
     PROCESS temp;
@@ -797,7 +802,7 @@ Create_Process_Part2(void)
     savecontext(Dispatcher, &temp->context, NULL);
     (*temp->ep) (temp->parm);
     LWP_DestroyProcess(temp);
-    return 0;
+    return;
 }
 
 static int
@@ -876,7 +881,7 @@ purge_dead_pcbs(void)
 
 int LWP_TraceProcesses = 0;
 
-static int
+static void
 Dispatcher(void)
 {                              /* Lightweight process dispatcher */
     register int i;
@@ -928,7 +933,8 @@ Dispatcher(void)
        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) {
@@ -962,11 +968,15 @@ Dispatcher(void)
        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. */
@@ -999,7 +1009,7 @@ Dispose_of_Dead_PCB(PROCESS cur)
 */
 }
 
-static int
+static void
 Exit_LWP(void)
 {
     abort();
@@ -1024,7 +1034,7 @@ Free_PCB(PROCESS pid)
 
 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;
 
@@ -1034,7 +1044,7 @@ Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
            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;
@@ -1062,7 +1072,7 @@ Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
 }
 
 static int
-Internal_Signal(register char *event)
+Internal_Signal(register void *event)
 {
     int rc = LWP_ENOWAIT;
     register int i;
@@ -1252,13 +1262,13 @@ plim(char *name, afs_int32 lc, uchar_t hard)
 
 #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));
 }
@@ -1283,7 +1293,7 @@ pthread_key_t lwp_process_key;    /* Key associating lwp pid with thread */
 
 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
@@ -1508,7 +1518,7 @@ LWP_TerminateProcessSupport(void)
 
 /* 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;
@@ -1542,7 +1552,7 @@ getevent(char *event)
 #define relevent(evp) ((evp)->refcount--)
 
 int
-LWP_WaitProcess(char *event)
+LWP_WaitProcess(void *event)
 {                              /* wait on a single event */
     struct event *ev;
     int seq;
@@ -1566,7 +1576,7 @@ LWP_MwaitProcess(int wcount, char *evlist[])
 }
 
 int
-LWP_NoYieldSignal(char *event)
+LWP_NoYieldSignal(void *event)
 {
     struct event *ev;
     debugf(("%s: no yield signal (%x)\n", lwp_process_string(), event));
@@ -1582,7 +1592,7 @@ LWP_NoYieldSignal(char *event)
 }
 
 int
-LWP_SignalProcess(char *event)
+LWP_SignalProcess(void *event)
 {
     struct event *ev;
     debugf(("%s: signal process (%x)\n", lwp_process_string(), event));
index 1846a4e7b549a79f2ceaf46f9e679f9c750a907f..39663341e8fdcf447f0023af10a450f84706b667 100644 (file)
@@ -223,7 +223,7 @@ struct lwp_pcb {            /* process control block */
     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 */
@@ -232,7 +232,7 @@ struct lwp_pcb {            /* process control block */
     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 */
@@ -348,7 +348,7 @@ extern void IOMGR_Sleep(int seconds);
 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 */
@@ -374,15 +374,22 @@ extern int LWP_QWait(void);
 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 */
index 5973240b497c7acf79a6eff062926f4506c30039..63bc50a2e82fbd5b7aa86e09fb34247ffccd50f7 100644 (file)
@@ -17,7 +17,7 @@
 #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"
@@ -34,7 +34,7 @@ PRE_InitPreempt(struct timeval *slice)
 }
 
 int
-PRE_EndPreempt()
+PRE_EndPreempt(void)
 {
     return LWP_SUCCESS;
 }
index b05f19ca2dbe1e0c9924cdaba37e2db798225223..07e0cf8e619335b560470f2c022746ba0bbfac1e 100644 (file)
@@ -13,7 +13,7 @@
 #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>
@@ -31,7 +31,7 @@ extern char PRE_Block;                /* used in lwp.c and process.s */
 #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 */
@@ -69,8 +69,7 @@ savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
 }
 
 void
-returnto(savearea)
-     struct lwp_context *savearea;
+returnto(struct lwp_context *savearea)
 {
     PRE_Block = 0;
 
@@ -138,7 +137,7 @@ typedef int jmp_buf_type;
 #endif /*SGI*/
 
     static jmp_buf jmp_tmp;
-static char (*EP) ();
+static void *(*EP) (void);
 static int rc;
 static jmp_buf_type *jmpBuffer;
 
@@ -172,10 +171,7 @@ static int ptr_mangle(int p)
 
 
 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;
 
@@ -233,7 +229,7 @@ savecontext(ep, savearea, sp)
     return 0;
 }
 
-afs_int32
+void
 returnto(struct lwp_context * savearea)
 {
 #if    defined(DEBUG)
@@ -249,7 +245,7 @@ returnto(struct lwp_context * savearea)
 #endif
     PRE_Block = 0;
     longjmp(savearea->setjmp_buffer, 2);
-    return 0;
+    return;
 }
 
 #endif
index 586c2723524872430eebfa34b6e374178432ef09..ed3c173e0d231a7ae2448afb838b15ef27d36352 100644 (file)
 #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.
index efc1c112e4d60fcbc97caab566fc3237fe309346..f7384c9130e4c3b07c968f6acfbf1204a8ce3518 100644 (file)
 #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) */
index 4face330d1b74362905262b7d777e27990a319fe..bdaa911ffda1f084ca87921b095902ae4965e524 100644 (file)
@@ -30,13 +30,14 @@ extern int TM_eql(struct timeval *t1, struct timeval *t2);
 #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)\
        {\
index deffa5e00767e882781665384d23de5f2c2ce21b..4fd1fef5012702ac02e66f103fb9da56fd69bdf6 100644 (file)
@@ -23,7 +23,7 @@
 #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>
@@ -35,13 +35,7 @@ RCSID
 #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 */
index 865377533f5ce32e53ca5278ce90c23719dd33bc..f33d44cf053b456a16c3d447cb62644027143195 100644 (file)
@@ -20,4 +20,5 @@ main()
      * Shortest routine in history.
      */
 
+    return 0; 
 }                              /*main */
index 51deef3577c2be1a67dd8627eb78ac82877cd168..f1e654499f684f80c34d8036560d90d87191ad3e 100644 (file)
@@ -1,4 +1,4 @@
-# $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
 
@@ -13,7 +13,7 @@ ln -s \
   $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 \
@@ -21,7 +21,6 @@ ln -s \
   $SRC/volser/vos \
   $SRC/bozo/bos \
   usr/vice/bin
-ln -s $SRC/pinstall/pinstall usr/vice/bin/install
 
 ln -s \
   $SRC/afsd/afsd \
diff --git a/src/packaging/RedHat/.cvsignore b/src/packaging/RedHat/.cvsignore
new file mode 100644 (file)
index 0000000..f07c5d2
--- /dev/null
@@ -0,0 +1 @@
+openafs.spec
diff --git a/src/packaging/RedHat/RPM-build-notes b/src/packaging/RedHat/RPM-build-notes
new file mode 100644 (file)
index 0000000..bf6f187
--- /dev/null
@@ -0,0 +1,35 @@
+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.
diff --git a/src/packaging/RedHat/afs-krb5-2.0-com_err.patch b/src/packaging/RedHat/afs-krb5-2.0-com_err.patch
deleted file mode 100644 (file)
index 7b496bb..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-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)
diff --git a/src/packaging/RedHat/afs-krb5-2.0-krb524.patch b/src/packaging/RedHat/afs-krb5-2.0-krb524.patch
deleted file mode 100644 (file)
index 7503d41..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- 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])
diff --git a/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch b/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch
deleted file mode 100644 (file)
index e39ef2c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-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
diff --git a/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch b/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch
deleted file mode 100644 (file)
index 44045a0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-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);
diff --git a/src/packaging/RedHat/afs-krb5-2.0-res_search.patch b/src/packaging/RedHat/afs-krb5-2.0-res_search.patch
deleted file mode 100644 (file)
index fda5ba4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- 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
diff --git a/src/packaging/RedHat/kmodtool b/src/packaging/RedHat/kmodtool
deleted file mode 100644 (file)
index 2afc4d9..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/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
diff --git a/src/packaging/RedHat/makesrpm.pl b/src/packaging/RedHat/makesrpm.pl
new file mode 100755 (executable)
index 0000000..8dc5e5c
--- /dev/null
@@ -0,0 +1,136 @@
+#!/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";
+
diff --git a/src/packaging/RedHat/mockbuild.pl b/src/packaging/RedHat/mockbuild.pl
new file mode 100755 (executable)
index 0000000..77c19dd
--- /dev/null
@@ -0,0 +1,313 @@
+#!/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);
+
index 40108b5399cd4523ce0d7c5557eb9e103da22123..103d9622eecdd0b5178b7ba4f04fd17881807832 100755 (executable)
@@ -4,7 +4,7 @@
 #
 # Written by:  Derek Atkins <warlord@MIT.EDU>
 #
-# $Revision: 1.1.2.3 $
+# $Revision: 1.1.2.4 $
 #
 
 # Define where the Specfile is located.
@@ -35,7 +35,7 @@ elif [ `echo $rhrel | grep -c 'CentOS'` = 1 ] ; then
 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}'`
diff --git a/src/packaging/RedHat/openafs-buildfedora.pl b/src/packaging/RedHat/openafs-buildfedora.pl
new file mode 100755 (executable)
index 0000000..3bbea02
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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;
+  }
+}
+
index a2b4df11bd1682014754d60feaf30e1f2ffc1bff..0a53da2d5ab092ca285554f8a8733163dfdfa963 100644 (file)
@@ -4,8 +4,9 @@
 #
 # 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
@@ -17,11 +18,6 @@ start() {
                /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"
diff --git a/src/packaging/RedHat/openafs-kmodtool b/src/packaging/RedHat/openafs-kmodtool
new file mode 100644 (file)
index 0000000..5487547
--- /dev/null
@@ -0,0 +1,176 @@
+#!/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
diff --git a/src/packaging/RedHat/openafs-krb5-2.0.tar.gz b/src/packaging/RedHat/openafs-krb5-2.0.tar.gz
deleted file mode 100644 (file)
index f6b915c..0000000
Binary files a/src/packaging/RedHat/openafs-krb5-2.0.tar.gz and /dev/null differ
index 99ae034fbe9488e64b0f9785ea4dc0dcc1c3593f..9dc069694eb5e9a11f85dc60e594ee86e4d8b03d 100644 (file)
@@ -1,7 +1,7 @@
-# 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
@@ -11,7 +11,8 @@
 %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
@@ -20,7 +21,7 @@
 %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 
 
@@ -80,6 +71,8 @@
 # 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}
@@ -227,13 +226,13 @@ Release: %{osvers}.%{pkgrel}
 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
@@ -243,9 +242,13 @@ Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar
 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
 
@@ -291,7 +294,16 @@ what gets built:
                                   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
@@ -339,6 +351,29 @@ administrative management.
 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
@@ -455,7 +490,7 @@ you are using KAserver instead of Krb5.
 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
@@ -638,37 +673,6 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 # 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
@@ -809,6 +813,22 @@ config_opts="--enable-redhat-buildsys \
 
 # 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} \
@@ -816,11 +836,12 @@ CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
        --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
@@ -832,49 +853,41 @@ make only_libafs_tree || 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
@@ -987,9 +1000,31 @@ ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
 # 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
 #
@@ -1030,7 +1065,8 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
 
 # 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
 
@@ -1050,7 +1086,7 @@ gzip -9 $RPM_BUILD_ROOT%{_mandir}/man*/*
        >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
 
 #
@@ -1146,14 +1182,11 @@ for f in pam_afs.krb.so.1 pam_afs.so.1 ; do
   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
@@ -1162,13 +1195,15 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
 %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
@@ -1188,9 +1223,7 @@ do
 
     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
@@ -1277,6 +1310,15 @@ if [ $1 = 0 ] ; then
         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}
@@ -1324,7 +1366,6 @@ fi
 %endif
 %endif
 
-
 ##############################################################################
 ###
 ### file lists
@@ -1474,6 +1515,12 @@ fi
 %{_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
@@ -1495,7 +1542,6 @@ fi
 %defattr(-,root,root)
 %{_bindir}/aklog
 %{_sbindir}/asetkey
-%{_sbindir}/ka-forwarder
 %{_mandir}/man1/aklog.*
 %{_mandir}/man8/asetkey.*
 %endif
@@ -1532,7 +1578,7 @@ fi
 %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
 
@@ -1544,6 +1590,14 @@ fi
 ###
 ##############################################################################
 %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
 
index 74a478200bfa35fcf9c2663235dac4d75708282b..ae78e16f9d2485876f8ba7764675569c3bfdb0c7 100644 (file)
 #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"
index d6830fc0523e155fa882c88749d9aec8ca8de2f4..7f963a44adc5d75dd0a078bec90a2a67cd2ccba2 100644 (file)
@@ -20,7 +20,7 @@
 #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>
@@ -62,7 +62,7 @@ pam_sm_setcred(pam_handle_t * pamh, int flags, int argc, const char **argv)
     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. */
index b9c1fefcb68b46112577abb6dde898bb7f68dcae..c75eb6dcc5111fccb35eaf1680e54e89c85d42f1 100644 (file)
 #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"
 
@@ -180,6 +178,12 @@ do_klog(const char *user, const char *password, const char *lifetime,
 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;
@@ -203,6 +207,7 @@ curpag(void)
            return -1;
     }
     return -1;
+#endif
 }
 
 /* Returns the AFS pag number, if any, otherwise return -1 */
index 94cc15868f56869e199d2d66ac2890978860a4fa..4f9935e3b7687f37817982d490b51a4e4c7971a0 100644 (file)
@@ -75,29 +75,29 @@ ptint.cs.o: ptint.cs.c ptint.xdr.c ptint.xg
 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}
 
index 941919f6120bcebd1612dcfe1ef6f47b299ce0a7..400b1e11ab01e65b587418523c34311ff1d12e14 100644 (file)
@@ -12,7 +12,7 @@
 #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
@@ -44,13 +44,7 @@ RCSID
 #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>
@@ -1433,7 +1427,7 @@ CheckPrDatabase(struct misc_data *misc)   /* info & statistics */
 #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;
index 90b617ef6585a83e25e6cea6bddfb2fcb2b3b103..b870c9dc23452dcd991296f0f2ebec2489e6d395 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -20,13 +20,7 @@ RCSID
 #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"
 
index b5d9e5fec67e9d8b644387276d335636cf38c2ed..7457d608827c8b32a922e0a68fba5ec67f6b2933 100644 (file)
@@ -1,4 +1,4 @@
-/* $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 $ */
 
 /*
  *
@@ -23,7 +23,7 @@
 #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>
@@ -33,6 +33,7 @@ RCSID
 #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"
@@ -53,7 +54,7 @@ void fix_pre();
 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];
@@ -105,7 +106,7 @@ main(int argc, char **argv)
     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");
@@ -128,7 +129,7 @@ main(int argc, char **argv)
 }
 
 int
-CommandProc(register struct cmd_syndesc *a_as)
+CommandProc(register struct cmd_syndesc *a_as, void *arock)
 {
     register int i;
     register long code;
index 5fe7b0d787ff3693080048aa3619a18f4c979153..f3240bb66d5875998d1ab95a9ddc161c81b74251 100644 (file)
@@ -51,7 +51,7 @@
 #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>
@@ -69,13 +69,7 @@ RCSID
 #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"
index 58f8cf1279a028ffb8e955bd5be97af25d2f4b9b..dbdef5cd6c080fce8fd15c0c98736b90f83582f7 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -50,9 +50,16 @@ struct sourcestack {
     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;
 }
@@ -130,39 +137,78 @@ osi_audit()
 }
 
 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;
@@ -704,7 +750,7 @@ ListEntries(struct cmd_syndesc *as)
            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;
@@ -972,6 +1018,10 @@ add_std_args(register struct cmd_syndesc *ts)
     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)");
 }
 
 /*
@@ -996,6 +1046,7 @@ main(int argc, char **argv)
     int parsec;
     char *parsev[CMD_MAXPARMS];
     char *savec;
+    struct authstate state;
 
 #ifdef WIN32
     WSADATA WSAjunk;
@@ -1020,7 +1071,10 @@ main(int argc, char **argv)
     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");
@@ -1029,60 +1083,60 @@ main(int argc, char **argv)
     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");
@@ -1094,42 +1148,42 @@ main(int argc, char **argv)
 #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)) {
@@ -1160,7 +1214,7 @@ main(int argc, char **argv)
        parsev[0] = savec;
        cmd_FreeArgv(parsev);
     }
-    CleanUp(0);
+    CleanUp(NULL, NULL);
     exit(0);
 }
 
index 66f6b6e48ca31c367d5a20a28798c4b45731e826..98b77f2a566f98b07fd2d69bfd3d9a94c1d3ee8f 100644 (file)
 #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
@@ -130,13 +130,7 @@ RCSID
 #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>
@@ -170,6 +164,7 @@ char *pr_realmName;
 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];
@@ -315,6 +310,9 @@ main(int argc, char **argv)
        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) {
@@ -368,7 +366,7 @@ main(int argc, char **argv)
            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);
@@ -385,6 +383,7 @@ main(int argc, char **argv)
                   "[-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");
@@ -392,6 +391,7 @@ main(int argc, char **argv)
            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");
@@ -405,12 +405,14 @@ main(int argc, char **argv)
                   "[-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
@@ -559,6 +561,11 @@ main(int argc, char **argv)
     }
     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,
index cf9e99b87ac387c7b1f1708e5aefbca911e84395..12735c4a0ad4e03eb2e38f9c000c72a3f6d83196 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -41,13 +41,7 @@ RCSID
 #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>
@@ -99,11 +93,12 @@ pr_Initialize(IN afs_int32 secLevel, IN char *confDir, IN char *cell)
        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;
@@ -181,16 +176,22 @@ pr_Initialize(IN afs_int32 secLevel, IN char *confDir, IN char *cell)
     /* 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];
@@ -200,16 +201,17 @@ pr_Initialize(IN afs_int32 secLevel, IN char *confDir, IN char *cell)
        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] =
@@ -224,8 +226,9 @@ pr_Initialize(IN afs_int32 secLevel, IN char *confDir, IN char *cell)
     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++)
index d102d545e27bd2f5b62cc42abf8febde47c0e724..722445842173b90cf1c6ce7e9a39e3f7b9432d9a 100644 (file)
@@ -24,7 +24,7 @@
 #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>
@@ -34,13 +34,7 @@ RCSID
 #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>
index 09947f8a918c530f0ed09df4c41921bab0840fd4..04ed6753c2d458684f4fd63c4b9df0bf99bfc379 100644 (file)
 #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>
@@ -212,6 +206,7 @@ main(int argc, char **argv)
            }
        }
     }
+    return 0;
 }
 
 void
index 54dbbb42b39be83be963652a3b9da1eb75d8e0d0..6ecd3d1426e8b65a97232771ab5efc308bd2583e 100644 (file)
 #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>
@@ -105,4 +99,5 @@ main(afs_int32 argc, char **argv)
            fprintf(stderr, "%s (%d).\n", pr_ErrorMsg(code), code);
        }
     }
+    return 0;
 }
index 11e9ed8a5281460e72f9ac18dcc0461c1b77f80f..41a4c5181f5738610875bd3c2043931c836e4446 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -24,13 +24,7 @@ RCSID
 #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
@@ -57,7 +51,7 @@ static char conf_dir[100];
 static char lcell[MAXCELLCHARS];
 
 int
-ListUsedIds(struct cmd_syndesc *as, char *arock)
+ListUsedIds(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     namelist lnames;
@@ -410,7 +404,7 @@ RemUser(int u, int g)
 }
 
 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 */
@@ -767,7 +761,7 @@ ka_ConvertBytes(char *ascii,                /* output buffer */
  */
 
 int
-TestPrServ(struct cmd_syndesc *as, char *arock)
+TestPrServ(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 id;
     char name[PR_MAXNAMELEN + 1];
@@ -913,7 +907,7 @@ static char tmp_cell_file[128] = "";
 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);
@@ -927,7 +921,7 @@ MyAfterProc(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-MyBeforeProc(struct cmd_syndesc *as, char *arock)
+MyBeforeProc(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     int i;
@@ -1109,7 +1103,7 @@ main(int argc, char *argv[])
     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");
@@ -1118,10 +1112,10 @@ main(int argc, char *argv[])
     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");
index 8df1155690caa76900bac897e3d3628021faffd0..864176eb1a9b9e8f3598ea1f06586481cdb8e618 100644 (file)
@@ -1,21 +1,14 @@
-/* $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
index 4be9bd13b74861fc9cf9c77a8ad991dab0865ce1..fd008a79d63854a144c9aab9ba7267707938c258 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -23,13 +23,7 @@ RCSID
 #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"
 
@@ -830,6 +824,9 @@ IsAMemberOf(struct ubik_trans *at, afs_int32 aid, afs_int32 gid)
        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)
index e20eb160018da19972d2d9a2ec80134a76278e11..59f982ed151d07845b5fda93e73d4b4f8e4e856f 100644 (file)
@@ -16,7 +16,7 @@
 #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
@@ -216,36 +216,16 @@ osi_StopListener(void)
 {
     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;
index a90703b3192fd6f8ff0bee9ff3f496f3c51d493a..b957cabb62516c25fdf6ad9b835164c04b52ac3f 100644 (file)
@@ -11,7 +11,7 @@
 #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"
@@ -444,7 +444,11 @@ osi_FreeSocket(register osi_socket *asocket)
 
     /* 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;
@@ -592,6 +596,14 @@ osi_NetIfPoller()
     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();
 
index 4c54e36b2c8e7c57a9496606022bafa6be0665ea..edd6992282147ae9100585a7e95a27e5b9e0ee3c 100644 (file)
@@ -11,7 +11,7 @@
 #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"
 
@@ -134,8 +134,8 @@ rxk_Listener(void)
 /* 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;
index ab19d10bdb63f78de64f55a203fa782f0062d1be..8b85e5c7a6640ba21b51e255eed0e5186bec3a9c 100644 (file)
@@ -17,7 +17,7 @@
 #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"
@@ -79,6 +79,7 @@ extern afs_int32 afs_termState;
 # include "rxgen_consts.h"
 #else /* KERNEL */
 # include <sys/types.h>
+# include <string.h>
 # include <errno.h>
 #ifdef AFS_NT40_ENV
 # include <stdlib.h>
@@ -92,13 +93,6 @@ extern afs_int32 afs_termState;
 # 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"
@@ -724,7 +718,7 @@ rx_StartServer(int donateMe)
            (*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
@@ -769,9 +763,7 @@ rx_NewConnection(register afs_uint32 shost, u_short sport, u_short sservice,
     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;
@@ -1348,6 +1340,23 @@ rx_NewServiceHost(afs_uint32 host, u_short port, u_short serviceId,
     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,
@@ -1827,9 +1836,9 @@ rx_GetCall(int tno, struct rx_service *cur_service, osi_socket * socketp)
 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;
@@ -2979,7 +2988,7 @@ rxi_CheckReachEvent(struct rxevent *event, struct rx_connection *conn,
                    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);
@@ -3018,13 +3027,15 @@ rxi_CheckReachEvent(struct rxevent *event, struct rx_connection *conn,
            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);
        }
@@ -3101,7 +3112,7 @@ rxi_ReceiveDataPacket(register struct rx_call *call,
     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);
@@ -3122,7 +3133,8 @@ rxi_ReceiveDataPacket(register struct rx_call *call,
        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)) {
@@ -3130,7 +3142,7 @@ rxi_ReceiveDataPacket(register struct rx_call *call,
                           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;
@@ -3408,7 +3420,8 @@ rxi_ReceiveDataPacket(register struct rx_call *call,
        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 {
@@ -3420,7 +3433,7 @@ rxi_ReceiveDataPacket(register struct rx_call *call,
                           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);
@@ -3811,9 +3824,7 @@ rxi_ReceiveAckPacket(register struct rx_call *call, struct rx_packet *np,
            call->nNacks = nNacked;
        }
     } else {
-       if (newAckCount) {
-           call->nAcks++;
-       }
+       call->nAcks += newAckCount;
        call->nNacks = 0;
     }
 
@@ -4247,7 +4258,7 @@ rxi_SendCallAbort(register struct rx_call *call, struct rx_packet *packet,
                  int istack, int force)
 {
     afs_int32 error;
-    struct clock when;
+    struct clock when, now;
 
     if (!call->error)
        return packet;
@@ -4273,11 +4284,12 @@ rxi_SendCallAbort(register struct rx_call *call, struct rx_packet *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;
 }
@@ -4296,7 +4308,7 @@ rxi_SendConnectionAbort(register struct rx_connection *conn,
                        struct rx_packet *packet, int istack, int force)
 {
     afs_int32 error;
-    struct clock when;
+    struct clock when, now;
 
     if (!conn->error)
        return packet;
@@ -4319,10 +4331,11 @@ rxi_SendConnectionAbort(register struct rx_connection *conn,
                            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;
 }
@@ -4989,7 +5002,7 @@ rxi_Start(struct rxevent *event, register struct rx_call *call,
     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;
@@ -5061,13 +5074,15 @@ rxi_Start(struct rxevent *event, register struct rx_call *call,
         * 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
@@ -5117,6 +5132,8 @@ rxi_Start(struct rxevent *event, register struct rx_call *call,
                        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);
@@ -5262,12 +5279,13 @@ rxi_Start(struct rxevent *event, register struct rx_call *call,
 #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 */
                    }
                }
@@ -5464,12 +5482,13 @@ void
 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);
     }
 }
 
@@ -5545,7 +5564,7 @@ rxi_ChallengeEvent(struct rxevent *event, register struct rx_connection *conn,
     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.
@@ -5578,10 +5597,11 @@ rxi_ChallengeEvent(struct rxevent *event, register struct rx_connection *conn,
                            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));
     }
 }
@@ -5703,7 +5723,7 @@ rxi_ComputeRoundTripTime(register struct rx_packet *p,
 void
 rxi_ReapConnections(void)
 {
-    struct clock now;
+    struct clock now, when;
     clock_GetTime(&now);
 
     /* Find server connection structures that haven't been used for
@@ -5854,8 +5874,9 @@ rxi_ReapConnections(void)
     }
     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);
 }
 
 
index acd57f1d20e82bd836177981e52a616954c0fd18..7ea5eb8bdaa90e5415ada154d9551bdd0293aa2b 100644 (file)
 #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"
@@ -46,6 +40,7 @@
 #else /* KERNEL */
 # include <sys/types.h>
 # include <stdio.h>
+# include <string.h>
 #ifdef AFS_PTHREAD_ENV
 # include "rx_pthread.h"
 #else
@@ -257,7 +252,7 @@ struct rx_connection {
     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 */
 
@@ -508,8 +503,8 @@ struct rx_call {
     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 */
@@ -693,6 +688,21 @@ struct rx_securityObjectStats {
     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
@@ -733,11 +743,15 @@ struct rx_securityClass {
        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;
 };
 
@@ -755,7 +769,7 @@ struct rx_securityClass {
 #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
index a7084790ad30a75367a525ae54bbe8df6c4ef7bd..be89ae8d3f781b4058df7849c5601978eb5a91c7 100644 (file)
@@ -19,7 +19,7 @@
 #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
@@ -90,6 +90,7 @@ struct xfreelist {
 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
@@ -117,6 +118,28 @@ pthread_mutex_t rx_event_mutex;
 #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
@@ -139,6 +162,7 @@ rxevent_Init(int nEvents, void (*scheduler) (void))
     rxevent_ScheduledEarlierEvent = scheduler;
     rxevent_initialized = 1;
     clock_Zero(&rxevent_nextRaiseEvents);
+    clock_Zero(&rxevent_lastEvent);
     rxevent_raiseScheduled = 0;
     UNLOCK_EV_INIT;
 }
@@ -181,17 +205,9 @@ rxepoch_Allocate(struct clock *when)
  * "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;
@@ -200,15 +216,23 @@ _rxevent_Post(struct clock *when, void (*func) (), void *arg, void *arg1,
     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)) {
@@ -297,14 +321,32 @@ _rxevent_Post(struct clock *when, void (*func) (), void *arg, void *arg1,
 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.
@@ -378,7 +420,6 @@ rxevent_RaiseEvents(struct clock *next)
     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
@@ -394,17 +435,27 @@ rxevent_RaiseEvents(struct clock *next)
            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);
index 946c3d4a5c1daa5ed7c449f898f4db22a1622833..2c97f6d1b7a9e038eb414172d10cb5e2c729f978 100644 (file)
@@ -15,7 +15,7 @@
 #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"
 
@@ -273,8 +273,8 @@ osi_AssertFailK(const char *expr, const char *file, int line)
 #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;
 
@@ -1092,8 +1092,12 @@ afs_rxevent_daemon(void)
        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;
@@ -1206,6 +1210,9 @@ rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host, int *port)
  * 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
 /*
@@ -1235,6 +1242,7 @@ rxk_Listener(void)
 
 #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 */
@@ -1267,11 +1275,19 @@ rxk_Listener(void)
     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
index e7bc7ed1a030cef1189a88087fde5b06aea44ff1..8c76ab98a19ee4f22f48303c4f6d0488fb633482 100644 (file)
@@ -22,7 +22,7 @@
 #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>
@@ -75,7 +75,7 @@ rxi_Wakeup(void *addr)
 }
 
 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.
@@ -119,14 +119,14 @@ rxi_InitializeThreadSupport(void)
 }
 
 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);
@@ -320,7 +320,7 @@ rxi_ListenerProc(fd_set * rfds, int *tnop, struct rx_call **newcallp)
 /* 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;
@@ -343,13 +343,14 @@ rx_ListenerProc(void *dummy)
        /* 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;
@@ -376,6 +377,7 @@ rx_ServerProc(void)
        /* assert(newcall != NULL); */
     }
     /* not reached */
+    return NULL;
 }
 
 /*
index f2465f52dc9b8e21b835698376ceea50ab5c582a..7859133044ec74c02d7925f4f2bb0fa578c39373 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -30,13 +30,7 @@ RCSID
 #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
@@ -59,7 +53,7 @@ hton_syserr_conv(register afs_int32 code)
 
     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;
@@ -82,7 +76,7 @@ ntoh_syserr_conv(int code)
     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;
index 26042af1560ec2ebc6be439a7a58c263c0aa749b..229be101c2cc4ee631dcd7db6bc0da335569b282 100644 (file)
@@ -11,7 +11,7 @@
 #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"
@@ -55,7 +55,7 @@ multi_Init(struct rx_connection **conns, register int nConns)
     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;
 }
@@ -95,7 +95,7 @@ multi_Select(register struct multi_handle *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;
index 4e57805b998cfcfb5535ae8d651f5f32ab1b45cb..9306a5c7feccb630bdfd668c68c0e2b39ec5dfe0 100644 (file)
@@ -15,7 +15,7 @@
 #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)
@@ -88,13 +88,7 @@ RCSID
 #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
index cbbe19d82759e54f056b400852604016bf7a4c40..6dbd87ecd940a4b83cbfcb371c0621211eb16c8d 100644 (file)
@@ -60,9 +60,9 @@ extern struct rx_call *rx_GetCall(int tno, struct rx_service *cur_service,
 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);
@@ -301,6 +301,11 @@ extern struct rxevent *rxevent_Post(struct clock *when, void (*func) (),
                                    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);
@@ -362,7 +367,7 @@ extern osi_socket *rxk_NewSocket(short aport);
 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);
@@ -416,7 +421,6 @@ extern void afs_rxevent_daemon(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);
@@ -426,9 +430,9 @@ extern void rxi_StopListener(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);
@@ -450,7 +454,7 @@ extern struct multi_handle *multi_Init(struct rx_connection **conns,
                                       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);
 
@@ -528,11 +532,11 @@ extern int rxi_AdjustDgramPackets(int frags, int mtu);
 /* 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);
index 726b49a651da314161b4b4319181ec7ad3b462f9..f69bdb62957d8583f462c33e2074f975214bcc07 100644 (file)
 #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>
@@ -107,7 +108,7 @@ server_entry(void *argp)
  * 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;
@@ -267,8 +268,8 @@ rx_ListenerProc(void *argp)
 /* 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;
index 15f5c83943cc97cb0d1c52cefd8cb96dedf785d7..10928d64b3a68701d572156d15a5462a0b2db0dd 100644 (file)
@@ -15,7 +15,7 @@
 #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
@@ -79,13 +79,7 @@ RCSID
 # 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
@@ -196,8 +190,9 @@ rxi_ReadProc(register struct rx_call *call, register char *buf,
                                               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
@@ -208,7 +203,7 @@ rxi_ReadProc(register struct rx_call *call, register char *buf,
                                                   RX_CALL_REFCOUNT_DELAY);
                                    CALL_HOLD(call, RX_CALL_REFCOUNT_DELAY);
                                    call->delayedAckEvent =
-                                       rxevent_Post(&when,
+                                     rxevent_PostNow(&when, &now,
                                                     rxi_SendDelayedAck, call,
                                                     0);
                                }
@@ -529,8 +524,9 @@ rxi_FillReadVec(struct rx_call *call, afs_uint32 serial)
            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
@@ -539,7 +535,7 @@ rxi_FillReadVec(struct rx_call *call, afs_uint32 serial)
                               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);
            }
        }
     }
index 1229cc19d54a876bb3838afdf9abd9f86147a3fd..25f900954e8d6f55f885706b6e9c9c8bfc9a2cdb 100644 (file)
 #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>
@@ -188,6 +182,7 @@ main(argc, argv)
        printf(" %3u %7u %7u      %x.%x\n", ip.qlen, ip.servicetime,
               ip.waittime, ip.cid, ip.call);
     }
+    return 0;
 }
 
 #endif /* DUMPTRACE */
index 9346d8d49973210805e45a0852b6a5a855e8419f..806142929ddbae4bad717061a157cf969a7cbef2 100644 (file)
 #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
@@ -36,13 +37,6 @@ RCSID
 #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
index 943efc84f90a8a934b9d5762a0a239f339eaeeb4..75c5236271b607958a787bb186f3f78e4b3ff799 100644 (file)
@@ -53,7 +53,7 @@
 #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>
@@ -731,7 +731,7 @@ WriteCltTrailer(char *serverName, int first, int last, FILE * itl_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");
@@ -802,7 +802,7 @@ WriteCltTrailer(char *serverName, int first, int last, FILE * itl_h)
 
     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"
@@ -1187,7 +1187,7 @@ WriteServTrailer(FILE * srv_h)
            "\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"
@@ -1204,7 +1204,7 @@ WriteServTrailer(FILE * srv_h)
            "\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"
index 481a2b82883f8c949d4b4dc85056668dd0ca5efa..1a01bab8089fe6ffd9f456439ffdc3960eb06a34 100644 (file)
 #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.
index c729b62c4f9e6e1f431190fe682b5ac7ecff5065..7cbefd8d67b5a7b5d63ad646c69e1679298f97f9 100644 (file)
@@ -31,7 +31,7 @@
 #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
 
@@ -58,6 +58,7 @@ RCSID
 #endif /* AFS_LINUX20_ENV */
 #else
 #include <stdio.h>
+#include <string.h>
 #endif
 #include "xdr.h"
 
index 2e61260e307a420a09108e00519bb884ecffd29e..b11fc8644eeeedcf893d6670dcf3d4eb3ac11c30 100644 (file)
@@ -47,7 +47,7 @@
 #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
@@ -59,13 +59,7 @@ RCSID
 #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.
@@ -114,7 +108,7 @@ static bool_t xdrrec_putbytes(XDR * xdrs, register caddr_t addr,
                              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);
@@ -341,7 +335,7 @@ xdrrec_setpos(register XDR * xdrs, u_int pos)
 }
 
 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;
index 0ea49b856f0a975e0a41bd931b8920b96871edea..7b48d1a05f591de3cab155d91ebb1304f6c0f0a5 100644 (file)
@@ -31,7 +31,7 @@
 #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
 
@@ -46,6 +46,7 @@ RCSID
 
 #include "xdr.h"
 #include <stdio.h>
+#include <string.h>
 #define LASTUNSIGNED   ((u_int)0-1)
 
 /*
index 51aa5de5c14cf750a6653e4aeff7d211e8013653..5f8d05c6f28472e3733bc4c419e9369d663714d2 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -32,13 +32,7 @@ RCSID
 #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>
@@ -85,9 +79,7 @@ PortName(aname)
 }
 
 int
-MainCommand(as, arock)
-     char *arock;
-     struct cmd_syndesc *as;
+MainCommand(struct cmd_syndesc *as, void *arock)
 {
     register int i;
     int s;
@@ -592,7 +584,7 @@ main(argc, argv)
     }
 #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,
index b0915fa62f1bd0e190efd287076c461bdc71978b..a9cd97e2caab0b1c50b5d9bcad60dbcfe653b361 100644 (file)
@@ -18,6 +18,9 @@ all: rxgen ${TOP_INCDIR}/afs/rxgen_consts.h
 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
 #
index e120ce1acad2c782ab79c34f3bb3a733a4219537..f2fb58f6b96299f26b6c391682be06ae3da32471 100644 (file)
 #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"
index 177705f51a43ecab4a7fa2547b3b4ffe9f2c9ef9..fe4651e4dee3021617f36659af67dad0c047db13 100644 (file)
@@ -36,7 +36,7 @@
 #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>
@@ -268,9 +268,9 @@ psprocdef(definition * defp)
                (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);
index dd4e2448ab19d3b39de090d30f6b0a1baf07b704..a8ef1d5d9d8a613e7e2afd0e36783c5a2bb5fabb 100644 (file)
 #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
@@ -66,6 +60,7 @@ RCSID
 #define EXTEND 1               /* alias for TRUE */
 
 struct commandline {
+    int ansic_flag;
     int cflag;
     int hflag;
     int lflag;
@@ -93,19 +88,14 @@ int nincludes = 0;
 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
@@ -808,6 +798,7 @@ parseargs(int argc, char *argv[], struct commandline *cmd)
            for (j = 1; argv[i][j] != 0; j++) {
                c = argv[i][j];
                switch (c) {
+               case 'A':
                case 'c':
                case 'h':
                case 'l':
@@ -866,6 +857,7 @@ parseargs(int argc, char *argv[], struct commandline *cmd)
            ;
        }
     }
+    cmd->ansic_flag = ansic_flag = flag['A'];
     cmd->cflag = cflag = flag['c'];
     cmd->hflag = hflag = flag['h'];
     cmd->sflag = flag['s'];
index fc1fa318e85771810aa1971a5392c34cfb0d45e4..a41036ac3bff053407da53731313669efd8bd35c 100644 (file)
 #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"
@@ -1116,21 +1110,30 @@ cs_Proc_CodeGeneration(definition * defp, int split_flag, char *procheader)
     }
 }
 
-
 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) {
@@ -1139,20 +1142,32 @@ cs_ProcName_setup(definition * defp, char *procheader, int split_flag)
     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) {
@@ -1748,8 +1763,14 @@ ucs_ProcName_setup(definition * defp, char *procheader, int 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)) >=
@@ -1759,8 +1780,18 @@ ucs_ProcName_setup(definition * defp, char *procheader, int split_flag)
     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");
@@ -1773,6 +1804,9 @@ ucs_ProcParams_setup(definition * defp, int split_flag)
 {
     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
index a8cce438a3a7f811bd570d554ac98656243269d9..199435543e1b2fdd5aa1d0281767c9a722024b67 100644 (file)
 #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"
index c5a7245f0f5117ac18c4e96a935478dbdf859f59..abf93e83f33088349bdefc33fc90b5c98333b506 100644 (file)
 #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"
index bdb9f5831c74194ea604a85fff9369969a5c3381..972cc3285bee3cb6aba78536ce18870f0df5ea9a 100644 (file)
 #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
index 86e4894e52ff492b5ced5b14e15c8e7751836fe1..3722421f45e94b70374cbc86ea8d14d6e24384b3 100644 (file)
@@ -57,6 +57,7 @@ extern int nincludes;
 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;
index ff7e444cb0383814b70e7704f2eb4d3c37b64fd5..3d78c10d398ef3b6d4272ef471cee5b43fc647b6 100644 (file)
@@ -41,7 +41,7 @@
 #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"
@@ -60,13 +60,7 @@ RCSID
 #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>
index ebc7160d14afc7d8460b030cabb203e8ade519bd..1c70c5d64857588ee51cf5d8d2616f0e0968bd99 100644 (file)
 #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"
@@ -37,6 +37,7 @@ RCSID
 #else /* !KERNEL */
 #include <afs/stds.h>
 #include <sys/types.h>
+#include <string.h>
 #include <rx/rx.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
index 22e9e1a17e35480bc4f1f53f8abe04fbb897a790..efe243a27afff273a621e8f81bb54405313c9c17 100644 (file)
@@ -20,7 +20,7 @@
 #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
@@ -47,6 +47,7 @@ RCSID
 
 #include <afs/stds.h>
 #include <sys/types.h>
+#include <string.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
 #else
index c8adfacb373c2a7f8ac8e08b9135cff526713220..bdbc4bdb8f303a34216da75708524601b28460ea 100644 (file)
 #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>
@@ -69,7 +63,7 @@
 #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 $");
 
 
 
index 7bc68b7425c59754a7f5cdf595f8a5c05f974b36..4d67c44954788f86aa43619c3e7ccbe9ac48872a 100644 (file)
 #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 $");
 
 
 
index d7c40f96555c304fc19da7247e6a0ae4bf496195..1d762ff3aa24e6928463914907d0aaba309c35a8 100644 (file)
@@ -77,6 +77,7 @@ struct rxkad_sprivate {
     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 */
index 2eb6c464d728d78f995026853a99b8165e1b2443..8c0e384d23e57266ea25403229a2b612eb24e69a 100644 (file)
 #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
@@ -47,13 +47,7 @@ RCSID
 #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
index f5536b606140d3c2da2f00cb7d941e084f756be8..141dcd69c0072d483451a1596844c09dd45e44a4 100644 (file)
@@ -23,7 +23,7 @@
 #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
@@ -50,6 +50,7 @@ RCSID
 #else /* KERNEL */
 #include <afs/stds.h>
 #include <sys/types.h>
+#include <string.h>
 #include <time.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
@@ -61,13 +62,6 @@ RCSID
 #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 */
 
index a610d612b1766f9a4709b75d43748d7f9ec8eb08..a2c3517ffaa0e376026dcb0b094f6398c0847690 100644 (file)
@@ -120,8 +120,10 @@ extern afs_int32 rxkad_GetServerInfo(struct rx_connection *aconn,
                                     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,
@@ -147,6 +149,6 @@ extern int tkt_DecodeTicket5(char *ticket, afs_int32 ticket_len,
                             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
index bc95ebb2529f0e78a3c6e27a633ac99fe9851c3c..2179ec784b2989ba38bd02839361260ea0c84503 100644 (file)
@@ -15,7 +15,7 @@
 #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>
@@ -28,13 +28,7 @@ RCSID
 #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>
@@ -63,7 +57,7 @@ static struct rx_securityOps rxkad_server_ops = {
     rxkad_CheckPacket,         /* check data packet */
     rxkad_DestroyConnection,
     rxkad_GetStats,
-    0,                         /* spare 1 */
+    rxkad_SetConfiguration,
     0,                         /* spare 2 */
     0,                         /* spare 3 */
 };
@@ -333,7 +327,8 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
        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;
     }
@@ -458,3 +453,26 @@ rxkad_GetServerInfo(struct rx_connection * aconn, rxkad_level * level,
     } 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;
+}
index 55b96bdcb3cddc899dad2efaa983f27d340e8e5c..4c088cf6bd7050b4b4f0fe443b64f1ef7fad41d8 100644 (file)
@@ -13,7 +13,7 @@
 #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>
@@ -104,9 +104,7 @@ StringToAuth(authname)
 #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);
@@ -310,7 +308,7 @@ main(argc, argv)
        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");
index d3afd4889ee52c63043b59a025faad19edda82c8..38f24dfb9aaf1fb468b3425ac05e2d50b15dc040 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -34,13 +34,7 @@ RCSID
 #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>
index 2107d741b780eb206d3cf6a2802e101440ca6f6d..f022582fe55fce15e156ce22c4bf2d871692a7b3 100644 (file)
@@ -62,7 +62,7 @@
 #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"
@@ -81,13 +81,7 @@ RCSID
 #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>
@@ -201,7 +195,7 @@ tkt_DecodeTicket5(char *ticket, afs_int32 ticket_len,
                  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;
@@ -318,13 +312,15 @@ tkt_DecodeTicket5(char *ticket, afs_int32 ticket_len,
        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) {
index 588b5552d115eeff2c614cfce0d33af12136e747..4850bf2c9dde18fb97c719f229a0785a6095c792 100644 (file)
@@ -19,16 +19,16 @@ depinstall: \
 # 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
index 4199be206a18f7bee42ac33d367c61e5f55312fb..33c9575b1ec59fbb21bc7155284f4fc05a69fd28 100644 (file)
 #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 */
@@ -2216,10 +2210,7 @@ static void scout_AdoptThresholds(a_thresh_item)
  *     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 */
@@ -2355,7 +2346,7 @@ main(argc, argv)
     /*
      * 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,
@@ -2387,4 +2378,5 @@ main(argc, argv)
     } else
        scout_CleanExit(0);
 
+    return 0; /* not reachable */
 }                              /*main */
index 7e7e3d6140601d0e95c7c2fbae44022f8f397246..30be7453f891d4b9154f60d085cf0403c9f55532 100644 (file)
@@ -284,7 +284,7 @@ xdr_afsuuid.o: ${RX}/xdr_afsuuid.c
 #
 #   $ 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.
@@ -366,7 +366,7 @@ fasttime.o: ${LWP}/fasttime.c
 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_* ) \
@@ -378,7 +378,7 @@ syscall.o: ${SYS}/syscall.s
         *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
index dbab5ea8e8db50559059fc28a791f066e76899f6..b29b98f2d318279eca17ab9a9c1594bfb0c1e5dc 100644 (file)
@@ -79,7 +79,7 @@
        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:
        *;
index b47b078d2540f6d8e77710d0c7770bf2c3bd746d..ea6d0a1f8ed2ee216520e3ce96a6832bf5a06fd2 100644 (file)
@@ -79,7 +79,7 @@
        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:
        *;
index e116a03bd477604a86bb04c808d79ae7f35b996f..70835b92132faa6784da5cc5d1be8e85f21da0d7 100644 (file)
@@ -1,3 +1,8 @@
+# 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.
 # 
@@ -14,10 +19,13 @@ CFLAGS=-I. -I${srcdir} ${DBUG} -I${TOP_OBJDIR}/src/config -I${TOP_INCDIR}  ${XCF
 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 \
@@ -31,23 +39,56 @@ all: \
     ${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* ) \
@@ -63,7 +104,7 @@ syscall.o: syscall.s
                ${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
@@ -95,16 +136,25 @@ rmtsysnet.o rmtsysc.o rmtsyss.o rmtsysd.o: rmtsys.h
 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}
@@ -152,6 +202,17 @@ xfsinode: xfsinode.c  AFS_component_version_number.c
                $(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* ) \
@@ -179,6 +240,9 @@ afsl.exp: ${srcdir}/afsl4.exp ${srcdir}/afsl5.exp
 ${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* ) \
@@ -214,10 +278,12 @@ ${KERNELDIR}/afs/xfsattrs.h: xfsattrs.h
 
 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 \
@@ -227,21 +293,41 @@ install: \
     ${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 \
@@ -260,6 +346,12 @@ dest: \
     ${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} $? $@
@@ -277,13 +369,13 @@ ${DEST}/include/afs/afssyscalls.h: afssyscalls.h
        ${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
@@ -294,5 +386,5 @@ clean:
        $(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
index 071de8b577372302f0c46a1c2fbe78885efced18..7d38a71d786a502f499637f7d8c3bc6db3f9d2cc 100644 (file)
 #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>
@@ -22,9 +27,7 @@ RCSID
 #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>
@@ -86,6 +89,12 @@ main(int argc, char *argv[])
 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;
@@ -109,6 +118,7 @@ curpag(void)
            return -1;
     }
     return -1;
+#endif
 }
 
 int
@@ -157,6 +167,7 @@ ktc_newpag(void)
     strcat(*denv, fname5);
     *++denv = 0;
     environ = newenv;
+    return 0;
 }
 
 #endif
index 2cd2f09b67dff9c109152fdbfae53e78a3c7f207..c9eeed8ec07cb9887507f4a760c6ce152d93409d 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -31,9 +31,7 @@ RCSID
 #endif
 #include <sys/stat.h>
 #include <stdio.h>
-#ifdef HAVE_STRING_H
 #include <string.h>
-#endif
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -46,6 +44,8 @@ static afs_int32 hostAddr = 0;
 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
@@ -307,7 +307,7 @@ afs_get_pag_from_groups(afs_uint32 g0, afs_uint32 g1)
     return NOPAG;
 }
 
-
+void
 afs_get_groups_from_pag(afs_uint32 pag, afs_uint32 * g0p, afs_uint32 * g1p)
 {
     unsigned short g0, g1;
index 689176130d45f036c5392df6122fb6cebb229287..8330b293776473bebfa68a29b8a139810d08e736 100644 (file)
@@ -17,7 +17,7 @@
 #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>
@@ -78,4 +78,5 @@ main(int argc, char *argv[])
      * at some point... */
     rx_SetMaxProcs(service, 2);
     rx_StartServer(1);         /* Donate this process to the server process pool */
+    return 0;
 }
index fe2b3f8be35c57dc6b6f887260aa57aa82a2fd9e..93658ee2c678bcef2f468d9de36d4106be29912c 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -26,13 +26,7 @@ RCSID
 #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>
@@ -153,6 +147,7 @@ RAclToString(struct Acl *acl, char *mydata, int ntoh_conv)
        sprintf(tstring, "%s %d\n", tp->name, tp->rights);
        strcat(mydata, tstring);
     }
+    return 0;
 }
 
 
@@ -171,6 +166,7 @@ RCleanAcl(struct Acl *aa)
        free(te);
     }
     free(aa);
+    return 0;
 }
 
 
@@ -212,6 +208,7 @@ RFetchVolumeStatus_conversion(char *data, int ntoh_conv)
        status->PartBlocksAvail = htonl(status->PartBlocksAvail);
        status->PartMaxBlocks = htonl(status->PartMaxBlocks);
     }
+    return 0;
 }
 
 int
@@ -230,6 +227,7 @@ RClearToken_convert(char *ptr, int ntoh_conv)
        ticket->BeginTimestamp = htonl(ticket->BeginTimestamp);
        ticket->EndTimestamp = htonl(ticket->EndTimestamp);
     }
+    return 0;
 }
 
 int
@@ -340,6 +338,7 @@ inparam_conversion(afs_int32 cmd, char *buffer, afs_int32 ntoh_conv)
        /* Note that new pioctls are supposed to be in network order! */
        break;
     }
+    return 0;
 }
 
 
@@ -450,4 +449,5 @@ outparam_conversion(afs_int32 cmd, char *buffer, afs_int32 ntoh_conv)
        /* Note that new pioctls are supposed to be in network order! */
        break;
     }
+    return 0;
 }
index 79482ac802315269878b14ad1705e8657bb098a3..280fb6372585ac7787098e2d8da1eb8d327ebaa8 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -30,9 +30,7 @@ RCSID
 #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"
 
@@ -85,6 +83,7 @@ rmtsysd()
      * at some point... */
     rx_SetMaxProcs(service, 2);
     rx_StartServer(1);         /* Donate this process to the server process pool */
+    return 0; /* not reached */
 }
 
 
index 590413b8a23d059c617c1c5612e2c6d5d3cb5b36..f972c7a744a2b1fddea380f612f228963081649c 100644 (file)
@@ -164,9 +164,6 @@ TEST_SRCS     = write-ro-file.c read-vs-mmap.c read-vs-mmap2.c                 \
 
 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)
 
@@ -362,13 +359,13 @@ install:
 
 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
 
@@ -381,4 +378,54 @@ check: run-tests $(TEST_PROGRAMS)
 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
diff --git a/src/tests/OpenAFS/Auth.pm b/src/tests/OpenAFS/Auth.pm
new file mode 100644 (file)
index 0000000..2523433
--- /dev/null
@@ -0,0 +1,343 @@
+# 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;
index ca56d60a7b6a1df08cd7d4a2dc16229408d81ebb..06f7f4c55cdafd7df8f2a6337271f71050f03f75 100644 (file)
@@ -3,24 +3,40 @@
 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;
diff --git a/src/tests/OpenAFS/OS.pm b/src/tests/OpenAFS/OS.pm
new file mode 100644 (file)
index 0000000..d30afd0
--- /dev/null
@@ -0,0 +1,312 @@
+# 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;
index 0de0a54e1e403677ca306e6f2056c9db67418ff1..9e5333bf9fcc322ed11574e1345cdc3564a4e53a 100644 (file)
@@ -66,7 +66,7 @@ an exotic locally-compiled version of AFS.
 
 =cut
 
-$def_ConfDir = "$openafsdirpath->{'viceetcdir'}";
+$def_ConfDir = $OpenAFS::Dirpath::openafsdirpath->{'viceetcdir'};
 #$def_ConfDir = "/usr/vice/etc";
 
 
@@ -95,7 +95,7 @@ what you want...
 =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
index 91a24283c9d606168d741aba4ba7c9b0f4a39441..b2bf36212a054c29dc2210f71b117eeb43966c85 100755 (executable)
@@ -1,18 +1,17 @@
-#!/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
 
@@ -20,20 +19,37 @@ my $rl = new Term::ReadLine('afs-newcell');
 
 =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
@@ -41,254 +57,560 @@ the cell.
 
 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"; 
+      }
+    }
   }
+}
diff --git a/src/tests/afs-rmcell.pl b/src/tests/afs-rmcell.pl
new file mode 100644 (file)
index 0000000..7e0550f
--- /dev/null
@@ -0,0 +1,101 @@
+#!/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");
+
index 3477593c035fe5117d448dcbef482c47b836ada6..f0cc29af99b58c5faaec0170f15e0109a91212dd 100755 (executable)
@@ -11,7 +11,7 @@ my ($host, $ret);
 $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" ) {
index 37a348798aaa350d2a6a3db7bde52fcf82e573c6..f679b1243ac6d5f9693d843a45c1315ba0221b25 100755 (executable)
@@ -15,11 +15,11 @@ $host = `hostname`;
 &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);
 
 
index ddaa7c281c42f2a9a9c34a814f10fd18ef27ba4c..2bba178adf86ba1a4891f756e85d088f607ab031 100755 (executable)
@@ -13,7 +13,7 @@ $host = `hostname`;
 
 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";
index a5f5790a437085317003d709244c5bacdfd8e41a..3242583d779f673381818198910ebddd8e8130f8 100755 (executable)
@@ -1,11 +1,11 @@
 #!/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
 
 
index 0347dd8823ef66e63b9e3ba4cc05bf4b3116127f..19f0d1ee6550eb91b12a3eea80f99150c331dc0a 100755 (executable)
@@ -2,10 +2,10 @@
 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
 
 
index 6bc4873a954674053b9938dd3ca74340f2afb356..d67a93607233028f246a35b325b084ea61648b88 100644 (file)
@@ -1,11 +1,14 @@
 #!/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
 
index 8ff80398118b4f693467829203adc1a0858a3050..7aa9f241a414912e662cf9822b595d81b3b51a45 100755 (executable)
@@ -1,12 +1,34 @@
 #!/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);
index 749def19ea39ec09498485677ee6c039200aaa64..375c9e36b199064b114d3fd9b4503bcdef24972e 100644 (file)
@@ -1,7 +1,20 @@
 #!/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
@@ -9,13 +22,22 @@ SHELLVERBOSE=
 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                      \
@@ -55,8 +77,7 @@ ACL_TESTS="acladduser.pl              \
            aclcopy.pl"
 
 EXEC_TESTS="exec                       \
-           hello-world                 \
-           build-openafs"
+           hello-world"
 
 MMAP_TESTS="append-over-page           \
            mmap-shared-write           \
@@ -184,7 +205,6 @@ ALL_TESTS="creat1                   \
            aclcopy.pl                  \
            exec                        \
            hello-world                 \
-           build-openafs               \
            append-over-page            \
            mmap-shared-write           \
            mmap-vs-read2               \
@@ -285,7 +305,7 @@ do
   -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";;
@@ -304,7 +324,7 @@ do
   -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
@@ -386,7 +406,9 @@ for a in $RUNTESTS; do
   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})
@@ -412,8 +434,10 @@ date
 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
index eabc5a233dfef1ae6afe6b4d663c413bb5448f53..5fa152d6800a76710284fad3819b7b9e71db4a51 100755 (executable)
@@ -11,7 +11,7 @@ my ($host, $ret);
 $host = `hostname`;
 &AFS_Init();
 
-&AFS_vos_dump("service",0,"/usr/tmp/service.dump",);
+&AFS_vos_dump("service",0,"/tmp/service.dump",);
 
 exit(0);
 
index 9ab0d93dac1011ffd573c5efde2fde46ebc1a0fe..2827571cb1993316fc36cb0a17b38ab6f7fb1f88 100755 (executable)
@@ -11,7 +11,7 @@ my ($host, $ret);
 $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);
 
index 13bffc4dcd97f8dd11cba9904bb36ac901534e2f..9476de60b6fdc9f09c299a1829561f76860d8fc1 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -23,8 +23,10 @@ RCSID
 #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>
 
@@ -32,6 +34,7 @@ RCSID
 #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 */
@@ -64,7 +67,7 @@ extern int pioctl(char *, afs_int32, struct ViceIoctl *, afs_int32);
  * 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 *);
 
@@ -107,12 +110,12 @@ 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], '.');
@@ -130,7 +133,7 @@ char *afs_realm_of_cell(krb5_context context, struct afsconf_cell *cellconfig, i
             return 0; 
         if(!hrealms[0]) return 0;
         strcpy(krbrlm, hrealms[0]);
-
+       
         if (hrealms) krb5_free_host_realm(context, hrealms);
     }
     return krbrlm;
@@ -144,20 +147,13 @@ aklog_authenticate(char *userName, char *response, int *reenter, char **message)
     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",
@@ -188,7 +184,7 @@ aklog_authenticate(char *userName, char *response, int *reenter, char **message)
                
                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
@@ -199,43 +195,42 @@ aklog_authenticate(char *userName, char *response, int *reenter, char **message)
 #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;
 }
 
@@ -244,17 +239,17 @@ static int get_user_realm(krb5_context context, char *realm)
 {
     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;
 }
 
@@ -272,7 +267,7 @@ aklog_passwdexpired(char *userName, char **message)
 
 int
 aklog_passwdrestrictions(char *userName, char *newPasswd, char *oldPasswd,
-                      char **message)
+                        char **message)
 {
     return AUTH_SUCCESS;
 }
@@ -289,30 +284,30 @@ static int get_cellconfig(char *cell, struct afsconf_cell *cellconfig, char *loc
 {
     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);
 }
 
@@ -321,12 +316,12 @@ static int get_cellconfig(char *cell, struct afsconf_cell *cellconfig, char *loc
  * 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 */
@@ -341,27 +336,30 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
     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
@@ -375,6 +373,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
        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;
        }
        
@@ -430,7 +429,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
      *         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 || 
@@ -438,6 +437,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
        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;
        }
        
@@ -448,18 +448,18 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
            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;
     }
     
@@ -501,8 +501,9 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
        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)) {
@@ -511,10 +512,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
     }
     
     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
@@ -524,7 +522,31 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
      * 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.
@@ -533,13 +555,55 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
     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);
 }
 
@@ -547,7 +611,7 @@ int
 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.
@@ -557,7 +621,7 @@ aklog_initialize(struct secmethod_table *meths)
     meths->method_passwdexpired = aklog_passwdexpired;
     meths->method_passwdrestrictions = aklog_passwdrestrictions;
     meths->method_getpasswd = aklog_getpasswd;
-
+    
     return (0);
 }
 #endif /* AFS_AIX51_ENV */
index 018173863f2f78990a41366a3cbe06c7ddde58fc..28ae354f8bafcb3fad0a0bda81d179c86b9c84b8 100644 (file)
@@ -37,45 +37,45 @@ udebug: udebug.o libubik.a
        ${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
index a161aa899aaa33769dabc8aa5b408a88ae9e5929..78ce29bc97615dc9188dbc61d615f27ac1a8410c 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -26,13 +26,7 @@ RCSID
 #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>
@@ -83,6 +77,7 @@ static verifyInterfaceAddress();
  */
 
 /* procedure called from debug rpc call to get this module's state for debugging */
+void
 ubeacon_Debug(aparm)
      register struct ubik_debug *aparm;
 {
@@ -310,7 +305,8 @@ ubeacon_InitServerListCommon(ame, info, clones, aservers)
  * 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;
index 3be885ae1779c0a1f610f95733ff8aa2217e3744..f6e33cc7f9f8a4e0de7612468f40de104cfcadbe 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -21,13 +21,7 @@ RCSID
 #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>
 
index 306c94c6de4c21fbe39c39d527788f6b789ead37..7fc440f752b9d639c935d51304262633dc22ca7e 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -26,13 +26,7 @@ RCSID
 #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"
@@ -84,15 +78,8 @@ uphys_open(register struct ubik_dbase *adbase, afs_int32 afid)
     }
 
     /* 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 */
index 157adde0f0b1ccf24993450901cea71b4ba39cd7..84d5578ff5594266effa00d62d639e3e6756b315 100644 (file)
 #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>
@@ -24,13 +25,7 @@ RCSID
 #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>
@@ -417,8 +412,8 @@ urecovery_Initialize(register struct ubik_dbase *adbase)
  * 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;
@@ -431,9 +426,14 @@ urecovery_Interact(void)
     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;
@@ -536,11 +536,7 @@ urecovery_Interact(void)
            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 */
@@ -564,40 +560,71 @@ urecovery_Interact(void)
                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);
@@ -608,27 +635,51 @@ urecovery_Interact(void)
                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))
@@ -643,11 +694,7 @@ urecovery_Interact(void)
         * 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;
@@ -656,11 +703,7 @@ urecovery_Interact(void)
                (*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
@@ -670,11 +713,7 @@ urecovery_Interact(void)
            /* 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
@@ -690,20 +729,12 @@ urecovery_Interact(void)
                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 */
                }
            }
 
@@ -770,11 +801,7 @@ urecovery_Interact(void)
                    ts->currentDB = 1;
                }
            }
-#if defined(UBIK_PAUSE)
            DBRELE(ubik_dbase);
-#else
-           ReleaseWriteLock(&ubik_dbase->versionLock);
-#endif /* UBIK_PAUSE */
            if (dbok)
                urecovery_state |= UBIK_RECSENTDB;
        }
index 71b97fdee8dc32555f0f237eede76499a6db7ae8..34ee230b7a6d11c25e39b58827771a431737c725 100644 (file)
 #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
@@ -494,13 +490,18 @@ SDISK_SendFile(rxcall, file, length, avers)
 {
     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 */
 
@@ -538,41 +539,103 @@ SDISK_SendFile(rxcall, file, length, avers)
               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);
index 933408d0a3803c86d8ac36baf991b21182e259c3..f881fdd8479e9690c75fe837478d18e22d89d66e 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -23,13 +23,7 @@ RCSID
 #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>
@@ -199,7 +193,6 @@ ubik_ServerInitCommon(afs_int32 myHost, short myPort,
 
     struct rx_service *tservice;
     extern int VOTE_ExecuteRequest(), DISK_ExecuteRequest();
-    extern void rx_ServerProc();
     extern int rx_stackSize;
 
     initialize_U_error_table();
index 99a65abc5688de95d1dd5720a24fd6161545639c..a6febe1dd0650e5dfd21c67d6f28a87aeea52a4b 100644 (file)
@@ -313,11 +313,11 @@ extern int urecovery_AllBetter(register struct ubik_dbase *adbase,
 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();
index ca37f60f98ae089ad5c14add16f6760facf83452..29101530ef8d5b38179ff211179555baf5d9ec85 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,13 +24,7 @@ RCSID
 #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>
 
index ecc7b5f4ba323cc61dbfac3c5c7959deb402fd73..77d20498b1206cee2bbdbffbd48652ac73c05f76 100644 (file)
 #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
@@ -90,7 +84,7 @@ PortName(char *aname)
 }
 
 static int
-CommandProc(struct cmd_syndesc *as, char *arock)
+CommandProc(struct cmd_syndesc *as, void *arock)
 {
     char *hostName, *portName, *times;
     afs_int32 hostAddr;
@@ -355,7 +349,7 @@ main(int argc, char **argv)
     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");
index a03dcbb87123ff83380e0e56ece3e17f83d942f7..3d2125601205dbb4924f50e95d8c7c13ea8b3be1 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -28,13 +28,7 @@ RCSID
 #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>
index 9a53abe76f4d46cab5e6c34c025c442390c96cff..c59ed590a4c5eff6bd9989ce4752d3f7d45ef323 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -24,13 +24,7 @@ RCSID
 #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>
index 1c6606a1508fe1bb49ceb1dae9723603cebbad36..18f77d229e964fe76212e1236070db7f48da2cfd 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -25,13 +25,7 @@ RCSID
 #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>
index 241d8f9cb1a1da12ee6aa7de641706a37ff01353..492a2befaf4b70f0ae1a46dd6072a25d23fdfb63 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -22,13 +22,7 @@ RCSID
 #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>
index 1ad24aabb9b11ca5b78c2af6c70b53a71a6c1ba9..5842c1d3a8abedb2e75c4b13fadd240e71a1f932 100644 (file)
@@ -33,16 +33,16 @@ utils.o: utils.c update.h global.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
index 13a277791c3d5bfeb4abc3e01649eb44d541500b..9355a7001ab6f2afe574367ed23dade536ea681f 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -36,13 +36,7 @@ RCSID
 #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
index 4e32fabd58c17810a3dcb6712d74f9631cff9386..52a54dc5bfe8ed21b1e857f84d838b7925ebd92a 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -31,13 +31,7 @@ RCSID
 #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
index bdf2918534f4d96d11069d1dc839b2047ce3b2a9..187748a8de4d48b08a8b9f19fc92e637f37097fe 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -22,13 +22,7 @@ RCSID
 #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
index 44e8f2c260535dbb4ea334ab21cd5760f2834756..ae8afb6d3165c524ac53671d7e19f2b6704dee96 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -31,13 +31,7 @@ RCSID
 #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>
index 697a14d5fa5edca25fa2ab4e5866e4cf793f38ab..2c3fede932a7cf8ef32ad3aef928dba173458c0c 100644 (file)
 #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;
@@ -134,4 +127,5 @@ yyerror(s)
 char *s;
 {
 fprintf(stderr,"%s. ",s);
+return 0;
 }
index 25a1caa7181fc0c0edae3053c1083c484fe63f54..0270eec0e0a3f32512554fbe9a78f61d0347d704 100644 (file)
 #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"
@@ -30,6 +24,7 @@ int line=1;
 #else
 #define dprint(x)
 #endif
+void Replace(char *in, char *out);
 %}
 
 /* definitions */
@@ -76,6 +71,7 @@ EOL   [\n]
  * and replaces the second with a null.
  */
 
+void
 Replace(in, out)
     char *in, *out;
 
index a1a0f821f78df34dc1d92baf83284f109d5ee718..97bb9a0767c31d6dcb77d0d6ac29bc8e70ef91e8 100644 (file)
 #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 */
@@ -129,10 +123,8 @@ static int DoAdd();
  *     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 */
@@ -376,10 +368,7 @@ DoDelete()
  *------------------------------------------------------------------------*/
 
 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;
@@ -473,10 +462,7 @@ DelUser(a_as, a_rock)
  *------------------------------------------------------------------------*/
 
 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");
@@ -508,10 +494,7 @@ PurgeVolumes(a_as, a_rock)
  *------------------------------------------------------------------------*/
 
 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");
@@ -1323,10 +1306,7 @@ DoBulkExecLine(a_buf, a_tp)
  *------------------------------------------------------------------------*/
 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
@@ -1535,10 +1515,7 @@ HandleBulk(a_as, a_rock)
  *------------------------------------------------------------------------*/
 
 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;
@@ -1849,7 +1826,7 @@ main(argc, argv)
 
     /* ----------------------------- 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");
@@ -1884,7 +1861,7 @@ main(argc, argv)
 
     /* ---------------------------- 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,
@@ -1909,7 +1886,7 @@ main(argc, argv)
 
     /* ---------------------------- 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");
@@ -1943,7 +1920,7 @@ main(argc, argv)
 #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");
@@ -1966,7 +1943,7 @@ main(argc, argv)
 #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");
@@ -2018,4 +1995,5 @@ main(argc, argv)
     if (doUnlog) {
        code = uss_fs_UnlogToken(uss_Cell);
     }
+    return 0;
 }                              /*Main routine */
index 4a9f887da0a28f69a731a5abf82bb4efb0a993e8..a55fd6ac8f4b8452a7c2d29cc4e2a26b556e21ff 100644 (file)
@@ -19,7 +19,7 @@
 #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"
@@ -30,13 +30,7 @@ RCSID
 #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
index e2a9b25aae8230cfe6490910ad881980d088f411..297f459bf0969ac00a6d3adac08d371360e2e2a1 100644 (file)
 #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
 
 
 /*
index 3b2f4ec40191dd8ae3b81b5f29e15dc9a15334e3..ecfc630f74216b57d104897d2f0718e10dd4bab3 100644 (file)
 #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 ---------------------
index 6e2277db279c252fe1a53b5f023f00b3c9d7c97a..4740c6872491f2d0fa42cb4fb038edbb5b65f0e6 100644 (file)
@@ -19,7 +19,7 @@
 #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>
@@ -30,13 +30,7 @@ RCSID
 #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"
@@ -495,7 +489,7 @@ uss_fs_MkMountPoint(a_volname, a_cellname, a_rw, a_mountpoint)
 #endif /* USS_FS_DB */
        return (-1);
     }
-
+    return 0;
 }                              /*uss_fs_MkMountPoint */
 
 
index ac53ce73fc1ac0a7270086354fecd98ee8e2b16b..dbd2673367799cf00098a72c43e2faaa1c4b6210 100644 (file)
 #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*/
index c0b8c8601563e6d73c18cd7cefef94fb4ce830aa..2dadca9b79d5b87a9af465f23a1ccee000f138ec 100644 (file)
@@ -19,7 +19,7 @@
 #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 */
@@ -33,13 +33,7 @@ RCSID
 #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
index 9b5a47d538224acdbcac1c9204e1110863e6dfd2..85a14fc24d74d921b3c13d7b4ec16255ce83c088 100644 (file)
@@ -19,7 +19,7 @@
 #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 */
@@ -30,13 +30,7 @@ RCSID
 #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>
index 3d074152abc6946d5b0341d00e26f9426975cfe6..3a036134d93890406f23f41ee05d54e109d4778f 100644 (file)
@@ -40,7 +40,7 @@ extern int serverLogSyslogFacility;
 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)
index fbfc35f4068b6d904918fdf8489dafa360406f41..ab597783f021b7c02b26ab2ec934dea690bb34da 100644 (file)
@@ -159,7 +159,7 @@ extern void ResetDebug_Signal(int signo);
 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 */
 
index 11d44cff44c5f6d420b30877138efcacd06d6e47..56ba02057ce808169d1bcb7b72974159d454c7db 100644 (file)
 #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"
@@ -44,7 +38,7 @@ AssertionFailed(char *file, int line)
     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);
index 52bf37fc1fc4ae2a23a6dbbd3e5c36d2df0405d8..c092dda458c9b2a019ed224628cb78908da7927e 100644 (file)
 #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>
index 492202f8a72e06434a8cb3864343b9e8da228932..d28437b99e521b6e705a5a3552b17a40f0dd2b35 100644 (file)
 #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>
@@ -30,13 +31,6 @@ RCSID
 #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>
index 12bb7770b127acb6407d2b5987807488cece8576..4f69ed5ea2c7f5f280ee4124d43789219b908e4d 100644 (file)
@@ -7,9 +7,11 @@
 #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"
 
 /*
index 42983aa2edca0c88f045f0d042f9b76f27a74ecd..213be0ebddc4af06fbf7b673f22d163b32c30f6f 100644 (file)
@@ -15,7 +15,7 @@
 #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"
@@ -34,13 +34,7 @@ RCSID
 #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 */
index 42bc6d271fd602e5f3469e90eafc7beba9c7e3b4..4995dced941c113858d263341917157dbcd873de 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -19,13 +19,7 @@ RCSID
 #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"
 
 
index fe62da831befbdad36e9626811914f98e7f8b89a..5435f7ad72f39d525e293ed29ddf5d4112c633c1 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -20,13 +20,7 @@ RCSID
 #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"
 
index 2ee6cd1b1ff55668f85e7f91124ae5535d1ddb5e..38658763f4272dd5259ed70dc43b4c74534ec447 100644 (file)
 #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"
@@ -57,6 +51,9 @@ RCSID
 #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 
index bc7c110208b9d01591fda8b6a9e1b5a85fd64790..030c076d8c7989007278e47ba2673e4a5644c68d 100644 (file)
@@ -20,7 +20,7 @@
 #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
@@ -37,16 +37,11 @@ RCSID
 #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>
@@ -75,7 +70,7 @@ dummyThreadNum(void)
 {
     return -1;
 }
-static int (*threadNumProgram) () = dummyThreadNum;
+static int (*threadNumProgram) (void) = dummyThreadNum;
 
 static int serverLogFD = -1;
 
@@ -93,7 +88,7 @@ int printLocks = 0;
 static char ourName[MAXPATHLEN];
 
 void
-SetLogThreadNumProgram(int (*func) () )
+SetLogThreadNumProgram(int (*func) (void) )
 {
     threadNumProgram = func;
 }
@@ -171,9 +166,10 @@ FSLog(const char *format, ...)
     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 {
@@ -187,8 +183,6 @@ DebugOn(int loglevel)
 void
 SetDebug_Signal(int signo)
 {
-/*    extern int IOMGR_SoftSig();*/
-
     if (LogLevel > 0) {
        LogLevel *= 5;
 
@@ -208,9 +202,9 @@ SetDebug_Signal(int signo)
     }
     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
@@ -226,9 +220,9 @@ ResetDebug_Signal(int signo)
     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,
@@ -339,9 +333,6 @@ int
 ReOpenLog(const char *fileName)
 {
     int isfifo = 0;
-#if !defined(AFS_PTHREAD_ENV)
-    int tempfd;
-#endif
 #if !defined(AFS_NT40_ENV)
     struct stat statbuf;
 #endif
index d9f5cfbb35a17d757b250b5165078edb2fb5a3b1..35753c9dedf9610aec8ee79f178a096b0f7e9ea8 100644 (file)
@@ -4,28 +4,25 @@
 #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
 
@@ -527,6 +524,16 @@ vsnprintf(char *p, unsigned int avail, char *fmt, va_list ap)
 #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
index ac7ae1cc66d76115d8691a11d7c125846129fc00..98c04cf4928a9a90a40790ed50471f92a844cd58 100644 (file)
@@ -15,6 +15,7 @@
 #define _POSIX_PTHREAD_SEMANTICS
 #include <afs/param.h>
 #include <assert.h>
+#include <stdlib.h>
 #include <stdio.h>
 #ifndef  AFS_NT40_ENV
 #include <signal.h>
index 0d39572de5112f73239927b182aeef41d4ca557e..e11f5917ffe071eb4881a03df182b28a30858a1f 100644 (file)
 #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
index d4e70f697491088a905f33cd610d6b020bb0dd24..41cfa298c76187c822c04743e2d700bd5ce93cf8 100644 (file)
 #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;
index 0c92de096d9171fcb0e5af4f1d843bd0daeaaecb..799f2b909d08174f156b917ce667fd42db96820f 100644 (file)
@@ -50,7 +50,7 @@
 #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"
@@ -60,6 +60,7 @@ RCSID
 #else /* KERNEL */
 #include <stdio.h>
 #include <errno.h>
+#include <string.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
 #include <process.h>
@@ -73,13 +74,6 @@ RCSID
 #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
index 9bad3ed70f5f46d2053455c59678fe0ba1ddaa00..d21ee474165f57c2fd55aced97565258e1840502 100644 (file)
 #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
index edb9133fc435e625ab2a2220fd986cbc9712031a..c07689a0ff34f6ac5c4aa8d74dabcd06ef04d9fc 100644 (file)
@@ -52,19 +52,19 @@ cacheout: cacheout.o
 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} $? $@
 
 
 
@@ -173,7 +173,7 @@ kdump: kdump.o
        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
 
@@ -219,7 +219,7 @@ kdump.o: kdump.c ${INCLS} AFS_component_version_number.c
                                esac || exit $$?; \
                        done \
                        ;; \
-               *nbsd*) \
+               *bsd*) \
                        touch kdump.o ;; \
                *) \
                        ${CC} ${KERN_DBG} ${KERN_OPTMZ} -I${TOP_SRCDIR} -I${TOP_INCDIR}/afs \
@@ -276,29 +276,29 @@ ${DEST}/etc/kdump: kdump-build
                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
 
 
@@ -328,22 +328,22 @@ test:
 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; \
@@ -354,24 +354,24 @@ ${DESTDIR}${sbindir}/kdump: kdump-build
                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: \
index 98aee9c2d4058444c23a9c23a0e04b73ec3af5cd..f72948c794dd921eea3743ce4570f7a663a5952d 100644 (file)
@@ -13,7 +13,7 @@
 #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>
@@ -63,9 +63,8 @@ struct rx_securityClass *junk;
 
 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;
@@ -212,10 +211,10 @@ ListServers()
     return code;
 }
 
-afs_int32
-GetServerList()
+static int
+GetServerList(struct cmd_syndesc *as, void *arock)
 {
-    afs_int32 code;
+    int code;
     int i;
 
     code = ListServers();
@@ -240,10 +239,8 @@ User enters lists of:
 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];
@@ -308,13 +305,13 @@ main(argc, argv)
     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");
 
index 1e3f806bb2f3ab20c4f59fc26226c1fc134c7061..ccaf58dd59ff4cc0601afb1fc6f9eba31648cc29 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -26,13 +26,7 @@ RCSID
 #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
@@ -42,9 +36,12 @@ RCSID
 #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)
 {
@@ -85,6 +82,7 @@ PrintCacheConfig(struct rx_connection *aconn)
     } else {
        printf("cmdebug: unsupported server version %d\n", srv_ver);
     }
+    return 0;
 }
 
 #ifndef CAPABILITY_BITS
@@ -309,8 +307,13 @@ PrintCacheEntries32(struct rx_connection *aconn, int aint32)
        }
        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 */
@@ -411,8 +414,13 @@ PrintCacheEntries64(struct rx_connection *aconn, int aint32)
        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 */
@@ -466,8 +474,60 @@ PrintCacheEntries(struct rx_connection *aconn, int aint32)
        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;
@@ -495,16 +555,27 @@ CommandProc(struct cmd_syndesc *as, char *arock)
               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;
@@ -557,7 +628,7 @@ main(int argc, char **argv)
 
     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");
@@ -565,10 +636,16 @@ main(int argc, char **argv)
                  "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);
index a5c5dd89aefc2853acdde85e58408a8e357d3584..ceebc9883c54709ad1152cd0532ff002c168d2b6 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -25,17 +25,12 @@ RCSID
 #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
@@ -75,14 +70,13 @@ extern char *hostutil_GetNameByINet();
 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();
@@ -286,6 +280,7 @@ PRights(afs_int32 arights, int dfs)
        if (arights & DFS_USR7)
            printf("H");
     }
+    return 0;
 }
 
 /* this function returns TRUE (1) if the file is in AFS, otherwise false (0) */
@@ -731,7 +726,7 @@ AclToString(struct Acl *acl)
 }
 
 static int
-SetACLCmd(struct cmd_syndesc *as, char *arock)
+SetACLCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -865,7 +860,7 @@ SetACLCmd(struct cmd_syndesc *as, char *arock)
 
 
 static int
-CopyACLCmd(struct cmd_syndesc *as, char *arock)
+CopyACLCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1045,7 +1040,7 @@ CleanAcl(struct Acl *aa, char *fname)
 
 /* 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;
@@ -1132,7 +1127,7 @@ CleanACLCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-ListACLCmd(struct cmd_syndesc *as, char *arock)
+ListACLCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct Acl *ta;
@@ -1196,7 +1191,7 @@ ListACLCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-GetCallerAccess(struct cmd_syndesc *as, char *arock)
+GetCallerAccess(struct cmd_syndesc *as, void *arock)
 {
     struct cmd_item *ti;
     int error = 0;
@@ -1223,7 +1218,7 @@ GetCallerAccess(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-FlushVolumeCmd(struct cmd_syndesc *as, char *arock)
+FlushVolumeCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1251,7 +1246,7 @@ FlushVolumeCmd(struct cmd_syndesc *as, char *arock)
  * 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;
@@ -1282,7 +1277,7 @@ UuidCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-FlushCmd(struct cmd_syndesc *as, char *arock)
+FlushCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1309,17 +1304,17 @@ FlushCmd(struct cmd_syndesc *as, char *arock)
 
 /* 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;
@@ -1383,7 +1378,7 @@ struct VenusFid {
 };
 
 static int
-ExamineCmd(struct cmd_syndesc *as, char *arock)
+ExamineCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1424,7 +1419,7 @@ ExamineCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-ListQuotaCmd(struct cmd_syndesc *as, char *arock)
+ListQuotaCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1455,7 +1450,7 @@ ListQuotaCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-WhereIsCmd(struct cmd_syndesc *as, char *arock)
+WhereIsCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1494,7 +1489,7 @@ WhereIsCmd(struct cmd_syndesc *as, char *arock)
 
 
 static int
-DiskFreeCmd(struct cmd_syndesc *as, char *arock)
+DiskFreeCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1525,7 +1520,7 @@ DiskFreeCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-QuotaCmd(struct cmd_syndesc *as, char *arock)
+QuotaCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1558,7 +1553,7 @@ QuotaCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-ListMountCmd(struct cmd_syndesc *as, char *arock)
+ListMountCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1678,8 +1673,8 @@ ListMountCmd(struct cmd_syndesc *as, char *arock)
     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;
@@ -1787,7 +1782,7 @@ defect #3069
  *      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;
@@ -1839,7 +1834,7 @@ RemoveMountCmd(struct cmd_syndesc *as, char *arock)
 */
 
 static int
-CheckServersCmd(struct cmd_syndesc *as, char *arock)
+CheckServersCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -1938,7 +1933,7 @@ CheckServersCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-MessagesCmd(struct cmd_syndesc *as, char *arock)
+MessagesCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code = 0;
     struct ViceIoctl blob;
@@ -1984,7 +1979,7 @@ MessagesCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-CheckVolumesCmd(struct cmd_syndesc *as, char *arock)
+CheckVolumesCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2002,7 +1997,7 @@ CheckVolumesCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-SetCacheSizeCmd(struct cmd_syndesc *as, char *arock)
+SetCacheSizeCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2041,7 +2036,7 @@ SetCacheSizeCmd(struct cmd_syndesc *as, char *arock)
 
 #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;
@@ -2066,7 +2061,7 @@ GetCacheParmsCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-ListCellsCmd(struct cmd_syndesc *as, char *arock)
+ListCellsCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     afs_int32 i, j;
@@ -2117,7 +2112,7 @@ ListCellsCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-ListAliasesCmd(struct cmd_syndesc *as, char *arock)
+ListAliasesCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code, i;
     char *tp, *aliasName, *realName;
@@ -2147,7 +2142,7 @@ ListAliasesCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-CallBackRxConnCmd(struct cmd_syndesc *as, char *arock)
+CallBackRxConnCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2186,7 +2181,7 @@ CallBackRxConnCmd(struct cmd_syndesc *as, char *arock)
 }
 
 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;
@@ -2298,7 +2293,7 @@ NewCellCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-NewAliasCmd(struct cmd_syndesc *as, char *arock)
+NewAliasCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2333,7 +2328,7 @@ NewAliasCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-WhichCellCmd(struct cmd_syndesc *as, char *arock)
+WhichCellCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct cmd_item *ti;
@@ -2358,7 +2353,7 @@ WhichCellCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-WSCellCmd(struct cmd_syndesc *as, char *arock)
+WSCellCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2388,7 +2383,7 @@ static PrimaryCellCmd(as)
 */
 
 static int
-MonitorCmd(struct cmd_syndesc *as, char *arock)
+MonitorCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2449,7 +2444,7 @@ MonitorCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-SysNameCmd(struct cmd_syndesc *as, char *arock)
+SysNameCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2503,7 +2498,7 @@ SysNameCmd(struct cmd_syndesc *as, char *arock)
 
 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;
@@ -2602,7 +2597,7 @@ ExportAfsCmd(struct cmd_syndesc *as, char *arock)
 
 
 static int
-GetCellCmd(struct cmd_syndesc *as, char *arock)
+GetCellCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2653,7 +2648,7 @@ GetCellCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-SetCellCmd(struct cmd_syndesc *as, char *arock)
+SetCellCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -2837,7 +2832,7 @@ addServer(char *name, afs_int32 rank)
 
 
 static int
-SetPrefCmd(struct cmd_syndesc *as, char *arock)
+SetPrefCmd(struct cmd_syndesc *as, void *arock)
 {
     FILE *infd;
     afs_int32 code;
@@ -2943,7 +2938,7 @@ SetPrefCmd(struct cmd_syndesc *as, char *arock)
 
 
 static int
-GetPrefCmd(struct cmd_syndesc *as, char *arock)
+GetPrefCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct cmd_item *ti;
@@ -3013,7 +3008,7 @@ GetPrefCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-StoreBehindCmd(struct cmd_syndesc *as, char *arock)
+StoreBehindCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code = 0;
     struct ViceIoctl blob;
@@ -3113,8 +3108,8 @@ StoreBehindCmd(struct cmd_syndesc *as, char *arock)
 }
 
 
-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;
@@ -3140,8 +3135,8 @@ SetCryptCmd(struct cmd_syndesc *as, char *arock)
 }
 
 
-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;
@@ -3192,17 +3187,17 @@ main(int argc, char **argv)
 #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");
@@ -3213,7 +3208,7 @@ main(int argc, char **argv)
     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");
@@ -3222,7 +3217,7 @@ main(int argc, char **argv)
 /*    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");
@@ -3235,7 +3230,7 @@ main(int argc, char **argv)
                "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;
@@ -3243,16 +3238,16 @@ main(int argc, char **argv)
     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)");
@@ -3266,13 +3261,13 @@ main(int argc, char **argv)
 
     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");
@@ -3285,32 +3280,32 @@ main(int argc, char **argv)
                "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");
@@ -3326,10 +3321,10 @@ defect 3069
 */
 
 
-    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");
@@ -3338,12 +3333,12 @@ defect 3069
     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)");
@@ -3370,13 +3365,13 @@ defect 3069
 #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");
@@ -3394,42 +3389,42 @@ defect 3069
                "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,
@@ -3442,7 +3437,7 @@ defect 3069
                "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");
@@ -3534,7 +3529,7 @@ Die(int errnum, char *filename)
 
 /* 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;
@@ -3580,7 +3575,7 @@ GetClientAddrsCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-SetClientAddrsCmd(struct cmd_syndesc *as, char *arock)
+SetClientAddrsCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code, addr;
     struct cmd_item *ti;
@@ -3654,7 +3649,7 @@ SetClientAddrsCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-FlushMountCmd(struct cmd_syndesc *as, char *arock)
+FlushMountCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     struct ViceIoctl blob;
@@ -3770,7 +3765,7 @@ FlushMountCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-RxStatProcCmd(struct cmd_syndesc *as, char *arock)
+RxStatProcCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     afs_int32 flags = 0;
@@ -3805,7 +3800,7 @@ RxStatProcCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-RxStatPeerCmd(struct cmd_syndesc *as, char *arock)
+RxStatPeerCmd(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 code;
     afs_int32 flags = 0;
@@ -3840,7 +3835,7 @@ RxStatPeerCmd(struct cmd_syndesc *as, char *arock)
 }
 
 static int
-GetFidCmd(struct cmd_syndesc *as, char *arock)
+GetFidCmd(struct cmd_syndesc *as, void *arock)
 {
     struct ViceIoctl blob;
     struct cmd_item *ti;
index abdb7f33711173dbb0d59bd08c2fbd26d7a01c8e..200b6fefeba425db57c0725a3fb552f83fdaaa02 100644 (file)
@@ -14,7 +14,7 @@
 #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>
@@ -27,13 +27,7 @@ RCSID
 #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>
@@ -87,6 +81,7 @@ struct logInfo {
 } *allInfo = 0;
 
 char dumpFileName[256] = "";
+void
 RegisterIclDumpFileName(name)
      char *name;
 {
@@ -258,7 +253,7 @@ CheckTypes(bufferp, typesp, typeCount)
 #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;
@@ -2709,10 +2704,8 @@ GetBulkLogInfo()
 }
 
 
-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;
@@ -2788,7 +2781,7 @@ SetUpDump()
     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");
@@ -2798,10 +2791,8 @@ SetUpDump()
                      "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;
@@ -2864,17 +2855,15 @@ SetUpShowLog()
     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;
@@ -2922,15 +2911,13 @@ SetUpShowSet()
     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;
@@ -2981,7 +2968,7 @@ SetUpClear()
     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");
@@ -2989,10 +2976,8 @@ SetUpClear()
                      "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;
@@ -3070,7 +3055,7 @@ SetUpSet()
     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, "");
@@ -3078,10 +3063,8 @@ SetUpSet()
     (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;
@@ -3129,7 +3112,7 @@ SetUpResize()
     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");
index 8dcaf28004456f59c2c5cbb455810eb4dde988da..6deaa129545e32b16293e622f681d7281e777ad9 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -556,9 +556,6 @@ void print_cmstats();
 
 
 
-#ifndef AFS_KDUMP_LIB
-extern struct cmd_syndesc *cmd_CreateSyntax();
-#endif
 int opencore();
 
 #if    defined(AFS_HPUX_ENV) && defined(__LP64__)
@@ -828,10 +825,8 @@ symsrch(s)
 
 
 #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;
 
@@ -957,7 +952,7 @@ main(argc, argv)
     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)");
index fe565e7cec5fec53ed49b08d641a59a8825a4a76..86b6e8492cb17816644b3f570226b121a121e63a 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -22,16 +22,11 @@ RCSID
 #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
index 75fbc6bccc205bdb717005849b15948815df122e..babaa2a9cb2607153bb29e2f8e34c92395480218 100644 (file)
 #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)
@@ -40,41 +41,41 @@ 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? */
@@ -87,7 +88,7 @@ main(argc, argv)
        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;
@@ -95,7 +96,7 @@ main(argc, argv)
        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;
@@ -103,7 +104,7 @@ main(argc, argv)
        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;
@@ -111,61 +112,61 @@ main(argc, argv)
        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) {
@@ -174,40 +175,41 @@ main(argc, argv)
     }
     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;
 }
index 8b1d0ef74d14d8fddec958797e2784c61e43a00b..c21d0d06aaa1c475786811bef7e7dbea5eccb1d2 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -34,7 +34,7 @@ RCSID
 
 
 int
-GetInitParamsCmd(struct cmd_syndesc *as)
+GetInitParamsCmd(struct cmd_syndesc *as, void *arock)
 {
     struct cm_initparams cm_initParams;
     struct ViceIoctl blob;
index 5e2ce53515f29e72ace3da4456ea7ea88f03db53..c38a68bf1e4671b23ab578e8b04ef1aa1b989b85 100644 (file)
@@ -9,9 +9,10 @@
 
 #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)
 {
index e44068d0d01e3ac76bdbb06f532c80e3e21c5edc..28524e4f7db6a04bef6b046449ac55241c314299 100644 (file)
 #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>
index 62a7169f36362d16ff92f1272b2a39a47ef4766a..d7e77f293489ee5f6537e7b774a5584d27d2bd40 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -32,11 +32,11 @@ RCSID
 #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 */
@@ -47,13 +47,11 @@ static char tspace[1024];
 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;
@@ -154,7 +152,7 @@ main(argc, argv)
     /* 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");
index df744f1e07eda8c81de03adb710bab2aa17e2113..223d712c0eecc046d01a660cd1641eea18d9d345 100644 (file)
 #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
@@ -24,6 +21,7 @@ RCSID
 #undef _NONSTD_TYPES
 #endif
 #include <stdio.h>
+#include <unistd.h>
 #include <afs/afs_args.h>
 #include <sys/param.h>
 #ifdef AFS_SUN5_ENV
@@ -45,13 +43,7 @@ RCSID
 #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>
 
@@ -64,16 +56,16 @@ extern sys_nerr;
 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
@@ -86,6 +78,12 @@ struct OldAcl {
     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                                                         */
@@ -94,10 +92,8 @@ struct OldAcl {
 
 #include "AFS_component_version_number.c"
 
-main(argc, argv)
-     int argc;
-     char *argv[];
-
+int
+main(int argc, char *argv[])
 {
 #ifdef AFS_AIX32_ENV
     /*
@@ -120,16 +116,15 @@ main(argc, argv)
 
     /* 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++;
@@ -140,39 +135,39 @@ ScanArgs(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);
     }
 
@@ -186,13 +181,11 @@ ScanArgs(argc, argv)
 /*
  * 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;
@@ -211,7 +204,7 @@ MakeParent(file, owner)
 
     if (stat(parent, &s) < 0) {
        if (!MakeParent(parent, owner))
-           return (false);
+           return (0);
 
        if (verbose) {
            printf("Creating directory %s\n", parent);
@@ -221,7 +214,7 @@ MakeParent(file, owner)
        mkdir(parent, 0777);
        chown(parent, owner, -1);
     }
-    return (true);
+    return (1);
 }                              /*MakeParent */
 
 
@@ -230,12 +223,8 @@ MakeParent(file, owner)
  *     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;
@@ -615,7 +604,7 @@ Copy(file1, file2, recursive, level)
            rcode = 1;
        }
 
-       if (setacl == true) {
+       if (setacl == 1) {
            if (verbose) {
                printf("  Set acls for %s\n", file2);
                fflush(stdout);
@@ -628,6 +617,11 @@ Copy(file1, file2, recursive, level)
 
            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;
@@ -643,7 +637,11 @@ Copy(file1, file2, recursive, level)
                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;
                    }
@@ -656,10 +654,19 @@ Copy(file1, file2, recursive, level)
            } /*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;
@@ -670,7 +677,11 @@ Copy(file1, file2, recursive, level)
            /*
             * 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;
@@ -678,7 +689,11 @@ Copy(file1, file2, recursive, level)
                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;
@@ -686,7 +701,7 @@ Copy(file1, file2, recursive, level)
                }
            }
 
-           if (setacl == false) {
+           if (setacl == 0) {
                printf("Not setting acls\n");
            }
        }
@@ -705,10 +720,8 @@ Copy(file1, file2, recursive, level)
 }                              /*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 */
index f522b9675e65232fd5ee038c572f12a19dce460f..cd8abd55ec934c1dc63241e8d4dd4d90c418f6dd 100644 (file)
@@ -14,7 +14,7 @@
 #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>
@@ -50,8 +50,7 @@ void PioctlError();
 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;
@@ -105,7 +104,7 @@ main(argc, argv)
 
     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,
index 770f3b82f482e95afffb215a3ce476e01347b0dc..3d5c36c238331f6ff43b52192c6e83db0b410013 100644 (file)
 #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>
 
index 5b43494965fed452643133201cfb7f88837a1f8f..775d3dd1ee1c9ae23c4d1f968871946fdc482585 100644 (file)
 #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)
index 429ed4aecd4554c8fc68e903fcf5032e1a2358b8..1ec6fe2e7e2de1ddd8a3b3537a20b1f640be050f 100644 (file)
@@ -19,7 +19,7 @@
 #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 */
@@ -75,6 +75,7 @@ RCSID
 #endif /* AFS_OSF_ENV */
 
 #include <stdio.h>
+#include <string.h>
 #include <ctype.h>
 #include "fsck.h"
 
index 31dce63467b0c228a8626e39bc54a0cc1d567bc7..15c66ca6b722bc5f7093cd3cf79ad0eb6965ef38 100644 (file)
@@ -29,7 +29,7 @@
 #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>
@@ -46,14 +46,7 @@ RCSID
 #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>
@@ -347,7 +340,8 @@ CallPreamble(register struct rx_call *acall, int activecall,
            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);
@@ -1326,6 +1320,7 @@ DeleteTarget(Vnode * parentptr, Volume * volptr, Vnode ** targetptr,
        if (IsEmpty(&childdir) != 0)
            return (EEXIST);
        DZap(&childdir);
+       FidZap(&childdir);
        (*targetptr)->delete = 1;
     } else if ((--(*targetptr)->disk.linkCount) == 0)
        (*targetptr)->delete = 1;
index ecc017f58976eaad6c4905e913e9a3f9fe188d34..811c1e2241eb7730f623da07e1702fd2177bf466 100644 (file)
 #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>
@@ -95,13 +96,6 @@ RCSID
 #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>
@@ -310,9 +304,6 @@ static int ClearHostCallbacks_r(struct host *hp, int locked);
 #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))
@@ -646,6 +637,8 @@ AddCallBack1_r(struct host *host, AFSFid * fid, afs_uint32 * thead, int type,
     struct CallBack *newcb = 0;
     int safety;
 
+    cbstuff.AddCallBacks++;
+
     host->Console |= 2;
 
     /* allocate these guys first, since we can't call the allocator with
@@ -753,6 +746,14 @@ AddCallBack1_r(struct host *host, AFSFid * fid, afs_uint32 * thead, int type,
     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.
@@ -782,6 +783,9 @@ MultiBreakCallBack_r(struct cbstruct cba[], int ncbas,
 
     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;
@@ -969,9 +973,9 @@ DeleteCallBack(struct host *host, AFSFid * fid)
     register afs_uint32 *pcb;
     char hoststr[16];
 
+    H_LOCK;
     cbstuff.DeleteCallBacks++;
 
-    H_LOCK;
     h_Lock_r(host);
     fe = FindFE(fid);
     if (!fe) {
@@ -1438,6 +1442,7 @@ BreakLaterCallBacks(void)
                         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;
@@ -1798,11 +1803,14 @@ PrintCallBackStats(void)
 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",
@@ -1836,11 +1844,15 @@ DumpCallBackState(void)
 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);
@@ -1994,6 +2006,7 @@ main(int argc, char **argv)
            printf("%d:%12x%12x%12x%12x\n", i, p[0], p[1], p[2], p[3]);
        }
     }
+    return 0;
 }
 
 int
@@ -2005,6 +2018,7 @@ PrintCB(register struct CallBack *cb, afs_uint32 now)
     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
index cb8741cf860ede906d1c5514fcc8e0322b7f0ad2..a7fff284890275f3e4a809967dcc3478c78f668e 100644 (file)
@@ -16,7 +16,7 @@
 #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>
@@ -109,4 +109,5 @@ main(int argc, char **argv)
     }
 
     close(fd);
+    return 0;
 }
index cf38bc5ee08e3582a7d65ee5f1272b0c1b318fd4..c3788faf8576be0a133fc270e8cf043a41e2a18d 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -20,15 +20,7 @@ RCSID
 #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];
@@ -260,6 +252,7 @@ main(int argc, char **argv)
        }
     }
 #endif
+    return 0;
 }
 
 
index d9d1e2ebdfa1b2bfe2cbbe5d80523e9a622c7977..8b3a4b6769a6071901a93bc0d6cb570c51217f9e 100644 (file)
 #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>
@@ -24,14 +25,6 @@ RCSID
 #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>
@@ -382,7 +375,10 @@ hpr_GetHostCPS(afs_int32 host, prlist *CPS)
 
     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;
@@ -413,7 +409,10 @@ hpr_NameToId(namelist *names, idlist *ids)
 
     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++)
@@ -435,7 +434,10 @@ hpr_IdToName(idlist *ids, namelist *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;
     }
 
     code = ubik_PR_IDToName(uclient, 0, ids, names);
@@ -456,7 +458,10 @@ hpr_GetCPS(afs_int32 id, prlist *CPS)
 
     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;
@@ -727,11 +732,11 @@ h_gethostcps_r(register struct host *host, register afs_int32 now)
 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)
@@ -819,8 +824,8 @@ h_Alloc_r(register struct rx_connection *r_con)
 /* 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;
@@ -834,6 +839,11 @@ h_Lookup_r(afs_uint32 haddr, afs_uint16 hport, int *heldp)
        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);
@@ -861,8 +871,8 @@ h_Lookup_r(afs_uint32 haddr, afs_uint16 hport, int *heldp)
        }
        host = NULL;
     }
-    return host;
-
+    *hostp = host;
+    return 0;
 }                              /*h_Lookup */
 
 /* Lookup a host given its UUID. */
@@ -1066,7 +1076,10 @@ h_Enumerate(int (*proc) (), char *param)
        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);
@@ -1417,7 +1430,8 @@ h_GetHost_r(struct rx_connection *tcon)
     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
@@ -1425,11 +1439,13 @@ h_GetHost_r(struct rx_connection *tcon)
         * 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)
@@ -1440,6 +1456,7 @@ h_GetHost_r(struct rx_connection *tcon)
                     ntohs(host->port)));
            goto retry;
        }
+       host->hostFlags |= HWHO_INPROGRESS;
        host->hostFlags &= ~ALTADDR;
        cb_conn = host->callback_rxcon;
        rx_GetConnection(cb_conn);
@@ -1452,7 +1469,7 @@ h_GetHost_r(struct rx_connection *tcon)
        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"));
@@ -1526,7 +1543,6 @@ h_GetHost_r(struct rx_connection *tcon)
                     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);
@@ -1560,7 +1576,6 @@ h_GetHost_r(struct rx_connection *tcon)
            /* 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);
@@ -1573,6 +1588,7 @@ h_GetHost_r(struct rx_connection *tcon)
            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);
@@ -1582,7 +1598,7 @@ h_GetHost_r(struct rx_connection *tcon)
            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));
index 305d3914969d46926d91b889c4fe542340602ebf..c333d40f05bd9588452c3a8b85525bfc1e9ca55b 100644 (file)
@@ -205,8 +205,8 @@ extern int h_Lock_r(register struct host *host);
 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);
@@ -230,6 +230,8 @@ extern int addInterfaceAddr_r(struct host *host, afs_uint32 addr, afs_uint16 por
 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 */
index 58599beb5ce9923b290de8f13b45a8ac071b69ce..7e15401ec017e9e0fd2e781f2894e29d0cd554cc 100644 (file)
 #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
@@ -28,13 +29,6 @@ RCSID
 #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>
index 45cd382ef26c3f64579ffcb94095c08fe916709f..0836ee9fa0b196721481caa35d099dc319f028f1 100644 (file)
 #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>
@@ -39,14 +40,6 @@ RCSID
 #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 */
@@ -113,10 +106,10 @@ extern int BreakVolumeCallBacksLater();
 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();
@@ -166,6 +159,7 @@ int debuglevel = 0;
 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 */
@@ -220,8 +214,8 @@ static void FlagMsg();
  */
 
 /* DEBUG HACK */
-static void
-CheckDescriptors()
+static void *
+CheckDescriptors(void *unused)
 {
 #ifndef AFS_NT40_ENV
     struct afs_stat status;
@@ -237,6 +231,7 @@ CheckDescriptors()
     fflush(stdout);
     ResetCheckDescriptors();
 #endif
+    return 0;
 }                              /*CheckDescriptors */
 
 
@@ -244,19 +239,19 @@ 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
@@ -410,8 +405,8 @@ setThreadId(char *s)
 }
 
 /* This LWP does things roughly every 5 minutes */
-static void
-FiveMinuteCheckLWP()
+static void *
+FiveMinuteCheckLWP(void *unused)
 {
     static int msg = 0;
     char tbuffer[32];
@@ -451,6 +446,7 @@ FiveMinuteCheckLWP()
            }
        }
     }
+    return NULL;
 }                              /*FiveMinuteCheckLWP */
 
 
@@ -458,8 +454,8 @@ 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");
@@ -472,14 +468,15 @@ 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
@@ -489,11 +486,6 @@ FsyncCheckLWP()
 
     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
@@ -516,6 +508,7 @@ FsyncCheckLWP()
            code = BreakLaterCallBacks();
        } while (code != 0);
     }
+    return NULL;
 }
 
 /*------------------------------------------------------------------------
@@ -630,8 +623,8 @@ PrintCounters()
 
 
 
-static void
-CheckSignal()
+static void *
+CheckSignal(void *unused)
 {
     if (FS_registered > 0) {
        /*
@@ -645,7 +638,7 @@ CheckSignal()
     DumpCallBackState();
     PrintCounters();
     ResetCheckSignal();
-
+    return NULL;
 }                              /*CheckSignal */
 
 void
@@ -706,10 +699,11 @@ ShutDownAndCore(int dopanic)
 
 }                              /*ShutDown */
 
-void
-ShutDown(void)
+void *
+ShutDown(void *unused)
 {                              /* backward compatibility */
     ShutDownAndCore(DONTPANIC);
+    return NULL;
 }
 
 
@@ -745,6 +739,7 @@ FlagMsg()
     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
@@ -1063,6 +1058,8 @@ ParseArgs(int argc, char *argv[])
            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"); 
@@ -1826,12 +1823,16 @@ main(int argc, char *argv[])
     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)
@@ -1866,6 +1867,11 @@ main(int argc, char *argv[])
                ("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);
@@ -1916,6 +1922,11 @@ main(int argc, char *argv[])
     /* 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
@@ -1961,25 +1972,25 @@ main(int argc, char *argv[])
     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);
@@ -2039,4 +2050,5 @@ main(int argc, char *argv[])
 #else /* AFS_PTHREAD_ENV */
     assert(LWP_WaitProcess(&parentPid) == LWP_SUCCESS);
 #endif /* AFS_PTHREAD_ENV */
+    return 0;
 }
index 32a2ae25fbfd13e2354550bfa6a2f29bd9e6b154..d4d45a869b57871362187457c3d892b5a63c7071 100644 (file)
@@ -72,26 +72,26 @@ vldbint.cs.o: vldbint.cs.c vldbint.xdr.c
 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 $@
index 1dc89c4920b882467e45b48090c7af71dcd17e90..93fd3716c2a507248a97031293978ffd9bc2e0b7 100644 (file)
 #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>
@@ -40,7 +33,6 @@ RCSID
 #define        BADSERVERID     255     /* XXX */
 
 
-extern struct cmd_syndesc *cmd_CreateSyntax();
 static char pn[] = "cnvldb";
 static char tempname[] = "XXnewvldb";
 static char space[MAXSIZE];
@@ -52,6 +44,10 @@ static int convert_vlentry();
 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)
@@ -74,9 +70,8 @@ afs_int32 dbsize;
 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;
@@ -366,6 +361,7 @@ struct extentaddr *base[VL_MAX_ADDREXTBLKS];
  * 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;
@@ -472,6 +468,7 @@ read_mhentries(mh_addr, oldfd)
  * 
  * 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;
@@ -997,7 +994,7 @@ main(argc, argv)
     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");
index bd0d04bee3144bc69334f74430b959604d85891e..e9028d51671dfe28fdb00d56f106be4bdfbf0154 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -21,6 +21,7 @@ RCSID
 #include "cnvldb.h"            /* CHANGEME! */
 #include <netinet/in.h>
 #include <afs/venus.h>
+#include <afs/cmd.h>
 
 #ifdef notdef
 #include <afs/vice.h>
@@ -37,7 +38,6 @@ RCSID
 #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];
@@ -149,9 +149,8 @@ QuickPrintStatus(status, name)
 }
 
 
-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;
index 26b00653120051f666a0acb6159d1d782dac6802..95bc951c3d65428e26d8977d4e6cf2173c378bea 100644 (file)
@@ -11,7 +11,7 @@
 #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>
@@ -38,14 +38,7 @@ RCSID
 #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>
@@ -192,9 +185,8 @@ GetServer(char *aname)
 }
 
 
-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;
@@ -1038,7 +1030,7 @@ main(argc, argv)
     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,
index 7ffceba756027a5855c73af0b9bcb7c2ef0deb23..ffd838156925cbf0fd765d27de181987d9369f3c 100644 (file)
 #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>
@@ -49,14 +50,6 @@ RCSID
 #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>
@@ -265,6 +258,7 @@ readheader(struct vlheader *headerp)
     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
@@ -321,6 +315,7 @@ readMH(afs_int32 addr, struct extentaddr *mhblockP)
        for (j = 0; j < VL_MAXIPADDRS_PERMH; j++)
            e->ex_addrs[j] = ntohl(e->ex_addrs[j]);
     }
+    return;
 }
 
 void
@@ -399,6 +394,7 @@ readentry(afs_int32 addr, struct nvlentry *vlentryp, afs_int32 *type)
            }
        }
     }
+    return;
 }
 
 void
@@ -693,6 +689,7 @@ FollowNameHash(struct vlheader *header)
            ("%d entries in name hash, longest is %d, shortest is %d, average length is %f\n",
             count, longest, shortest, ((float)count / (float)HASHSIZE));
     }
+    return;
 }
 
 /*
@@ -768,6 +765,7 @@ FollowIdHash(struct vlheader *header)
                 ((float)count / (float)HASHSIZE));
        }
     }
+    return;
 }
 
 /*
@@ -812,6 +810,7 @@ FollowFreeChain(struct vlheader *header)
     }
     if (verbose)
        printf("%d entries on free chain\n", count);
+    return;
 }
 
 /*
@@ -1022,7 +1021,7 @@ CheckIpAddrs(struct vlheader *header)
        printf("%d simple entries, %d multihomed entries, Total = %d\n",
               regentries, mhentries, mhentries + regentries);
     }
-
+    return;
 }
 
 void 
@@ -1034,7 +1033,7 @@ FixBad(afs_uint32 idx, afs_uint32 addr, afs_uint32 type, afs_uint32 tmp,
 }
 
 int
-WorkerBee(struct cmd_syndesc *as, char *arock)
+WorkerBee(struct cmd_syndesc *as, void *arock)
 {
     char *dbfile;
     afs_int32 maxentries, type, tmp;
index 9c175a57b1e7841c6ce7b46753fa930c5697aab1..d56d5f489c5312f7c3f984d763ec48e7a597e522 100644 (file)
@@ -225,7 +225,7 @@ struct VLCallBack {
  */
 
 ProbeServer(
-) = VLPROBE;
+) multi = VLPROBE;
 
 /*
  * VL_GetEntryByName was renamed to VL_GetEntryByNameO to avoid
index 0099e15fc1d63fc0b45cb61a324e81c851f3e461..a85c058507c82b6c0974cad4f1336f9663637885 100644 (file)
 #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>
@@ -25,13 +26,6 @@ RCSID
 #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"
@@ -61,17 +55,17 @@ static char rxinfo_str[128];        /* Need rxinfo string to be non-local */
 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();
@@ -2562,7 +2556,7 @@ RemoveEntry(trans, entryptr, tentry)
     return 0;
 }
 
-static
+static void
 ReleaseEntry(tentry, releasetype)
      struct nvlentry *tentry;
      afs_int32 releasetype;
@@ -2867,7 +2861,7 @@ repsite_exists(VlEntry, server, partition)
 
 
 /* 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;
@@ -2888,7 +2882,7 @@ repsite_compress(VlEntry, 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;
@@ -2930,7 +2924,7 @@ vlentry_to_vldbentry(VlEntry, 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;
@@ -2970,7 +2964,7 @@ vlentry_to_nvldbentry(VlEntry, VldbEntry)
     VldbEntry->flags = VlEntry->flags;
 }
 
-static
+static void
 vlentry_to_uvldbentry(VlEntry, VldbEntry)
      struct nvlentry *VlEntry;
      struct uvldbentry *VldbEntry;
index 0ff6e2e7bbf00397bbbe295f41bb07ae1206e295..464cc2dcfd76b2aa13b21ca85c2844f71427a2c3 100644 (file)
 #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
@@ -36,14 +37,6 @@ RCSID
 #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>
@@ -67,12 +60,13 @@ afs_uint32 HostAddress[MAXSERVERID + 1];
 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];
@@ -83,8 +77,8 @@ CheckSignal_Signal()
     IOMGR_SoftSig(CheckSignal, 0);
 }
 
-static
-CheckSignal()
+static void *
+CheckSignal(void *unused)
 {
     register int i, errorcode;
     struct ubik_trans *trans;
@@ -100,7 +94,7 @@ CheckSignal()
     for (i = 0; i < HASHSIZE; i++) {
        HashIdDump(trans, i);
     }
-    return (ubik_EndTrans(trans));
+    return ((void *)ubik_EndTrans(trans));
 }                              /*CheckSignal */
 
 
@@ -186,7 +180,8 @@ main(argc, argv)
 
        } 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"); 
@@ -195,7 +190,7 @@ main(argc, argv)
            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;
@@ -253,14 +248,14 @@ main(argc, argv)
            /* 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");
@@ -393,6 +388,12 @@ main(argc, argv)
        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);
@@ -416,4 +417,6 @@ main(argc, argv)
     rx_SetRxStatUserOk(vldb_rxstat_userok);
 
     rx_StartServer(1);         /* Why waste this idle process?? */
+
+    return 0; /* not reachable */
 }
index 7f0693558c9a96dc0b73838905ae0e09425ac0eb..99cd11e6bd5c9ad69280401a6f88b8feb0313160 100644 (file)
 #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>
index 081c646d55d0a21bca003014aac592d7b6feaf4e..a7ebc8f38bd584dcb13f0d60f4561d4d30e0e287 100644 (file)
@@ -67,10 +67,10 @@ install: \
        ${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} $? $@
@@ -79,22 +79,22 @@ ${DEST}/lib/afs/libvlib.a: vlib.a
        ${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} $? $@
@@ -209,10 +209,10 @@ ${TOP_LIBDIR}/libvlib.a: vlib.a
        ${INSTALL} $? $@
 
 ${DESTDIR}${afssrvlibexecdir}/salvager: salvager
-       ${INSTALL} -s $? $@
+       ${INSTALL} $? $@
 
 ${DESTDIR}${afssrvsbindir}/volinfo: volinfo
-       ${INSTALL} -s $? $@
+       ${INSTALL} $? $@
 
 ${DESTDIR}${includedir}/afs/nfs.h: nfs.h
        ${INSTALL} $? $@
index 54a31ef928e35f272dfbd8e223b63d71686c7f17..0270a8c4dc223840d5afd8b077dd71662382eaa6 100644 (file)
@@ -19,7 +19,7 @@
 #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>
@@ -38,13 +38,7 @@ RCSID
 #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>
 
index 71ad7ea6076c4256627ee652c786b81dfe2f9a6a..9716cca2658b5ec1c72d5871fe36b4b042c04e83 100644 (file)
 #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
@@ -87,16 +88,6 @@ RCSID
 #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!
  */
index 94939ad6496a72bf9fcd85244dea082076118d1a..fd104c6e3a901718848cbcb9cdd393dd0647ef10 100644 (file)
@@ -51,10 +51,11 @@ static int newVLDB = 1;
 #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>
@@ -161,6 +162,17 @@ extern int LogLevel;
  */
 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)
 {
@@ -176,7 +188,7 @@ 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();
@@ -366,7 +378,7 @@ FSYNC_sync()
 
     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;
index 39fdd29f1f337306e212202657d863a28785a8e7..b8cead1586e84cd8cd79ab8e86c4b79029e98ae3 100644 (file)
 #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
@@ -31,13 +32,7 @@ RCSID
 #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>
@@ -325,9 +320,10 @@ ih_open(IHandle_t * ihP)
      */
     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;
@@ -337,13 +333,23 @@ ih_open(IHandle_t * ihP)
      * 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();
index c45a57026dbc8bdd97dbaba48710975bcff64c19..a5cc75390f3878bb9db0b841aeae8a261431cf34 100644 (file)
 #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)
@@ -107,7 +109,13 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
 #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
@@ -276,10 +284,12 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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;
+       }
     }
 
     /*
@@ -323,43 +333,47 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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;
@@ -522,10 +536,12 @@ efs_ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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. */
@@ -592,43 +608,47 @@ efs_ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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) {
@@ -876,10 +896,12 @@ xfs_ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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) {
@@ -983,11 +1005,11 @@ xfs_ListViceInodes(char *devname, char *mountedOn, char *resultFile,
                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++;
 
@@ -1006,32 +1028,35 @@ xfs_ListViceInodes(char *devname, char *mountedOn, char *resultFile,
     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) {
@@ -1186,10 +1211,12 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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
     /*
@@ -1233,9 +1260,11 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
        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++;
     }
@@ -1442,10 +1471,12 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
                    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++;
                }
@@ -1455,36 +1486,38 @@ ListViceInodes(char *devname, char *mountedOn, char *resultFile,
     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;
@@ -1535,4 +1568,223 @@ bread(int fd, char *buf, daddr_t blk, afs_int32 size)
 }
 
 #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 */
index 5e04c84dbdc2391c8513ffe86346aa93cfb29592..160d9b666f856b2873017bf3b27189510aa6bcc9 100644 (file)
 #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>
@@ -41,6 +42,7 @@ RCSID
 #include "voldefs.h"
 #include "partition.h"
 #include <afs/errors.h>
+#include "fssync.h"
 
 /*@+fcnmacros +macrofcndecl@*/
 #ifdef O_LARGEFILE
@@ -1543,7 +1545,7 @@ convertVolumeInfo(fdr, fdw, vid)
  */
 
 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];
@@ -1551,17 +1553,48 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
     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;
@@ -1576,7 +1609,7 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
 
        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);
@@ -1587,8 +1620,8 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
            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;
@@ -1626,8 +1659,8 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
      */
 
     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);
@@ -1636,7 +1669,7 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
            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) {
@@ -1644,17 +1677,17 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
        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);
@@ -1662,12 +1695,12 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
        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);
@@ -1675,12 +1708,37 @@ namei_ConvertROtoRWvolume(IHandle_t * h, afs_uint32 vid)
        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;
 }
 
index 4be5350fcae8fd5397bce94a4b1b0bf17f2f8e9e..f5febd231e2f2f75ab858eb6372d8dde6d0efb8c 100644 (file)
 #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>
@@ -106,14 +107,6 @@ RCSID
 #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"
index 9db617b0344b6f426d82c978eb8a6a55b09bb1cd..69c12f204e4cb6f30e7f44ee3c726069eb01117a 100644 (file)
@@ -18,7 +18,7 @@
 #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>
@@ -28,13 +28,7 @@ RCSID
 #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
index 10f86701d73062bdfa45b3d3e40a89a21201bdd5..16e1007014bb89cae45357ac8a6d3b480144548d 100644 (file)
@@ -17,7 +17,7 @@
 #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
@@ -28,13 +28,7 @@ RCSID
 #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>
 
index d89f53842e9374cd84fd1fb7e94848a7b3f7b01c..7828adb686dde419982874ea955b093dd4e87942 100644 (file)
 #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 */
@@ -75,6 +69,8 @@ private int moveHash(register Vnode * vnp, bit32 newHash);
 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:
index 8a25d8612c7a2980dee77c0103fbe25b0dd5d889..8c3f5198234ef6b2692d19cbfbca8e9f2922ab6c 100644 (file)
@@ -11,7 +11,7 @@
 #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>
 
@@ -28,7 +28,7 @@ RCSID
 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;
@@ -73,7 +73,7 @@ main(int argc, char **argv)
     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");
index 3cb40ebd979f1a819fdb0a9108c3fcf3eaf6bf14..99e297234e393fe890ea656ee809e7e53cc1115d 100644 (file)
@@ -18,7 +18,7 @@
 #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>
@@ -217,7 +217,7 @@ AttachVolume(struct DiskPartition * dp, char *volname,
 
 
 static int
-handleit(struct cmd_syndesc *as)
+handleit(struct cmd_syndesc *as, void *arock)
 {
     register struct cmd_item *ti;
     int err = 0;
@@ -622,7 +622,7 @@ main(int argc, char **argv)
     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");
index 679975aa6b43cd817f5b8d14b2ed3ac93eb2f058..ae0049d94a4ead435499856c84380058a8cd79d4 100644 (file)
@@ -92,7 +92,7 @@ Vnodes with 0 inode pointers in RW volumes are now deleted.
 #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>
@@ -844,6 +844,7 @@ main(int argc, char **argv)
 #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. */
index 8a2fbff1d13d02ebc764dbdddb089900c970b7ce..7952b410e295849afe68b1e4f55300b55cd40f3d 100644 (file)
@@ -83,16 +83,16 @@ volser.h volerr.c: volerr.et volser.p.h
        ${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
index 03a917e9496743c0bafdaa04f273c96fdedc8472..7af3c2765f6abe488fde1d2f98257b45413ac364 100644 (file)
 #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
@@ -26,13 +27,6 @@ RCSID
 #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>
@@ -1033,8 +1027,6 @@ RestoreVolume(register struct rx_call *call, Volume * avp, int incremental,
     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");
index 9d175bd25704a52c05d796a1eed9d62bc254fbd7..bc0eb68899fd8083502fbba052256bbe49e1f947 100644 (file)
@@ -18,7 +18,7 @@
 #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
@@ -26,13 +26,7 @@ RCSID
 #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>
@@ -108,6 +102,7 @@ SetAValue(entry, oserver, opart, nserver, npart, type)
 }
 
 /* Changes the RW site only */
+void
 Lp_SetRWValue(entry, oserver, opart, nserver, npart)
      struct nvldbentry *entry;
      afs_int32 oserver, opart, nserver, npart;
@@ -116,6 +111,7 @@ Lp_SetRWValue(entry, 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;
@@ -149,6 +145,7 @@ Lp_GetRwIndex(entry)
 }
 
 /*initialize queue pointed by <ahead>*/
+void
 Lp_QInit(ahead)
      struct qHead *ahead;
 {
@@ -157,6 +154,7 @@ Lp_QInit(ahead)
 }
 
 /*add <elem> in front of queue <ahead> */
+void
 Lp_QAdd(ahead, elem)
      struct qHead *ahead;
      struct aqueue *elem;
@@ -198,6 +196,7 @@ Lp_QScan(ahead, id, success, 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;
@@ -223,6 +222,7 @@ Lp_QEnumerate(ahead, success, elem)
        *success = 0;
 }
 
+void
 Lp_QTraverse(ahead)
      struct qHead *ahead;
 {
index f8f5a91f79a02fa332f44dafc154f4dfcefed533..bb9e6800edda1ecb751df03710aebae834cd08a6 100644 (file)
@@ -11,7 +11,7 @@
 #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
@@ -21,13 +21,7 @@ RCSID
 #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
index 8e47822459aa90b1ee1d0baef693d72f29406f8c..0146d6792f99a06815fa4ae4a8cfa58f2bf26bb3 100644 (file)
@@ -43,7 +43,7 @@
 #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>
@@ -64,14 +64,7 @@ RCSID
 #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];
@@ -125,7 +118,7 @@ readchar()
 #define BUFSIZE 16384
 char buf[BUFSIZE];
 
-char
+void
 readdata(buffer, size)
      char *buffer;
      afs_sfsize_t size;
@@ -795,9 +788,8 @@ ReadVNode(count)
     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;
index 125ada60277b352cfaf8412f9fad1c576bcf3de5..1c15bc5c07374a4989604661ebd6e15e5eab1f6d 100644 (file)
@@ -18,7 +18,7 @@
 #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>
@@ -166,7 +166,7 @@ AttachVolume(struct DiskPartition * dp, char *volname,
 
 
 static int
-handleit(struct cmd_syndesc *as, char *arock)
+handleit(struct cmd_syndesc *as, void *arock)
 {
     register struct cmd_item *ti;
     int err = 0;
@@ -291,7 +291,7 @@ main(int argc, char **argv)
 
     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");
index f438731c3ede03420713916b40a2ed87922c743f..873d2c600634642b53e338363a9bd4d1972a90de 100644 (file)
 #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>
@@ -24,13 +25,6 @@ RCSID
 #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>
@@ -96,6 +90,7 @@ int lwps = 9;
 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];
@@ -148,8 +143,8 @@ TryUnlock()
 }
 
 /* background daemon for timing out transactions */
-static void
-BKGLoop()
+static void*
+BKGLoop(void *unused)
 {
     struct timeval tv;
     int loop = 0;
@@ -170,12 +165,14 @@ BKGLoop()
            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;
 
@@ -203,6 +200,7 @@ BKGSleep()
                VTRANS_UNLOCK;
        }
     }
+    return NULL;
 }
 
 #ifndef AFS_NT40_ENV
@@ -295,6 +293,8 @@ main(int argc, char **argv)
            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) {
@@ -386,7 +386,7 @@ main(int argc, char **argv)
 #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] "
@@ -394,7 +394,7 @@ main(int argc, char **argv)
 #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");
@@ -518,12 +518,20 @@ main(int argc, char **argv)
     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);
@@ -546,4 +554,5 @@ main(int argc, char **argv)
 
     osi_audit(VS_FinishEvent, (-1), AUD_END);
     Abort("StartServer returned?");
+    return 0; /* not reached */
 }
index 0acad1f1ad705feb8ede749ed3a488e050e594ad..5c8ae8d63a0f6d2953411d51d92abb5764e3b94e 100644 (file)
 #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>
@@ -25,14 +26,6 @@ RCSID
 #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>
@@ -198,7 +191,7 @@ XAttachVolume(afs_int32 *error, afs_int32 avolid, afs_int32 apartid, int amode)
        *error = EINVAL;
        return NULL;
     }
-    tv = VAttachVolumeByName(error, pbuf, vbuf, amode);
+    tv = VAttachVolumeByName((Error *)error, pbuf, vbuf, amode);
     return tv;
 }
 
@@ -210,14 +203,16 @@ ViceCreateRoot(Volume *vp)
     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);
@@ -282,6 +277,7 @@ ViceCreateRoot(Volume *vp)
     VNDISK_GET_LEN(length, vnode);
     V_diskused(vp) = nBlocks(length);
 
+    free(vnode);
     return 1;
 }
 
@@ -1180,8 +1176,14 @@ SAFSVolForwardMultiple(struct rx_call *acid, afs_int32 fromTrans, afs_int32
     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 */
@@ -1199,12 +1201,16 @@ SAFSVolForwardMultiple(struct rx_call *acid, afs_int32 fromTrans, afs_int32
     /* (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);
@@ -1581,7 +1587,10 @@ VolGetName(struct rx_call *acid, afs_int32 atrans, char **aname)
     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;
@@ -1606,7 +1615,7 @@ VolGetName(struct rx_call *acid, afs_int32 atrans, char **aname)
        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))
@@ -1695,6 +1704,8 @@ XVolListPartitions(struct rx_call *acid, struct partEntries *pEntries)
            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;
@@ -1770,6 +1781,8 @@ VolListOneVolume(struct rx_call *acid, afs_int32 partid, afs_int32
     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))
@@ -1949,6 +1962,8 @@ VolXListOneVolume(struct rx_call *a_rxCidP, afs_int32 a_partID,
      */
     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;
@@ -2155,6 +2170,8 @@ VolListVolumes(struct rx_call *acid, afs_int32 partid, afs_int32 flags,
 
     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))
@@ -2364,6 +2381,8 @@ VolXListVolumes(struct rx_call *a_rxCidP, afs_int32 a_partID,
      */
     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;
 
@@ -2601,6 +2620,8 @@ VolMonitor(struct rx_call *acid, transDebugEntries *transInfo)
 
     transInfo->transDebugEntries_val =
        (transDebugInfo *) malloc(allocSize * sizeof(transDebugInfo));
+    if (!transInfo->transDebugEntries_val)
+       return ENOMEM;
     pntr = transInfo->transDebugEntries_val;
     transInfo->transDebugEntries_len = 0;
     allTrans = TransList();
@@ -2759,116 +2780,65 @@ VolSetDate(struct rx_call *acid, afs_int32 atid, afs_int32 cdate)
     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
index 9e5b015c7cff4b79ed66e575b0cd2d9e7052abe6..95c59654cc416567461925968b609d497ce3f102 100644 (file)
@@ -157,18 +157,19 @@ struct partList {         /*used by the backup system */
 
 /* 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);
index 832f1da334a326e8bfbe8995c25b563fbd8ce16b..71a65f473d1678b300ea46acd84a3ef96b079d3b 100644 (file)
@@ -52,7 +52,7 @@ extern int UV_RestoreVolume(afs_int32 toserver, afs_int32 topart,
                            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);
index 89301afe06cdce12cfd1f9b12bb8db13b416ff69..3eca9c91de7538a62ceaa25642858074334f1e86 100644 (file)
@@ -18,7 +18,7 @@
 #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>
@@ -29,6 +29,7 @@ RCSID
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h>
+#include <string.h>
 #ifdef AFS_NT40_ENV
 #include <fcntl.h>
 #include <winsock2.h>
@@ -62,14 +63,6 @@ RCSID
 #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, ...);
index 47a8e137f4e3d8c966571a172c9e3af367331e6a..6768b6c9a3f42d60edf2bd00e37c9aa8e4bcfa4b 100644 (file)
 #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>
@@ -31,14 +32,6 @@ RCSID
 #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>
@@ -1464,9 +1457,8 @@ VolumeStats(pntr, entry, server, part, voltype)
 }
 
 /* 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;
@@ -1530,9 +1522,8 @@ NukeVolume(as)
  *     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;
@@ -1683,9 +1674,8 @@ ExamineVolume(as)
  *     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;
@@ -1764,9 +1754,8 @@ SetFields(as)
  *     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;
@@ -1825,7 +1814,7 @@ volOnline(as)
  *------------------------------------------------------------------------
  */
 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;
@@ -1875,7 +1864,7 @@ volOffline(register struct cmd_syndesc *as)
 }
 
 static int
-CreateVolume(register struct cmd_syndesc *as)
+CreateVolume(register struct cmd_syndesc *as, void *arock)
 {
     afs_int32 pnum;
     char part[10];
@@ -1983,9 +1972,8 @@ DeleteAll(entry)
     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;
@@ -2105,8 +2093,7 @@ DeleteVolume(as)
 
 #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;
@@ -2232,9 +2219,8 @@ MoveVolume(as)
     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;
@@ -2379,9 +2365,8 @@ CopyVolume(as)
 }
 
 
-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;
@@ -2576,9 +2561,8 @@ ShadowVolume(as)
 }
 
 
-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;
@@ -2637,12 +2621,18 @@ CloneVolume(as)
                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",
@@ -2677,16 +2667,15 @@ CloneVolume(as)
        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;
@@ -2753,9 +2742,8 @@ BackupVolume(as)
     return 0;
 }
 
-static
-ReleaseVolume(as)
-     register struct cmd_syndesc *as;
+static int
+ReleaseVolume(register struct cmd_syndesc *as, void *arock)
 {
 
     struct nvldbentry entry;
@@ -2800,9 +2788,7 @@ ReleaseVolume(as)
 }
 
 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];
@@ -2901,10 +2887,8 @@ retry_dump:
 #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;
@@ -3174,6 +3158,10 @@ RestoreVolume(as)
        default:
            restoreflags |= RV_LUDUMP;
     }
+    if (as->parms[10].items) {
+       restoreflags |= RV_NODEL;
+    }
+    
 
     code =
        UV_RestoreVolume2(aserver, apart, avolid, aparentid,
@@ -3193,10 +3181,8 @@ RestoreVolume(as)
     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;
 
@@ -3220,11 +3206,10 @@ LockReleaseCmd(as)
     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);;
@@ -3258,7 +3243,10 @@ AddSite(as)
                    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);
@@ -3269,9 +3257,8 @@ AddSite(as)
     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;
@@ -3321,9 +3308,8 @@ RemoveSite(as)
     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];
@@ -3369,9 +3355,8 @@ ChangeLocation(as)
     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;
@@ -3535,8 +3520,7 @@ XCompareVolID(a_obj1P, a_obj2P)
  *------------------------------------------------------------------------*/
 
 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;
@@ -3691,9 +3675,8 @@ ListVolumes(as)
     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];
@@ -3735,6 +3718,10 @@ SyncVldb(as)
        }
     }
 
+    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;
@@ -3761,7 +3748,7 @@ SyncVldb(as)
     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);
     }
@@ -3770,10 +3757,8 @@ SyncVldb(as)
     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];
@@ -3807,12 +3792,15 @@ SyncServer(as)
         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);
@@ -3851,10 +3839,8 @@ VolumeInfoCmd(name)
     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;
@@ -3938,10 +3924,8 @@ VolumeZap(as)
     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;
@@ -4031,9 +4015,8 @@ VolserStatus(as)
     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;
@@ -4152,10 +4135,8 @@ GetVolumeInfo(volid, server, part, voltype, rentry)
     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;
@@ -4377,9 +4358,8 @@ char *p1,*p2;
 }
 
 */
-static
-ListVLDB(as)
-     struct cmd_syndesc *as;
+static int
+ListVLDB(struct cmd_syndesc *as, void *arock)
 {
     afs_int32 apart;
     afs_int32 aserver, code;
@@ -4548,9 +4528,8 @@ ListVLDB(as)
     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;
@@ -4878,9 +4857,8 @@ BackSys(as)
     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;
@@ -5008,9 +4986,8 @@ PrintInt64Size(afs_uint64 in)
     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;
@@ -5093,10 +5070,8 @@ PartitionInfo(as)
     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;
@@ -5243,9 +5218,8 @@ print_addrs(const bulkaddrs * addrs, const afsUUID * m_uuid, int nentries,
     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;
@@ -5351,10 +5325,8 @@ ListAddrs(as)
     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;
 
@@ -5379,10 +5351,8 @@ LockEntry(as)
     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;
@@ -5545,9 +5515,8 @@ ConvertRO(as)
     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;
@@ -5646,10 +5615,8 @@ PrintDiagnostics(astring, acode)
 }
 
 
-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;
@@ -5719,7 +5686,7 @@ main(argc, argv)
 
     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");
@@ -5730,14 +5697,14 @@ main(argc, argv)
 #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,
@@ -5750,7 +5717,7 @@ main(argc, argv)
                "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,
@@ -5768,7 +5735,7 @@ main(argc, argv)
                "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");
@@ -5792,12 +5759,12 @@ main(argc, argv)
                "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");
@@ -5812,13 +5779,13 @@ main(argc, argv)
                "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");
@@ -5830,7 +5797,7 @@ main(argc, argv)
                "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");
@@ -5846,14 +5813,16 @@ main(argc, argv)
                "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");
@@ -5862,25 +5831,26 @@ main(argc, argv)
     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");
@@ -5897,20 +5867,22 @@ main(argc, argv)
 #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,
@@ -5922,14 +5894,14 @@ main(argc, argv)
     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");
@@ -5937,13 +5909,13 @@ main(argc, argv)
     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");
@@ -5954,17 +5926,17 @@ main(argc, argv)
                "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");
@@ -5976,7 +5948,7 @@ main(argc, argv)
                "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");
@@ -5988,7 +5960,7 @@ main(argc, argv)
     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,
@@ -5999,7 +5971,7 @@ main(argc, argv)
                "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");
@@ -6007,18 +5979,18 @@ main(argc, argv)
                "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");
@@ -6026,7 +5998,7 @@ main(argc, argv)
                "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");
@@ -6036,7 +6008,7 @@ main(argc, argv)
                "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");
@@ -6044,7 +6016,7 @@ main(argc, argv)
     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");
index c8bc2148a97871e2665c0b83aa39e0de8997a94b..51d57c09ab2d530544d1d1188a382054d32ea480 100644 (file)
 #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
@@ -27,14 +28,6 @@ RCSID
 #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>
@@ -149,6 +142,16 @@ do { \
        { 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); } }
 
 
 
@@ -654,7 +657,7 @@ UV_CreateVolume2(afs_int32 aserver, afs_int32 apart, char *aname,
 
     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,
@@ -3849,39 +3852,39 @@ UV_DumpVolume(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart,
     (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) {
@@ -3892,7 +3895,7 @@ UV_DumpVolume(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart,
            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",
@@ -3900,7 +3903,7 @@ UV_DumpVolume(afs_int32 afromvol, afs_int32 afromserver, afs_int32 afrompart,
            if (!error)
                error = (code ? code : rcode);
        }
-       VDONE;
+       VEDONE;
     }
     if (fromconn)
        rx_DestroyConnection(fromconn);
@@ -3939,41 +3942,41 @@ UV_DumpClonedVolume(afs_int32 afromvol, afs_int32 afromserver,
     (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;
@@ -3981,49 +3984,49 @@ UV_DumpClonedVolume(afs_int32 afromvol, afs_int32 afromserver,
        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) {
@@ -4035,7 +4038,7 @@ UV_DumpClonedVolume(afs_int32 afromvol, afs_int32 afromserver,
        }
     }
     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,
@@ -4044,7 +4047,7 @@ UV_DumpClonedVolume(afs_int32 afromvol, afs_int32 afromserver,
            if (!error)
                error = (code ? code : rcode);
        }
-       VDONE;
+       VEDONE;
     }
     if (fromconn)
        rx_DestroyConnection(fromconn);
@@ -4072,6 +4075,7 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
     struct volser_status tstatus;
     struct volintInfo vinfo;
     char partName[10];
+    char tovolreal[VOLSER_OLDMAXVOLNAME];
     afs_int32 pvolid, pparentid;
     afs_int32 temptid;
     int success;
@@ -4143,18 +4147,28 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
     }
     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 */
@@ -4190,7 +4204,7 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
            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 {
@@ -4214,7 +4228,7 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
     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);
@@ -4244,7 +4258,7 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
        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);
@@ -4398,55 +4412,62 @@ UV_RestoreVolume2(afs_int32 toserver, afs_int32 topart, afs_int32 tovolid,
                            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;
@@ -4558,7 +4579,7 @@ UV_LockRelease(afs_int32 volid)
 /*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;
@@ -4631,7 +4652,11 @@ UV_AddSite(afs_int32 server, afs_int32 part, afs_int32 volid)
     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);
@@ -5243,11 +5268,14 @@ CheckVolume(volintInfo * volumeinfo, afs_int32 aserver, afs_int32 apart,
     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);
@@ -5543,7 +5571,7 @@ CheckVolume(volintInfo * volumeinfo, afs_int32 aserver, afs_int32 apart,
                                    (unsigned long)volumeinfo->volid);
                        }
 
-                       Lp_SetRWValue(entry, entry.serverNumber[idx],
+                       Lp_SetRWValue(&entry, entry.serverNumber[idx],
                                      entry.serverPartition[idx], 0L, 0L);
                        entry.nServers--;
                        modified++;
@@ -5603,7 +5631,7 @@ CheckVolume(volintInfo * volumeinfo, afs_int32 aserver, afs_int32 apart,
     if (entry.volumeId[RWVOL] > *maxvolid)
        *maxvolid = entry.volumeId[RWVOL];
 
-    if (modified) {
+    if (modified && doit) {
        MapNetworkToHost(&entry, &storeEntry);
 
        if (createentry) {
@@ -5638,7 +5666,7 @@ CheckVolume(volintInfo * volumeinfo, afs_int32 aserver, afs_int32 apart,
        }
     }
 
-    if (verbose) {
+    if (verbose && doit) {
        fprintf(STDOUT, "-- status after --\n");
        if (modified)
            EnumerateEntry(&entry);
@@ -5705,13 +5733,15 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
     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 */
@@ -5743,6 +5773,11 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
      * 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",
@@ -5756,7 +5791,7 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
     /* 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,
@@ -5782,6 +5817,10 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
                        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,
@@ -5832,6 +5871,10 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
                        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,
@@ -5852,7 +5895,7 @@ UV_SyncVolume(afs_int32 aserver, afs_int32 apart, char *avolname, int flags)
 
     /* 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)) {
@@ -5934,7 +5977,7 @@ UV_SyncVldb(afs_int32 aserver, afs_int32 apart, int flags, int force)
     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,
@@ -5982,6 +6025,10 @@ UV_SyncVldb(afs_int32 aserver, afs_int32 apart, int flags, int force)
                fflush(STDOUT);
            }
 
+           if (flags & 2)
+               modified = 1;
+           else
+               modified = 0;
            code = CheckVolume(vi, aserver, apart, &modified, &maxvolid);
            if (code) {
                PrintError("", code);
@@ -6012,8 +6059,13 @@ UV_SyncVldb(afs_int32 aserver, afs_int32 apart, int flags, int force)
 
     }                          /* 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 */
@@ -6246,10 +6298,13 @@ CheckVldb(struct nvldbentry * entry, afs_int32 * modified)
     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");
@@ -6296,7 +6351,7 @@ CheckVldb(struct nvldbentry * entry, afs_int32 * modified)
     code = CheckVldbRWBK(entry, &mod);
     if (code)
        ERROR_EXIT(code);
-    if (mod && (pass == 1))
+    if (mod && (pass == 1) && doit)
        goto retry;
     if (mod)
        modentry++;
@@ -6305,7 +6360,7 @@ CheckVldb(struct nvldbentry * entry, afs_int32 * modified)
     code = CheckVldbRO(entry, &mod);
     if (code)
        ERROR_EXIT(code);
-    if (mod && (pass == 1))
+    if (mod && (pass == 1) && doit)
        goto retry;
     if (mod)
        modentry++;
@@ -6313,12 +6368,12 @@ CheckVldb(struct nvldbentry * entry, afs_int32 * modified)
     /* 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],
@@ -6348,7 +6403,7 @@ CheckVldb(struct nvldbentry * entry, afs_int32 * modified)
        islocked = 0;
     }
 
-    if (verbose) {
+    if (verbose && doit) {
        fprintf(STDOUT, "-- status after --\n");
        if (delentry)
            fprintf(STDOUT, "\n**entry deleted**\n");
@@ -6392,12 +6447,15 @@ UV_SyncServer(afs_int32 aserver, afs_int32 apart, int flags, int force)
     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;
     }
@@ -6428,6 +6486,11 @@ UV_SyncServer(afs_int32 aserver, afs_int32 apart, int flags, int force)
 
            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);
@@ -6454,8 +6517,13 @@ UV_SyncServer(afs_int32 aserver, afs_int32 apart, int flags, int force)
        }
     }
 
-    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)
index fb9077097068588126eae12dbdc6080ed2018b03..7d0dfdda5385ae6f5c7b4bfd90a07a75589e9599 100644 (file)
 #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>
@@ -28,14 +29,6 @@ RCSID
 #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>
index 48aa1aac9b5e9ba58f83c16d726a3a72b2324b57..cf44580a4499ede97e509949e5ee927303dea4eb 100644 (file)
 #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)
 
@@ -205,8 +198,8 @@ xstat_cm_Cleanup(int a_releaseMem)
  * 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 */
@@ -356,6 +349,7 @@ xstat_cm_LWP()
                        code);
        }                       /*Continuous execution */
     }                          /*Service loop */
+    return NULL;
 }
 
 
index 00fc9cdb6e6c2979992e752d33811cae134693c6..6cf003c72569d5d2cfa9e07fd3ab0dafaf224a45 100644 (file)
 #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.
@@ -158,6 +152,7 @@ PrintCallInfo()
 
 /* Print detailed functional call statistics */
 
+void
 print_cmCallStats()
 {
     static char rn[] = "print_cmCallStats";    /*Routine name */
@@ -1231,9 +1226,7 @@ CountListItems(a_firstItem)
  *------------------------------------------------------------------------*/
 
 int
-RunTheTest(a_s)
-     struct cmd_syndesc *a_s;
-
+RunTheTest(struct cmd_syndesc *a_s, void *arock)
 {                              /*RunTheTest */
 
     static char rn[] = "RunTheTest";   /*Routine name */
@@ -1441,7 +1434,7 @@ main(argc, argv)
     /*
      * 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,
index 8b78ffffe97aaf73cb51d0ad87c713f3c320327e..96ff207005aae44560165d3214f6ab1defb3a173 100644 (file)
 #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)
 
@@ -245,8 +238,8 @@ xstat_fs_Cleanup(int a_releaseMem)
  *     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 */
@@ -395,6 +388,7 @@ xstat_fs_LWP()
                        code);
        }                       /*Continuous execution */
     }                          /*Service loop */
+    return NULL;
 }
 
 /*------------------------------------------------------------------------
index a5b7eb9f5e60910bbf74f62ee4dc419fe801ddc3..e3c01527056a0e453b53737800de75fa1a9863bc 100644 (file)
 #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 */
 
index 956b48b8fe681e129a325049e85a1de5f4b3a8d3..c50594f9c955bc9df65b3d0ff6fbfa8385bfd796 100644 (file)
 #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.