static ssize_t active_show(struct kobject *kobj, struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
struct obd_import *imp;
int rc;
- with_imp_locked(dev, imp, rc)
+ with_imp_locked(obd, imp, rc)
rc = sprintf(buf, "%d\n", !imp->imp_deactive);
return rc;
static ssize_t active_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
bool val;
int rc;
return rc;
/* opposite senses */
- if (dev->u.cli.cl_import->imp_deactive == val)
- rc = ptlrpc_set_import_active(dev->u.cli.cl_import, val);
+ if (obd->u.cli.cl_import->imp_deactive == val)
+ rc = ptlrpc_set_import_active(obd->u.cli.cl_import, val);
else
CDEBUG(D_CONFIG, "activate %u: ignoring repeat request\n",
(unsigned int)val);
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
- ssize_t len;
+ struct client_obd *cli = &obd->u.cli;
- spin_lock(&cli->cl_loi_list_lock);
- len = sprintf(buf, "%u\n", cli->cl_max_rpcs_in_flight);
- spin_unlock(&cli->cl_loi_list_lock);
- return len;
+ return scnprintf(buf, PAGE_SIZE, "%u\n", cli->cl_max_rpcs_in_flight);
}
static ssize_t max_rpcs_in_flight_store(struct kobject *kobj,
const char *buffer,
size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
+ struct client_obd *cli = &obd->u.cli;
int adding, added, req_count;
unsigned int val;
int rc;
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
- unsigned long val;
-
- spin_lock(&cli->cl_loi_list_lock);
- val = PAGES_TO_MiB(cli->cl_dirty_max_pages);
- spin_unlock(&cli->cl_loi_list_lock);
+ struct client_obd *cli = &obd->u.cli;
- return sprintf(buf, "%lu\n", val);
+ return scnprintf(buf, PAGE_SIZE, "%lu\n",
+ PAGES_TO_MiB(cli->cl_dirty_max_pages));
}
static ssize_t max_dirty_mb_store(struct kobject *kobj,
const char *buffer,
size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
+ struct client_obd *cli = &obd->u.cli;
unsigned long pages_number, max_dirty_mb;
int rc;
static int osc_cached_mb_seq_show(struct seq_file *m, void *v)
{
- struct obd_device *dev = m->private;
- struct client_obd *cli = &dev->u.cli;
+ struct obd_device *obd = m->private;
+ struct client_obd *cli = &obd->u.cli;
int shift = 20 - PAGE_SHIFT;
seq_printf(m, "used_mb: %ld\n"
size_t count, loff_t *off)
{
struct seq_file *m = file->private_data;
- struct obd_device *dev = m->private;
- struct client_obd *cli = &dev->u.cli;
+ struct obd_device *obd = m->private;
+ struct client_obd *cli = &obd->u.cli;
u64 pages_number;
const char *tmp;
long rc;
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
- ssize_t len;
-
- spin_lock(&cli->cl_loi_list_lock);
- len = sprintf(buf, "%lu\n", cli->cl_dirty_pages << PAGE_SHIFT);
- spin_unlock(&cli->cl_loi_list_lock);
+ struct client_obd *cli = &obd->u.cli;
- return len;
+ return scnprintf(buf, PAGE_SIZE, "%lu\n",
+ cli->cl_dirty_pages << PAGE_SHIFT);
}
LUSTRE_RO_ATTR(cur_dirty_bytes);
static int osc_cur_grant_bytes_seq_show(struct seq_file *m, void *v)
{
- struct obd_device *dev = m->private;
- struct client_obd *cli = &dev->u.cli;
+ struct obd_device *obd = m->private;
+ struct client_obd *cli = &obd->u.cli;
- spin_lock(&cli->cl_loi_list_lock);
seq_printf(m, "%lu\n", cli->cl_avail_grant);
- spin_unlock(&cli->cl_loi_list_lock);
return 0;
}
return rc;
/* this is only for shrinking grant */
- spin_lock(&cli->cl_loi_list_lock);
- if (val >= cli->cl_avail_grant) {
- spin_unlock(&cli->cl_loi_list_lock);
+ if (val >= cli->cl_avail_grant)
return 0;
- }
-
- spin_unlock(&cli->cl_loi_list_lock);
with_imp_locked(obd, imp, rc)
if (imp->imp_state == LUSTRE_IMP_FULL)
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct client_obd *cli = &dev->u.cli;
- ssize_t len;
+ struct client_obd *cli = &obd->u.cli;
- spin_lock(&cli->cl_loi_list_lock);
- len = sprintf(buf, "%lu\n", cli->cl_lost_grant);
- spin_unlock(&cli->cl_loi_list_lock);
- return len;
+ return scnprintf(buf, PAGE_SIZE, "%lu\n", cli->cl_lost_grant);
}
LUSTRE_RO_ATTR(cur_lost_grant_bytes);
+static ssize_t cur_dirty_grant_bytes_show(struct kobject *kobj,
+ struct attribute *attr,
+ char *buf)
+{
+ struct obd_device *obd = container_of(kobj, struct obd_device,
+ obd_kset.kobj);
+ struct client_obd *cli = &obd->u.cli;
+
+ return scnprintf(buf, PAGE_SIZE, "%lu\n", cli->cl_dirty_grant);
+}
+LUSTRE_RO_ATTR(cur_dirty_grant_bytes);
+
static ssize_t grant_shrink_interval_show(struct kobject *kobj,
struct attribute *attr,
char *buf)
return 0;
for (i = 0; i < ARRAY_SIZE(cksum_name); i++) {
- if (((1 << i) & obd->u.cli.cl_supp_cksum_types) == 0)
+ if ((BIT(i) & obd->u.cli.cl_supp_cksum_types) == 0)
continue;
- if (obd->u.cli.cl_cksum_type == (1 << i))
+ if (obd->u.cli.cl_cksum_type == BIT(i))
seq_printf(m, "[%s] ", cksum_name[i]);
else
seq_printf(m, "%s ", cksum_name[i]);
#ifdef CONFIG_PROC_FS
static int osc_unstable_stats_seq_show(struct seq_file *m, void *v)
{
- struct obd_device *dev = m->private;
- struct client_obd *cli = &dev->u.cli;
+ struct obd_device *obd = m->private;
+ struct client_obd *cli = &obd->u.cli;
long pages;
int mb;
static ssize_t idle_timeout_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
struct obd_import *imp;
struct ptlrpc_request *req;
return -ERANGE;
}
- with_imp_locked(dev, imp, rc) {
+ with_imp_locked(obd, imp, rc) {
if (idle_debug) {
imp->imp_idle_debug = idle_debug;
} else {
static ssize_t idle_connect_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
struct obd_import *imp;
struct ptlrpc_request *req;
int rc;
- with_imp_locked(dev, imp, rc) {
+ with_imp_locked(obd, imp, rc) {
/* to initiate the connection if it's in IDLE state */
req = ptlrpc_request_alloc(imp, &RQF_OST_STATFS);
if (req)
static ssize_t grant_shrink_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
struct obd_import *imp;
bool val;
int rc;
- if (dev == NULL)
+ if (obd == NULL)
return 0;
rc = kstrtobool(buffer, &val);
if (rc)
return rc;
- with_imp_locked(dev, imp, rc) {
+ with_imp_locked(obd, imp, rc) {
spin_lock(&imp->imp_lock);
imp->imp_grant_shrink_disabled = !val;
spin_unlock(&imp->imp_lock);
static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v)
{
struct timespec64 now;
- struct obd_device *dev = seq->private;
- struct client_obd *cli = &dev->u.cli;
+ struct obd_device *obd = seq->private;
+ struct client_obd *cli = &obd->u.cli;
unsigned long read_tot = 0, write_tot = 0, read_cum, write_cum;
int i;
read_cum = 0;
write_cum = 0;
- for (i = 0; i < OBD_HIST_MAX; i++) {
+ for (i = 1; i < OBD_HIST_MAX; i++) {
unsigned long r = cli->cl_read_rpc_hist.oh_buckets[i];
unsigned long w = cli->cl_write_rpc_hist.oh_buckets[i];
read_cum += r;
const char __user *buf,
size_t len, loff_t *off)
{
- struct seq_file *seq = file->private_data;
- struct obd_device *dev = seq->private;
- struct client_obd *cli = &dev->u.cli;
+ struct seq_file *seq = file->private_data;
+ struct obd_device *obd = seq->private;
+ struct client_obd *cli = &obd->u.cli;
- lprocfs_oh_clear(&cli->cl_read_rpc_hist);
- lprocfs_oh_clear(&cli->cl_write_rpc_hist);
- lprocfs_oh_clear(&cli->cl_read_page_hist);
- lprocfs_oh_clear(&cli->cl_write_page_hist);
- lprocfs_oh_clear(&cli->cl_read_offset_hist);
- lprocfs_oh_clear(&cli->cl_write_offset_hist);
+ lprocfs_oh_clear(&cli->cl_read_rpc_hist);
+ lprocfs_oh_clear(&cli->cl_write_rpc_hist);
+ lprocfs_oh_clear(&cli->cl_read_page_hist);
+ lprocfs_oh_clear(&cli->cl_write_page_hist);
+ lprocfs_oh_clear(&cli->cl_read_offset_hist);
+ lprocfs_oh_clear(&cli->cl_write_offset_hist);
- return len;
+ return len;
}
LPROC_SEQ_FOPS(osc_rpc_stats);
static int osc_stats_seq_show(struct seq_file *seq, void *v)
{
struct timespec64 now;
- struct obd_device *dev = seq->private;
- struct osc_stats *stats = &obd2osc_dev(dev)->od_stats;
+ struct obd_device *obd = seq->private;
+ struct osc_stats *stats = &obd2osc_dev(obd)->od_stats;
ktime_get_real_ts64(&now);
const char __user *buf,
size_t len, loff_t *off)
{
- struct seq_file *seq = file->private_data;
- struct obd_device *dev = seq->private;
- struct osc_stats *stats = &obd2osc_dev(dev)->od_stats;
+ struct seq_file *seq = file->private_data;
+ struct obd_device *obd = seq->private;
+ struct osc_stats *stats = &obd2osc_dev(obd)->od_stats;
- memset(stats, 0, sizeof(*stats));
- return len;
+ memset(stats, 0, sizeof(*stats));
+ return len;
}
LPROC_SEQ_FOPS(osc_stats);
-int lprocfs_osc_attach_seqstat(struct obd_device *dev)
+int lprocfs_osc_attach_seqstat(struct obd_device *obd)
{
int rc;
- rc = lprocfs_seq_create(dev->obd_proc_entry, "osc_stats", 0644,
- &osc_stats_fops, dev);
+ rc = lprocfs_seq_create(obd->obd_proc_entry, "osc_stats", 0644,
+ &osc_stats_fops, obd);
if (rc == 0)
- rc = lprocfs_obd_seq_create(dev, "rpc_stats", 0644,
- &osc_rpc_stats_fops, dev);
+ rc = lprocfs_obd_seq_create(obd, "rpc_stats", 0644,
+ &osc_rpc_stats_fops, obd);
return rc;
}
&lustre_attr_contention_seconds.attr,
&lustre_attr_cur_dirty_bytes.attr,
&lustre_attr_cur_lost_grant_bytes.attr,
+ &lustre_attr_cur_dirty_grant_bytes.attr,
&lustre_attr_destroys_in_flight.attr,
&lustre_attr_grant_shrink_interval.attr,
&lustre_attr_lockless_truncate.attr,