Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/lib/libsa/ufs.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/lib/libsa/ufs.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.3 retrieving revision 1.3.2.2 diff -u -p -r1.3 -r1.3.2.2 --- src/sys/lib/libsa/ufs.c 1994/06/20 08:39:01 1.3 +++ src/sys/lib/libsa/ufs.c 1994/07/27 08:03:10 1.3.2.2 @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: ufs.c,v 1.3 1994/06/20 08:39:01 pk Exp $ + * $Id: ufs.c,v 1.3.2.2 1994/07/27 08:03:10 cgd Exp $ */ /* @@ -73,6 +73,7 @@ #include #include #include +#include #include "stand.h" @@ -342,13 +343,11 @@ search_directory(name, f, inumber_p) while (dp < edp) { if (dp->d_ino == (ino_t)0) goto next; -#if 0 #if BYTE_ORDER == LITTLE_ENDIAN if (fp->f_fs->fs_maxsymlinklen <= 0) namlen = dp->d_type; else #endif -#endif namlen = dp->d_namlen; if (namlen == length && !strcmp(name, dp->d_name)) { @@ -402,6 +401,7 @@ ufs_open(path, f) rc = EINVAL; goto out; } + ffs_oldfscompat(fs); /* * Calculate indirect block levels. @@ -655,3 +655,31 @@ ufs_stat(f, sb) sb->st_size = fp->f_di.di_size; return (0); } + +/* + * Sanity checks for old file systems. + * + * XXX - goes away some day. + */ +ffs_oldfscompat(fs) + struct fs *fs; +{ + int i; + + fs->fs_npsect = max(fs->fs_npsect, fs->fs_nsect); /* XXX */ + fs->fs_interleave = max(fs->fs_interleave, 1); /* XXX */ + if (fs->fs_postblformat == FS_42POSTBLFMT) /* XXX */ + fs->fs_nrpos = 8; /* XXX */ + if (fs->fs_inodefmt < FS_44INODEFMT) { /* XXX */ + quad_t sizepb = fs->fs_bsize; /* XXX */ + /* XXX */ + fs->fs_maxfilesize = fs->fs_bsize * NDADDR - 1; /* XXX */ + for (i = 0; i < NIADDR; i++) { /* XXX */ + sizepb *= NINDIR(fs); /* XXX */ + fs->fs_maxfilesize += sizepb; /* XXX */ + } /* XXX */ + fs->fs_qbmask = ~fs->fs_bmask; /* XXX */ + fs->fs_qfmask = ~fs->fs_fmask; /* XXX */ + } /* XXX */ + return (0); +}