} else
inode->i_gid = current->fsgid;
+ /*
+ * New inodes need to save sane values on disk when
+ * uid & gid mount options are used
+ */
+ jfs_inode->saved_uid = inode->i_uid;
+ jfs_inode->saved_gid = inode->i_gid;
+
/*
* Allocate inode to quota.
*/
jfs_inode->mode2 |= IDIRECTORY;
jfs_inode->mode2 &= ~JFS_DIRSYNC_FL;
}
- else if (S_ISLNK(mode))
- jfs_inode->mode2 &=
- ~(JFS_IMMUTABLE_FL|JFS_APPEND_FL);
- else
+ else {
jfs_inode->mode2 |= INLINEEA | ISPARSE;
+ if (S_ISLNK(mode))
+ jfs_inode->mode2 &= ~(JFS_IMMUTABLE_FL|JFS_APPEND_FL);
+ }
jfs_inode->mode2 |= mode;
inode->i_blksize = sb->s_blocksize;