struct lquota_id_info oti_qi;
struct lu_seq_range oti_seq_range;
- struct lu_buf oti_xattr_lbuf;
};
extern struct lu_context_key osd_key;
struct list_head ot_stop_dcb_list;
struct list_head ot_unlinked_list;
struct list_head ot_sa_list;
+ struct semaphore ot_sa_lock;
dmu_tx_t *ot_tx;
struct lquota_trans ot_quota_trans;
__u32 ot_write_commit:1,
struct rw_semaphore oo_sem;
/* to serialize some updates: destroy vs. others,
- * xattr_set, etc */
+ * xattr_set, object block size change etc */
struct rw_semaphore oo_guard;
/* protected by oo_guard */
uint64_t oo_xattr;
enum osd_destroy_type oo_destroy;
- __u32 oo_destroyed:1,
- oo_late_xattr:1;
+ __u32 oo_destroyed:1;
/* the i_flags in LMA */
__u32 oo_lma_flags;
/* osd_object.c */
extern char *osd_obj_tag;
-void osd_object_sa_dirty_rele(const struct lu_env *env, struct osd_thandle *oh);
-void osd_object_sa_dirty_add(struct osd_object *obj, struct osd_thandle *oh);
+void osd_object_sa_dirty_rele(struct osd_thandle *oh);
int __osd_obj2dbuf(const struct lu_env *env, objset_t *os,
uint64_t oid, dmu_buf_t **dbp);
struct lu_object *osd_object_alloc(const struct lu_env *env,
uint64_t osd_zap_cursor_serialize(zap_cursor_t *zc);
/* osd_xattr.c */
-int __osd_sa_xattr_update(const struct lu_env *env, struct osd_object *obj,
- struct osd_thandle *oh);
int __osd_xattr_load(struct osd_device *osd, uint64_t dnode,
nvlist_t **sa_xattr);
int __osd_xattr_get_large(const struct lu_env *env, struct osd_device *osd,
}
#endif /* HAVE_DMU_OBJECT_ALLOC_DNSIZE */
+#ifdef HAVE_DMU_PREFETCH_6ARG
+#define osd_dmu_prefetch(os, obj, lvl, off, len, pri) \
+ dmu_prefetch((os), (obj), (lvl), (off), (len), (pri))
+#else
+#define osd_dmu_prefetch(os, obj, lvl, off, len, pri) \
+ dmu_prefetch((os), (obj), (lvl), (off))
+#endif
+
#endif /* _OSD_INTERNAL_H */