bucket = dir_hash(ls, name, namelen);
 
-       write_lock(&ls->ls_dirtbl[bucket].lock);
+       spin_lock(&ls->ls_dirtbl[bucket].lock);
 
        de = search_bucket(ls, name, namelen, bucket);
 
        list_del(&de->list);
        kfree(de);
  out:
-       write_unlock(&ls->ls_dirtbl[bucket].lock);
+       spin_unlock(&ls->ls_dirtbl[bucket].lock);
 }
 
 void dlm_dir_clear(struct dlm_ls *ls)
        DLM_ASSERT(list_empty(&ls->ls_recover_list), );
 
        for (i = 0; i < ls->ls_dirtbl_size; i++) {
-               write_lock(&ls->ls_dirtbl[i].lock);
+               spin_lock(&ls->ls_dirtbl[i].lock);
                head = &ls->ls_dirtbl[i].list;
                while (!list_empty(head)) {
                        de = list_entry(head->next, struct dlm_direntry, list);
                        list_del(&de->list);
                        put_free_de(ls, de);
                }
-               write_unlock(&ls->ls_dirtbl[i].lock);
+               spin_unlock(&ls->ls_dirtbl[i].lock);
        }
 }
 
 
        bucket = dir_hash(ls, name, namelen);
 
-       write_lock(&ls->ls_dirtbl[bucket].lock);
+       spin_lock(&ls->ls_dirtbl[bucket].lock);
        de = search_bucket(ls, name, namelen, bucket);
        if (de) {
                *r_nodeid = de->master_nodeid;
-               write_unlock(&ls->ls_dirtbl[bucket].lock);
+               spin_unlock(&ls->ls_dirtbl[bucket].lock);
                if (*r_nodeid == nodeid)
                        return -EEXIST;
                return 0;
        }
 
-       write_unlock(&ls->ls_dirtbl[bucket].lock);
+       spin_unlock(&ls->ls_dirtbl[bucket].lock);
 
        if (namelen > DLM_RESNAME_MAXLEN)
                return -EINVAL;
        de->length = namelen;
        memcpy(de->name, name, namelen);
 
-       write_lock(&ls->ls_dirtbl[bucket].lock);
+       spin_lock(&ls->ls_dirtbl[bucket].lock);
        tmp = search_bucket(ls, name, namelen, bucket);
        if (tmp) {
                kfree(de);
                list_add_tail(&de->list, &ls->ls_dirtbl[bucket].list);
        }
        *r_nodeid = de->master_nodeid;
-       write_unlock(&ls->ls_dirtbl[bucket].lock);
+       spin_unlock(&ls->ls_dirtbl[bucket].lock);
        return 0;
 }