X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fllite%2Fllite_capa.c;h=8ac120db14a558f4795b3cb7db40884cd07ea7a6;hb=9496591a7f31e8766ee1124725fbab3841d8baef;hp=7fcd7040c96cd344b6d519516e2be7bcd54c3b88;hpb=cc2836737d5401ad48e2aaf64db035d11e795ae5;p=fs%2Flustre-release.git diff --git a/lustre/llite/llite_capa.c b/lustre/llite/llite_capa.c index 7fcd704..8ac120d 100644 --- a/lustre/llite/llite_capa.c +++ b/lustre/llite/llite_capa.c @@ -1,6 +1,4 @@ -/* -*- 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. @@ -28,6 +26,8 @@ /* * 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/ @@ -119,11 +119,6 @@ static inline int have_expired_capa(void) 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; @@ -168,7 +163,7 @@ static void ll_delete_capa(struct obd_capa *ocapa) /* 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) { @@ -180,15 +175,16 @@ 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; @@ -285,7 +281,7 @@ static int capa_thread_main(void *unused) 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); } @@ -308,17 +304,17 @@ int ll_capa_thread_start(void) 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)