On Sun, 18 Jan 2009, Stanislav Sedov wrote:

Log:
 - Whitespace fixes.

svn diff or a mailer always mangles whitespace (examples quoted below),
so the whitespace fixes are hard to see in svn mail

 - s_bmask field doesn't exist.
 - Use correct flags in debug printf.

The flags are more broken than before, fatally so on 64-bit arches if the
code were actually used.

Modified:
 head/sys/gnu/fs/ext2fs/ext2_vfsops.c

Modified: head/sys/gnu/fs/ext2fs/ext2_vfsops.c
==============================================================================
--- head/sys/gnu/fs/ext2fs/ext2_vfsops.c        Sun Jan 18 14:04:56 2009        
(r187395)
+++ head/sys/gnu/fs/ext2fs/ext2_vfsops.c        Sun Jan 18 14:54:46 2009        
(r187396)
@@ -5,7 +5,7 @@
 *  University of Utah, Department of Computer Science
 */
/*-
- * Copyright (c) 1989, 1991, 1993, 1994
+ * Copyright (c) 1989, 1991, 1993, 1994
 *      The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -120,7 +120,7 @@ static int  compute_sb_data(struct vnode
static const char *ext2_opts[] = { "from", "export", "acls", "noexec",
    "noatime", "union", "suiddir", "multilabel", "nosymfollow",
    "noclusterr", "noclusterw", "force", NULL };
-
+

The above diff shows null changes, presumably after dropping trailing
whitespace in the old version.

Oops, actually the diff is invalid since something dropped the leading
space in unchanged lines.

@@ -318,7 +318,7 @@ static int ext2_check_descriptors (struc
        {
                /* examine next descriptor block */
                if ((i % EXT2_DESC_PER_BLOCK(sb)) == 0)
-                        gdp = (struct ext2_group_desc *)
+                        gdp = (struct ext2_group_desc *)
                                sb->s_group_desc[desc_block++]->b_data;
                if (gdp->bg_block_bitmap < block ||
                    gdp->bg_block_bitmap >= block + EXT2_BLOCKS_PER_GROUP(sb))

Here most leading tabs are corrupt in both the new and old versions.  Please
fix all whitespace on a line if fixing any.

@@ -398,19 +398,19 @@ static int compute_sb_data(devvp, es, fs
    int logic_sb_block = 1;     /* XXX for now */

#if 1
-#define V(v)
+#define V(v)
#else
#define V(v)  printf(#v"= %d\n", fs->v);
#endif

The existence of this macro is a bug, since it can only work for one type,
but fields of different type need to be printed.  Most fields don't have
type int (the first one printed is s_blocksize which (especially bogusly
on 64-bit machines) has type u_long, so the non-'#if 1' case would cause
lots of errors.

@@ -1000,7 +1000,7 @@ ext2_vget(mp, ino, flags, vpp)

        /* Read in the disk contents for the inode, copy into the inode. */
#if 0
-printf("ext2_vget(%d) dbn= %d ", ino, fsbtodb(fs, ino_to_fsba(fs, ino)));
+printf("ext2_vget(%d) dbn= %lu ", ino, fsbtodb(fs, ino_to_fsba(fs, ino)));
#endif
        if ((error = bread(ump->um_devvp, fsbtodb(fs, ino_to_fsba(fs, ino)),
            (int)fs->s_blocksize, NOCRED, &bp)) != 0) {

ino has type ino_t, so it cannot be printed portably without using a
cast.  Its actual type is uint32_t.  If this code were actually, this
would give the following printf format errors on various supported
machines:

old: sign mismatch only, since plain int happens to have the same size as
     ino_t on all supported machines.  gcc doesn't even warn about this
     error, so this error would be non-fatal

new: now a size mismatch on machines with 64-bit longs (amd64, ia64, sparc64
     at least.  gcc warns about this error, so the code is now fatally
     broken on many supported machines, except it is never actually used.

Bruce
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to