int rc;
unsigned long *bitmap = mds->mds_client_bitmap;
- LASSERT(bitmap);
if (!med->med_mcd)
RETURN(0);
CDEBUG(D_INFO, "freeing client at idx %u (%lld)with UUID '%s'\n",
med->med_idx, med->med_off, med->med_mcd->mcd_uuid);
+ LASSERT(bitmap);
+
/* Clear the bit _after_ zeroing out the client so we don't
race with mds_client_add and zero out new clients.*/
if (!test_bit(med->med_idx, bitmap)) {
dentry = lookup_one_len("__iopen__", current->fs->pwd,
strlen("__iopen__"));
- if (IS_ERR(dentry) || !dentry->d_inode) {
- rc = (IS_ERR(dentry)) ? PTR_ERR(dentry): -ENOENT;
- CERROR("cannot open iopen FH directory: rc = %d\n", rc);
+ if (IS_ERR(dentry)) {
+ rc = PTR_ERR(dentry);
+ CERROR("cannot lookup __iopen__ directory: rc = %d\n", rc);
GOTO(err_pop, rc);
}
+ if (!dentry->d_inode) {
+ rc = -ENOENT;
+ CERROR("__iopen__ directory has no inode? rc = %d\n", rc);
+ GOTO(err_fid, rc);
+ }
mds->mds_fid_de = dentry;
dentry = simple_mkdir(current->fs->pwd, "PENDING", 0777, 1);