mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ext4: only update tune mount options when requested
EXT4_IOC_SET_TUNE_SB_PARAM uses set_flags to indicate which superblock
fields the caller wants to update. ext4_sb_setparams() checks set_flags
before updating the other supported fields, but always copied mount_opts
into the on-disk s_mount_opts field.
As a result, callers that do not set EXT4_TUNE_FL_MOUNT_OPTS can still
clear or alter the on-disk default mount options through their unused
mount_opts buffer. This can affect subsequent mounts by changing the
filesystem's stored default mount options.
Only copy mount_opts into s_mount_opts when EXT4_TUNE_FL_MOUNT_OPTS is set,
matching the set_flags semantics used by the other tuneable superblock
fields.
Cc: stable@kernel.org
Fixes: 04a91570ac ("ext4: implemet new ioctls to set and get superblock parameters")
Signed-off-by: guzebing <guzebing1612@gmail.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Link: https://patch.msgid.link/20260810151200.1405562-1-guzebing1612@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
93f51579e7
commit
981eec6c30
|
|
@ -1362,7 +1362,8 @@ static void ext4_sb_setparams(struct ext4_sb_info *sbi,
|
|||
es->s_encoding = cpu_to_le16(params->encoding);
|
||||
if (params->set_flags & EXT4_TUNE_FL_ENCODING_FLAGS)
|
||||
es->s_encoding_flags = cpu_to_le16(params->encoding_flags);
|
||||
strscpy_pad(es->s_mount_opts, params->mount_opts);
|
||||
if (params->set_flags & EXT4_TUNE_FL_MOUNT_OPTS)
|
||||
strscpy_pad(es->s_mount_opts, params->mount_opts);
|
||||
if (params->set_flags & EXT4_TUNE_FL_EDIT_FEATURES) {
|
||||
es->s_feature_compat |=
|
||||
cpu_to_le32(params->set_feature_compat_mask);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user