mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
2.3 KiB

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;
}