complete_and_exit(0, 0);
break;
case AFSOP_START_BKG:
+#ifdef AFS_NEW_BKG
+ afs_warn("Install matching afsd! Old background daemons not supported.\n");
+#else
sprintf(current->comm, "afs_bkgstart");
AFS_GLOCK();
complete(arg->complete);
sprintf(current->comm, "afs_background");
afs_BackgroundDaemon();
AFS_GUNLOCK();
+#endif
complete_and_exit(0, 0);
break;
case AFSOP_START_TRUNCDAEMON:
put_vfs_context();
#endif
#ifdef AFS_DAEMONOP_ENV
-# if defined(AFS_DARWIN80_ENV)
+# if defined(AFS_NEW_BKG)
if (parm == AFSOP_BKG_HANDLER) {
/* if afs_uspc_param grows this should be checked */
struct afs_uspc_param *mvParam = osi_AllocSmallSpace(AFS_SMALLOCSIZ);
afs_osi_Free(param2, namebufsz);
osi_FreeSmallSpace(mvParam);
} else
-# endif /* DARWIN80 */
+# endif /* AFS_NEW_BKG */
if (parm < AFSOP_ADDCELL || parm == AFSOP_RXEVENT_DAEMON
|| parm == AFSOP_RXLISTENER_DAEMON) {
afs_DaemonOp(parm, parm2, parm3, parm4, parm5, parm6);
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
# endif /* AFS_SGI_ENV */
-# ifndef AFS_DARWIN80_ENV
+# ifndef AFS_NEW_BKG
} else if (parm == AFSOP_START_BKG) {
while (afs_initState < AFSOP_START_BKG)
afs_osi_Sleep(&afs_initState);
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
# endif /* AFS_SGI_ENV */
-# endif /* ! AFS_DARWIN80_ENV */
+# endif /* ! AFS_NEW_BKG */
} else if (parm == AFSOP_START_TRUNCDAEMON) {
while (afs_initState < AFSOP_GO)
afs_osi_Sleep(&afs_initState);
afs_BRelease(tb); /* this grabs and releases afs_xbrs lock */
}
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
int
afs_BackgroundDaemon(struct afs_uspc_param *uspc, void *param1, void *param2)
#else
/* Irix with "short stack" exits */
afs_BackgroundDaemon_once();
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
/* If it's a re-entering syscall, complete the request and release */
if (uspc->ts > -1) {
tb = afs_brs;
#endif
/* Otherwise it's a new one */
afs_nbrs++;
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
}
#endif
afs_termState = AFSOP_STOP_TRUNCDAEMON;
ReleaseWriteLock(&afs_xbrs);
afs_osi_Wakeup(&afs_termState);
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
return -2;
#else
return;
afs_brsDaemons--;
}
}
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
return -2;
#endif
}
extern void afs_BRelease(struct brequest *ab);
extern int afs_BBusy(void);
extern int afs_BioDaemon(afs_int32 nbiods);
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
extern int afs_BackgroundDaemon(struct afs_uspc_param *uspc, void *param1, void *param2);
#else
extern void afs_BackgroundDaemon(void);
#endif
}
-#ifdef AFS_DARWIN_ENV
+#ifdef AFS_NEW_BKG
static void
BkgHandler(void)
{
static void *
daemon_thread(void *rock)
{
-#ifdef AFS_DARWIN80_ENV
+#ifdef AFS_NEW_BKG
/* Since the background daemon runs as a user process,
* need to drop the controlling TTY, etc.
*/
#define DARWIN_REFBASE 3
#define AFS_WARNUSER_MARINER_ENV 1
#define AFS_CACHE_VNODE_PATH
+#define AFS_NEW_BKG 1
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
#define DARWIN_REFBASE 3
#define AFS_WARNUSER_MARINER_ENV 1
#define AFS_CACHE_VNODE_PATH
+#define AFS_NEW_BKG 1
#define NEED_IOCTL32
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define DARWIN_REFBASE 3
#define AFS_WARNUSER_MARINER_ENV 1
#define AFS_CACHE_VNODE_PATH
+#define AFS_NEW_BKG 1
#define NEED_IOCTL32
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_SYSCALL 230
#define AFS_WARNUSER_MARINER_ENV 1
#define DARWIN_REFBASE 0
+#define AFS_NEW_BKG 1
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"
#define DARWIN_REFBASE 3
#define AFS_WARNUSER_MARINER_ENV 1
#define AFS_CACHE_VNODE_PATH
+#define AFS_NEW_BKG 1
/* File system entry (used if mount.h doesn't define MOUNT_AFS */
#define AFS_MOUNT_AFS "afs"