* Copyright (c) 2007, 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/
struct dt_update_request *opd_async_requests;
/* Protect current operations on opd_async_requests. */
struct mutex opd_async_requests_mutex;
+ struct list_head opd_async_updates;
+ struct rw_semaphore opd_async_updates_rwsem;
+ atomic_t opd_async_updates_count;
};
#define opd_pre_lock opd_pre->osp_pre_lock
struct lu_object_header opo_header;
struct dt_object opo_obj;
unsigned int opo_reserved:1,
- opo_new:1,
opo_non_exist:1;
/* read/write lock for md osp object */
struct osp_it {
__u32 ooi_pos_page;
__u32 ooi_pos_lu_page;
+ __u32 ooi_attr;
int ooi_pos_ent;
int ooi_total_npages;
int ooi_valid_npages;
int osp_md_object_create(const struct lu_env *env, struct dt_object *dt,
struct lu_attr *attr, struct dt_allocation_hint *hint,
struct dt_object_format *dof, struct thandle *th);
-int osp_md_declare_attr_set(const struct lu_env *env, struct dt_object *dt,
- const struct lu_attr *attr, struct thandle *th);
-int osp_md_attr_set(const struct lu_env *env, struct dt_object *dt,
- const struct lu_attr *attr, struct thandle *th,
- struct lustre_capa *capa);
+int __osp_md_attr_set(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_attr *attr, struct thandle *th);
extern const struct dt_index_operations osp_md_index_ops;
/* osp_precreate.c */