diff options
author | Jan Kara <jack@suse.cz> | 2018-02-21 11:59:31 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2018-02-27 04:25:33 -0500 |
commit | ecd10aa42819cd5dcf639d25575e95a5bda8d08a (patch) | |
tree | fe8b73f2a6cc6d58ba54f04b8204d341a97eb6a1 /fs/udf/ialloc.c | |
parent | 70260e44750356fecb40ff5fcb0f91bcc911ab5f (diff) |
udf: Apply uid/gid mount options also to new inodes & chown
Currently newly created files belong to current user despite
uid=<number> / gid=<number> mount options. This is confusing to users
(as owner of the file will change after remount / eviction from cache)
and also inconsistent with e.g. FAT with the same mount option. So apply
uid=<number> and gid=<number> also to newly created inodes and similarly
as FAT disallow to change owner of the file in this case.
Reported-by: Steve Kenton <skenton@ou.edu>
Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/ialloc.c')
-rw-r--r-- | fs/udf/ialloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c index b6e420c1bfeb..b7a0d4b4bda1 100644 --- a/fs/udf/ialloc.c +++ b/fs/udf/ialloc.c | |||
@@ -104,6 +104,10 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode) | |||
104 | } | 104 | } |
105 | 105 | ||
106 | inode_init_owner(inode, dir, mode); | 106 | inode_init_owner(inode, dir, mode); |
107 | if (UDF_QUERY_FLAG(sb, UDF_FLAG_UID_SET)) | ||
108 | inode->i_uid = sbi->s_uid; | ||
109 | if (UDF_QUERY_FLAG(sb, UDF_FLAG_GID_SET)) | ||
110 | inode->i_gid = sbi->s_gid; | ||
107 | 111 | ||
108 | iinfo->i_location.logicalBlockNum = block; | 112 | iinfo->i_location.logicalBlockNum = block; |
109 | iinfo->i_location.partitionReferenceNum = | 113 | iinfo->i_location.partitionReferenceNum = |