{
return ldebugfs_import_seq_write(file, buffer, count, off);
}
-
-extern int lprocfs_pinger_recov_seq_show(struct seq_file *m, void *data);
-extern ssize_t
-lprocfs_pinger_recov_seq_write(struct file *file, const char __user *buffer,
- size_t count, loff_t *off);
+ssize_t pinger_recov_show(struct kobject *kobj, struct attribute *attr,
+ char *buf);
+ssize_t pinger_recov_store(struct kobject *kobj, struct attribute *attr,
+ const char *buffer, size_t count);
int string_to_size(u64 *size, const char *buffer, size_t count);
int sysfs_memparse_total(const char *buffer, size_t count, u64 *val,
return 0;
}
-static inline int
-lprocfs_pinger_recov_seq_show(struct seq_file *m, void *data)
-{
- return 0;
-}
-
-static inline ssize_t
-lprocfs_pinger_recov_seq_write(struct file *file, const char __user *buffer,
- size_t count, loff_t *off)
-{
- return 0;
-}
-
/* Statfs helpers */
static inline
int lprocfs_blksize_seq_show(struct seq_file *m, void *data)
LUSTRE_ATTR(mds_conn_uuid, 0444, conn_uuid_show, NULL);
LUSTRE_RO_ATTR(conn_uuid);
+LUSTRE_RW_ATTR(pinger_recov);
LUSTRE_RW_ATTR(ping);
static int mdc_cached_mb_seq_show(struct seq_file *m, void *v)
LPROC_SEQ_FOPS_RO_TYPE(mdc, timeouts);
LPROC_SEQ_FOPS_RO_TYPE(mdc, state);
LPROC_SEQ_FOPS_RW_TYPE(mdc, import);
-LPROC_SEQ_FOPS_RW_TYPE(mdc, pinger_recov);
struct lprocfs_vars lprocfs_mdc_obd_vars[] = {
{ .name = "connect_flags",
.fops = &mdc_import_fops },
{ .name = "state",
.fops = &mdc_state_fops },
- { .name = "pinger_recov",
- .fops = &mdc_pinger_recov_fops },
{ .name = "rpc_stats",
.fops = &mdc_rpc_stats_fops },
{ .name = "batch_stats",
&lustre_attr_max_pages_per_rpc.attr,
&lustre_attr_mds_conn_uuid.attr,
&lustre_attr_conn_uuid.attr,
+ &lustre_attr_pinger_recov.attr,
&lustre_attr_ping.attr,
&lustre_attr_grant_shrink.attr,
&lustre_attr_grant_shrink_interval.attr,
LUSTRE_ATTR(ost_conn_uuid, 0444, conn_uuid_show, NULL);
LUSTRE_RO_ATTR(conn_uuid);
+LUSTRE_RW_ATTR(pinger_recov);
LUSTRE_RW_ATTR(ping);
static int osc_cached_mb_seq_show(struct seq_file *m, void *v)
LPROC_SEQ_FOPS_RO_TYPE(osc, server_uuid);
LPROC_SEQ_FOPS_RO_TYPE(osc, timeouts);
LPROC_SEQ_FOPS_RO_TYPE(osc, state);
-
LPROC_SEQ_FOPS_RW_TYPE(osc, import);
-LPROC_SEQ_FOPS_RW_TYPE(osc, pinger_recov);
struct lprocfs_vars lprocfs_osc_obd_vars[] = {
{ .name = "connect_flags",
.fops = &osc_import_fops },
{ .name = "state",
.fops = &osc_state_fops },
- { .name = "pinger_recov",
- .fops = &osc_pinger_recov_fops },
{ .name = "unstable_stats",
.fops = &osc_unstable_stats_fops },
{ NULL }
&lustre_attr_resend_count.attr,
&lustre_attr_ost_conn_uuid.attr,
&lustre_attr_conn_uuid.attr,
+ &lustre_attr_pinger_recov.attr,
&lustre_attr_ping.attr,
&lustre_attr_idle_timeout.attr,
&lustre_attr_idle_connect.attr,
}
EXPORT_SYMBOL(ldebugfs_import_seq_write);
-int lprocfs_pinger_recov_seq_show(struct seq_file *m, void *n)
+ssize_t pinger_recov_show(struct kobject *kobj, struct attribute *attr,
+ char *buf)
{
- struct obd_device *obd = m->private;
+ struct obd_device *obd = container_of(kobj, struct obd_device,
+ obd_kset.kobj);
struct obd_import *imp;
int rc;
with_imp_locked(obd, imp, rc)
- seq_printf(m, "%d\n", !imp->imp_no_pinger_recover);
+ rc = scnprintf(buf, PAGE_SIZE, "%d\n",
+ !imp->imp_no_pinger_recover);
return rc;
}
-EXPORT_SYMBOL(lprocfs_pinger_recov_seq_show);
+EXPORT_SYMBOL(pinger_recov_show);
-ssize_t
-lprocfs_pinger_recov_seq_write(struct file *file, const char __user *buffer,
- size_t count, loff_t *off)
+ssize_t pinger_recov_store(struct kobject *kobj, struct attribute *attr,
+ const char *buffer, size_t count)
{
- struct seq_file *m = file->private_data;
- struct obd_device *obd = m->private;
+ struct obd_device *obd = container_of(kobj, struct obd_device,
+ obd_kset.kobj);
struct obd_import *imp;
bool val;
int rc;
- rc = kstrtobool_from_user(buffer, count, &val);
+ rc = kstrtobool(buffer, &val);
if (rc < 0)
return rc;
return rc ?: count;
}
-EXPORT_SYMBOL(lprocfs_pinger_recov_seq_write);
+EXPORT_SYMBOL(pinger_recov_store);