Whamcloud - gitweb
LU-5062 llite: Solve a race to access lli_has_smd in read case
[fs/lustre-release.git] / lustre / llite / vvp_lock.c
index 444a9c2..94f85d4 100644 (file)
@@ -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.
@@ -26,7 +24,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
  * ordered within themselves by weights assigned from other layers.
  */
 static unsigned long vvp_lock_weigh(const struct lu_env *env,
-                                    const struct cl_lock_slice *slice)
+                                   const struct cl_lock_slice *slice)
 {
-        struct ccc_object *cob = cl2ccc(slice->cls_obj);
+       struct ccc_object *cob = cl2ccc(slice->cls_obj);
 
-        ENTRY;
-        RETURN(cfs_atomic_read(&cob->cob_mmap_cnt) > 0 ? ~0UL >> 2 : 0);
+       ENTRY;
+       RETURN(atomic_read(&cob->cob_mmap_cnt) > 0 ? ~0UL >> 2 : 0);
 }
 
 static const struct cl_lock_operations vvp_lock_ops = {
@@ -77,6 +75,7 @@ static const struct cl_lock_operations vvp_lock_ops = {
         .clo_fini      = ccc_lock_fini,
         .clo_enqueue   = ccc_lock_enqueue,
         .clo_wait      = ccc_lock_wait,
+       .clo_use       = ccc_lock_use,
         .clo_unuse     = ccc_lock_unuse,
         .clo_fits_into = ccc_lock_fits_into,
         .clo_state     = ccc_lock_state,