#include <linux/lustre_dlm.h>
#include <linux/init.h>
#include <linux/fs.h>
+#include <linux/lprocfs_status.h>
+
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
kmem_cache_t *ll_file_data_slab;
extern int ll_commitcbd_setup(struct ll_sb_info *);
extern int ll_commitcbd_cleanup(struct ll_sb_info *);
+extern int rd_dev_uuid(char* page, char **start, off_t off,
+ int count, int *eof, void *data);
+
+extern int rd_dev_name(char* page, char **start, off_t off,
+ int count, int *eof, void *data);
+
+
+extern lprocfs_vars_t status_var_nm_1[];
+
static char *ll_read_opt(const char *opt, char *data)
{
char *value;
struct ll_read_inode2_cookie lic;
class_uuid_t uuid;
+
+ /* Lprocfs variables */
+ char mnt_name[100];
+ char uuid_name[100];
+ lprocfs_vars_t d_vars[3];
+
+
+
ENTRY;
MOD_INC_USE_COUNT;
ptlrpc_req_finished(request);
request = NULL;
+
+ /* Register this mount instance with LProcFS */
+
+ snprintf(mnt_name, 100, "mount_%s", sbi->ll_sb_uuid);
+ sbi->ll_mnt_root=lprocfs_reg_mnt(mnt_name);
+ if(!sbi->ll_mnt_root)
+ goto out_dev;
+
+ /* Add the static configuration info */
+ lprocfs_add_vars(sbi->ll_mnt_root, (lprocfs_vars_t*)status_var_nm_1,
+ (void*)sb);
+
+ /* Add the dynamic configuration stuff */
+ /* MDC */
+ obd = class_uuid2obd(mdc);
+
+ /* Reuse mnt_name */
+
+ sprintf(mnt_name, "status/%s/common_name", obd->obd_type->typ_name);
+
+ memset(d_vars, 0, sizeof(d_vars));
+ d_vars[0].read_fptr=rd_dev_name;
+ d_vars[0].write_fptr=0;
+ d_vars[0].name=(char*)mnt_name;
+
+ memset(uuid_name, '\0', strlen(uuid_name));
+ sprintf(uuid_name, "status/%s/uuid", obd->obd_type->typ_name);
+ d_vars[1].read_fptr=rd_dev_uuid;
+ d_vars[1].write_fptr=0;
+ d_vars[1].name=(char*)uuid_name;
+
+ err=lprocfs_add_vars(sbi->ll_mnt_root, (lprocfs_vars_t*)d_vars,
+ (void*)obd);
+ if (err) {
+ CDEBUG(D_OTHER, "Unable to add fs proc dynamic variables");
+ }
+
+ /* OSC or LOV*/
+ obd = class_uuid2obd(osc);
+ /* Reuse mnt_name */
+ memset(mnt_name, '\0', strlen(mnt_name));
+ sprintf(mnt_name, "status/%s/common_name", obd->obd_type->typ_name);
+
+ memset(d_vars, 0, sizeof(d_vars));
+ d_vars[0].read_fptr=rd_dev_name;
+ d_vars[0].write_fptr=0;
+ d_vars[0].name=(char*)mnt_name;
+
+ memset(uuid_name, '\0', strlen(uuid_name));
+ sprintf(uuid_name, "status/%s/uuid", obd->obd_type->typ_name);
+ d_vars[1].read_fptr=rd_dev_uuid;
+ d_vars[1].write_fptr=0;
+ d_vars[1].name=(char*)uuid_name;
+
+ err=lprocfs_add_vars(sbi->ll_mnt_root, (lprocfs_vars_t*)d_vars,
+ (void*)obd);
+ if (err) {
+ CDEBUG(D_OTHER, "Unable to add fs proc dynamic variables");
+ }
out_dev:
if (mdc)
OBD_FREE(mdc, strlen(mdc) + 1);
*/
mdc_getstatus(&sbi->ll_mdc_conn, &rootfid);
+ lprocfs_dereg_mnt(sbi->ll_mnt_root);
obd_disconnect(&sbi->ll_mdc_conn);
OBD_FREE(sbi, sizeof(*sbi));