int lprocfs_evict_client_open(struct inode *inode, struct file *f)
{
- struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode);
+ struct obd_device *obd = PDE_DATA(file_inode(f));
atomic_inc(&obd->obd_evict_inprogress);
return 0;
int lprocfs_evict_client_release(struct inode *inode, struct file *f)
{
- struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode);
+ struct obd_device *obd = PDE_DATA(file_inode(f));
atomic_dec(&obd->obd_evict_inprogress);
wake_up(&obd->obd_evict_inprogress_waitq);
seq_printf(m, "COMPLETE\n");
seq_printf(m, "recovery_start: %lu\n", obd->obd_recovery_start);
seq_printf(m, "recovery_duration: %lu\n",
- obd->obd_recovery_end - obd->obd_recovery_start);
+ obd->obd_recovery_end ?
+ obd->obd_recovery_end - obd->obd_recovery_start :
+ cfs_time_current_sec() - obd->obd_recovery_start);
/* Number of clients that have completed recovery */
seq_printf(m, "completed_clients: %d/%d\n",
obd->obd_max_recoverable_clients -