diff -urNp linux-2.4.19/fs/smbfs/inode.c linux-2.4.19.SUSE/fs/smbfs/inode.c --- linux-2.4.19/fs/smbfs/inode.c 2004-05-05 14:30:36.000000000 +0200 +++ linux-2.4.19.SUSE/fs/smbfs/inode.c 2004-05-05 14:30:53.000000000 +0200 @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -485,10 +486,8 @@ smb_read_super(struct super_block *sb, v if (ver == SMB_MOUNT_OLDVERSION) { mnt->version = oldmnt->version; - /* FIXME: is this enough to convert uid/gid's ? */ - mnt->mounted_uid = oldmnt->mounted_uid; - mnt->uid = oldmnt->uid; - mnt->gid = oldmnt->gid; + mnt->uid = low2highuid(oldmnt->uid); + mnt->gid = low2highuid(oldmnt->gid); mnt->file_mode = (oldmnt->file_mode & S_IRWXUGO) | S_IFREG; mnt->dir_mode = (oldmnt->dir_mode & S_IRWXUGO) | S_IFDIR; @@ -497,9 +496,8 @@ smb_read_super(struct super_block *sb, v } else { if (parse_options(mnt, raw_data)) goto out_bad_option; - - mnt->mounted_uid = current->uid; } + mnt->mounted_uid = current->uid; smb_setcodepage(server, &mnt->codepage); /* diff -urNp linux-2.4.19/include/linux/smb_mount.h linux-2.4.19.SUSE/include/linux/smb_mount.h --- linux-2.4.19/include/linux/smb_mount.h 2004-05-05 14:30:36.000000000 +0200 +++ linux-2.4.19.SUSE/include/linux/smb_mount.h 2004-05-05 14:30:53.000000000 +0200 @@ -43,11 +43,11 @@ struct smb_mount_data { struct smb_mount_data_kernel { int version; - __kernel_uid_t mounted_uid; /* Who may umount() this filesystem? */ - __kernel_uid_t uid; - __kernel_gid_t gid; - __kernel_mode_t file_mode; - __kernel_mode_t dir_mode; + uid_t mounted_uid; /* Who may umount() this filesystem? */ + uid_t uid; + gid_t gid; + mode_t file_mode; + mode_t dir_mode; u32 flags;