X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fofd%2Fofd_trans.c;h=41e097157dc49a1837503e873a91725e4caf1069;hb=HEAD;hp=67cc912b13ee37d25cdeb1d6b73e706ab358d975;hpb=466b89e41c3917a8a836065f72bfa62e57c818bd;p=fs%2Flustre-release.git diff --git a/lustre/ofd/ofd_trans.c b/lustre/ofd/ofd_trans.c index 67cc912..367ca24 100644 --- a/lustre/ofd/ofd_trans.c +++ b/lustre/ofd/ofd_trans.c @@ -15,11 +15,7 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ @@ -27,22 +23,36 @@ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, 2013, Intel Corporation. + * Copyright (c) 2012, 2014, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. * - * lustre/ofd/ofd_recovery.c + * lustre/ofd/ofd_trans.c + * + * This file provides functions for OBD Filter Device (OFD) transaction + * management. * - * Author: Alex Zhuravlev - * Author: Mikhail Pershin + * Author: Alex Zhuravlev + * Author: Mikhail Pershin */ #define DEBUG_SUBSYSTEM S_FILTER #include "ofd_internal.h" +/** + * Create new transaction in OFD. + * + * This function creates a transaction with dt_trans_create() + * and makes it synchronous if required by the export state. + * + * \param[in] env execution environment + * \param[in] ofd OFD device + * + * \retval struct thandle if transaction was created successfully + * \retval ERR_PTR on negative value in case of error + */ struct thandle *ofd_trans_create(const struct lu_env *env, struct ofd_device *ofd) { @@ -61,6 +71,20 @@ struct thandle *ofd_trans_create(const struct lu_env *env, return th; } +/** + * Start transaction in OFD. + * + * This function updates the given \a obj object version and calls + * dt_trans_start(). + * + * \param[in] env execution environment + * \param[in] ofd OFD device + * \param[in] obj OFD object affected by this transaction + * \param[in] th transaction handle + * + * \retval 0 if successful + * \retval negative value in case of error + */ int ofd_trans_start(const struct lu_env *env, struct ofd_device *ofd, struct ofd_object *obj, struct thandle *th) { @@ -71,9 +95,23 @@ int ofd_trans_start(const struct lu_env *env, struct ofd_device *ofd, return dt_trans_start(env, ofd->ofd_osd, th); } -void ofd_trans_stop(const struct lu_env *env, struct ofd_device *ofd, +/** + * Stop transaction in OFD. + * + * This function fills thandle::th_result with result of whole operation + * and calls dt_trans_stop(). + * + * \param[in] env execution environment + * \param[in] ofd OFD device + * \param[in] th transaction handle + * \param[in] rc result code of whole operation + * + * \retval 0 if successful + * \retval negative value if case of error + */ +int ofd_trans_stop(const struct lu_env *env, struct ofd_device *ofd, struct thandle *th, int rc) { th->th_result = rc; - dt_trans_stop(env, ofd->ofd_osd, th); + return dt_trans_stop(env, ofd->ofd_osd, th); }