/* Write new client data. */
off = med->med_lr_off;
+
+ if (OBD_FAIL_CHECK(OBD_FAIL_TGT_CLIENT_ADD))
+ RETURN(-ENOSPC);
+
mdt_trans_credit_init(env, mdt, MDT_TXN_LAST_RCVD_WRITE_OP);
th = mdt_trans_start(env, mdt);
GOTO(free, rc = PTR_ERR(th));
cfs_mutex_down(&med->med_lcd_lock);
- memset(lcd, 0, sizeof *lcd);
+ memset(lcd->lcd_uuid, 0, sizeof lcd->lcd_uuid);
rc = mdt_last_rcvd_write(env, mdt, lcd, &off, th);
- med->med_lcd = NULL;
cfs_mutex_up(&med->med_lcd_lock);
mdt_trans_stop(env, mdt, th);
- cfs_spin_lock(&mdt->mdt_client_bitmap_lock);
- cfs_clear_bit(med->med_lr_idx, mdt->mdt_client_bitmap);
- cfs_spin_unlock(&mdt->mdt_client_bitmap_lock);
-
CDEBUG(rc == 0 ? D_INFO : D_ERROR, "Zeroing out client idx %u in "
"%s, rc %d\n", med->med_lr_idx, LAST_RCVD, rc);
- OBD_FREE_PTR(lcd);
RETURN(0);
free:
- cfs_mutex_down(&med->med_lcd_lock);
- med->med_lcd = NULL;
- cfs_mutex_up(&med->med_lcd_lock);
- OBD_FREE_PTR(lcd);
return 0;
}