/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
* vim:expandtab:shiftwidth=8:tabstop=8:
*
- * Copyright (C) 2002 Cluster File Systems, Inc.
- * Author: Eric Barton <eeb@clusterfs.com>
+ * GPL HEADER START
*
- * This file is part of Lustre, http://www.lustre.org.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Lustre is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
*
- * Lustre is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
*
- * You should have received a copy of the GNU General Public License
- * along with Lustre; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * 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.
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * lustre/utils/obdio.c
+ *
+ * Author: Eric Barton <eeb@clusterfs.com>
*/
#include <stdio.h>
int
obdio_test_fixed_extent (struct obdio_conn *conn,
- uint32_t myhid, uint32_t mypid,
- int reps, int locked, uint64_t oid,
- uint64_t offset, uint32_t size)
+ __u32 myhid, __u32 mypid,
+ int reps, int locked, __u64 oid,
+ __u64 offset, __u32 size)
{
- struct lustre_handle fh;
struct lustre_handle lh;
void *space;
void *buffer;
- uint32_t *ibuf;
+ __u32 *ibuf;
int i;
int j;
- int rc;
- int rc2;
-
- rc = obdio_open (conn, oid, &fh);
- if (rc != 0) {
- fprintf (stderr, "Failed to open object "LPX64": %s\n",
- oid, strerror (errno));
- return (rc);
- }
+ int rc = 0;
- buffer = obdio_alloc_aligned_buffer (&space, size);
- if (buffer == NULL) {
+ space = obdio_alloc_aligned_buffer (&buffer, size);
+ if (space == NULL) {
fprintf (stderr, "Can't allocate buffer size %d\n", size);
- rc = -1;
- goto out_0;
+ return (-1);
}
for (i = 0; i < reps; i++) {
- ibuf = (uint32_t *) buffer;
+ ibuf = (__u32 *) buffer;
for (j = 0; j < size / (4 * sizeof (*ibuf)); j++) {
ibuf[0] = myhid;
ibuf[1] = mypid;
}
if (locked) {
- rc = obdio_enqueue (conn, oid, LCK_PW, offset, size, &lh);
+ rc = obdio_enqueue(conn, oid, LCK_PW, offset, size,&lh);
if (rc != 0) {
- fprintf (stderr, "Error on enqueue "LPX64" @ "LPU64" for %u: %s\n",
- oid, offset, size, strerror (errno));
- goto out_1;
+ fprintf(stderr, "Error on enqueue "LPX64" @ "
+ LPU64" for %u: %s\n",
+ oid, offset, size, strerror (errno));
+ goto out;
}
}
rc = obdio_pwrite (conn, oid, buffer, size, offset);
if (rc != 0) {
- fprintf (stderr, "Error writing "LPX64" @ "LPU64" for %u: %s\n",
- oid, offset, size, strerror (errno));
+ fprintf(stderr, "Error writing "LPX64" @ "LPU64
+ " for %u: %s\n",
+ oid, offset, size, strerror (errno));
if (locked)
obdio_cancel (conn, &lh);
rc = -1;
- goto out_1;
+ goto out;
}
memset (buffer, 0xbb, size);
rc = obdio_pread (conn, oid, buffer, size, offset);
if (rc != 0) {
- fprintf (stderr, "Error reading "LPX64" @ "LPU64" for %u: %s\n",
- oid, offset, size, strerror (errno));
+ fprintf(stderr, "Error reading "LPX64" @ "LPU64
+ " for %u: %s\n",
+ oid, offset, size, strerror (errno));
if (locked)
obdio_cancel (conn, &lh);
rc = -1;
- goto out_1;
+ goto out;
}
if (locked) {
rc = obdio_cancel (conn, &lh);
if (rc != 0) {
- fprintf (stderr, "Error on cancel "LPX64" @ "LPU64" for %u: %s\n",
- oid, offset, size, strerror (errno));
+ fprintf(stderr, "Error on cancel "LPX64" @ "
+ LPU64" for %u: %s\n",
+ oid, offset, size, strerror (errno));
rc = -1;
- goto out_1;
+ goto out;
}
}
- ibuf = (uint32_t *) buffer;
+ ibuf = (__u32 *) buffer;
for (j = 0; j < size / (4 * sizeof (*ibuf)); j++) {
if (ibuf[0] != myhid ||
ibuf[1] != mypid ||
ibuf[2] != i ||
ibuf[3] != j) {
- fprintf (stderr, "Error checking "LPX64" @ "LPU64" for %u, chunk %d\n",
- oid, offset, size, j);
- fprintf (stderr, "Expected [%x,%x,%x,%x], got [%x,%x,%x,%x]\n",
- myhid, mypid, i, j, ibuf[0], ibuf[1], ibuf[2], ibuf[3]);
+ fprintf(stderr, "Error checking "LPX64" @ "
+ LPU64" for %u, chunk %d\n",
+ oid, offset, size, j);
+ fprintf(stderr, "Expected [%x,%x,%x,%x], "
+ "got [%x,%x,%x,%x]\n",
+ myhid, mypid, i, j,
+ ibuf[0], ibuf[1], ibuf[2], ibuf[3]);
rc = -1;
- goto out_1;
+ goto out;
}
ibuf += 4;
}
}
- out_1:
+ out:
free (space);
- out_0:
- rc2 = obdio_close (conn, oid, &fh);
- if (rc2 != 0)
- fprintf (stderr, "Error closing object "LPX64": %s\n",
- oid, strerror (errno));
return (rc);
}
int
-parse_kmg (uint64_t *valp, char *str)
+parse_kmg (__u64 *valp, char *str)
{
- uint64_t val;
+ __u64 val;
char mod[32];
switch (sscanf (str, LPU64"%1[gGmMkK]", &val, mod))
int
main (int argc, char **argv)
{
- uint32_t mypid = getpid ();
- uint32_t myhid = gethostid ();
- uint64_t oid;
- uint64_t base_offset = 0;
- uint32_t size = 0;
+ __u32 mypid = getpid ();
+ __u32 myhid = gethostid ();
+ __u64 oid;
+ __u64 base_offset = 0;
+ __u32 size = 0;
int set_size = 0;
int device = -1;
int reps = 1;
int locked = 0;
char *end;
struct obdio_conn *conn;
- uint64_t val;
+ __u64 val;
int v1;
int v2;
int rc;
optarg);
return (1);
}
- size = (uint32_t)val;
+ size = (__u32)val;
set_size++;
break;
return (rc == 0 ? 0 : 1);
}
-
-