X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fobdiolib.c;h=b948c45702955c3e834e474a77c167d48b15102e;hb=4cef4816149177ec92628b93c13a32067647b42d;hp=8c79c67337f14f27596636a0cacc5df13dc4916b;hpb=a4346f1ee87f221d8541ad31b2efb3bba41a4df4;p=fs%2Flustre-release.git diff --git a/lustre/utils/obdiolib.c b/lustre/utils/obdiolib.c index 8c79c67..b948c45 100644 --- a/lustre/utils/obdiolib.c +++ b/lustre/utils/obdiolib.c @@ -38,8 +38,7 @@ obdio_iocinit (struct obdio_conn *conn) { memset (&conn->oc_data, 0, sizeof (conn->oc_data)); conn->oc_data.ioc_version = OBD_IOCTL_VERSION; - conn->oc_data.ioc_addr = conn->oc_conn_addr; - conn->oc_data.ioc_cookie = conn->oc_conn_cookie; + conn->oc_data.ioc_dev = conn->oc_device; conn->oc_data.ioc_len = sizeof (conn->oc_data); } @@ -75,7 +74,6 @@ struct obdio_conn * obdio_connect (int device) { struct obdio_conn *conn; - int rc; conn = malloc (sizeof (*conn)); if (conn == NULL) { @@ -91,25 +89,7 @@ obdio_connect (int device) goto failed; } - obdio_iocinit (conn); - conn->oc_data.ioc_dev = device; - rc = obdio_ioctl (conn, OBD_IOC_DEVICE); - if (rc != 0) { - fprintf (stderr, "obdio_connect: Can't set device %d: %s\n", - device, strerror (errno)); - goto failed; - } - - obdio_iocinit (conn); - rc = obdio_ioctl (conn, OBD_IOC_CONNECT); - if (rc != 0) { - fprintf (stderr, "obdio_connect: Can't connect to device %d: %s\n", - device, strerror (errno)); - goto failed; - } - - conn->oc_conn_addr = conn->oc_data.ioc_addr; - conn->oc_conn_cookie = conn->oc_data.ioc_cookie; + conn->oc_device = device; return (conn); failed: @@ -118,7 +98,7 @@ obdio_connect (int device) } void -obdio_disconnect (struct obdio_conn *conn) +obdio_disconnect (struct obdio_conn *conn, int flags) { close (conn->oc_fd); /* obdclass will automatically close on last ref */ @@ -126,40 +106,6 @@ obdio_disconnect (struct obdio_conn *conn) } int -obdio_open (struct obdio_conn *conn, uint64_t oid, struct lustre_handle *fh) -{ - int rc; - - obdio_iocinit (conn); - - conn->oc_data.ioc_obdo1.o_id = oid; - conn->oc_data.ioc_obdo1.o_mode = S_IFREG; - conn->oc_data.ioc_obdo1.o_valid = OBD_MD_FLID | OBD_MD_FLTYPE | OBD_MD_FLMODE; - - rc = obdio_ioctl (conn, OBD_IOC_OPEN); - - if (rc == 0) - memcpy (fh, obdo_handle(&conn->oc_data.ioc_obdo1), sizeof (*fh)); - - return (rc); -} - -int -obdio_close (struct obdio_conn *conn, uint64_t oid, struct lustre_handle *fh) -{ - obdio_iocinit (conn); - - - conn->oc_data.ioc_obdo1.o_id = oid; - conn->oc_data.ioc_obdo1.o_mode = S_IFREG; - memcpy (obdo_handle (&conn->oc_data.ioc_obdo1), fh, sizeof (*fh)); - conn->oc_data.ioc_obdo1.o_valid = OBD_MD_FLID | OBD_MD_FLTYPE | - OBD_MD_FLMODE | OBD_MD_FLHANDLE; - - return (obdio_ioctl (conn, OBD_IOC_CLOSE)); -} - -int obdio_pread (struct obdio_conn *conn, uint64_t oid, char *buffer, uint32_t count, uint64_t offset) { @@ -266,7 +212,6 @@ obdio_new_barrier (uint64_t oid, uint64_t id, int npeers) int obdio_setup_barrier (struct obdio_conn *conn, struct obdio_barrier *b) { - struct lustre_handle fh; struct lustre_handle lh; int rc; int rc2; @@ -279,19 +224,11 @@ obdio_setup_barrier (struct obdio_conn *conn, struct obdio_barrier *b) abort (); } - rc = obdio_open (conn, b->ob_oid, &fh); - if (rc != 0) { - fprintf (stderr, "obdio_setup_barrier "LPX64": Failed to open object: %s\n", - b->ob_oid, strerror (errno)); - return (rc); - } - fileb = (struct obdio_barrier *) obdio_alloc_aligned_buffer (&space, getpagesize ()); if (fileb == NULL) { fprintf (stderr, "obdio_setup_barrier "LPX64": Can't allocate page buffer\n", b->ob_oid); - rc = -1; - goto out_0; + return (-1); } memset (fileb, 0, getpagesize ()); @@ -301,7 +238,7 @@ obdio_setup_barrier (struct obdio_conn *conn, struct obdio_barrier *b) if (rc != 0) { fprintf (stderr, "obdio_setup_barrier "LPX64": Error on enqueue: %s\n", b->ob_oid, strerror (errno)); - goto out_1; + goto out; } rc = obdio_pwrite (conn, b->ob_oid, (void *)fileb, getpagesize (), 0); @@ -315,23 +252,14 @@ obdio_setup_barrier (struct obdio_conn *conn, struct obdio_barrier *b) b->ob_oid, strerror (errno)); rc = rc2; } - out_1: + out: free (space); - out_0: - rc2 = obdio_close (conn, b->ob_oid, &fh); - if (rc == 0 && rc2 != 0) { - fprintf (stderr, "obdio_setup_barrier "LPX64": Error on close: %s\n", - b->ob_oid, strerror (errno)); - rc = rc2; - } - return (rc); } int obdio_barrier (struct obdio_conn *conn, struct obdio_barrier *b) { - struct lustre_handle fh; struct lustre_handle lh; int rc; int rc2; @@ -339,19 +267,11 @@ obdio_barrier (struct obdio_conn *conn, struct obdio_barrier *b) struct obdio_barrier *fileb; char *mode; - rc = obdio_open (conn, b->ob_oid, &fh); - if (rc != 0) { - fprintf (stderr, "obdio_barrier "LPX64": Error on open: %s\n", - b->ob_oid, strerror (errno)); - return (rc); - } - fileb = (struct obdio_barrier *) obdio_alloc_aligned_buffer (&space, getpagesize ()); if (fileb == NULL) { fprintf (stderr, "obdio_barrier "LPX64": Can't allocate page buffer\n", b->ob_oid); - rc = -1; - goto out_0; + return (-1); } rc = obdio_enqueue (conn, b->ob_oid, LCK_PW, 0, getpagesize (), &lh); @@ -452,14 +372,6 @@ obdio_barrier (struct obdio_conn *conn, struct obdio_barrier *b) } out_1: free (space); - out_0: - rc2 = obdio_close (conn, b->ob_oid, &fh); - if (rc == 0 && rc2 != 0) { - fprintf (stderr, "obdio_barrier "LPX64": Error on close: %s\n", - b->ob_oid, strerror (errno)); - rc = rc2; - } - return (rc); }