Whamcloud - gitweb
LU-8130 lu_object: convert lu_object cache to rhashtable
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_handler.c
index 8771715..ef29623 100644 (file)
@@ -1712,7 +1712,7 @@ static int osd_param_is_not_sane(const struct osd_device *dev,
 static void osd_trans_commit_cb(struct super_block *sb,
                                struct ldiskfs_journal_cb_entry *jcb, int error)
 {
-       struct osd_thandle *oh = container_of0(jcb, struct osd_thandle, ot_jcb);
+       struct osd_thandle *oh = container_of(jcb, struct osd_thandle, ot_jcb);
        struct thandle *th = &oh->ot_super;
        struct lu_device *lud = &th->th_dev->dd_lu_dev;
        struct dt_txn_commit_cb *dcb, *tmp;
@@ -1797,7 +1797,7 @@ void osd_trans_dump_creds(const struct lu_env *env, struct thandle *th)
        struct osd_thread_info *oti = osd_oti_get(env);
        struct osd_thandle *oh;
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh != NULL);
 
        CWARN("  create: %u/%u/%u, destroy: %u/%u/%u\n",
@@ -1856,7 +1856,7 @@ static int osd_trans_start(const struct lu_env *env, struct dt_device *d,
 
        LASSERT(current->journal_info == NULL);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh != NULL);
        LASSERT(oh->ot_handle == NULL);
 
@@ -1985,7 +1985,7 @@ static int osd_trans_stop(const struct lu_env *env, struct dt_device *dt,
 
        ENTRY;
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
 
        remove_agents = oh->ot_remove_agents;
 
@@ -2070,8 +2070,8 @@ static int osd_trans_stop(const struct lu_env *env, struct dt_device *dt,
 
 static int osd_trans_cb_add(struct thandle *th, struct dt_txn_commit_cb *dcb)
 {
-       struct osd_thandle *oh = container_of0(th, struct osd_thandle,
-                                              ot_super);
+       struct osd_thandle *oh = container_of(th, struct osd_thandle,
+                                             ot_super);
 
        LASSERT(dcb->dcb_magic == TRANS_COMMIT_CB_MAGIC);
        LASSERT(&dcb->dcb_func != NULL);
@@ -2210,9 +2210,9 @@ int osd_statfs(const struct lu_env *env, struct dt_device *d,
 
        statfs_pack(sfs, ksfs);
        if (unlikely(sb->s_flags & SB_RDONLY))
-               sfs->os_state |= OS_STATE_READONLY;
+               sfs->os_state |= OS_STATFS_READONLY;
 
-       sfs->os_state |= osd->od_nonrotational ? OS_STATE_NONROT : 0;
+       sfs->os_state |= osd->od_nonrotational ? OS_STATFS_NONROT : 0;
 
        if (ldiskfs_has_feature_extents(sb))
                sfs->os_maxbytes = sb->s_maxbytes;
@@ -2704,6 +2704,10 @@ static int osd_attr_get(const struct lu_env *env, struct dt_object *dt,
                attr->la_valid |= LA_FLAGS;
                attr->la_flags |= LUSTRE_ORPHAN_FL;
        }
+       if (obj->oo_lma_flags & LUSTRE_ENCRYPT_FL) {
+               attr->la_valid |= LA_FLAGS;
+               attr->la_flags |= LUSTRE_ENCRYPT_FL;
+       }
        spin_unlock(&obj->oo_guard);
 
        if (S_ISDIR(obj->oo_inode->i_mode) &&
@@ -2793,7 +2797,7 @@ static int osd_declare_attr_set(const struct lu_env *env,
        obj = osd_dt_obj(dt);
        LASSERT(osd_invariant(obj));
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_ATTR_SET,
@@ -3059,7 +3063,7 @@ static int osd_attr_set(const struct lu_env *env,
                if (unlikely(ipd == NULL))
                        RETURN(-ENOMEM);
 
-               oh = container_of0(handle, struct osd_thandle, ot_super);
+               oh = container_of(handle, struct osd_thandle, ot_super);
                rc = iam_update(oh->ot_handle, bag,
                                (const struct iam_key *)fid1,
                                (const struct iam_rec *)id, ipd);
@@ -3453,7 +3457,7 @@ static int __osd_oi_insert(const struct lu_env *env, struct osd_object *obj,
 
        LASSERT(obj->oo_inode != NULL);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle);
        osd_trans_exec_op(env, th, OSD_OT_INSERT);
 
@@ -3519,7 +3523,7 @@ static int osd_declare_create(const struct lu_env *env, struct dt_object *dt,
 
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        /*
@@ -3577,7 +3581,7 @@ static int osd_declare_destroy(const struct lu_env *env, struct dt_object *dt,
        if (inode == NULL)
                RETURN(-ENOENT);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_DESTROY,
@@ -3628,7 +3632,7 @@ static int osd_destroy(const struct lu_env *env, struct dt_object *dt,
 
        ENTRY;
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle);
        LASSERT(inode);
        LASSERT(!lu_object_is_dying(dt->do_lu.lo_header));
@@ -4087,7 +4091,7 @@ static int osd_declare_ref_add(const struct lu_env *env, struct dt_object *dt,
        /* it's possible that object doesn't exist yet */
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_REF_ADD,
@@ -4117,7 +4121,7 @@ static int osd_ref_add(const struct lu_env *env, struct dt_object *dt,
        LASSERT(osd_is_write_locked(env, obj));
        LASSERT(th != NULL);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle != NULL);
 
        osd_trans_exec_op(env, th, OSD_OT_REF_ADD);
@@ -4165,7 +4169,7 @@ static int osd_declare_ref_del(const struct lu_env *env, struct dt_object *dt,
        LASSERT(!dt_object_remote(dt));
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_REF_DEL,
@@ -4193,7 +4197,7 @@ static int osd_ref_del(const struct lu_env *env, struct dt_object *dt,
        LASSERT(osd_is_write_locked(env, obj));
        LASSERT(th != NULL);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle != NULL);
 
        osd_trans_exec_op(env, th, OSD_OT_REF_DEL);
@@ -4344,7 +4348,7 @@ static int osd_declare_xattr_set(const struct lu_env *env,
 
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        if (strcmp(name, XATTR_NAME_LMA) == 0) {
@@ -4563,7 +4567,7 @@ static int osd_xattr_handle_linkea(const struct lu_env *env,
 
        ENTRY;
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle != NULL);
 
        rc = linkea_init_with_rec(&ldata);
@@ -4732,7 +4736,7 @@ static int osd_declare_xattr_del(const struct lu_env *env,
        LASSERT(!dt_object_remote(dt));
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_XATTR_SET,
@@ -5033,7 +5037,7 @@ static int osd_index_declare_iam_delete(const struct lu_env *env,
 {
        struct osd_thandle *oh;
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        /* Recycle  may cause additional three blocks to be changed. */
@@ -5081,7 +5085,7 @@ static int osd_index_iam_delete(const struct lu_env *env, struct dt_object *dt,
        if (unlikely(ipd == NULL))
                RETURN(-ENOMEM);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle != NULL);
        LASSERT(oh->ot_handle->h_transaction != NULL);
 
@@ -5112,7 +5116,7 @@ static int osd_index_declare_ea_delete(const struct lu_env *env,
        LASSERT(!dt_object_remote(dt));
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        credits = osd_dto_credits_noquota[DTO_INDEX_DELETE];
@@ -5375,7 +5379,7 @@ static int osd_index_declare_iam_insert(const struct lu_env *env,
 
        LASSERT(handle != NULL);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        osd_trans_declare_op(env, oh, OSD_OT_INSERT,
@@ -5425,7 +5429,7 @@ static int osd_index_iam_insert(const struct lu_env *env, struct dt_object *dt,
        if (unlikely(ipd == NULL))
                RETURN(-ENOMEM);
 
-       oh = container_of0(th, struct osd_thandle, ot_super);
+       oh = container_of(th, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle != NULL);
        LASSERT(oh->ot_handle->h_transaction != NULL);
        if (S_ISDIR(obj->oo_inode->i_mode)) {
@@ -6020,7 +6024,7 @@ static int osd_index_declare_ea_insert(const struct lu_env *env,
        LASSERT(fid != NULL);
        LASSERT(rec1->rec_type != 0);
 
-       oh = container_of0(handle, struct osd_thandle, ot_super);
+       oh = container_of(handle, struct osd_thandle, ot_super);
        LASSERT(oh->ot_handle == NULL);
 
        credits = osd_dto_credits_noquota[DTO_INDEX_INSERT];
@@ -7970,10 +7974,8 @@ static struct lu_device *osd_device_free(const struct lu_env *env,
        /* XXX: make osd top device in order to release reference */
        d->ld_site->ls_top_dev = d;
        lu_site_purge(env, d->ld_site, -1);
-       if (!cfs_hash_is_empty(d->ld_site->ls_obj_hash)) {
-               LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_ERROR, NULL);
-               lu_site_print(env, d->ld_site, &msgdata, lu_cdebug_printer);
-       }
+       lu_site_print(env, d->ld_site, &d->ld_site->ls_obj_hash.nelems,
+                     D_ERROR, lu_cdebug_printer);
        lu_site_fini(&o->od_site);
        dt_device_fini(&o->od_dt_dev);
        OBD_FREE_PTR(o);