*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
# include <obd_support.h>
#else /* !__KERNEL__ */
# include <malloc.h>
+# include <stdlib.h>
#endif /* __KERNEL__ */
/** \defgroup cfg cfg
LCFG_NODEMAP_DEL_SHKEY = 0x00ce054, /**< delete shared key from cluster */
LCFG_NODEMAP_TEST_NID = 0x00ce055, /**< test for nodemap membership */
LCFG_NODEMAP_TEST_ID = 0x00ce056, /**< test uid/gid mapping */
+ LCFG_NODEMAP_SET_FILESET = 0x00ce057, /**< set fileset */
+ LCFG_NODEMAP_DENY_UNKNOWN = 0x00ce058, /**< deny squashed nodemap users */
+ LCFG_NODEMAP_MAP_MODE = 0x00ce059, /**< set the mapping mode */
};
struct lustre_cfg_bufs {
__u32 i;
size_t offset;
__u32 bufcount;
- LASSERT (lcfg != NULL);
+
+ if (!lcfg)
+ return NULL;
bufcount = lcfg->lcfg_bufcount;
if (index >= bufcount)
* of data. Try to use the padding first though.
*/
if (s[lcfg->lcfg_buflens[index] - 1] != '\0') {
- size_t last = min((size_t)lcfg->lcfg_buflens[index],
- cfs_size_round(lcfg->lcfg_buflens[index]) - 1);
- char lost = s[last];
+ size_t last = cfs_size_round(lcfg->lcfg_buflens[index]) - 1;
+ char lost;
+
+ /* Use the smaller value */
+ if (last > lcfg->lcfg_buflens[index])
+ last = lcfg->lcfg_buflens[index];
+
+ lost = s[last];
s[last] = '\0';
if (lost != '\0') {
CWARN("Truncated buf %d to '%s' (lost '%c'...)\n",
ptr = (char *)lcfg + LCFG_HDR_SIZE(lcfg->lcfg_bufcount);
for (i = 0; i < lcfg->lcfg_bufcount; i++) {
lcfg->lcfg_buflens[i] = bufs->lcfg_buflen[i];
- LOGL((char *)bufs->lcfg_buf[i], bufs->lcfg_buflen[i], ptr);
+ if (bufs->lcfg_buf[i]) {
+ memcpy(ptr, bufs->lcfg_buf[i], bufs->lcfg_buflen[i]);
+ ptr += cfs_size_round(bufs->lcfg_buflen[i]);
+ }
}
}