#endif
#include <poll.h>
#include <time.h>
+#include <inttypes.h>
#include <libcfs/util/ioctl.h>
#include <libcfs/util/param.h>
rc = -EINVAL;
llapi_error(LLAPI_MSG_ERROR, rc, "error: bad stripe_size %llu, "
"must be an even multiple of %d bytes",
- stripe_size, page_size);
+ (unsigned long long)stripe_size, page_size);
goto out;
}
if (!llapi_stripe_index_is_valid(stripe_offset)) {
rc = -EINVAL;
llapi_error(LLAPI_MSG_ERROR, rc,
"error: stripe size '%llu' over 4GB limit",
- stripe_size);
+ (unsigned long long)stripe_size);
goto out;
}
FILE *fp;
int idx = 0, len = 0, mntlen, fd;
int rc = -ENODEV;
+ int fsnamelen, mountlen;
/* get the mount point */
fp = setmntent(PROC_MOUNTS, "r");
ptr_end++;
/* Check the fsname for a match, if given */
+ mountlen = ptr_end - ptr;
if (!(want & WANT_FSNAME) && fsname != NULL &&
- (strlen(fsname) > 0) &&
- (strncmp(ptr, fsname, ptr_end - ptr) != 0))
- continue;
+ (fsnamelen = strlen(fsname)) > 0 &&
+ (fsnamelen != mountlen ||
+ (strncmp(ptr, fsname, mountlen) != 0)))
+ continue;
/* If the path isn't set return the first one we find */
if (path == NULL || strlen(path) == 0) {
strncpy(mntdir, mnt.mnt_dir, sizeof(mntdir) - 1);
mntdir[sizeof(mntdir) - 1] = '\0';
if ((want & WANT_FSNAME) && fsname != NULL) {
- strncpy(fsname, ptr, ptr_end - ptr);
- fsname[ptr_end - ptr] = '\0';
+ strncpy(fsname, ptr, mountlen);
+ fsname[mountlen] = '\0';
}
rc = 0;
break;
mntdir[sizeof(mntdir) - 1] = '\0';
len = mntlen;
if ((want & WANT_FSNAME) && fsname != NULL) {
- strncpy(fsname, ptr, ptr_end - ptr);
- fsname[ptr_end - ptr] = '\0';
+ strncpy(fsname, ptr, mountlen);
+ fsname[mountlen] = '\0';
}
rc = 0;
}
ver = (__u32)(lmm_oi_id(&lum->lmm_oi) >> 32);
if (yaml)
llapi_printf(LLAPI_MSG_NORMAL, DFID_NOBRACE"\n",
- seq, oid, ver);
+ (unsigned long long)seq, oid, ver);
else
llapi_printf(LLAPI_MSG_NORMAL, DFID"\n",
- seq, oid, ver);
+ (unsigned long long)seq, oid, ver);
}
if (verbose & VERBOSE_STRIPE_COUNT) {
/* Extension size is in KiB */
llapi_printf(LLAPI_MSG_NORMAL, "%llu",
extension ?
- lum->lmm_stripe_size * SEL_UNIT_SIZE :
- lum->lmm_stripe_size);
+ (unsigned long long)(lum->lmm_stripe_size * SEL_UNIT_SIZE) :
+ (unsigned long long)lum->lmm_stripe_size);
}
if (!yaml && is_dir)
separator = " ";
"%4slcme_timestamp: ", " ");
if (yaml) {
llapi_printf(LLAPI_MSG_NORMAL, "%llu",
- entry->lcme_timestamp);
+ (unsigned long long)entry->lcme_timestamp);
} else {
time_t stamp = entry->lcme_timestamp;
char *date_str = asctime(localtime(&stamp));
llapi_printf(LLAPI_MSG_NORMAL,
"%4slcme_extent.e_start: ", " ");
llapi_printf(LLAPI_MSG_NORMAL, "%llu",
- entry->lcme_extent.e_start);
+ (unsigned long long)entry->lcme_extent.e_start);
separator = "\n";
}
llapi_printf(LLAPI_MSG_NORMAL, "%s", "EOF");
else
llapi_printf(LLAPI_MSG_NORMAL, "%llu",
- entry->lcme_extent.e_end);
+ (unsigned long long)entry->lcme_extent.e_end);
separator = "\n";
}
{
struct lov_comp_md_v1 *comp_v1 = NULL;
struct lov_user_md_v1 *v1 = ¶m->fp_lmd->lmd_lmm;
+ __u32 stripe_size = 0;
int ret, i, count = 1;
if (v1->lmm_magic == LOV_USER_MAGIC_FOREIGN)
ent = &comp_v1->lcm_entries[i];
if (ent->lcme_flags & LCME_FL_EXTENSION)
continue;
+ if (!(ent->lcme_flags & LCME_FL_INIT))
+ continue;
}
-
- ret = find_value_cmp(v1->lmm_stripe_size, param->fp_stripe_size,
- param->fp_stripe_size_sign,
- param->fp_exclude_stripe_size,
- param->fp_stripe_size_units, 0);
- /* If any stripe_size matches */
- if (ret != -1)
- break;
+ stripe_size = v1->lmm_stripe_size;
}
+ ret = find_value_cmp(stripe_size, param->fp_stripe_size,
+ param->fp_stripe_size_sign,
+ param->fp_exclude_stripe_size,
+ param->fp_stripe_size_units, 0);
+
return ret;
}
v1 = lov_comp_entry(comp_v1, i);
ent = &comp_v1->lcm_entries[i];
+ if (!(ent->lcme_flags & LCME_FL_INIT))
+ continue;
+
if (ent->lcme_flags & LCME_FL_EXTENSION)
continue;
}
- stripe_count += v1->lmm_stripe_count;
+ stripe_count = v1->lmm_stripe_count;
}
return stripe_count;
/* Is this a lustre fs? */
int llapi_is_lustre_mnttype(const char *type)
{
- return (strcmp(type, "lustre") == 0 || strcmp(type,"lustre_lite") == 0);
+ return strcmp(type, "lustre") == 0 || strcmp(type, "lustre_tgt") == 0;
}
/* Is this a lustre client fs? */