Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1bd120d authored by Dmitry Monakhov's avatar Dmitry Monakhov Committed by Al Viro
Browse files

vfs: Add inode uid,gid,mode init helper

parent 52957fe1
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1606,3 +1606,23 @@ void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev)
				  inode->i_ino);
}
EXPORT_SYMBOL(init_special_inode);

/**
 * Init uid,gid,mode for new inode according to posix standards
 * @inode: New inode
 * @dir: Directory inode
 * @mode: mode of the new inode
 */
void inode_init_owner(struct inode *inode, const struct inode *dir,
			mode_t mode)
{
	inode->i_uid = current_fsuid();
	if (dir && dir->i_mode & S_ISGID) {
		inode->i_gid = dir->i_gid;
		if (S_ISDIR(mode))
			mode |= S_ISGID;
	} else
		inode->i_gid = current_fsgid();
	inode->i_mode = mode;
}
EXPORT_SYMBOL(inode_init_owner);
+2 −1
Original line number Diff line number Diff line
@@ -1428,7 +1428,8 @@ extern void dentry_unhash(struct dentry *dentry);
 * VFS file helper functions.
 */
extern int file_permission(struct file *, int);

extern void inode_init_owner(struct inode *inode, const struct inode *dir,
			mode_t mode);
/*
 * VFS FS_IOC_FIEMAP helper definitions.
 */