X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flclient%2Flcommon_misc.c;h=26cfa049d765bae67225acf786d898d93d2bbc90;hb=2a38589c6ea247eabf530888912fe555a07252d4;hp=ee4fef34a6e48c44cb22e8b588b0e61f5b4d6da7;hpb=1072318b4d89cddba00e9adeb939249f485f2d13;p=fs%2Flustre-release.git diff --git a/lustre/lclient/lcommon_misc.c b/lustre/lclient/lcommon_misc.c index ee4fef3..26cfa04 100644 --- a/lustre/lclient/lcommon_misc.c +++ b/lustre/lclient/lcommon_misc.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. @@ -26,8 +24,10 @@ * 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. + * + * Copyright (c) 2011, 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -56,10 +56,10 @@ int cl_init_ea_size(struct obd_export *md_exp, struct obd_export *dt_exp) __u32 valsize = sizeof(struct lov_desc); int rc, easize, def_easize, cookiesize; struct lov_desc desc; - __u32 stripes; + __u16 stripes; ENTRY; - rc = obd_get_info(dt_exp, sizeof(KEY_LOVDESC), KEY_LOVDESC, + rc = obd_get_info(NULL, dt_exp, sizeof(KEY_LOVDESC), KEY_LOVDESC, &valsize, &desc, NULL); if (rc) RETURN(rc); @@ -102,13 +102,13 @@ int cl_ocd_update(struct obd_device *host, flags = cli->cl_import->imp_connect_data.ocd_connect_flags; CDEBUG(D_SUPER, "Changing connect_flags: "LPX64" -> "LPX64"\n", lco->lco_flags, flags); - mutex_down(&lco->lco_lock); + mutex_lock(&lco->lco_lock); lco->lco_flags &= flags; /* for each osc event update ea size */ if (lco->lco_dt_exp) cl_init_ea_size(lco->lco_md_exp, lco->lco_dt_exp); - mutex_up(&lco->lco_lock); + mutex_unlock(&lco->lco_lock); result = 0; } else { CERROR("unexpected notification from %s %s!\n", @@ -136,8 +136,9 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock, if (IS_ERR(env)) return PTR_ERR(env); - io = &ccc_env_info(env)->cti_io; + io = ccc_env_thread_io(env); io->ci_obj = obj; + io->ci_ignore_layout = 1; rc = cl_io_init(env, io, CIT_MISC, io->ci_obj); if (rc) { @@ -163,9 +164,10 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock, return PTR_ERR(lock); } - cg->cg_env = cl_env_get(&refcheck); + cg->cg_env = cl_env_get(&refcheck); + cg->cg_io = io; cg->cg_lock = lock; - cg->cg_gid = gid; + cg->cg_gid = gid; LASSERT(cg->cg_env == env); cl_env_unplant(env, &refcheck); @@ -174,9 +176,10 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock, void cl_put_grouplock(struct ccc_grouplock *cg) { - struct lu_env *env = cg->cg_env; - struct cl_lock *lock = cg->cg_lock; - int refcheck; + struct lu_env *env = cg->cg_env; + struct cl_io *io = cg->cg_io; + struct cl_lock *lock = cg->cg_lock; + int refcheck; LASSERT(cg->cg_env); LASSERT(cg->cg_gid); @@ -186,7 +189,7 @@ void cl_put_grouplock(struct ccc_grouplock *cg) cl_unuse(env, lock); cl_lock_release(env, lock, GROUPLOCK_SCOPE, cfs_current()); - cl_io_fini(env, &ccc_env_info(env)->cti_io); + cl_io_fini(env, io); cl_env_put(env, NULL); }