* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2012, Intel Corporation.
+ * Copyright (c) 2011, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <obd_class.h>
#include <lprocfs_status.h>
-#ifdef LPROCFS
+#include "mdc_internal.h"
+
+#ifdef CONFIG_PROC_FS
static int mdc_max_rpcs_in_flight_seq_show(struct seq_file *m, void *v)
{
}
LPROC_SEQ_FOPS(mdc_max_rpcs_in_flight);
+
+static int mdc_max_mod_rpcs_in_flight_seq_show(struct seq_file *m, void *v)
+{
+ struct obd_device *dev = m->private;
+ __u16 max;
+ int rc;
+
+ max = obd_get_max_mod_rpcs_in_flight(&dev->u.cli);
+ rc = seq_printf(m, "%hu\n", max);
+
+ return rc;
+}
+
+static ssize_t mdc_max_mod_rpcs_in_flight_seq_write(struct file *file,
+ const char *buffer,
+ size_t count,
+ loff_t *off)
+{
+ struct obd_device *dev =
+ ((struct seq_file *)file->private_data)->private;
+ int val;
+ int rc;
+
+ rc = lprocfs_write_helper(buffer, count, &val);
+ if (rc != 0)
+ return rc;
+
+ if (val < 0 || val > USHRT_MAX)
+ return -ERANGE;
+
+ rc = obd_set_max_mod_rpcs_in_flight(&dev->u.cli, val);
+ if (rc != 0)
+ count = rc;
+
+ return count;
+}
+LPROC_SEQ_FOPS(mdc_max_mod_rpcs_in_flight);
+
LPROC_SEQ_FOPS_WO_TYPE(mdc, ping);
LPROC_SEQ_FOPS_RO_TYPE(mdc, uuid);
.fops = &mdc_obd_max_pages_per_rpc_fops },
{ .name = "max_rpcs_in_flight",
.fops = &mdc_max_rpcs_in_flight_fops },
+ { .name = "max_mod_rpcs_in_flight",
+ .fops = &mdc_max_mod_rpcs_in_flight_fops },
{ .name = "timeouts",
.fops = &mdc_timeouts_fops },
{ .name = "import",
.fops = &mdc_state_fops },
{ .name = "pinger_recov",
.fops = &mdc_pinger_recov_fops },
- { 0 }
+ { NULL }
};
-#endif /* LPROCFS */
+#endif /* CONFIG_PROC_FS */