Whamcloud - gitweb
b: 1991
[fs/lustre-release.git] / lustre / utils / liblustreapi.c
index 7ea801c..cb07fa4 100644 (file)
@@ -531,3 +531,44 @@ int op_check(int type_num, char **obd_type, char *dir)
 
 #undef MAX_STRING_SIZE
 
+int op_catinfo(char *dir, char *keyword, char *node_name)
+{
+        char raw[OBD_MAX_IOCTL_BUFFER];
+        char out[LLOG_CHUNK_SIZE];
+        char *buf = raw;
+        struct obd_ioctl_data data;
+        char key[30];
+        DIR *root;
+        int rc;
+        
+        sprintf(key, "%s", keyword);
+        memset(raw, 0, sizeof(buf));
+        memset(out, 0, sizeof(out));
+        data.ioc_inlbuf1 = key;
+        data.ioc_inllen1 = strlen(key) + 1;
+        if (node_name) {
+                data.ioc_inlbuf2 = node_name;
+                data.ioc_inllen2 = strlen(node_name) + 1;
+        }
+        data.ioc_pbuf1 = out;
+        data.ioc_plen1 = sizeof(out);
+        rc = obd_ioctl_pack(&data, &buf, sizeof(raw));
+        if (rc) 
+                return rc;
+        
+        root = opendir(dir);
+        if (root == NULL) {
+                err_msg("open %s failed", dir);
+                return errno;
+        }
+
+        rc = ioctl(dirfd(root), OBD_IOC_LLOG_CATINFO, buf); 
+        if (rc)
+                err_msg("ioctl OBD_IOC_CATINFO failed");
+        else
+                fprintf(stdout, "%s", data.ioc_pbuf1);
+                
+        closedir(root);
+        return rc;
+}
+