|
|
This is a part of the CLFS silo patch found at http://svn.cross-lfs.org/svn/repos/cross-lfs/trunk/patches/silo-1.4.13-fixes-3.patch
diff -Naur silo-1.4.13.orig/second/fs/ufs.c silo-1.4.13/second/fs/ufs.c
--- silo-1.4.13.orig/second/fs/ufs.c 2006-06-01 13:24:53.000000000 -0400
+++ silo-1.4.13/second/fs/ufs.c 2007-04-03 17:02:53.000000000 -0400
@@ -40,28 +40,18 @@
ino_t inode = 0; -#ifdef UFS_CIGAM
-/* Apparently new header */
-
#define ufsi_size(x) ((unsigned int)((x)->ui_size)) #define ufsi_db(x) ((unsigned int *)((x)->ui_u2.ui_addr.ui_db)) #define ufsi_ib(x) ((unsigned int *)((x)->ui_u2.ui_addr.ui_ib)) #define ufsd_namlen(x) ((unsigned char)((x)->d_u.d_44.d_namlen)) -#ifdef UFS_MINFREE
-/* Apparently even newer header */
-#define ufs_superblock ufs_super_block
+struct ufs_superblock_full {
+ struct ufs_super_block_first first;
+ struct ufs_super_block_second second;
+ struct ufs_super_block_third third;
+};
+#define ufs_superblock ufs_super_block_first
#define ufs_direct ufs_dir_entry -#endif
-
-#else
-
-#define ufsi_size(x) (((x)->ui_size.val[1]))
-#define ufsi_db(x) ((unsigned int *)((x)->ui_db))
-#define ufsi_ib(x) ((unsigned int *)((x)->ui_ib))
-#define ufsd_namlen(x) ((unsigned char)((x)->d_namlen))
-
-#endif
#ifndef S_ISLNK #include <sys/stat.h> @@ -92,25 +82,22 @@
return p; } -static struct ufs_superblock *ufs_read_super(ufs_filsys fs)
+static struct ufs_superblock_full *ufs_read_super(ufs_filsys fs)
{ - struct ufs_superblock *usb;
+ struct ufs_superblock_full *usb;
- usb = (struct ufs_superblock *) malloc (2048);
+ usb = (struct ufs_superblock_full *) malloc (2048);
if (!usb) return 0; if (io_channel_read_blk (fs->io, UFS_SBLOCK/1024, -2048, (char *)usb)) return 0; - if (usb->fs_magic != UFS_MAGIC) {
- /* XXX - replace hard-coded constant with a byte-swap macro */
- if (usb->fs_magic == 0x54190100) {
- }
+ if (usb->third.fs_magic != UFS_MAGIC) {
return 0; } - if (usb->fs_bsize != UFS_BSIZE)
+ if (usb->first.fs_bsize != UFS_BSIZE)
return 0; - if (usb->fs_fsize != UFS_FSIZE)
+ if (usb->first.fs_fsize != UFS_FSIZE)
return 0; - io_channel_set_blksize (fs->io, usb->fs_fsize);
+ io_channel_set_blksize (fs->io, usb->first.fs_fsize);
return usb; }
|