dt_object_fini(&obj->oo_dt);
/* obj doesn't contain an lu_object_header, so we don't need call_rcu */
OBD_SLAB_FREE_PTR(obj, osd_object_kmem);
- if (unlikely(h)) {
- lu_object_header_fini(h);
- OBD_FREE_PRE(h, sizeof(*h), "kfreed");
- kfree_rcu(h, loh_rcu);
- }
+ if (unlikely(h))
+ lu_object_header_free(h);
}
static int
/* we may fix some attributes, better do not change the source */
obj->oo_attr = *attr;
+ obj->oo_attr.la_size = 0;
+ obj->oo_attr.la_nlink = 0;
obj->oo_attr.la_valid |= LA_SIZE | LA_NLINK | LA_TYPE;
#ifdef ZFS_PROJINHERIT
return 0;
}
+static bool osd_check_stale(struct dt_object *dt)
+{
+ return false;
+}
+
static struct dt_object_operations osd_obj_ops = {
.do_read_lock = osd_read_lock,
.do_write_lock = osd_write_lock,
.do_xattr_list = osd_xattr_list,
.do_object_sync = osd_object_sync,
.do_invalidate = osd_invalidate,
+ .do_check_stale = osd_check_stale,
};
static struct lu_object_operations osd_lu_obj_ops = {