Deleted Added
full compact
ffs.c (185222) ffs.c (186261)
1/* $NetBSD: ffs.c,v 1.30 2004/06/24 22:30:13 lukem Exp $ */
2
3/*
4 * Copyright (c) 2001 Wasabi Systems, Inc.
5 * All rights reserved.
6 *
7 * Written by Luke Mewburn for Wasabi Systems, Inc.
8 *

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

60 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
61 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
62 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
63 * SUCH DAMAGE.
64 *
65 * @(#)ffs_alloc.c 8.19 (Berkeley) 7/13/95
66 */
67
1/* $NetBSD: ffs.c,v 1.30 2004/06/24 22:30:13 lukem Exp $ */
2
3/*
4 * Copyright (c) 2001 Wasabi Systems, Inc.
5 * All rights reserved.
6 *
7 * Written by Luke Mewburn for Wasabi Systems, Inc.
8 *

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

60 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
61 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
62 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
63 * SUCH DAMAGE.
64 *
65 * @(#)ffs_alloc.c 8.19 (Berkeley) 7/13/95
66 */
67
68#if HAVE_NBTOOL_CONFIG_H
69#include "nbtool_config.h"
70#endif
71
72#include <sys/cdefs.h>
73#if defined(__RCSID) && !defined(__lint)
74__RCSID("$NetBSD: ffs.c,v 1.30 2004/06/24 22:30:13 lukem Exp $");
75#endif /* !__lint */
76
77#include <sys/param.h>
78
79#if !HAVE_NBTOOL_CONFIG_H

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

89#include <string.h>
90#include <unistd.h>
91
92#include "makefs.h"
93
94#include <ufs/ufs/dinode.h>
95#include <ufs/ufs/dir.h>
96#include <ufs/ffs/fs.h>
68#include <sys/cdefs.h>
69#if defined(__RCSID) && !defined(__lint)
70__RCSID("$NetBSD: ffs.c,v 1.30 2004/06/24 22:30:13 lukem Exp $");
71#endif /* !__lint */
72
73#include <sys/param.h>
74
75#if !HAVE_NBTOOL_CONFIG_H

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

85#include <string.h>
86#include <unistd.h>
87
88#include "makefs.h"
89
90#include <ufs/ufs/dinode.h>
91#include <ufs/ufs/dir.h>
92#include <ufs/ffs/fs.h>
97#include <ufs/ufs/ufs_bswap.h>
98
93
94#include "ffs/ufs_bswap.h"
99#include "ffs/ufs_inode.h"
100#include "ffs/newfs_extern.h"
101#include "ffs/ffs_extern.h"
102
103#undef DIP
104#define DIP(dp, field) \
105 ((fsopts->version == 1) ? \
106 (dp)->ffs1_din.di_##field : (dp)->ffs2_din.di_##field)

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

511 assert(fsopts != NULL);
512
513 if (debug & DEBUG_FS_SIZE_DIR)
514 printf("ffs_size_dir: entry: bytes %lld inodes %lld\n",
515 (long long)fsopts->size, (long long)fsopts->inodes);
516
517#define ADDDIRENT(e) do { \
518 tmpdir.d_namlen = strlen((e)); \
95#include "ffs/ufs_inode.h"
96#include "ffs/newfs_extern.h"
97#include "ffs/ffs_extern.h"
98
99#undef DIP
100#define DIP(dp, field) \
101 ((fsopts->version == 1) ? \
102 (dp)->ffs1_din.di_##field : (dp)->ffs2_din.di_##field)

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

507 assert(fsopts != NULL);
508
509 if (debug & DEBUG_FS_SIZE_DIR)
510 printf("ffs_size_dir: entry: bytes %lld inodes %lld\n",
511 (long long)fsopts->size, (long long)fsopts->inodes);
512
513#define ADDDIRENT(e) do { \
514 tmpdir.d_namlen = strlen((e)); \
519 this = DIRSIZ(0, &tmpdir, 0); \
515 this = DIRSIZ_SWAP(0, &tmpdir, 0); \
520 if (debug & DEBUG_FS_SIZE_DIR_ADD_DIRENT) \
521 printf("ADDDIRENT: was: %s (%d) this %d cur %d\n", \
522 e, tmpdir.d_namlen, this, curdirsize); \
523 if (this + curdirsize > roundup(curdirsize, DIRBLKSIZ)) \
524 curdirsize = roundup(curdirsize, DIRBLKSIZ); \
525 curdirsize += this; \
526 if (debug & DEBUG_FS_SIZE_DIR_ADD_DIRENT) \
527 printf("ADDDIRENT: now: %s (%d) this %d cur %d\n", \

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

938 assert (name != NULL);
939 assert (node != NULL);
940 /* create direct entry */
941 (void)memset(&de, 0, sizeof(de));
942 de.d_ino = ufs_rw32(node->inode->ino, needswap);
943 de.d_type = IFTODT(node->type);
944 de.d_namlen = (uint8_t)strlen(name);
945 strcpy(de.d_name, name);
516 if (debug & DEBUG_FS_SIZE_DIR_ADD_DIRENT) \
517 printf("ADDDIRENT: was: %s (%d) this %d cur %d\n", \
518 e, tmpdir.d_namlen, this, curdirsize); \
519 if (this + curdirsize > roundup(curdirsize, DIRBLKSIZ)) \
520 curdirsize = roundup(curdirsize, DIRBLKSIZ); \
521 curdirsize += this; \
522 if (debug & DEBUG_FS_SIZE_DIR_ADD_DIRENT) \
523 printf("ADDDIRENT: now: %s (%d) this %d cur %d\n", \

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

934 assert (name != NULL);
935 assert (node != NULL);
936 /* create direct entry */
937 (void)memset(&de, 0, sizeof(de));
938 de.d_ino = ufs_rw32(node->inode->ino, needswap);
939 de.d_type = IFTODT(node->type);
940 de.d_namlen = (uint8_t)strlen(name);
941 strcpy(de.d_name, name);
946 reclen = DIRSIZ(0, &de, needswap);
942 reclen = DIRSIZ_SWAP(0, &de, needswap);
947 de.d_reclen = ufs_rw16(reclen, needswap);
948
949 dp = (struct direct *)(dbuf->buf + dbuf->cur);
950 llen = 0;
951 if (dp != NULL)
943 de.d_reclen = ufs_rw16(reclen, needswap);
944
945 dp = (struct direct *)(dbuf->buf + dbuf->cur);
946 llen = 0;
947 if (dp != NULL)
952 llen = DIRSIZ(0, dp, needswap);
948 llen = DIRSIZ_SWAP(0, dp, needswap);
953
954 if (debug & DEBUG_FS_MAKE_DIRBUF)
955 printf(
956 "ffs_make_dirbuf: dbuf siz %d cur %d lastlen %d\n"
957 " ino %d type %d reclen %d namlen %d name %.30s\n",
958 dbuf->size, dbuf->cur, llen,
959 ufs_rw32(de.d_ino, needswap), de.d_type, reclen,
960 de.d_namlen, de.d_name);

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

1003 cgino = ino % fs->fs_ipg;
1004 if (debug & DEBUG_FS_WRITE_INODE)
1005 printf("ffs_write_inode: din %p ino %u cg %d cgino %d\n",
1006 dp, ino, cg, cgino);
1007
1008 ffs_rdfs(fsbtodb(fs, cgtod(fs, cg)), (int)fs->fs_cgsize, &sbbuf,
1009 fsopts);
1010 cgp = (struct cg *)sbbuf;
949
950 if (debug & DEBUG_FS_MAKE_DIRBUF)
951 printf(
952 "ffs_make_dirbuf: dbuf siz %d cur %d lastlen %d\n"
953 " ino %d type %d reclen %d namlen %d name %.30s\n",
954 dbuf->size, dbuf->cur, llen,
955 ufs_rw32(de.d_ino, needswap), de.d_type, reclen,
956 de.d_namlen, de.d_name);

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

999 cgino = ino % fs->fs_ipg;
1000 if (debug & DEBUG_FS_WRITE_INODE)
1001 printf("ffs_write_inode: din %p ino %u cg %d cgino %d\n",
1002 dp, ino, cg, cgino);
1003
1004 ffs_rdfs(fsbtodb(fs, cgtod(fs, cg)), (int)fs->fs_cgsize, &sbbuf,
1005 fsopts);
1006 cgp = (struct cg *)sbbuf;
1011 if (!cg_chkmagic(cgp, fsopts->needswap))
1007 if (!cg_chkmagic_swap(cgp, fsopts->needswap))
1012 errx(1, "ffs_write_inode: cg %d: bad magic number", cg);
1013
1008 errx(1, "ffs_write_inode: cg %d: bad magic number", cg);
1009
1014 assert (isclr(cg_inosused(cgp, fsopts->needswap), cgino));
1010 assert (isclr(cg_inosused_swap(cgp, fsopts->needswap), cgino));
1015
1016 buf = malloc(fs->fs_bsize);
1017 if (buf == NULL)
1018 errx(1, "ffs_write_inode: cg %d: can't alloc inode block", cg);
1019
1020 dp1 = (struct ufs1_dinode *)buf;
1021 dp2 = (struct ufs2_dinode *)buf;
1022
1023 if (fs->fs_cstotal.cs_nifree == 0)
1024 errx(1, "ffs_write_inode: fs out of inodes for ino %u",
1025 ino);
1026 if (fs->fs_cs(fs, cg).cs_nifree == 0)
1027 errx(1,
1028 "ffs_write_inode: cg %d out of inodes for ino %u",
1029 cg, ino);
1011
1012 buf = malloc(fs->fs_bsize);
1013 if (buf == NULL)
1014 errx(1, "ffs_write_inode: cg %d: can't alloc inode block", cg);
1015
1016 dp1 = (struct ufs1_dinode *)buf;
1017 dp2 = (struct ufs2_dinode *)buf;
1018
1019 if (fs->fs_cstotal.cs_nifree == 0)
1020 errx(1, "ffs_write_inode: fs out of inodes for ino %u",
1021 ino);
1022 if (fs->fs_cs(fs, cg).cs_nifree == 0)
1023 errx(1,
1024 "ffs_write_inode: cg %d out of inodes for ino %u",
1025 cg, ino);
1030 setbit(cg_inosused(cgp, fsopts->needswap), cgino);
1026 setbit(cg_inosused_swap(cgp, fsopts->needswap), cgino);
1031 ufs_add32(cgp->cg_cs.cs_nifree, -1, fsopts->needswap);
1032 fs->fs_cstotal.cs_nifree--;
1033 fs->fs_cs(fs, cg).cs_nifree--;
1034 if (S_ISDIR(DIP(dp, mode))) {
1035 ufs_add32(cgp->cg_cs.cs_ndir, 1, fsopts->needswap);
1036 fs->fs_cstotal.cs_ndir++;
1037 fs->fs_cs(fs, cg).cs_ndir++;
1038 }

--- 55 unchanged lines hidden ---
1027 ufs_add32(cgp->cg_cs.cs_nifree, -1, fsopts->needswap);
1028 fs->fs_cstotal.cs_nifree--;
1029 fs->fs_cs(fs, cg).cs_nifree--;
1030 if (S_ISDIR(DIP(dp, mode))) {
1031 ufs_add32(cgp->cg_cs.cs_ndir, 1, fsopts->needswap);
1032 fs->fs_cstotal.cs_ndir++;
1033 fs->fs_cs(fs, cg).cs_ndir++;
1034 }

--- 55 unchanged lines hidden ---