-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2012, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
return expired;
}
-static inline int ll_capa_check_stop(void)
-{
- return (ll_capa_thread.t_flags & SVC_STOPPING) ? 1: 0;
-}
-
static void sort_add_capa(struct obd_capa *ocapa, cfs_list_t *head)
{
struct obd_capa *tmp;
/* three places where client capa is deleted:
* 1. capa_thread_main(), main place to delete expired capa.
* 2. ll_clear_inode_capas() in ll_clear_inode().
- * 3. ll_truncate_free_capa() delete truncate capa explicitly in ll_truncate().
+ * 3. ll_truncate_free_capa() delete truncate capa explicitly in ll_setattr_ost().
*/
static int capa_thread_main(void *unused)
{
cfs_daemonize("ll_capa");
- ll_capa_thread.t_flags = SVC_RUNNING;
+ thread_set_flags(&ll_capa_thread, SVC_RUNNING);
cfs_waitq_signal(&ll_capa_thread.t_ctl_waitq);
while (1) {
l_wait_event(ll_capa_thread.t_ctl_waitq,
- (ll_capa_check_stop() || have_expired_capa()),
+ !thread_is_running(&ll_capa_thread) ||
+ have_expired_capa(),
&lwi);
- if (ll_capa_check_stop())
+ if (!thread_is_running(&ll_capa_thread))
break;
next = NULL;
cfs_spin_unlock(&capa_lock);
}
- ll_capa_thread.t_flags = SVC_STOPPED;
+ thread_set_flags(&ll_capa_thread, SVC_STOPPED);
cfs_waitq_signal(&ll_capa_thread.t_ctl_waitq);
RETURN(0);
}
RETURN(rc);
}
cfs_wait_event(ll_capa_thread.t_ctl_waitq,
- ll_capa_thread.t_flags & SVC_RUNNING);
+ thread_is_running(&ll_capa_thread));
RETURN(0);
}
void ll_capa_thread_stop(void)
{
- ll_capa_thread.t_flags = SVC_STOPPING;
+ thread_set_flags(&ll_capa_thread, SVC_STOPPING);
cfs_waitq_signal(&ll_capa_thread.t_ctl_waitq);
cfs_wait_event(ll_capa_thread.t_ctl_waitq,
- ll_capa_thread.t_flags & SVC_STOPPED);
+ thread_is_stopped(&ll_capa_thread));
}
struct obd_capa *ll_osscapa_get(struct inode *inode, __u64 opc)