ENTRY;
- down_read(&obj->oo_sem);
+ down_read(&obj->oo_guard);
rc = hash_index_lookup(hind, (void *)key, rec);
- up_read(&obj->oo_sem);
+ up_read(&obj->oo_guard);
RETURN(rc);
}
ENTRY;
- down_write(&obj->oo_sem);
+ down_write(&obj->oo_guard);
rc = hash_index_insert(hind, (void *)key, 0, (void *)rec, 0);
- up_write(&obj->oo_sem);
+ up_write(&obj->oo_guard);
RETURN(rc);
}
ENTRY;
- down_write(&obj->oo_sem);
+ down_write(&obj->oo_guard);
hash_index_remove(hind, (void *)key);
- up_write(&obj->oo_sem);
+ up_write(&obj->oo_guard);
RETURN(0);
}
hind = &MEMFS_I(obj->oo_inode)->mei_hash_index;
keylen = hind->hi_htbl_params.key_len;
- down_read(&obj->oo_sem);
+ down_read(&obj->oo_guard);
list_for_each_entry(entry, &hind->hi_list, he_list_item) {
if (memcmp(key, entry->he_buf, keylen) == 0) {
it->hit_cursor = &entry->he_list_item;
break;
}
}
- up_read(&obj->oo_sem);
+ up_read(&obj->oo_guard);
RETURN(rc);
}
RETURN(-ENOENT);
hind = &MEMFS_I(obj->oo_inode)->mei_hash_index;
- down_read(&obj->oo_sem);
+ down_read(&obj->oo_guard);
it->hit_cursor = it->hit_cursor->next;
if (it->hit_cursor == &hind->hi_list)
rc = 1;
- up_read(&obj->oo_sem);
+ up_read(&obj->oo_guard);
RETURN(rc);
}
LASSERT(!dt_object_remote(dt));
- spin_lock(&obj->oo_guard);
+ down_read(&obj->oo_guard);
osd_inode_getattr(env, obj->oo_inode, attr);
if (obj->oo_lma_flags & LUSTRE_ORPHAN_FL) {
attr->la_valid |= LA_FLAGS;
attr->la_valid |= LA_FLAGS;
attr->la_flags |= LUSTRE_ENCRYPT_FL;
}
- spin_unlock(&obj->oo_guard);
+ up_read(&obj->oo_guard);
+
CDEBUG(D_INFO, "%s: getattr "DFID" inode@%pK nlink=%d\n",
osd_name(osd_obj2dev(obj)), PFID(lu_object_fid(&dt->do_lu)),
obj->oo_inode, obj->oo_inode->i_nlink);
+
return 0;
}
LASSERT(!dt_object_remote(dt));
inode = obj->oo_inode;
- spin_lock(&obj->oo_guard);
+ down_write(&obj->oo_guard);
rc = osd_inode_setattr(env, inode, attr);
- spin_unlock(&obj->oo_guard);
+ up_write(&obj->oo_guard);
if (rc)
RETURN(rc);
osd_name(osd), PFID(fid), inode->i_ino,
inode->i_nlink);
- spin_lock(&obj->oo_guard);
+ down_write(&obj->oo_guard);
clear_nlink(inode);
- spin_unlock(&obj->oo_guard);
+ up_write(&obj->oo_guard);
}
set_bit(LU_OBJECT_HEARD_BANSHEE, &dt->do_lu.lo_header->loh_flags);
* This also has to properly handle the case of inodes with nlink == 0
* in case they are being linked into the PENDING directory
*/
- spin_lock(&obj->oo_guard);
+ down_write(&obj->oo_guard);
if (unlikely(inode->i_nlink == 0))
/* inc_nlink from 0 may cause WARN_ON */
set_nlink(inode, 1);
else
inc_nlink(inode);
- spin_unlock(&obj->oo_guard);
+ up_write(&obj->oo_guard);
return rc;
}
if (CFS_FAIL_CHECK(OBD_FAIL_OSD_REF_DEL))
return -EIO;
- spin_lock(&obj->oo_guard);
+ down_write(&obj->oo_guard);
if (inode->i_nlink == 0) {
CDEBUG_LIMIT(fid_is_norm(lu_object_fid(&dt->do_lu)) ?
D_ERROR : D_INODE, "%s: nlink == 0 on "DFID".\n",
osd_name(osd), PFID(lu_object_fid(&dt->do_lu)));
- spin_unlock(&obj->oo_guard);
+ up_write(&obj->oo_guard);
return 0;
}
if (!S_ISDIR(inode->i_mode) || inode->i_nlink > 2)
drop_nlink(inode);
- spin_unlock(&obj->oo_guard);
+ up_write(&obj->oo_guard);
return 0;
}