* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
* Author: Liang Zhen <liangzhen@clusterfs.com>
*/
+#include <getopt.h>
+#include <pwd.h>
+#include <unistd.h>
+
#include <libcfs/libcfsutil.h>
#include <lnet/lnetctl.h>
#include <lnet/lnetst.h>
-#include <lnet/nidstr.h>
-/* NB: these includes are layering violation */
-#include <lustre_ver.h>
-#include <lustre/lustre_idl.h>
+#include <lnet/lnet.h>
lst_sid_t LST_INVALID_SID = {LNET_NID_ANY, -1};
static lst_sid_t session_id;
static int session_key;
-#if LUSTRE_VERSION_CODE >= OBD_OCD_VERSION(2, 6, 50, 0)
-/* assume all nodes can understand feature LST_FEAT_BULK_LEN */
-static unsigned session_features = LST_FEATS_MASK;
-#else
-static unsigned session_features = LST_FEATS_EMPTY;
-#endif
-
-static lstcon_trans_stat_t trans_stat;
+/* All nodes running 2.6.50 or later understand feature LST_FEAT_BULK_LEN */
+static unsigned session_features = LST_FEATS_MASK;
+static lstcon_trans_stat_t trans_stat;
typedef struct list_string {
- struct list_string *lstr_next;
- int lstr_sz;
- char lstr_str[0];
+ struct list_string *lstr_next;
+ int lstr_sz;
+ char lstr_str[0];
} lstr_t;
#ifndef offsetof
rc = -1;
}
- (*idspp)[i].pid = LUSTRE_LNET_PID;
+ (*idspp)[i].pid = LNET_PID_LUSTRE;
i++;
}
return -1;
}
- } else if (strcasestr(argv[i], "size=") == argv[i] ||
- strcasestr(argv[i], "s=") == argv[i]) {
+ } else if (strcasestr(argv[i], "size=") == argv[i] ||
+ strcasestr(argv[i], "s=") == argv[i]) {
+ int max_size = sysconf(_SC_PAGESIZE) * LNET_MAX_IOV;
+
tok = strchr(argv[i], '=') + 1;
bulk->blk_size = strtol(tok, &end, 0);
else if (*end == 'm' || *end == 'M')
bulk->blk_size *= 1024 * 1024;
- if (bulk->blk_size > PAGE_CACHE_SIZE * LNET_MAX_IOV) {
+ if (bulk->blk_size > max_size) {
fprintf(stderr, "Size exceed limitation: %d bytes\n",
bulk->blk_size);
return -1;