Date: Fri, 13 Jul 2007 13:10:17 GMT From: Sonja Milicic <smilicic@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 123439 for review Message-ID: <200707131310.l6DDAHSO085838@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=123439 Change 123439 by smilicic@tanarri_marilith on 2007/07/13 13:09:48 added license statements to files that didn't have them fixed a bug in g_log_access redirecting write requests to log file now works Affected files ... .. //depot/projects/soc2007/smilicic_glog/sys/geom/log/geom_log_so.c#2 edit .. //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog.c#7 edit .. //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog_fileops.c#2 edit .. //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog_fileops.h#2 edit Differences ... ==== //depot/projects/soc2007/smilicic_glog/sys/geom/log/geom_log_so.c#2 (text+ko) ==== @@ -1,3 +1,29 @@ +/*- + * Copyright (c) 2007 Sonja Milicic <tanarri@geri.cc.fer.hr> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); @@ -30,7 +56,7 @@ { 'f', "force", NULL, G_TYPE_NONE }, G_OPT_SENTINEL }, - "[-fv] name ..." + "[-fv] prov ..." }, { "start", G_FLAG_VERBOSE, NULL, { @@ -42,13 +68,13 @@ { G_OPT_SENTINEL }, - "[-v] name ..." + "[-v] prov ..." }, { "rollback", G_FLAG_VERBOSE, NULL, { G_OPT_SENTINEL }, - "[-v] name ..." + "[-v] prov ..." }, G_CMD_SENTINEL ==== //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog.c#7 (text+ko) ==== @@ -188,13 +188,13 @@ sc->sc_prov_disk = pp_disk; sc->sc_cons_disk = cp_disk; - /*create provider for log*/ + /*create provider and consumer for log*/ pp_log = g_new_providerf(gp, "%s.log", prov); - pp_log->mediasize = (off_t) 1000; + pp_log->mediasize = pp_disk->mediasize; pp_log->sectorsize = pp_disk->sectorsize; g_error_provider(pp_log, 0); + sc->sc_prov_log = pp_log; - if (g_log_event_sink_init(sc, &sc->sc_events, g_log_worker, "events") !=0){ *err=4; g_log_event_sink_destroy(&sc->sc_events); @@ -302,23 +302,27 @@ g_log_start(struct bio *bp) { struct g_log_softc *sc; + G_LOG_DEBUG(0, "request received."); + sc = bp->bio_to->geom->softc; KASSERT(sc != NULL, ("Provider's error should be set (error=%d)(device=%s).", bp->bio_to->error, bp->bio_to->name)); G_LOG_LOGREQ(DBG_NOTICE, bp, "Request received."); - g_io_deliver(bp, ENXIO); - return; switch(bp->bio_cmd) { case BIO_WRITE: + G_LOG_DEBUG(0, "Write request received."); g_log_post_event(&sc->sc_events, GLOG_EVWRITE, GLOG_FLAG_WAKEUP_SC, bp, 0); break; case BIO_READ: + g_io_deliver(bp, ENXIO); + return; g_log_post_event(&sc->sc_events, GLOG_EVREAD, GLOG_FLAG_WAKEUP_SC, bp, 0); break; default: - break; + g_io_deliver(bp, ENXIO); + return; } return; } @@ -374,7 +378,6 @@ g_wither_geom(gp, ENXIO); - G_LOG_DEBUG(0, "Really destroyed %s.", gp->name); return 0; } @@ -388,6 +391,7 @@ gp = pp->geom; sc = gp->softc; + cp = sc->sc_cons_disk; G_LOG_DEBUG(DBG_IMPORTANT, "%s: %d %d %d", __func__, dr, dw, de); if (sc == NULL) { @@ -404,12 +408,10 @@ return (0); } - LIST_FOREACH(cp, &gp->consumer, consumer){ - err = g_access(cp, dr ,dw, de); - if (err == 0) - continue; - G_LOG_DEBUG(0, "loop access"); - } + + err = g_access(cp, dr ,dw, de); + + G_LOG_DEBUG(0, "access done, %d", err); return err; } @@ -463,6 +465,7 @@ g_log_read(bp); break; case GLOG_EVWRITE: + G_LOG_DEBUG(0, "About to write data"); g_log_write(bp); break; case GLOG_EVSTOP: @@ -510,7 +513,6 @@ } /*gets next event from event queue*/ -/*BUG - causes a panic when there are no events*/ static struct g_log_event * g_log_get_event(struct g_log_event_sink *es) { @@ -537,12 +539,13 @@ struct g_log_softc *sc; void *data; int err; - G_LOG_DEBUG(0, "write request"); + G_LOG_DEBUG(0, "starting to write"); sc = bp->bio_to->geom->softc; data = bp->bio_data; - err = glog_write_file(sc->sc_vn, data, sizeof(data), 0); + err = glog_write_file(sc->sc_vn, data, bp->bio_length, 0); if (err != 0) G_LOG_DEBUG(0, "write error"); + G_LOG_DEBUG(0, "done writing."); } /*reads data from log file and/or disk*/ ==== //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog_fileops.c#2 (text+ko) ==== @@ -1,4 +1,33 @@ +/*- + * Copyright (c) 2007 Pawel Jakub Dawidek <pjd@FreeBSD.org> + * Copyright (c) 2007 Sonja Milicic <tanarri@geri.cc.fer.hr> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + #include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + #include <sys/types.h> #include <sys/param.h> #include <sys/kernel.h> ==== //depot/projects/soc2007/smilicic_glog/sys/geom/log/glog_fileops.h#2 (text+ko) ==== @@ -1,3 +1,29 @@ +/*- + * Copyright (c) 2007 Sonja Milicic <tanarri@geri.cc.fer.hr> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + struct vnode *glog_open_file(const char *file, int uiflags); int glog_close_file(struct vnode *vp, int uiflags); int glog_write_file(struct vnode *vp, void *buf, size_t size, off_t off);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707131310.l6DDAHSO085838>