OSDN Git Service

Define helper functions ext2fs_set_i_{u,g}id_high() for MacOS compatibility
authorTheodore Ts'o <tytso@mit.edu>
Mon, 21 Jan 2008 14:45:25 +0000 (09:45 -0500)
committerTed Tso <tytso@proc.local>
Mon, 21 Jan 2008 14:46:05 +0000 (09:46 -0500)
This is needed for all non-Linux/Hurd/Masix systems...

Addresses-Sourceforge-Bug: #1863819

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/ext2_fs.h
misc/mke2fs.c

index 7e58219..e096577 100644 (file)
@@ -452,9 +452,14 @@ struct ext2_inode_large {
 #if defined(__masix__)
 #define inode_uid(inode)       ((inode).i_uid)
 #define inode_gid(inode)       ((inode).i_gid)
+#define ext2fs_set_i_uid_high(inode,x) (x)
+#define ext2fs_set_i_gid_high(inode,x) (x)
+
 #else
 #define inode_uid(inode)       ((inode).i_uid | (inode).osd2.linux2.l_i_uid_high << 16)
 #define inode_gid(inode)       ((inode).i_gid | (inode).osd2.linux2.l_i_gid_high << 16)
+#define ext2fs_set_i_uid_high(inode,x) ((inode).osd2.linux2.l_i_uid_high = (x))
+#define ext2fs_set_i_gid_high(inode,x) ((inode).osd2.linux2.l_i_gid_high = (x))
 #endif
 
 /*
index 3795790..7a360ea 100644 (file)
@@ -495,11 +495,11 @@ static void create_root_dir(ext2_filsys fs)
                }
                uid = getuid();
                inode.i_uid = uid;
-               inode.i_uid_high = uid >> 16;
+               ext2fs_set_i_uid_high(inode, uid >> 16);
                if (uid) {
                        gid = getgid();
                        inode.i_gid = gid;
-                       inode.i_gid_high = gid >> 16;
+                       ext2fs_set_i_gid_high(inode, gid >> 16);
                }
                retval = ext2fs_write_new_inode(fs, EXT2_ROOT_INO, &inode);
                if (retval) {