}
if (!newfrag) {
- spin_unlock(&ci->vfs_inode.i_lock);
newfrag = kmalloc(sizeof(*frag), GFP_NOFS);
- spin_lock(&ci->vfs_inode.i_lock);
if (!newfrag)
return ERR_PTR(-ENOMEM);
goto retry;
unsigned nway, i;
u32 n;
- spin_lock(&ci->vfs_inode.i_lock);
+ mutex_lock(&ci->i_fragtree_mutex);
while (1) {
WARN_ON(!frag_contains_value(t, v));
frag = __ceph_find_frag(ci, t);
}
dout(30, "choose_frag(%x) = %x\n", v, t);
- spin_unlock(&ci->vfs_inode.i_lock);
+ mutex_unlock(&ci->i_fragtree_mutex);
return t;
}
int i;
int err = 0;
- spin_lock(&inode->i_lock);
+ mutex_lock(&ci->i_fragtree_mutex);
if (mds < 0 && ndist == 0) {
/* no delegation info needed. */
frag = __ceph_find_frag(ci, id);
ceph_vinop(inode), frag->frag, frag->mds, frag->ndist);
out:
- spin_unlock(&inode->i_lock);
+ mutex_unlock(&ci->i_fragtree_mutex);
return err;
}