*
* 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
*/
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2015, Intel Corporation.
+ * Copyright (c) 2011, 2016, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
extern const struct dt_index_features dt_directory_features;
extern const struct dt_index_features dt_otable_features;
-extern const struct dt_index_features dt_lfsck_orphan_features;
-extern const struct dt_index_features dt_lfsck_features;
+extern const struct dt_index_features dt_lfsck_layout_orphan_features;
+extern const struct dt_index_features dt_lfsck_layout_dangling_features;
+extern const struct dt_index_features dt_lfsck_namespace_features;
/* index features supported by the accounting objects */
extern const struct dt_index_features dt_acct_features;
struct dt_object *dt,
struct ldlm_enqueue_info *einfo,
union ldlm_policy_data *policy);
+
+ /**
+ * Invalidate attribute cache.
+ *
+ * This method invalidate attribute cache of the object, which is on OSP
+ * only.
+ *
+ * \param[in] env execution envionment for this thread
+ * \param[in] dt object
+ *
+ * \retval 0 on success
+ * \retval negative negated errno on error
+ */
+ int (*do_invalidate)(const struct lu_env *env, struct dt_object *dt);
};
/**
unsigned int th_sync:1,
/* local transation, no need to inform other layers */
th_local:1,
- /* Whether we need wait the transaction to be submitted */
+ /* Whether we need wait the transaction to be submitted
+ * (send to remote target) */
th_wait_submit:1,
- /* complex transaction which will track updates on all targets */
+ /* complex transaction which will track updates on all targets,
+ * including OSTs */
th_complex:1;
};
return dt->do_ops->do_xattr_list(env, dt, buf);
}
+static inline int dt_invalidate(const struct lu_env *env, struct dt_object *dt)
+{
+ LASSERT(dt);
+ LASSERT(dt->do_ops);
+ LASSERT(dt->do_ops->do_invalidate);
+
+ return dt->do_ops->do_invalidate(env, dt);
+}
+
static inline int dt_declare_delete(const struct lu_env *env,
struct dt_object *dt,
const struct dt_key *key,