Deleted Added
full compact
ufs.c (182748) ufs.c (276079)
1/* $NetBSD: ufs.c,v 1.20 1998/03/01 07:15:39 ross Exp $ */
2
3/*-
4 * Copyright (c) 2002 Networks Associates Technology, Inc.
5 * All rights reserved.
6 *
7 * This software was developed for the FreeBSD Project by Marshall
8 * Kirk McKusick and Network Associates Laboratories, the Security

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

63 * Carnegie Mellon University
64 * Pittsburgh PA 15213-3890
65 *
66 * any improvements or extensions that they make and grant Carnegie the
67 * rights to redistribute these changes.
68 */
69
70#include <sys/cdefs.h>
1/* $NetBSD: ufs.c,v 1.20 1998/03/01 07:15:39 ross Exp $ */
2
3/*-
4 * Copyright (c) 2002 Networks Associates Technology, Inc.
5 * All rights reserved.
6 *
7 * This software was developed for the FreeBSD Project by Marshall
8 * Kirk McKusick and Network Associates Laboratories, the Security

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

63 * Carnegie Mellon University
64 * Pittsburgh PA 15213-3890
65 *
66 * any improvements or extensions that they make and grant Carnegie the
67 * rights to redistribute these changes.
68 */
69
70#include <sys/cdefs.h>
71__FBSDID("$FreeBSD: head/lib/libstand/ufs.c 182748 2008-09-04 10:05:44Z raj $");
71__FBSDID("$FreeBSD: head/lib/libstand/ufs.c 276079 2014-12-22 20:42:36Z ian $");
72
73/*
74 * Stand-alone file reading package.
75 */
76
77#include <sys/param.h>
78#include <sys/disklabel.h>
79#include <sys/time.h>

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

150
151 if (fs == NULL)
152 panic("fs == NULL");
153
154 /*
155 * Read inode and save it.
156 */
157 buf = malloc(fs->fs_bsize);
72
73/*
74 * Stand-alone file reading package.
75 */
76
77#include <sys/param.h>
78#include <sys/disklabel.h>
79#include <sys/time.h>

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

150
151 if (fs == NULL)
152 panic("fs == NULL");
153
154 /*
155 * Read inode and save it.
156 */
157 buf = malloc(fs->fs_bsize);
158 twiddle();
158 twiddle(1);
159 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
160 fsbtodb(fs, ino_to_fsba(fs, inumber)), fs->fs_bsize,
161 buf, &rsize);
162 if (rc)
163 goto out;
164 if (rsize != fs->fs_bsize) {
165 rc = EIO;
166 goto out;

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

260 *disk_block_p = 0; /* missing */
261 return (0);
262 }
263
264 if (fp->f_blkno[level] != ind_block_num) {
265 if (fp->f_blk[level] == (char *)0)
266 fp->f_blk[level] =
267 malloc(fs->fs_bsize);
159 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
160 fsbtodb(fs, ino_to_fsba(fs, inumber)), fs->fs_bsize,
161 buf, &rsize);
162 if (rc)
163 goto out;
164 if (rsize != fs->fs_bsize) {
165 rc = EIO;
166 goto out;

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

260 *disk_block_p = 0; /* missing */
261 return (0);
262 }
263
264 if (fp->f_blkno[level] != ind_block_num) {
265 if (fp->f_blk[level] == (char *)0)
266 fp->f_blk[level] =
267 malloc(fs->fs_bsize);
268 twiddle();
268 twiddle(1);
269 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
270 fsbtodb(fp->f_fs, ind_block_num),
271 fs->fs_bsize,
272 fp->f_blk[level],
273 &fp->f_blksize[level]);
274 if (rc)
275 return (rc);
276 if (fp->f_blksize[level] != fs->fs_bsize)

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

341 * in memory already, read it in first.
342 */
343 if (((off > 0) || (*size_p + off < block_size)) &&
344 (file_block != fp->f_buf_blkno)) {
345
346 if (fp->f_buf == (char *)0)
347 fp->f_buf = malloc(fs->fs_bsize);
348
269 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
270 fsbtodb(fp->f_fs, ind_block_num),
271 fs->fs_bsize,
272 fp->f_blk[level],
273 &fp->f_blksize[level]);
274 if (rc)
275 return (rc);
276 if (fp->f_blksize[level] != fs->fs_bsize)

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

341 * in memory already, read it in first.
342 */
343 if (((off > 0) || (*size_p + off < block_size)) &&
344 (file_block != fp->f_buf_blkno)) {
345
346 if (fp->f_buf == (char *)0)
347 fp->f_buf = malloc(fs->fs_bsize);
348
349 twiddle();
349 twiddle(4);
350 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
351 fsbtodb(fs, disk_block),
352 block_size, fp->f_buf, &fp->f_buf_size);
353 if (rc)
354 return (rc);
355
356 fp->f_buf_blkno = file_block;
357 }
358
359 /*
360 * Copy the user data into the cached block.
361 */
362 bcopy(buf_p, fp->f_buf + off, *size_p);
363
364 /*
365 * Write the block out to storage.
366 */
367
350 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
351 fsbtodb(fs, disk_block),
352 block_size, fp->f_buf, &fp->f_buf_size);
353 if (rc)
354 return (rc);
355
356 fp->f_buf_blkno = file_block;
357 }
358
359 /*
360 * Copy the user data into the cached block.
361 */
362 bcopy(buf_p, fp->f_buf + off, *size_p);
363
364 /*
365 * Write the block out to storage.
366 */
367
368 twiddle();
368 twiddle(4);
369 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_WRITE,
370 fsbtodb(fs, disk_block),
371 block_size, fp->f_buf, &fp->f_buf_size);
372 return (rc);
373}
374
375/*
376 * Read a portion of a file into an internal buffer. Return

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

401 rc = block_map(f, file_block, &disk_block);
402 if (rc)
403 return (rc);
404
405 if (disk_block == 0) {
406 bzero(fp->f_buf, block_size);
407 fp->f_buf_size = block_size;
408 } else {
369 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_WRITE,
370 fsbtodb(fs, disk_block),
371 block_size, fp->f_buf, &fp->f_buf_size);
372 return (rc);
373}
374
375/*
376 * Read a portion of a file into an internal buffer. Return

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

401 rc = block_map(f, file_block, &disk_block);
402 if (rc)
403 return (rc);
404
405 if (disk_block == 0) {
406 bzero(fp->f_buf, block_size);
407 fp->f_buf_size = block_size;
408 } else {
409 twiddle();
409 twiddle(4);
410 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
411 fsbtodb(fs, disk_block),
412 block_size, fp->f_buf, &fp->f_buf_size);
413 if (rc)
414 return (rc);
415 }
416
417 fp->f_buf_blkno = file_block;

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

510 /* allocate file system specific data structure */
511 fp = malloc(sizeof(struct file));
512 bzero(fp, sizeof(struct file));
513 f->f_fsdata = (void *)fp;
514
515 /* allocate space and read super block */
516 fs = malloc(SBLOCKSIZE);
517 fp->f_fs = fs;
410 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
411 fsbtodb(fs, disk_block),
412 block_size, fp->f_buf, &fp->f_buf_size);
413 if (rc)
414 return (rc);
415 }
416
417 fp->f_buf_blkno = file_block;

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

510 /* allocate file system specific data structure */
511 fp = malloc(sizeof(struct file));
512 bzero(fp, sizeof(struct file));
513 f->f_fsdata = (void *)fp;
514
515 /* allocate space and read super block */
516 fs = malloc(SBLOCKSIZE);
517 fp->f_fs = fs;
518 twiddle();
518 twiddle(1);
519 /*
520 * Try reading the superblock in each of its possible locations.
521 */
522 for (i = 0; sblock_try[i] != -1; i++) {
523 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
524 sblock_try[i] / DEV_BSIZE, SBLOCKSIZE,
525 (char *)fs, &buf_size);
526 if (rc)

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

644 struct fs *fs = fp->f_fs;
645
646 if (!buf)
647 buf = malloc(fs->fs_bsize);
648 rc = block_map(f, (ufs2_daddr_t)0, &disk_block);
649 if (rc)
650 goto out;
651
519 /*
520 * Try reading the superblock in each of its possible locations.
521 */
522 for (i = 0; sblock_try[i] != -1; i++) {
523 rc = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
524 sblock_try[i] / DEV_BSIZE, SBLOCKSIZE,
525 (char *)fs, &buf_size);
526 if (rc)

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

644 struct fs *fs = fp->f_fs;
645
646 if (!buf)
647 buf = malloc(fs->fs_bsize);
648 rc = block_map(f, (ufs2_daddr_t)0, &disk_block);
649 if (rc)
650 goto out;
651
652 twiddle();
652 twiddle(1);
653 rc = (f->f_dev->dv_strategy)(f->f_devdata,
654 F_READ, fsbtodb(fs, disk_block),
655 fs->fs_bsize, buf, &buf_size);
656 if (rc)
657 goto out;
658
659 bcopy((char *)buf, namebuf, (unsigned)link_len);
660 }

--- 201 unchanged lines hidden ---
653 rc = (f->f_dev->dv_strategy)(f->f_devdata,
654 F_READ, fsbtodb(fs, disk_block),
655 fs->fs_bsize, buf, &buf_size);
656 if (rc)
657 goto out;
658
659 bcopy((char *)buf, namebuf, (unsigned)link_len);
660 }

--- 201 unchanged lines hidden ---