Deleted Added
full compact
geom_disk.c (219056) geom_disk.c (219950)
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

--- 20 unchanged lines hidden (view full) ---

29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 */
35
36#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

--- 20 unchanged lines hidden (view full) ---

29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 */
35
36#include <sys/cdefs.h>
37__FBSDID("$FreeBSD: head/sys/geom/geom_disk.c 219056 2011-02-26 14:58:54Z nwhitehorn $");
37__FBSDID("$FreeBSD: head/sys/geom/geom_disk.c 219950 2011-03-24 08:37:48Z mav $");
38
39#include "opt_geom.h"
40
41#include <sys/param.h>
42#include <sys/systm.h>
43#include <sys/kernel.h>
44#include <sys/sysctl.h>
45#include <sys/bio.h>
38
39#include "opt_geom.h"
40
41#include <sys/param.h>
42#include <sys/systm.h>
43#include <sys/kernel.h>
44#include <sys/sysctl.h>
45#include <sys/bio.h>
46#include <sys/conf.h>
47#include <sys/ctype.h>
48#include <sys/fcntl.h>
49#include <sys/malloc.h>
50#include <sys/sysctl.h>
51#include <sys/devicestat.h>
52#include <machine/md_var.h>
53
54#include <sys/lock.h>

--- 103 unchanged lines hidden (view full) ---

158 }
159 dp->d_flags &= ~DISKFLAG_OPEN;
160 }
161 return (error);
162}
163
164static void
165g_disk_kerneldump(struct bio *bp, struct disk *dp)
46#include <sys/ctype.h>
47#include <sys/fcntl.h>
48#include <sys/malloc.h>
49#include <sys/sysctl.h>
50#include <sys/devicestat.h>
51#include <machine/md_var.h>
52
53#include <sys/lock.h>

--- 103 unchanged lines hidden (view full) ---

157 }
158 dp->d_flags &= ~DISKFLAG_OPEN;
159 }
160 return (error);
161}
162
163static void
164g_disk_kerneldump(struct bio *bp, struct disk *dp)
166{
167 int error;
165{
168 struct g_kerneldump *gkd;
166 struct g_kerneldump *gkd;
169 struct dumperinfo di;
170 struct g_geom *gp;
171
172 gkd = (struct g_kerneldump*)bp->bio_data;
173 gp = bp->bio_to->geom;
174 g_trace(G_T_TOPOLOGY, "g_disk_kernedump(%s, %jd, %jd)",
175 gp->name, (intmax_t)gkd->offset, (intmax_t)gkd->length);
176 if (dp->d_dump == NULL) {
177 g_io_deliver(bp, ENODEV);
178 return;
179 }
167 struct g_geom *gp;
168
169 gkd = (struct g_kerneldump*)bp->bio_data;
170 gp = bp->bio_to->geom;
171 g_trace(G_T_TOPOLOGY, "g_disk_kernedump(%s, %jd, %jd)",
172 gp->name, (intmax_t)gkd->offset, (intmax_t)gkd->length);
173 if (dp->d_dump == NULL) {
174 g_io_deliver(bp, ENODEV);
175 return;
176 }
180 di.dumper = dp->d_dump;
181 di.priv = dp;
182 di.blocksize = dp->d_sectorsize;
183 di.maxiosize = dp->d_maxsize;
184 di.mediaoffset = gkd->offset;
177 gkd->di.dumper = dp->d_dump;
178 gkd->di.priv = dp;
179 gkd->di.blocksize = dp->d_sectorsize;
180 gkd->di.maxiosize = dp->d_maxsize;
181 gkd->di.mediaoffset = gkd->offset;
185 if ((gkd->offset + gkd->length) > dp->d_mediasize)
186 gkd->length = dp->d_mediasize - gkd->offset;
182 if ((gkd->offset + gkd->length) > dp->d_mediasize)
183 gkd->length = dp->d_mediasize - gkd->offset;
187 di.mediasize = gkd->length;
188 error = set_dumper(&di);
189 g_io_deliver(bp, error);
184 gkd->di.mediasize = gkd->length;
185 g_io_deliver(bp, 0);
190}
191
192static void
193g_disk_done(struct bio *bp)
194{
195 struct bio *bp2;
196 struct disk *dp;
197

--- 338 unchanged lines hidden ---
186}
187
188static void
189g_disk_done(struct bio *bp)
190{
191 struct bio *bp2;
192 struct disk *dp;
193

--- 338 unchanged lines hidden ---