|
@@ -46,10 +46,9 @@ static int minix_mknod(struct inode * dir, struct dentry *dentry, int mode, dev_
|
|
|
if (!old_valid_dev(rdev))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- inode = minix_new_inode(dir, &error);
|
|
|
+ inode = minix_new_inode(dir, mode, &error);
|
|
|
|
|
|
if (inode) {
|
|
|
- inode->i_mode = mode;
|
|
|
minix_set_inode(inode, rdev);
|
|
|
mark_inode_dirty(inode);
|
|
|
error = add_nondir(dentry, inode);
|
|
@@ -73,11 +72,10 @@ static int minix_symlink(struct inode * dir, struct dentry *dentry,
|
|
|
if (i > dir->i_sb->s_blocksize)
|
|
|
goto out;
|
|
|
|
|
|
- inode = minix_new_inode(dir, &err);
|
|
|
+ inode = minix_new_inode(dir, S_IFLNK | 0777, &err);
|
|
|
if (!inode)
|
|
|
goto out;
|
|
|
|
|
|
- inode->i_mode = S_IFLNK | 0777;
|
|
|
minix_set_inode(inode, 0);
|
|
|
err = page_symlink(inode, symname, i);
|
|
|
if (err)
|
|
@@ -117,13 +115,10 @@ static int minix_mkdir(struct inode * dir, struct dentry *dentry, int mode)
|
|
|
|
|
|
inode_inc_link_count(dir);
|
|
|
|
|
|
- inode = minix_new_inode(dir, &err);
|
|
|
+ inode = minix_new_inode(dir, mode, &err);
|
|
|
if (!inode)
|
|
|
goto out_dir;
|
|
|
|
|
|
- inode->i_mode = S_IFDIR | mode;
|
|
|
- if (dir->i_mode & S_ISGID)
|
|
|
- inode->i_mode |= S_ISGID;
|
|
|
minix_set_inode(inode, 0);
|
|
|
|
|
|
inode_inc_link_count(inode);
|